i-have-adhd
Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…
Managing Linear issues, projects, and teams. Use when working with Linear tasks, creating issues, updating status, querying projects, or managing team workflows.
Claude Code
$ npx -y skills add wrsmith108/linear-claude-skill --skill linear-claude-skill --agent claude-code
Codex
$ npx skills add wrsmith108/linear-claude-skill --skill linear-claude-skill -a codex -y
Cursor
$ npx skills add wrsmith108/linear-claude-skill --skill linear-claude-skill -a cursor -y
Gemini CLI
$ npx skills add wrsmith108/linear-claude-skill --skill linear-claude-skill -a gemini-cli -y
GitHub Copilot
$ npx skills add wrsmith108/linear-claude-skill --skill linear-claude-skill -a github-copilot -y
OpenCode
$ npx skills add wrsmith108/linear-claude-skill --skill linear-claude-skill -a opencode -y
Windsurf
$ npx skills add wrsmith108/linear-claude-skill --skill linear-claude-skill -a windsurf -y
name: Linear description: Managing Linear issues, projects, and teams. Use when working with Linear tasks, creating issues, updating status, querying projects, or managing team workflows. version: 3.4.1 author: Ryan Smith <ryan@smithhorn.ca> tags: - linear - issue-tracking - project-management - mcp - graphql - workflow allowed-tools: - mcp__linear - WebFetch(domain:linear.app) - Bash
Tools and workflows for managing issues, projects, and teams in Linear.
---
**This skill supports multiple tool backends. Use whichever is available:**
1. **MCP Tools (mcp__linear)** - Use if available in your tool set 2. **Linear CLI (`linear` command)** - Always available via Bash 3. **Helper Scripts** - For complex operations
**If MCP tools are NOT available**, use the Linear CLI via Bash:
# View an issue linear issues view ENG-123 # Create an issue linear issues create --title "Issue title" --description "Description" # Update issue status (get state IDs first) linear issues update ENG-123 -s "STATE_ID" # Add a comment linear issues comment add ENG-123 -m "Comment text" # List issues linear issues list
**Do NOT report "MCP tools not available" as a blocker** - use CLI instead.
---
**CRITICAL**: Never expose API keys in terminal output or Claude's context.
# Validate LINEAR_API_KEY is set (masked output)
varlock load 2>&1 | grep LINEAR
# Run commands with secrets injected
varlock run -- npm run query -- "query { viewer { name } }"
# Check schema (safe - no values)
cat .env.schema | grep LINEAR# ❌ NEVER - exposes key to Claude's context linear config show echo $LINEAR_API_KEY printenv | grep LINEAR cat .env
1. Create `.env.schema` with `@sensitive` annotation:
# @type=string(startsWith=lin_api_) @required @sensitive LINEAR_API_KEY=
2. Add `LINEAR_API_KEY` to `.env` (never commit this file)
3. Configure MCP to use environment variable:
{
"mcpServers": {
"linear": {
"env": { "LINEAR_API_KEY": "${LINEAR_API_KEY}" }
}
}
}4. Use `varlock load` to validate before operations
---
Run the setup check to verify your configuration:
npm run setup
This will check:
If setup reports a missing API key:
1. Open [Linear](https://linear.app) in your browser 2. Go to **Settings** (gear icon) -> **Security & access** -> **Personal API keys** 3. Click **Create key** and copy the key (starts with `lin_api_`) 4. Add to your environment:
# Option A: Add to shell profile (~/.zshrc or ~/.bashrc) export LINEAR_API_KEY="lin_api_your_key_here" # Option B: Add to Claude Code environment echo 'LINEAR_API_KEY=lin_api_your_key_here' >> ~/.claude/.env # Then reload your shell or restart Claude Code
Verify everything works:
npm run query -- "query { viewer { name } }"You should see your name from Linear.
# Create issue in a project npm run ops -- create-issue "Project" "Add rate limiting to auth endpoints" "Auth endpoints have no rate limiting, allowing brute-force attacks. Add configurable limits per endpoint with 429 responses when exceeded." # Update issue status npm run ops -- status Done ENG-123 ENG-124 # Edit issue title or description (fix typos, expand bodies) npm run ops -- update-issue ENG-123 description --file /tmp/description.md --force npm run ops -- update-issue ENG-123 title "Corrected title" --force echo "New body from pipeline" | npm run ops -- update-issue ENG-123 description --stdin --force npm run ops -- update-issue ENG-123 description "Short inline update" --strict=false # Create sub-issue npm run ops -- create-sub-issue ENG-100 "Sub-task" "Details" # Update project status npm run ops -- project-status "Phase 1" completed # Show all commands npm run ops -- help
See [Project Management Commands](#project-management-commands) for full reference.
---
**When creating a Linear issue, always complete these three steps — even if the user doesn't mention them.**
1. **Detailed description with Acceptance Criteria.** Every issue description MUST include an `## Acceptance Criteria` section with at least 2 concrete, testable checklist items. See [docs/issue-template.md](docs/issue-template.md) for the canonical template plus a populated full example. The CLI `create-issue` / `create-sub-issue` will reject descriptions missing this structure; for MCP `save_issue` callers, validate the draft first with `npm run ops -- validate-description --stdin` (see below). If the user provides only a title, draft the description yourself using the template below.
**Depth — default to the full six-section template.** Unless the user's phrasing clearly signals brevity (*"quick issue"*, *"one-liner"*, *"just the AC"*, *"brief"*, *"terse"*, *"minimum"*, *"short"*), structure the body as **Context → Problem → Proposal → Acceptance Criteria → Verification → Out of scope**. The 120-char / 2-item floor is what the validator *rejects*, not what reviewers *want*. If the user gives you only a title, draft a verbose body from the full template — ask follow-up questions rather than shipping the floor. For trivial changes (typo fix, one-line config tweak), collapsing `Problem` into `Context` and dropping `Verification` is fine when the AC is self-evidently testable — collapse deliberately, not by default.
## Context **Title:** <title> <What is changing and why. 2-4 sentences. Link prior issues, docs, or incidents tha
A comprehensive Claude Code skill for managing Linear issues, projects, and teams. Provides patterns for MCP tools, SDK automation, and GraphQL API access.
Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…
Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…