skills/linear/SKILL.md
Linear issue tracking - MUST READ before using Linear commands
npx skillsauth add alienfast/claude linearInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
READ THIS FIRST - Token-efficient CLI for managing issues, dependencies, and cycles.
⚠️ INSTALL ALL SKILLS FOR FULL WORKFLOW AUTOMATION
Run linear skills install --all to get specialized workflows:
/prd - Create agent-friendly tickets with PRDs/triage - Prioritize backlog by staleness and blockers/cycle-plan - Plan cycles using velocity analytics/retro - Generate sprint retrospectives/deps - Analyze dependency chains and blockers/link-deps - Discover and link related issuesWithout these skills, you're only using basic commands. Install them to unlock full agentic capabilities.
When you run linear auth login, you choose:
--assignee me assigns to your personal Linear account--assignee me assigns to the OAuth app (delegate), visible as a separate entityCheck current mode:
linear auth status # Shows: Mode: User or Mode: Agent
Important: If you see "Auth mode not set", re-run linear auth login to configure.
# Setup
linear init # Set default team (.linear.yaml)
linear onboard # Show teams, states, quick reference
linear auth login|logout|status # OAuth authentication (sets user/agent mode)
# Issues (alias: i)
linear i list [flags] # List issues
linear i get <ID> # Get details (CEN-123)
linear i create <title> [flags] # Create issue
linear i update <ID> [flags] # Update issue
linear i comment <ID> -b "text" # Add comment
linear i react <ID> 👍 # Add reaction
# Projects (alias: p)
linear p list [--mine] # List projects
linear p create <name> [flags] # Create project
# Cycles (alias: c)
linear c list [--active] # List cycles
linear c get <number> # Get cycle (requires init)
linear c analyze --team <KEY> # Velocity analytics
# Teams, Users
linear teams list # List teams
linear teams states <KEY> # Workflow states
linear users list [--team <KEY>] # List users
# Search & Dependencies
linear search <query> [flags] # Semantic search across all entities
linear deps <ID> # Dependency graph
linear deps --team <KEY> # All team dependencies
All commands support JSON output for automation:
# Text output (default) - token-efficient ASCII
linear i list
linear i get CEN-123
# JSON output - machine-readable
linear i list --output json
linear i get CEN-123 --output json
# Control detail level with --format
linear i list --format minimal --output json # Essential fields (~50 tokens)
linear i list --format compact --output json # Key metadata (~150 tokens, default)
linear i list --format full --output json # Complete details (~500 tokens)
# Pipe to jq for filtering
linear i list --priority 1 --output json | jq '.[] | select(.state == "In Progress")'
# Export for processing
linear cycles analyze --team CEN --output json > velocity.json
When to use JSON:
Supported commands:
issues list, issues getcycles list, cycles get, cycles analyzeprojects list, projects getteams list, teams get, teams labels, teams statesusers list, users get, users mesearch (all operations)The search is SEMANTIC - finds related issues even without exact matches.
# Basic semantic search
linear search "authentication" # Finds: auth, login, OAuth, SSO, etc.
# Cross-entity search
linear search "sprint planning" --type all # Search issues, cycles, projects, users
# Entity-specific
linear search "database migration" --type issues
linear search "john" --type users
# Find ALL blocked issues (run this weekly!)
linear search --has-blockers --team CEN
# Find high-priority blocked work
linear search --priority 1 --has-blockers --team CEN
# What's blocked by a specific bottleneck?
linear search --blocked-by CEN-123
# What blocks a critical feature?
linear search --blocks CEN-456
# Visualize full dependency graph for issue
linear deps CEN-123
# See all team dependencies (detect circular deps)
linear deps --team CEN
# Find issues with circular dependencies
linear search --has-circular-deps --team CEN
# Find deep dependency chains
linear search --max-depth 5 --team CEN
Analyze past cycles to predict capacity:
# Analyze last 10 cycles
linear c analyze --team CEN --count 10
# Output shows:
# - Completed vs planned points
# - Velocity trend
# - Completion rate
# - Recommendations for next cycle capacity
Use before sprint planning to set realistic goals!
# High-priority in-progress work assigned to me
linear i list --priority 1 --state "In Progress" --assignee me
# Backlog items with blockers (prioritize removing blockers!)
linear search --state Backlog --has-blockers --team CEN
# Customer-facing bugs in current cycle
linear i list --labels customer,bug --cycle 65 --format full
# Unassigned high-priority work
linear search --priority 1 --assignee none --team CEN
# Work depending on other issues (check before starting)
linear search --has-dependencies --state "In Progress" --team CEN
# Simple issue
linear i create "Fix login bug" --team CEN --priority 1
# Full issue with dependencies
linear i create "Add OAuth integration" \
--team CEN \
--state "In Progress" \
--priority 2 \
--assignee me \
--parent CEN-100 \
--depends-on CEN-99 \
--blocked-by CEN-98 \
--labels backend,security \
--estimate 5 \
--cycle 65 \
--project "Auth Revamp" \
--due 2026-02-01
# With description from file (use linear-stdin.sh to avoid permission prompts)
~/.claude/scripts/linear-stdin.sh spec.md i create "Feature title" --team CEN -d -
All description and body flags support stdin via -. Use ~/.claude/scripts/linear-stdin.sh to pass file content — it wraps the stdin redirect so Bash permission wildcards match correctly.
# Usage: ~/.claude/scripts/linear-stdin.sh <file> <linear-args...>
# Create issue with description from file
~/.claude/scripts/linear-stdin.sh tmp/description.md i create "Feature title" \
--team CEN \
--priority 1 \
-d -
# Update issue description
~/.claude/scripts/linear-stdin.sh tmp/linear-description-cen-123.md i update CEN-123 -d -
# Add comment from file
~/.claude/scripts/linear-stdin.sh tmp/linear-comment-cen-123.md i comment CEN-123 -b -
Standard workflow for any command that passes file content:
Write tool to save content to tmp/<descriptive-name>.md~/.claude/scripts/linear-stdin.sh tmp/<file>.md <linear-args> -d - (or -b - for comments)Why not use shell redirects directly? Claude Code's Bash permission wildcards don't match through shell operators (<, |, $()). The helper script wraps the redirect internally so permissions work.
For short inline values (no file needed):
# Short descriptions/comments can be passed directly as arguments
linear i create "Fix login bug" --team CEN --priority 1 -d "Brief description here"
linear i comment CEN-123 -b "Quick status update"
# Minimal - most token-efficient (IDs only)
linear i list --format minimal
# Compact - balanced (default)
linear i list --format compact
# Full - all details (use for single issues)
linear i get CEN-123 --format full
linear search "auth" --limit 5 --format full
# 1. Find all blocked work
linear search --has-blockers --team CEN --format full
# 2. For each blocker, check status
linear i get CEN-123 --format full
# 3. Update blockers or reassign blocked work
linear i update CEN-123 --state "In Progress" --assignee me
# 1. Check velocity
linear c analyze --team CEN --count 5
# 2. Find backlog candidates
linear search --state Backlog --team CEN --format compact
# 3. Check dependencies before committing
linear deps --team CEN
# 4. Assign to cycle
linear i update CEN-456 --cycle 66 --assignee [email protected]
# 1. Search for related work
linear search "authentication refactor" --team CEN
# 2. Check what depends on foundation work
linear search --depends-on CEN-100
# 3. Link new issue to dependencies
linear i create "Add JWT refresh" --depends-on CEN-100,CEN-101
# 1. Visualize dependencies
linear deps --team CEN
# 2. Start with issues that have no blockers
linear search --state Backlog --team CEN | grep -v "Blocked by"
# 3. Work that unblocks the most
linear search --blocking <critical-feature-id>
# Find work for specific person
linear i list --assignee [email protected] --format compact
# High-priority work in active cycle
linear i list --priority 1 --cycle current --team CEN
# All bugs
linear i list --labels bug --team CEN
# Overdue issues
linear i list --state "In Progress" --team CEN # Check due dates manually
# Issues I created
linear i list --creator me --team CEN
linear init first - sets default teamlinear search --has-blockers prevents stalled worklinear c analyze gives realistic estimateslinear deps --team <KEY> shows work orderlinear init before using cycle numbersIssue Flags:
-t, --team <KEY> - Team (from init or manual)-s, --state <name> - Workflow state-p, --priority <0-4> - 0=none, 1=urgent, 2=high, 3=normal, 4=low-a, --assignee <email|me> - Assign to user-c, --cycle <number> - Cycle number-P, --project <name> - Project name-e, --estimate <points> - Story points-l, --labels <list> - Comma-separated-d, --description <text|-> - Description (- for stdin)--parent <ID> - Parent issue--depends-on <IDs> - Comma-separated dependencies--blocked-by <IDs> - Comma-separated blockers--due <date> - Due date (YYYY-MM-DD)--attach <file> - Attach fileSearch Flags:
--type <entity> - issues, cycles, projects, users, all--blocked-by <ID> - Issues blocked by this--blocks <ID> - Issues that block this--has-blockers - Any blockers--has-dependencies - Any dependencies--has-circular-deps - Circular dependency chains--max-depth <n> - Max dependency depth-n, --limit <n> - Results limit-f, --format <type> - minimal, compact, fullOutput Formats:
--format minimal - IDs only (most token-efficient)--format compact - Balanced (default)--format full - All details (use sparingly)testing
End-to-end Linear issue macro — runs /start then /finish in sequence, gated on the /quality-review verdict. Worktree mode is opt-in via the `wt` token, mirroring /start. Pauses only for plan approval and the deferred-items filing decision; otherwise autonomous. Use when the user says 'full PL-XX', 'ship PL-XX end-to-end', or invokes /full.
development
Adversarial implementation review with triage and fix loop. Hard-gates on `pnpm check`, delegates to the quality-reviewer agent for categorized findings (Critical/High/Medium/Nice-to-Have/Approved), then triages and fixes findings via the developer agent. Loops until a re-review surfaces no new Critical/High/Medium findings (convergence), with a soft ceiling of 5 cycles before asking the user how to proceed; option 3 of that prompt terminates with verdict `escalated-to-architect`. Use when the user says 'review my work', 'check this implementation', 'adversarial review', 'quality review', or invokes /quality-review.
testing
Triage and prioritize Linear backlog. Analyzes issues for staleness, blockers, and suggests priorities based on dependencies and capacity.
testing
Start working on a Linear issue — check blockers, assign, move to In Progress, create branch, plan implementation, execute with checkpoint updates, review and triage findings. Use when the user says 'start issue', 'work on PL-XX', 'begin PL-XX', or invokes /start.