[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-438d7043-617d-451d-94f8-df1c5ec91c4a":3,"$fZ2ID_6SEI5zsNhQlepkn7T6AaA73rud56Kc9Rd2W0ss":42},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":33},"438d7043-617d-451d-94f8-df1c5ec91c4a","linear-claude-skill","管理线性问题、项目和团队","cat_coding_backend","mod_coding","sickn33,coding","---\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## 🔐 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## 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## 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## 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\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,217,1067,"2026-05-16 13:26:27",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":25,"skillCount":32,"createdAt":26},"后端开发","backend","mdi-server","API、数据库、服务端架构",296,[34],{"id":35,"skillId":4,"version":36,"fileName":37,"fileSize":38,"filePath":39,"fileHash":40,"manifest":41,"createdAt":19},"84f57dd2-10a9-4502-a65d-1910d619e3b3","1.0.0","linear-claude-skill.zip",5102,"uploads\u002Fskills\u002F438d7043-617d-451d-94f8-df1c5ec91c4a\u002Flinear-claude-skill.zip","d0827a4262735746f0b0c2fb824bcdcaccd87c80c9f63a2e6f1698db57c9eb60","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":13986}]",{"code":43,"message":44,"data":45},200,"success",{"items":46,"stats":47,"page":50},[],{"averageRating":48,"totalRatings":48,"ratingCounts":49},0,[48,48,48,48,48],{"limit":51,"offset":48,"hasMore":52,"nextOffset":51,"ratedOnly":16},15,false]