[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M738SFNA0PR9CW7CS0G024GP":3,"skill-same:01M738SFNA0PR9CW7CS0G024GP":49},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":14,"repositoryHtmlUrl":30,"repositoryHomepageUrl":6,"ownerHtmlUrl":31,"ownerBlogUrl":32,"ownerDescription":33,"updatedAt":34,"install":35,"resources":48},"01M738SFNA0PR9CW7CS0G024GP","linear-claude-skill",null,"Manage Linear issues, projects, and teams","kalash33\u002Fkstack","kalash33","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F90259149?v=4","01M7365X8Q0B73NYHA730SMZWN","Kalash Poddar","01M7365X9D0JK47C3Q0YCCK9Z2",0,"MIT","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Flinear-claude-skill\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: linear-claude-skill\ndescription: \"Manage Linear issues, projects, and teams\"\nrisk: safe\nsource: \"https:\u002F\u002Fgithub.com\u002Fwrsmith108\u002Flinear-claude-skill\"\ndate_added: \"2026-02-27\"\n---\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n# Linear\n\nTools and workflows for managing issues, projects, and teams in Linear.\n\n---\n\n## ⚠️ Tool Availability (READ FIRST)\n\n**This skill supports multiple tool backends. Use whichever is available:**\n\n1. **MCP Tools (mcp__linear)** - Use if available in your tool set\n2. **Linear CLI (`linear` command)** - Always available via Bash\n3. **Helper Scripts** - For complex operations\n\n**If MCP tools are NOT available**, use the Linear CLI via Bash:\n\n```bash\n# View an issue\nlinear issues view ENG-123\n\n# Create an issue\nlinear issues create --title \"Issue title\" --description \"Description\"\n\n# Update issue status (get state IDs first)\nlinear issues update ENG-123 -s \"STATE_ID\"\n\n# Add a comment\nlinear issues comment add ENG-123 -m \"Comment text\"\n\n# List issues\nlinear issues list\n```\n\n**Do NOT report \"MCP tools not available\" as a blocker** - use CLI instead.\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## 🔐 Security: Varlock Integration\n\n**CRITICAL**: Never expose API keys in terminal output or Claude's context.\n\n### Safe Commands (Always Use)\n\n```bash\n# Validate LINEAR_API_KEY is set (masked output)\nvarlock load 2>&1 | grep LINEAR\n\n# Run commands with secrets injected\nvarlock run -- npx tsx scripts\u002Fquery.ts \"query { viewer { name } }\"\n\n# Check schema (safe - no values)\ncat .env.schema | grep LINEAR\n```\n\n### Unsafe Commands (NEVER Use)\n\n```bash\n# ❌ NEVER - exposes key to Claude's context\nlinear config show\necho $LINEAR_API_KEY\nprintenv | grep LINEAR\ncat .env\n```\n\n### Setup for New Projects\n\n1. Create `.env.schema` with `@sensitive` annotation:\n   ```bash\n   # @type=string(startsWith=lin_api_) @required @sensitive\n   LINEAR_API_KEY=\n   ```\n\n2. Add `LINEAR_API_KEY` to `.env` (never commit this file)\n\n3. Configure MCP to use environment variable:\n   ```json\n   {\n     \"mcpServers\": {\n       \"linear\": {\n         \"env\": { \"LINEAR_API_KEY\": \"${LINEAR_API_KEY}\" }\n       }\n     }\n   }\n   ```\n\n4. Use `varlock load` to validate before operations\n\n---\n\n## Quick Start (First-Time Users)\n\n### 1. Check Your Setup\n\nRun the setup check to verify your configuration:\n\n```bash\nnpx tsx ~\u002F.claude\u002Fskills\u002Flinear\u002Fscripts\u002Fsetup.ts\n```\n\nThis will check:\n- LINEAR_API_KEY is set and valid\n- @linear\u002Fsdk is installed\n- Linear CLI availability (optional)\n- MCP configuration (optional)\n\n### 2. Get API Key (If Needed)\n\nIf setup reports a missing API key:\n\n1. Open [Linear](https:\u002F\u002Flinear.app) in your browser\n2. Go to **Settings** (gear icon) -> **Security & access** -> **Personal API keys**\n3. Click **Create key** and copy the key (starts with `lin_api_`)\n4. Add to your environment:\n\n```bash\n# Option A: Add to shell profile (~\u002F.zshrc or ~\u002F.bashrc)\nexport LINEAR_API_KEY=\"lin_api_your_key_here\"\n\n# Option B: Add to Claude Code environment\necho 'LINEAR_API_KEY=lin_api_your_key_here' >> ~\u002F.claude\u002F.env\n\n# Then reload your shell or restart Claude Code\n```\n\n### 3. Test Connection\n\nVerify everything works:\n\n```bash\nnpx tsx ~\u002F.claude\u002Fskills\u002Flinear\u002Fscripts\u002Fquery.ts \"query { viewer { name } }\"\n```\n\nYou should see your name from Linear.\n\n### 4. Common Operations\n\n```bash\n# Create issue in a project\nnpx tsx scripts\u002Flinear-ops.ts create-issue \"Project\" \"Title\" \"Description\"\n\n# Update issue status\nnpx tsx scripts\u002Flinear-ops.ts status Done ENG-123 ENG-124\n\n# Create sub-issue\nnpx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-100 \"Sub-task\" \"Details\"\n\n# Update project status\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 1\" completed\n\n# Show all commands\nnpx tsx scripts\u002Flinear-ops.ts help\n```\n\nSee [Project Management Commands](#project-management-commands) for full reference.\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## Project Planning Workflow\n\n### Create Issues in the Correct Project from the Start\n\n**Best Practice**: When planning a new phase or initiative, create the project and its issues together in a single planning session. Avoid creating issues in a catch-all project and moving them later.\n\n#### Recommended Workflow\n\n1. **Create the project first**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts create-project \"Phase X: Feature Name\" \"My Initiative\"\n   ```\n\n2. **Set project state to Planned**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts project-status \"Phase X: Feature Name\" planned\n   ```\n\n3. **Create issues directly in the project**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts create-issue \"Phase X: Feature Name\" \"Parent task\" \"Description\"\n   npx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-XXX \"Sub-task 1\" \"Description\"\n   npx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-XXX \"Sub-task 2\" \"Description\"\n   ```\n\n4. **Update project state when work begins**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts project-status \"Phase X: Feature Name\" in-progress\n   ```\n\n#### Why This Matters\n\n- **Traceability**: Issues are linked to their project from creation\n- **Metrics**: Project progress tracking is accurate from day one\n- **Workflow**: No time wasted moving issues between projects\n- **Organization**: Linear views and filters work correctly\n\n#### Anti-Pattern to Avoid\n\n❌ Creating issues in a \"holding\" project and moving them later:\n```bash\n# Don't do this\ncreate-issue \"Phase 6A\" \"New feature\"  # Wrong project\n# Later: manually move to Phase X      # Extra work\n```\n\n---\n\n## Project Management Commands\n\n### project-status\n\nUpdate a project's state in Linear. Accepts user-friendly terminology that maps to Linear's API.\n\n```bash\nnpx tsx scripts\u002Flinear-ops.ts project-status \u003Cproject-name> \u003Cstate>\n```\n\n**Valid States:**\n| Input | Description | API Value |\n|-------|-------------|-----------|\n| `backlog` | Not yet started | backlog |\n| `planned` | Scheduled for future | planned |\n| `in-progress` | Currently active | started |\n| `paused` | Temporarily on hold | paused |\n| `completed` | Successfully finished | completed |\n| `canceled` | Will not be done | canceled |\n\n**Examples:**\n```bash\n# Start working on a project\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 8: MCP Decision Engine\" in-progress\n\n# Mark project complete\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 8\" completed\n\n# Partial name matching works\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 8\" paused\n```\n\n### link-initiative\n\nLink an existing project to an initiative.\n\n```bash\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \u003Cproject-name> \u003Cinitiative-name>\n```\n\n**Examples:**\n```bash\n# Link a project to an initiative\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase 8: MCP Decision Engine\" \"Q1 Goals\"\n\n# Partial matching works\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase 8\" \"Q1 Goals\"\n```\n\n### unlink-initiative\n\nRemove a project from an initiative.\n\n```bash\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \u003Cproject-name> \u003Cinitiative-name>\n```\n\n**Examples:**\n```bash\n# Remove incorrect link\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \"Phase 8\" \"Linear Skill\"\n\n# Clean up test links\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \"Test Project\" \"Q1 Goals\"\n```\n\n**Error Handling:**\n- Returns error if project is not linked to the specified initiative\n- Returns error if project or initiative not found\n\n### Complete Project Lifecycle Example\n\n```bash\n# 1. Create project linked to initiative\nnpx tsx scripts\u002Flinear-ops.ts create-project \"Phase 11: New Feature\" \"Q1 Goals\"\n\n# 2. Set state to planned\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 11\" planned\n\n# 3. Create issues in the project\nnpx tsx scripts\u002Flinear-ops.ts create-issue \"Phase 11\" \"Parent task\" \"Description\"\nnpx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-XXX \"Sub-task 1\" \"Details\"\n\n# 4. Start work - update to in-progress\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 11\" in-progress\n\n# 5. Mark issues done\nnpx tsx scripts\u002Flinear-ops.ts status Done ENG-XXX ENG-YYY\n\n# 6. Complete project\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 11\" completed\n\n# 7. (Optional) Link to additional initiative\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase 11\" \"Q2 Goals\"\n```\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## Tool Selection\n\nChoose the right tool for the task:\n\n| Tool | When to Use |\n|------|-------------|\n| **MCP (Official Server)** | Most operations - PREFERRED |\n| **Helper Scripts** | Bulk operations, when MCP unavailable |\n| **SDK scripts** | Complex operations (loops, conditionals) |\n| **GraphQL API** | Operations not supported by MCP\u002FSDK |\n\n### MCP Server Configuration\n\n**Use the official Linear MCP server** at `mcp.linear.app`:\n\n```json\n{\n  \"mcpServers\": {\n    \"linear\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https:\u002F\u002Fmcp.linear.app\u002Fsse\"],\n      \"env\": { \"LINEAR_API_KEY\": \"your_api_key\" }\n    }\n  }\n}\n```\n\n> **WARNING**: Do NOT use deprecated community servers. See troubleshooting.md for details.\n\n### MCP Reliability (Official Server)\n\n| Operation | Reliability | Notes |\n|-----------|-------------|-------|\n| Create issue | ✅ High | Full support |\n| Update status | ✅ High | Use `state: \"Done\"` directly |\n| List\u002FSearch issues | ✅ High | Supports filters, queries |\n| Add comment | ✅ High | Works with issue IDs |\n\n### Quick Status Update\n\n```bash\n# Via MCP - use human-readable state names\nupdate_issue with id=\"issue-uuid\", state=\"Done\"\n\n# Via helper script (bulk operations)\nnode scripts\u002Flinear-helpers.mjs update-status Done 123 124 125\n```\n\n### Helper Script Reference\n\nFor detailed helper script usage, see **troubleshooting.md**.\n\n### Parallel Agent Execution\n\nFor bulk operations or background execution, use the `Linear-specialist` subagent:\n\n```javascript\nTask({\n  description: \"Update Linear issues\",\n  prompt: \"Mark ENG-101, ENG-102, ENG-103 as Done\",\n  subagent_type: \"Linear-specialist\"\n})\n```\n\n**When to use `Linear-specialist` (parallel):**\n- Bulk status updates (3+ issues)\n- Project status changes\n- Creating multiple issues\n- Sync operations after code changes\n\n**When to use direct execution:**\n- Single issue queries\n- Viewing issue details\n- Quick status checks\n- Operations needing immediate results\n\nSee **sync.md** for parallel execution patterns.\n\n## Critical Requirements\n\n### Issues → Projects → Initiatives\n\n**Every issue MUST be attached to a project. Every project MUST be linked to an initiative.**\n\n| Entity | Must Link To | If Missing |\n|--------|--------------|------------|\n| Issue | Project | Not visible in project board |\n| Project | Initiative | Not visible in roadmap |\n\nSee **projects.md** for complete project creation checklist.\n\n---\n\n## Conventions\n\n### Issue Status\n\n- **Assigned to me**: Set `state: \"Todo\"`\n- **Unassigned**: Set `state: \"Backlog\"`\n\n### Labels\n\nUses **domain-based label taxonomy**. See docs\u002Flabels.md.\n\n**Key rules:**\n- ONE Type label: `feature`, `bug`, `refactor`, `chore`, `spike`\n- 1-2 Domain labels: `security`, `backend`, `frontend`, etc.\n- Scope labels when applicable: `blocked`, `breaking-change`, `tech-debt`\n\n```bash\n# Validate labels\nnpx tsx scripts\u002Flinear-ops.ts labels validate \"feature,security\"\n\n# Suggest labels for issue\nnpx tsx scripts\u002Flinear-ops.ts labels suggest \"Fix XSS vulnerability\"\n```\n\n## SDK Automation Scripts\n\n**Use only when MCP tools are insufficient.** For complex operations involving loops, mapping, or bulk updates, write TypeScript scripts using `@linear\u002Fsdk`. See `sdk.md` for:\n\n- Complete script patterns and templates\n- Common automation examples (bulk updates, filtering, reporting)\n- Tool selection criteria\n\nScripts provide full type hints and are easier to debug than raw GraphQL for multi-step operations.\n\n## GraphQL API\n\n**Fallback only.** Use when operations aren't supported by MCP or SDK.\n\nSee **api.md** for complete documentation including:\n- Authentication and setup\n- Example queries and mutations\n- Timeout handling patterns\n- MCP timeout workarounds\n- Shell script compatibility\n\n**Quick ad-hoc query:**\n\n```bash\nnpx tsx ~\u002F.claude\u002Fskills\u002Flinear\u002Fscripts\u002Fquery.ts \"query { viewer { name } }\"\n```\n\n## Projects & Initiatives\n\nFor advanced project and initiative management patterns, see **projects.md**.\n\n**Quick reference** - common project commands:\n\n```bash\n# Create project linked to initiative\nnpx tsx scripts\u002Flinear-ops.ts create-project \"Phase X: Name\" \"My Initiative\"\n\n# Update project status\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase X\" in-progress\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase X\" completed\n\n# Link\u002Funlink projects to initiatives\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase X\" \"My Initiative\"\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \"Phase X\" \"Old Initiative\"\n```\n\n**Key topics in projects.md:**\n- Project creation checklist (mandatory steps)\n- Content vs Description fields\n- Discovery before creation\n- Codebase verification before work\n- Sub-issue management\n- Project status updates\n- Project updates (status reports)\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## Sync Patterns (Bulk Operations)\n\nFor bulk synchronization of code changes to Linear, see **sync.md**.\n\n**Quick sync commands:**\n\n```bash\n# Bulk update issues to Done\nnpx tsx scripts\u002Flinear-ops.ts status Done ENG-101 ENG-102 ENG-103\n\n# Update project status\nnpx tsx scripts\u002Flinear-ops.ts project-status \"My Project\" completed\n```\n\n---\n\n## Reference\n\n| Document | Purpose |\n|----------|---------|\n| api.md | GraphQL API reference, timeout handling |\n| sdk.md | SDK automation patterns |\n| sync.md | Bulk sync patterns |\n| projects.md | Project & initiative management |\n| troubleshooting.md | Common issues, MCP debugging |\n| docs\u002Flabels.md | Label taxonomy |\n\n**External:** [Linear MCP Documentation](https:\u002F\u002Flinear.app\u002Fdocs\u002Fmcp.md)\n","## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n# Linear\n\nTools and workflows for managing issues, projects, and teams in Linear.\n\n---\n\n## ⚠️ Tool Availability (READ FIRST)\n\n**This skill supports multiple tool backends. Use whichever is available:**\n\n1. **MCP Tools (mcp__linear)** - Use if available in your tool set\n2. **Linear CLI (`linear` command)** - Always available via Bash\n3. **Helper Scripts** - For complex operations\n\n**If MCP tools are NOT available**, use the Linear CLI via Bash:\n\n```bash\n# View an issue\nlinear issues view ENG-123\n\n# Create an issue\nlinear issues create --title \"Issue title\" --description \"Description\"\n\n# Update issue status (get state IDs first)\nlinear issues update ENG-123 -s \"STATE_ID\"\n\n# Add a comment\nlinear issues comment add ENG-123 -m \"Comment text\"\n\n# List issues\nlinear issues list\n```\n\n**Do NOT report \"MCP tools not available\" as a blocker** - use CLI instead.\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## 🔐 Security: Varlock Integration\n\n**CRITICAL**: Never expose API keys in terminal output or Claude's context.\n\n### Safe Commands (Always Use)\n\n```bash\n# Validate LINEAR_API_KEY is set (masked output)\nvarlock load 2>&1 | grep LINEAR\n\n# Run commands with secrets injected\nvarlock run -- npx tsx scripts\u002Fquery.ts \"query { viewer { name } }\"\n\n# Check schema (safe - no values)\ncat .env.schema | grep LINEAR\n```\n\n### Unsafe Commands (NEVER Use)\n\n```bash\n# ❌ NEVER - exposes key to Claude's context\nlinear config show\necho $LINEAR_API_KEY\nprintenv | grep LINEAR\ncat .env\n```\n\n### Setup for New Projects\n\n1. Create `.env.schema` with `@sensitive` annotation:\n   ```bash\n   # @type=string(startsWith=lin_api_) @required @sensitive\n   LINEAR_API_KEY=\n   ```\n\n2. Add `LINEAR_API_KEY` to `.env` (never commit this file)\n\n3. Configure MCP to use environment variable:\n   ```json\n   {\n     \"mcpServers\": {\n       \"linear\": {\n         \"env\": { \"LINEAR_API_KEY\": \"${LINEAR_API_KEY}\" }\n       }\n     }\n   }\n   ```\n\n4. Use `varlock load` to validate before operations\n\n---\n\n## Quick Start (First-Time Users)\n\n### 1. Check Your Setup\n\nRun the setup check to verify your configuration:\n\n```bash\nnpx tsx ~\u002F.claude\u002Fskills\u002Flinear\u002Fscripts\u002Fsetup.ts\n```\n\nThis will check:\n- LINEAR_API_KEY is set and valid\n- @linear\u002Fsdk is installed\n- Linear CLI availability (optional)\n- MCP configuration (optional)\n\n### 2. Get API Key (If Needed)\n\nIf setup reports a missing API key:\n\n1. Open [Linear](https:\u002F\u002Flinear.app) in your browser\n2. Go to **Settings** (gear icon) -> **Security & access** -> **Personal API keys**\n3. Click **Create key** and copy the key (starts with `lin_api_`)\n4. Add to your environment:\n\n```bash\n# Option A: Add to shell profile (~\u002F.zshrc or ~\u002F.bashrc)\nexport LINEAR_API_KEY=\"lin_api_your_key_here\"\n\n# Option B: Add to Claude Code environment\necho 'LINEAR_API_KEY=lin_api_your_key_here' >> ~\u002F.claude\u002F.env\n\n# Then reload your shell or restart Claude Code\n```\n\n### 3. Test Connection\n\nVerify everything works:\n\n```bash\nnpx tsx ~\u002F.claude\u002Fskills\u002Flinear\u002Fscripts\u002Fquery.ts \"query { viewer { name } }\"\n```\n\nYou should see your name from Linear.\n\n### 4. Common Operations\n\n```bash\n# Create issue in a project\nnpx tsx scripts\u002Flinear-ops.ts create-issue \"Project\" \"Title\" \"Description\"\n\n# Update issue status\nnpx tsx scripts\u002Flinear-ops.ts status Done ENG-123 ENG-124\n\n# Create sub-issue\nnpx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-100 \"Sub-task\" \"Details\"\n\n# Update project status\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 1\" completed\n\n# Show all commands\nnpx tsx scripts\u002Flinear-ops.ts help\n```\n\nSee [Project Management Commands](#project-management-commands) for full reference.\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## Project Planning Workflow\n\n### Create Issues in the Correct Project from the Start\n\n**Best Practice**: When planning a new phase or initiative, create the project and its issues together in a single planning session. Avoid creating issues in a catch-all project and moving them later.\n\n#### Recommended Workflow\n\n1. **Create the project first**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts create-project \"Phase X: Feature Name\" \"My Initiative\"\n   ```\n\n2. **Set project state to Planned**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts project-status \"Phase X: Feature Name\" planned\n   ```\n\n3. **Create issues directly in the project**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts create-issue \"Phase X: Feature Name\" \"Parent task\" \"Description\"\n   npx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-XXX \"Sub-task 1\" \"Description\"\n   npx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-XXX \"Sub-task 2\" \"Description\"\n   ```\n\n4. **Update project state when work begins**:\n   ```bash\n   npx tsx scripts\u002Flinear-ops.ts project-status \"Phase X: Feature Name\" in-progress\n   ```\n\n#### Why This Matters\n\n- **Traceability**: Issues are linked to their project from creation\n- **Metrics**: Project progress tracking is accurate from day one\n- **Workflow**: No time wasted moving issues between projects\n- **Organization**: Linear views and filters work correctly\n\n#### Anti-Pattern to Avoid\n\n❌ Creating issues in a \"holding\" project and moving them later:\n```bash\n# Don't do this\ncreate-issue \"Phase 6A\" \"New feature\"  # Wrong project\n# Later: manually move to Phase X      # Extra work\n```\n\n---\n\n## Project Management Commands\n\n### project-status\n\nUpdate a project's state in Linear. Accepts user-friendly terminology that maps to Linear's API.\n\n```bash\nnpx tsx scripts\u002Flinear-ops.ts project-status \u003Cproject-name> \u003Cstate>\n```\n\n**Valid States:**\n| Input | Description | API Value |\n|-------|-------------|-----------|\n| `backlog` | Not yet started | backlog |\n| `planned` | Scheduled for future | planned |\n| `in-progress` | Currently active | started |\n| `paused` | Temporarily on hold | paused |\n| `completed` | Successfully finished | completed |\n| `canceled` | Will not be done | canceled |\n\n**Examples:**\n```bash\n# Start working on a project\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 8: MCP Decision Engine\" in-progress\n\n# Mark project complete\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 8\" completed\n\n# Partial name matching works\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 8\" paused\n```\n\n### link-initiative\n\nLink an existing project to an initiative.\n\n```bash\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \u003Cproject-name> \u003Cinitiative-name>\n```\n\n**Examples:**\n```bash\n# Link a project to an initiative\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase 8: MCP Decision Engine\" \"Q1 Goals\"\n\n# Partial matching works\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase 8\" \"Q1 Goals\"\n```\n\n### unlink-initiative\n\nRemove a project from an initiative.\n\n```bash\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \u003Cproject-name> \u003Cinitiative-name>\n```\n\n**Examples:**\n```bash\n# Remove incorrect link\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \"Phase 8\" \"Linear Skill\"\n\n# Clean up test links\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \"Test Project\" \"Q1 Goals\"\n```\n\n**Error Handling:**\n- Returns error if project is not linked to the specified initiative\n- Returns error if project or initiative not found\n\n### Complete Project Lifecycle Example\n\n```bash\n# 1. Create project linked to initiative\nnpx tsx scripts\u002Flinear-ops.ts create-project \"Phase 11: New Feature\" \"Q1 Goals\"\n\n# 2. Set state to planned\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 11\" planned\n\n# 3. Create issues in the project\nnpx tsx scripts\u002Flinear-ops.ts create-issue \"Phase 11\" \"Parent task\" \"Description\"\nnpx tsx scripts\u002Flinear-ops.ts create-sub-issue ENG-XXX \"Sub-task 1\" \"Details\"\n\n# 4. Start work - update to in-progress\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 11\" in-progress\n\n# 5. Mark issues done\nnpx tsx scripts\u002Flinear-ops.ts status Done ENG-XXX ENG-YYY\n\n# 6. Complete project\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase 11\" completed\n\n# 7. (Optional) Link to additional initiative\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase 11\" \"Q2 Goals\"\n```\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## Tool Selection\n\nChoose the right tool for the task:\n\n| Tool | When to Use |\n|------|-------------|\n| **MCP (Official Server)** | Most operations - PREFERRED |\n| **Helper Scripts** | Bulk operations, when MCP unavailable |\n| **SDK scripts** | Complex operations (loops, conditionals) |\n| **GraphQL API** | Operations not supported by MCP\u002FSDK |\n\n### MCP Server Configuration\n\n**Use the official Linear MCP server** at `mcp.linear.app`:\n\n```json\n{\n  \"mcpServers\": {\n    \"linear\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https:\u002F\u002Fmcp.linear.app\u002Fsse\"],\n      \"env\": { \"LINEAR_API_KEY\": \"your_api_key\" }\n    }\n  }\n}\n```\n\n> **WARNING**: Do NOT use deprecated community servers. See troubleshooting.md for details.\n\n### MCP Reliability (Official Server)\n\n| Operation | Reliability | Notes |\n|-----------|-------------|-------|\n| Create issue | ✅ High | Full support |\n| Update status | ✅ High | Use `state: \"Done\"` directly |\n| List\u002FSearch issues | ✅ High | Supports filters, queries |\n| Add comment | ✅ High | Works with issue IDs |\n\n### Quick Status Update\n\n```bash\n# Via MCP - use human-readable state names\nupdate_issue with id=\"issue-uuid\", state=\"Done\"\n\n# Via helper script (bulk operations)\nnode scripts\u002Flinear-helpers.mjs update-status Done 123 124 125\n```\n\n### Helper Script Reference\n\nFor detailed helper script usage, see **troubleshooting.md**.\n\n### Parallel Agent Execution\n\nFor bulk operations or background execution, use the `Linear-specialist` subagent:\n\n```javascript\nTask({\n  description: \"Update Linear issues\",\n  prompt: \"Mark ENG-101, ENG-102, ENG-103 as Done\",\n  subagent_type: \"Linear-specialist\"\n})\n```\n\n**When to use `Linear-specialist` (parallel):**\n- Bulk status updates (3+ issues)\n- Project status changes\n- Creating multiple issues\n- Sync operations after code changes\n\n**When to use direct execution:**\n- Single issue queries\n- Viewing issue details\n- Quick status checks\n- Operations needing immediate results\n\nSee **sync.md** for parallel execution patterns.\n\n## Critical Requirements\n\n### Issues → Projects → Initiatives\n\n**Every issue MUST be attached to a project. Every project MUST be linked to an initiative.**\n\n| Entity | Must Link To | If Missing |\n|--------|--------------|------------|\n| Issue | Project | Not visible in project board |\n| Project | Initiative | Not visible in roadmap |\n\nSee **projects.md** for complete project creation checklist.\n\n---\n\n## Conventions\n\n### Issue Status\n\n- **Assigned to me**: Set `state: \"Todo\"`\n- **Unassigned**: Set `state: \"Backlog\"`\n\n### Labels\n\nUses **domain-based label taxonomy**. See docs\u002Flabels.md.\n\n**Key rules:**\n- ONE Type label: `feature`, `bug`, `refactor`, `chore`, `spike`\n- 1-2 Domain labels: `security`, `backend`, `frontend`, etc.\n- Scope labels when applicable: `blocked`, `breaking-change`, `tech-debt`\n\n```bash\n# Validate labels\nnpx tsx scripts\u002Flinear-ops.ts labels validate \"feature,security\"\n\n# Suggest labels for issue\nnpx tsx scripts\u002Flinear-ops.ts labels suggest \"Fix XSS vulnerability\"\n```\n\n## SDK Automation Scripts\n\n**Use only when MCP tools are insufficient.** For complex operations involving loops, mapping, or bulk updates, write TypeScript scripts using `@linear\u002Fsdk`. See `sdk.md` for:\n\n- Complete script patterns and templates\n- Common automation examples (bulk updates, filtering, reporting)\n- Tool selection criteria\n\nScripts provide full type hints and are easier to debug than raw GraphQL for multi-step operations.\n\n## GraphQL API\n\n**Fallback only.** Use when operations aren't supported by MCP or SDK.\n\nSee **api.md** for complete documentation including:\n- Authentication and setup\n- Example queries and mutations\n- Timeout handling patterns\n- MCP timeout workarounds\n- Shell script compatibility\n\n**Quick ad-hoc query:**\n\n```bash\nnpx tsx ~\u002F.claude\u002Fskills\u002Flinear\u002Fscripts\u002Fquery.ts \"query { viewer { name } }\"\n```\n\n## Projects & Initiatives\n\nFor advanced project and initiative management patterns, see **projects.md**.\n\n**Quick reference** - common project commands:\n\n```bash\n# Create project linked to initiative\nnpx tsx scripts\u002Flinear-ops.ts create-project \"Phase X: Name\" \"My Initiative\"\n\n# Update project status\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase X\" in-progress\nnpx tsx scripts\u002Flinear-ops.ts project-status \"Phase X\" completed\n\n# Link\u002Funlink projects to initiatives\nnpx tsx scripts\u002Flinear-ops.ts link-initiative \"Phase X\" \"My Initiative\"\nnpx tsx scripts\u002Flinear-ops.ts unlink-initiative \"Phase X\" \"Old Initiative\"\n```\n\n**Key topics in projects.md:**\n- Project creation checklist (mandatory steps)\n- Content vs Description fields\n- Discovery before creation\n- Codebase verification before work\n- Sub-issue management\n- Project status updates\n- Project updates (status reports)\n\n---\n\n\n## When to Use This Skill\n\nManage Linear issues, projects, and teams\n\nUse this skill when working with manage linear issues, projects, and teams.\n## Sync Patterns (Bulk Operations)\n\nFor bulk synchronization of code changes to Linear, see **sync.md**.\n\n**Quick sync commands:**\n\n```bash\n# Bulk update issues to Done\nnpx tsx scripts\u002Flinear-ops.ts status Done ENG-101 ENG-102 ENG-103\n\n# Update project status\nnpx tsx scripts\u002Flinear-ops.ts project-status \"My Project\" completed\n```\n\n---\n\n## Reference\n\n| Document | Purpose |\n|----------|---------|\n| api.md | GraphQL API reference, timeout handling |\n| sdk.md | SDK automation patterns |\n| sync.md | Bulk sync patterns |\n| projects.md | Project & initiative management |\n| troubleshooting.md | Common issues, MCP debugging |\n| docs\u002Flabels.md | Label taxonomy |\n\n**External:** [Linear MCP Documentation](https:\u002F\u002Flinear.app\u002Fdocs\u002Fmcp.md)\n",{"name":5,"risk":24,"source":25,"date_added":26,"description":7},"safe","https:\u002F\u002Fgithub.com\u002Fwrsmith108\u002Flinear-claude-skill","2026-02-27","main","b30820b3248f6676d5389f0ccabd4e5250c9c536","skills\u002Flinear-claude-skill","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack","https:\u002F\u002Fgithub.com\u002Fkalash33","kalashpoddar.me","Tech-savvy Full Stack Developer 🚀 | Cybersecurity enthusiast 🔒 | Passionate about innovation and securing the digital world 🌐 | Let's code securely! 💻🔐","2026-05-20 04:11:22",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add kalash33\u002Fkstack --skill linear-claude-skill",{"tool":41,"command":42},"bunx","bunx skills add kalash33\u002Fkstack --skill linear-claude-skill",{"tool":44,"command":45},"pnpm","pnpm dlx skills add kalash33\u002Fkstack --skill linear-claude-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Flinear-claude-skill\u002FSKILL.md",true,[],[50,57,64,71,78,85],{"skillNo":51,"name":52,"nameZh":6,"description":53,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":19},"01M73CFERCR43JCAP606E41EFB","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reacti...","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M73CFCMFVTAQEMTZ5HR10X8V","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Fzoom-automation\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M73CFAA7EBWXJVXDQ1X555MB","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Fzoho-crm-automation\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M73CF80XCM9K81567MJ8QZFW","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Fzod-validation-expert\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M73CF4YPMF3RA8ZJDXZSMD93","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Fzeroize-audit\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M73CF2S25EN3XNAMKY47XHPS","zendesk-automation","Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fkalash33\u002Fkstack\u002Fblob\u002Fmain\u002Fskills\u002Fzendesk-automation\u002FSKILL.md",[],[]]