linear
The Linear skill enables creation, updating, and querying of issues, projects, and tasks within Linear's workspace using its GraphQL API. Use this skill when automating issue management workflows, tracking project progress, managing issue status and priorities, adding comments, or integrating Linear issue tracking with other systems and processes.
git clone --depth 1 https://github.com/aiskillstore/marketplace /tmp/linear && cp -r /tmp/linear/skills/0xbigboss/linear ~/.claude/skills/linearSKILL.md
# Linear CLI
Interacts with Linear for issue tracking and project management using the `linear` command.
## Scope
- Use for Linear issue/project/teams management via the CLI or GraphQL (`linear gql`).
- Prefer built-in commands over raw GraphQL unless functionality is missing.
- Keep defaults in sync with the user's config; do not hard-code team IDs/outputs.
## Install & Setup
- Install: `npm install -g @0xbigboss/linear-cli`
- Auth: `linear auth set` or set `LINEAR_API_KEY`
- Defaults: `linear config set default_team_id TEAM_KEY`, `linear config set default_output json|table`, `linear config set default_state_filter completed,canceled`
- Inspect or reset defaults: `linear config show`, `linear config unset default_output`
- Config path: `~/.config/linear/config.json` (override with `--config PATH` or `LINEAR_CONFIG`)
## Prerequisites
- CLI installed and on PATH
- Valid Linear API key available
- Team defaults set or provided per command (team key/UUID)
## Hygiene
- **Branches**: Name as `{TICKET}-{short-name}` (e.g., `ENG-123-fix-auth`); prefer git worktrees for parallel work
- **Commits**: Use conventional commits; ticket ID in body or trailer, not subject
- **Assignment**: Assign yourself when starting work (`linear issue update ENG-123 --assignee me --yes`)
- **Sub-issues**: Set parent to associate related work (requires UUID: `linear issue update ENG-123 --parent PARENT_UUID --yes`)
- **Scope creep**: Create separate issues for discovered work; link with blocks relation (`linear issue link ENG-123 --blocks ENG-456 --yes`)
- **Cycles/projects**: Ask user preference when creating issues
## Quick Recipes
### List my issues
```bash
linear issues list --team TEAM_KEY --assignee me --human-time
```
### Search issues
```bash
linear search "keyword" --team TEAM_KEY --limit 10
```
### Create an issue
```bash
linear issue create --team TEAM_KEY --title "Fix bug" --yes
# Returns identifier (e.g., ENG-123)
```
### View issue details
```bash
linear issue view ENG-123
```
### Download attachments from issues
```bash
# Download a specific file (requires LINEAR_API_KEY)
linear download "https://uploads.linear.app/..." --output screenshot.png
# Auto-download attachments when viewing an issue
linear issue view ENG-123 --attachment-dir /tmp
# Disable auto-download
linear issue view ENG-123 --attachment-dir ""
```
### Get issue as JSON for processing
```bash
linear issue view ENG-123 --json
```
### Get issue with full context (for agents/analysis)
```bash
linear issue view ENG-123 --fields identifier,title,state,assignee,priority,url,description,parent,sub_issues,comments --json
```
### List all teams
```bash
linear teams list
```
### Verify authentication
```bash
linear auth test
```
### List projects
```bash
linear projects list --limit 10
```
### View or change CLI defaults
```bash
linear config show
linear config set default_output json
linear config unset default_state_filter
```
### Add a comment to an issue
```bash
linear issue comment ENG-123 --body "Comment text here" --yes
# Or from a file/stdin
cat notes.md | linear issue comment ENG-123 --body-file - --yes
```
### Create and manage a project
```bash
# Create project (team UUID required)
linear project create --team TEAM_UUID --name "My Project" --state planned --yes
# Update project state
linear project update PROJECT_ID --state started --yes
# Add issue to project
linear project add-issue PROJECT_ID ISSUE_UUID --yes
```
## Command Reference
| Command | Purpose |
|---------|---------|
| `linear issues list` | List issues with filters |
| `linear search "keyword"` | Search issues by text |
| `linear issue view ID` | View single issue |
| `linear issue create` | Create new issue |
| `linear issue update ID` | Update issue (assign, state, priority, parent*) |
| `linear issue link ID` | Link issues (blocks, related, duplicate) |
| `linear issue comment ID` | Add comment to issue |
| `linear issue delete ID` | Archive an issue |
| `linear projects list` | List projects |
| `linear project view ID` | View project details |
| `linear project create` | Create new project |
| `linear project update ID` | Update project (state, name, dates) |
| `linear project delete ID` | Archive a project |
| `linear project add-issue` | Add issue to project |
| `linear project remove-issue` | Remove issue from project |
| `linear teams list` | List available teams |
| `linear me` | Show current user |
| `linear gql` | Run raw GraphQL |
| `linear download` | Download uploads.linear.app attachments |
| `linear help CMD` | Command-specific help |
*`--parent` requires UUIDs, not identifiers. See [Finding IDs](#finding-ids).
## Common Flags
- `--team ID\|KEY` - Specify team (required for most commands)
- `--json` - Output as JSON
- `--yes` - Confirm mutations without prompt
- `--human-time` - Show relative timestamps
- `--fields LIST` - Select specific fields
- `--help` - Show command help
## Workflow: Creating and Linking Issues
**Note:** `--parent` requires UUIDs. Get UUID with `linear issue view ID --json | jq -r '.issue.id'`
```
Progress:
- [ ] List teams to get TEAM_KEY: `linear teams list`
- [ ] Create parent issue: `linear issue create --team KEY --title "Epic" --yes`
- [ ] Create child issue: `linear issue create --team KEY --title "Task" --yes`
- [ ] Get parent UUID: `linear issue view PARENT_ID --json | jq -r '.issue.id'`
- [ ] Set parent (UUID required): `linear issue update CHILD_ID --parent PARENT_UUID --yes`
- [ ] Create another issue to link: `linear issue create --team KEY --title "Blocked" --yes`
- [ ] Link blocking issue: `linear issue link ISSUE_ID --blocks OTHER_ID --yes`
- [ ] Verify: `linear issue view ISSUE_ID --json`
```
## Common Gotchas
| Problem | Cause | Solution |
|---------|-------|----------|
| Empty results | No team specified | Add `--team TEAM_KEY` |
| 401 Unauthorized | Invalid/missing API key | Run `linear auth test` |
| Mutation does nothing | Missing confirmation | Add `--yes` flag |
| Can't findImplement SAFe methodology in Jira. Use when creating Epics, Features, Stories with proper hierarchy, acceptance criteria, and parent-child linking.
Orchestrate Jira workflows end-to-end. Use when building stories with approvals, transitioning items through lifecycle states, or syncing task completion with Jira.
HSK4級レベルから流暢さを目指す学習者向け。中国語表現の使用場面・自然さを分析し、作文を「ネイティブらしい流暢な表現」に改善。bilibili等のコンテンツ理解とネイティブとの会話をサポート。実際の用例をWeb検索で提示
Next.js 15 애플리케이션을 위한 프론트엔드 개발 가이드라인. React 19, TypeScript, Shadcn/ui, Tailwind CSS를 사용한 모던 패턴. Server Components, Client Components, App Router, 파일 구조, Shadcn/ui 컴포넌트, 성능 최적화, TypeScript 모범 사례 포함. 컴포넌트, 페이지, 기능 생성, 데이터 페칭, 스타일링, 라우팅, 프론트엔드 코드 작업 시 사용.
Claude Code 스킬, 훅, 에이전트, 명령어를 생성하고 관리하기 위한 메타 스킬. 새 스킬 생성, 스킬 트리거 설정, 훅 설정, Claude Code 인프라 관리 시 사용.
Discover and extract sitemaps from any website using SitemapKit. Use this skill whenever the user wants to find pages on a website, get a list of URLs from a domain, audit a site's structure, crawl a sitemap, check what pages exist on a site, or do anything involving sitemaps or site URL discovery — even if they don't explicitly say "sitemap". Requires the sitemapkit MCP server configured with a valid SITEMAPKIT_API_KEY.
GitHubのプルリクエスト(PR)を作成する際に使用します。変更のコミット、プッシュ、PR作成を含む完全なワークフローを日本語で実行します。「PRを作って」「プルリクエストを作成」「pull requestを作成」などのリクエストで自動的に起動します。
Generate an SVG of a user-requested image or scene