Install
$ agentstack add skill-twanahc-claude-linear-skill-claude-linear-skill ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Linear Issue Workflow
Overview
Orchestrate Linear issue workflows: browse your backlog, pick issues, create implementation plans, and execute them — all while keeping your main context clean via subagents.
Prerequisites
LINEAR_API_KEYenvironment variable must be set- Get your key at: Linear Settings → API → Create Key
export LINEAR_API_KEY="lin_api_..."
API Script
All Linear API calls go through:
bun ~/.claude/skills/linear/scripts/linear-api.ts
Commands:
list-teams— discover teamslist-projects [--team KEY]— list projects (optionally by team)list-states --team KEY— workflow states for a teamlist-issues --team KEY --status NAME --assignee NAME --label NAME --limit Nget-issue IDENTIFIER— full issue details (e.g., BLU-42)search-issues— full-text searchcreate-issue --title T --team KEY --description D --priority 0-4 --label L --project P --assignee A --parent IDupdate-issue IDENTIFIER --priority N --assignee A --label L --project P --title T --description Dupdate-status IDENTIFIER "State Name"add-comment IDENTIFIER "comment body"
Workflow
digraph linear_workflow {
rankdir=TB;
"User invokes /linear" [shape=doublecircle];
"Browse, specific, or propose?" [shape=diamond];
"Spawn linear-triage subagent" [shape=box];
"User provides issue IDs" [shape=box];
"Spawn linear-propose subagent" [shape=box];
"Present proposals to user" [shape=box];
"User picks proposals to create?" [shape=diamond];
"Create Linear issues" [shape=box];
"For each issue: spawn linear-plan subagent" [shape=box];
"Present plans to user" [shape=box];
"User approves plans?" [shape=diamond];
"For each plan: spawn linear-implement subagent" [shape=box];
"Summarize results" [shape=doublecircle];
"User invokes /linear" -> "Browse, specific, or propose?";
"Browse, specific, or propose?" -> "Spawn linear-triage subagent" [label="browse"];
"Browse, specific, or propose?" -> "User provides issue IDs" [label="specific"];
"Browse, specific, or propose?" -> "Spawn linear-propose subagent" [label="propose"];
"Spawn linear-propose subagent" -> "Present proposals to user";
"Present proposals to user" -> "User picks proposals to create?";
"User picks proposals to create?" -> "Create Linear issues" [label="yes"];
"Create Linear issues" -> "For each issue: spawn linear-plan subagent";
"Spawn linear-triage subagent" -> "For each issue: spawn linear-plan subagent";
"User provides issue IDs" -> "For each issue: spawn linear-plan subagent";
"For each issue: spawn linear-plan subagent" -> "Present plans to user";
"Present plans to user" -> "User approves plans?";
"User approves plans?" -> "Present plans to user" [label="revise"];
"User approves plans?" -> "For each plan: spawn linear-implement subagent" [label="yes"];
"For each plan: spawn linear-implement subagent" -> "Summarize results";
}
Step 1: Determine Scope
Ask the user:
- Browse backlog: "Let me look through your issues and help you pick" → Spawn a linear-triage subagent
- Specific issues: User provides issue IDs (e.g., "BLU-42, BLU-57") → Skip to Step 2
- Propose improvements: "Analyze the codebase and suggest things to add/fix/improve" → Go to Step 1b
Step 1b: Propose (if "propose" selected)
Spawn a linear-propose subagent using the Task tool:
Task tool:
subagent_type: general-purpose
prompt: |
You are a Linear proposal agent. Read and follow the skill instructions at:
~/.claude/skills/linear/linear-propose/SKILL.md
Team key:
Focus area:
Project root:
The Linear API script is at: ~/.claude/skills/linear/scripts/linear-api.ts
Run it with: source ~/.bashrc && bun ~/.claude/skills/linear/scripts/linear-api.ts
When the subagent returns proposals:
- Present the proposals to the user in a clean table
- Ask which proposals to create as Linear issues
- For each approved proposal, create a Linear issue using the API script
- The user can then optionally proceed to Step 2 (Plan) with the newly created issues
Step 2: Plan
For each selected issue, spawn a linear-plan subagent using the Task tool:
Task tool:
subagent_type: general-purpose
prompt: |
You are a Linear planning agent. Read and follow the skill instructions at:
~/.claude/skills/linear/linear-plan/SKILL.md
Issue to plan:
Project root:
The Linear API script is at: ~/.claude/skills/linear/scripts/linear-api.ts
Run it with: source ~/.bashrc && bun ~/.claude/skills/linear/scripts/linear-api.ts
Parallelism decision:
- Independent issues (different areas of codebase) → spawn plan subagents in parallel
- Overlapping issues (same files/modules) → run serially
- Ask the user if unsure
Step 3: Review Plans
Present each plan summary to the user. Wait for explicit approval before proceeding.
Step 4: Implement
For each approved plan, spawn a linear-implement subagent using the Task tool:
Task tool:
subagent_type: general-purpose
prompt: |
You are a Linear implementation agent. Read and follow the skill instructions at:
~/.claude/skills/linear/linear-implement/SKILL.md
Issue:
Plan:
Project root:
Main repo root:
The Linear API script is at: ~/.claude/skills/linear/scripts/linear-api.ts
Run it with: source ~/.bashrc && bun ~/.claude/skills/linear/scripts/linear-api.ts
MANDATORY: You MUST pull latest from main and work in a git worktree.
Never work directly on main. The skill instructions explain the setup.
Same parallelism rules as Step 2. Worktrees are mandatory — each implementation subagent creates its own worktree automatically per linear-implement Step 1.
Step 5: Summary
After all subagents complete:
- Summarize what was implemented
- List any follow-up issues created
- Report any failures or blockers
Context Strategy
The orchestrator (you) should hold minimal context:
- Issue identifiers and one-line summaries only
- Delegate all codebase exploration to subagents
- Delegate all code writing to subagents
- Only hold plan summaries (not full plans) after Step 2
This keeps the main context clean for processing many issues in one session.
Important
- Auto-set "In Progress": When an issue is selected for planning or implementation, immediately set it to "In Progress" — no confirmation needed. Picking an issue = starting work.
- Confirm before closing: Never auto-close or mark issues "Done" — always let the user decide when to close.
- If a subagent encounters blockers, surface them to the user immediately
- Announce write operations (create issue, update status, add comment) before executing them
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: twanahc
- Source: twanahc/claude-linear-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.