[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CXMNH3H70EMVM4N0DR57D4":3,"skill-same:01M6CXMNH3H70EMVM4N0DR57D4":255},{"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":28,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6CXMNH3H70EMVM4N0DR57D4","Linear",null,"Managing Linear issues, projects, and teams. Use when working with Linear tasks, creating issues, updating status, querying projects, or managing team workflows.","eric861129\u002FSKILLS_All-in-one","eric861129","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F74950944?v=4","01M6CXHDYEYRPFGGV4EFXCSYCF","ChiYu-Huang","01M6CXHE2J5CN1EBTY0FKV3ZKW",52,"MIT","https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42],"linear","MCP","workflows","status","tasks","teams","issues","team","Bash","projects","creating issues","webfetch","use","domain","2026-11-10 10:12:30",false,"---\nname: Linear\ndescription: Managing Linear issues, projects, and teams. Use when working with Linear tasks, creating issues, updating status, querying projects, or managing team workflows.\nversion: 2.3.1\nallowed-tools:\n  - mcp__linear\n  - WebFetch(domain:linear.app)\n  - Bash\n---\n\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 scripts\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 scripts\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](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](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](sync.md)** for parallel execution patterns.\n\n## Image Uploads\n\n### Step 1: Extract the image from conversation context\n\nImages shared inline in Claude Code are **not** saved to disk automatically — they live as base64 in the session JSONL. Use the extraction script:\n\n```bash\n# Find the current session JSONL\nls -t ~\u002F.claude\u002Fprojects\u002F\u003Cproject-path>\u002F*.jsonl | head -1\n\n# Extract all inline images (saves to \u002Ftmp by default)\nnpx tsx scripts\u002Fextract-image.ts \u003Cpath-to-session.jsonl>\n\n# Or specify a custom output directory\nnpx tsx scripts\u002Fextract-image.ts \u003Cpath-to-session.jsonl> ~\u002FDesktop\n```\n\nThis saves images to `\u002Ftmp\u002Fshared-image-0.png`, `\u002Ftmp\u002Fshared-image-1.png`, etc.\n\n> **Always verify** the extracted image with the Read tool before uploading.\n\n### Step 2: Create the issue\n\n```bash\n# Standard approach\nnpx tsx scripts\u002Flinear-ops.ts create-issue \"Project Name\" \"Issue title\" \"Description\"\n```\n\n> **Note**: If you need to target a specific team and `create-issue` picks the wrong one, use GraphQL with explicit `teamId`:\n>\n> ```bash\n> # Get the project's team\n> npx tsx scripts\u002Fquery.ts 'query { projects(filter: { name: { containsIgnoreCase: \"PROJECT NAME\" } }) { nodes { id name teams { nodes { id name key } } } } }'\n>\n> # Create with explicit teamId\n> npx tsx scripts\u002Fquery.ts 'mutation { issueCreate(input: { teamId: \"TEAM_UUID\", projectId: \"PROJECT_UUID\", title: \"Issue title\", description: \"Description\" }) { success issue { id identifier url } } }'\n> ```\n\n### Step 3: Upload the image and attach to the issue\n\n```bash\nnpx tsx scripts\u002Fupload-image.ts \u002Ftmp\u002Fshared-image-0.png ENG-123 \"Optional comment text\"\n```\n\nThe script will:\n1. Upload the file to Linear's S3 storage\n2. Post a comment on the issue with the image embedded as markdown\n\n**Supported formats**: PNG, JPG\u002FJPEG, GIF, WebP, SVG, PDF\n\n### Known pitfalls\n\n| Problem | Cause | Fix |\n|---------|-------|-----|\n| `create-issue` picks wrong team | Multiple teams in workspace | Use GraphQL with explicit teamId (see Step 2) |\n| `upload-image.ts` \"Issue not found\" | Issue was deleted before attaching | Ensure issue exists first |\n| Image not found on disk | Shared inline, not as file | Extract from session JSONL (Step 1) |\n\n---\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](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](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](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 scripts\u002Fquery.ts \"query { viewer { name } }\"\n```\n\n## Projects & Initiatives\n\nFor advanced project and initiative management patterns, see **[projects.md](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](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](api.md) | GraphQL API reference, timeout handling |\n| [sdk.md](sdk.md) | SDK automation patterns |\n| [sync.md](sync.md) | Bulk sync patterns |\n| [projects.md](projects.md) | Project & initiative management |\n| [troubleshooting.md](troubleshooting.md) | Common issues, MCP debugging |\n| [docs\u002Flabels.md](docs\u002Flabels.md) | Label taxonomy |\n\n**External:** [Linear MCP Documentation](https:\u002F\u002Flinear.app\u002Fdocs\u002Fmcp.md)","# 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 scripts\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 scripts\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](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](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](sync.md)** for parallel execution patterns.\n\n## Image Uploads\n\n### Step 1: Extract the image from conversation context\n\nImages shared inline in Claude Code are **not** saved to disk automatically — they live as base64 in the session JSONL. Use the extraction script:\n\n```bash\n# Find the current session JSONL\nls -t ~\u002F.claude\u002Fprojects\u002F\u003Cproject-path>\u002F*.jsonl | head -1\n\n# Extract all inline images (saves to \u002Ftmp by default)\nnpx tsx scripts\u002Fextract-image.ts \u003Cpath-to-session.jsonl>\n\n# Or specify a custom output directory\nnpx tsx scripts\u002Fextract-image.ts \u003Cpath-to-session.jsonl> ~\u002FDesktop\n```\n\nThis saves images to `\u002Ftmp\u002Fshared-image-0.png`, `\u002Ftmp\u002Fshared-image-1.png`, etc.\n\n> **Always verify** the extracted image with the Read tool before uploading.\n\n### Step 2: Create the issue\n\n```bash\n# Standard approach\nnpx tsx scripts\u002Flinear-ops.ts create-issue \"Project Name\" \"Issue title\" \"Description\"\n```\n\n> **Note**: If you need to target a specific team and `create-issue` picks the wrong one, use GraphQL with explicit `teamId`:\n>\n> ```bash\n> # Get the project's team\n> npx tsx scripts\u002Fquery.ts 'query { projects(filter: { name: { containsIgnoreCase: \"PROJECT NAME\" } }) { nodes { id name teams { nodes { id name key } } } } }'\n>\n> # Create with explicit teamId\n> npx tsx scripts\u002Fquery.ts 'mutation { issueCreate(input: { teamId: \"TEAM_UUID\", projectId: \"PROJECT_UUID\", title: \"Issue title\", description: \"Description\" }) { success issue { id identifier url } } }'\n> ```\n\n### Step 3: Upload the image and attach to the issue\n\n```bash\nnpx tsx scripts\u002Fupload-image.ts \u002Ftmp\u002Fshared-image-0.png ENG-123 \"Optional comment text\"\n```\n\nThe script will:\n1. Upload the file to Linear's S3 storage\n2. Post a comment on the issue with the image embedded as markdown\n\n**Supported formats**: PNG, JPG\u002FJPEG, GIF, WebP, SVG, PDF\n\n### Known pitfalls\n\n| Problem | Cause | Fix |\n|---------|-------|-----|\n| `create-issue` picks wrong team | Multiple teams in workspace | Use GraphQL with explicit teamId (see Step 2) |\n| `upload-image.ts` \"Issue not found\" | Issue was deleted before attaching | Ensure issue exists first |\n| Image not found on disk | Shared inline, not as file | Extract from session JSONL (Step 1) |\n\n---\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](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](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](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 scripts\u002Fquery.ts \"query { viewer { name } }\"\n```\n\n## Projects & Initiatives\n\nFor advanced project and initiative management patterns, see **[projects.md](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](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](api.md) | GraphQL API reference, timeout handling |\n| [sdk.md](sdk.md) | SDK automation patterns |\n| [sync.md](sync.md) | Bulk sync patterns |\n| [projects.md](projects.md) | Project & initiative management |\n| [troubleshooting.md](troubleshooting.md) | Common issues, MCP debugging |\n| [docs\u002Flabels.md](docs\u002Flabels.md) | Label taxonomy |\n\n**External:** [Linear MCP Documentation](https:\u002F\u002Flinear.app\u002Fdocs\u002Fmcp.md)",{"name":5,"version":48,"description":7,"allowed-tools":49},"2.3.1",[50,51,37],"mcp__linear","WebFetch(domain:linear.app)","main","cbdd44aae21131521c09e42762e36178c790eacf","public\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill",13,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one","http:\u002F\u002Fhuangchiyu.com\u002FSKILLS_All-in-one\u002F","https:\u002F\u002Fgithub.com\u002Feric861129","https:\u002F\u002Fhuangchiyu.com\u002FChiYu-Blog\u002F","開發工程師，專注於 C#／.NET 系統現代化、AI-assisted engineering、開源工具與技術寫作。","2026-04-16 14:28:14",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add eric861129\u002FSKILLS_All-in-one --skill Linear",{"tool":68,"command":69},"bunx","bunx skills add eric861129\u002FSKILLS_All-in-one --skill Linear",{"tool":71,"command":72},"pnpm","pnpm dlx skills add eric861129\u002FSKILLS_All-in-one --skill Linear","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002FSKILL.md",true,[76,82,88,92,96,100,104,108,112,118,122,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},".claude-plugin\u002Fplugin.json","REFERENCE","参考文档",503,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002F.claude-plugin\u002Fplugin.json",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},".env.schema","OTHER","其他",349,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002F.env.schema",{"path":89,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":90,"sourceHtmlUrl":91},".github\u002Fworkflows\u002Fci.yml",398,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002F.github\u002Fworkflows\u002Fci.yml",{"path":93,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":94,"sourceHtmlUrl":95},".github\u002Fworkflows\u002Frelease.yml",646,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002F.github\u002Fworkflows\u002Frelease.yml",{"path":97,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":98,"sourceHtmlUrl":99},".gitignore",210,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002F.gitignore",{"path":101,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":102,"sourceHtmlUrl":103},"api.md",8385,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fapi.md",{"path":105,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":106,"sourceHtmlUrl":107},"CHANGELOG.md",16345,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002FCHANGELOG.md",{"path":109,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":110,"sourceHtmlUrl":111},"docs\u002Flabels.md",6808,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fdocs\u002Flabels.md",{"path":113,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":116,"sourceHtmlUrl":117},"eslint.config.js","SCRIPT","脚本",611,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Feslint.config.js",{"path":119,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":120,"sourceHtmlUrl":121},"hooks\u002Fpost-edit.sh",2430,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fhooks\u002Fpost-edit.sh",{"path":123,"resourceType":123,"resourceTypeDesc":124,"sizeBytes":125,"sourceHtmlUrl":126},"LICENSE","许可证",1056,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002FLICENSE",{"path":128,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":129,"sourceHtmlUrl":130},"package-lock.json",250104,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fpackage-lock.json",{"path":132,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":133,"sourceHtmlUrl":134},"package.json",1868,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fpackage.json",{"path":136,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":137,"sourceHtmlUrl":138},"projects.md",19643,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fprojects.md",{"path":140,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":141,"sourceHtmlUrl":142},"README.md",11318,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002FREADME.md",{"path":144,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":145,"sourceHtmlUrl":146},"release.config.js",530,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Frelease.config.js",{"path":148,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":149,"sourceHtmlUrl":150},"scripts\u002Fcreate-initiative-update.ts",5906,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fcreate-initiative-update.ts",{"path":152,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":153,"sourceHtmlUrl":154},"scripts\u002Fcreate-issue-with-project.ts",8409,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fcreate-issue-with-project.ts",{"path":156,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":157,"sourceHtmlUrl":158},"scripts\u002Fcreate-project-update.ts",5661,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fcreate-project-update.ts",{"path":160,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":161,"sourceHtmlUrl":162},"scripts\u002Fextract-image.ts",2284,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fextract-image.ts",{"path":164,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":165,"sourceHtmlUrl":166},"scripts\u002Flib\u002Fagent-selection.ts",8921,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Fagent-selection.ts",{"path":168,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":169,"sourceHtmlUrl":170},"scripts\u002Flib\u002Fexit-codes.ts",357,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Fexit-codes.ts",{"path":172,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":173,"sourceHtmlUrl":174},"scripts\u002Flib\u002Findex.ts",2088,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Findex.ts",{"path":176,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":177,"sourceHtmlUrl":178},"scripts\u002Flib\u002Finitiative.ts",7454,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Finitiative.ts",{"path":180,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":181,"sourceHtmlUrl":182},"scripts\u002Flib\u002Flabels.ts",8753,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Flabels.ts",{"path":184,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":185,"sourceHtmlUrl":186},"scripts\u002Flib\u002Flinear-utils.ts",6445,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Flinear-utils.ts",{"path":188,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":189,"sourceHtmlUrl":190},"scripts\u002Flib\u002Fproject-template.ts",9040,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Fproject-template.ts",{"path":192,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":193,"sourceHtmlUrl":194},"scripts\u002Flib\u002Ftaxonomy-data.ts",8281,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Ftaxonomy-data.ts",{"path":196,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":197,"sourceHtmlUrl":198},"scripts\u002Flib\u002Ftaxonomy-validation.ts",10238,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Ftaxonomy-validation.ts",{"path":200,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":201,"sourceHtmlUrl":202},"scripts\u002Flib\u002Ftaxonomy.ts",3685,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Ftaxonomy.ts",{"path":204,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":205,"sourceHtmlUrl":206},"scripts\u002Flib\u002Fverify.ts",8995,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flib\u002Fverify.ts",{"path":208,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":209,"sourceHtmlUrl":210},"scripts\u002Flinear-api.mjs",12385,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flinear-api.mjs",{"path":212,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":213,"sourceHtmlUrl":214},"scripts\u002Flinear-ops.ts",47679,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Flinear-ops.ts",{"path":216,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":217,"sourceHtmlUrl":218},"scripts\u002Fphase-complete.ts",12671,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fphase-complete.ts",{"path":220,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":221,"sourceHtmlUrl":222},"scripts\u002Fquery.sh",498,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fquery.sh",{"path":224,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":225,"sourceHtmlUrl":226},"scripts\u002Fquery.ts",3566,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fquery.ts",{"path":228,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":229,"sourceHtmlUrl":230},"scripts\u002Fsetup.ts",7990,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fsetup.ts",{"path":232,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":233,"sourceHtmlUrl":234},"scripts\u002Fsync.ts",5814,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fsync.ts",{"path":236,"resourceType":114,"resourceTypeDesc":115,"sizeBytes":237,"sourceHtmlUrl":238},"scripts\u002Fupload-image.ts",4498,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fscripts\u002Fupload-image.ts",{"path":240,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":241,"sourceHtmlUrl":242},"sdk.md",6920,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fsdk.md",{"path":244,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":245,"sourceHtmlUrl":246},"sync.md",7237,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Fsync.md",{"path":248,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":249,"sourceHtmlUrl":250},"troubleshooting.md",4776,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Ftroubleshooting.md",{"path":252,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":253,"sourceHtmlUrl":254},"tsconfig.json",484,"https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FCollaboration & Project Management\u002Flinear-claude-skill\u002Ftsconfig.json",[256,284,314,339,363,383],{"skillNo":257,"name":258,"nameZh":6,"description":259,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":260,"categories":261,"keywords":263,"publishedAt":43},"01M6CZ1WR3KNVTKSWH4GNWT646","what-if-oracle","Run structured What-If scenario analysis with multi-branch possibility exploration. Use this skill when the user asks speculative questions like \"what if...\", \"what would happen if...\", \"what are the possibilities\", \"explore scenarios\", \"scenario analysis\", \"possibility space\", \"what could go wrong\", \"best case \u002F worst case\", \"risk analysis\", \"contingency planning\", \"strategic options\", or any question about uncertain futures. Also trigger when the user faces a fork-in-the-road decision, wants to stress-test an idea, or needs to think through consequences before committing.","https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FWriting & Research\u002Fwhat-if-oracle\u002FSKILL.md",[262],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283],"oracle","what if oracle","go","run","planning","ux","futures","risk","analysis","explore","decision","branch","question","read","write","idea","exploration","options","stress-test","strategies",{"skillNo":285,"name":286,"nameZh":6,"description":287,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":288,"categories":289,"keywords":300,"publishedAt":43},"01M6CZ1QHGJE91A95MSN5EK5Q9","venue-templates","Access comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.","https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FWriting & Research\u002Fvenue-templates\u002FSKILL.md",[290,293,296,297],{"categoryNo":291,"categoryName":292,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":294,"categoryName":295,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":298,"categoryName":299,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",[301,302,303,304,305,306,307,308,37,309,277,278,310,311,312,313],"templates","venue templates","research","guidelines","NeurIPS","ICML","LaTeX","science","access","edit","proposals","Academic","requirements",{"skillNo":315,"name":316,"nameZh":6,"description":317,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":318,"categories":319,"keywords":322,"publishedAt":43},"01M6CZ1KBQD2E5RTFB3BGVX7CD","the-fool","Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play devil's advocate, run a pre-mortem, red team, or audit evidence and assumptions.","https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FWriting & Research\u002Fthe-fool\u002FSKILL.md",[320,321],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[323,324,266,325,326,267,327,328,329,330,36,331,332,333,311,334,335,336,337,338],"the fool","review","workflow","architecture","code","audit","forge","devil","designer","reviewer","challenge","stress test","evidence","expert","poke","ideas",{"skillNo":340,"name":341,"nameZh":6,"description":342,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":343,"categories":344,"keywords":348,"publishedAt":43},"01M6CZ1ES826S7P1X3333E40TA","scientific-writing","Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA\u002FAMA\u002FVancouver), figures\u002Ftables, reporting guidelines (CONSORT\u002FSTROBE\u002FPRISMA), for research papers and journal submissions.","https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FWriting & Research\u002Fscientific-writing\u002FSKILL.md",[345,346,347],{"categoryNo":291,"categoryName":292,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":298,"categoryName":299,"taxonomyType":26,"taxonomyTypeDesc":27},[349,350,304,351,352,353,354,355,37,356,277,278,310,41,357,358,359,360,361,362],"writing","scientific writing","core","reporting","deep research","Citations","Outlines","tool","never","structure","deep","full","stage","prisma",{"skillNo":364,"name":365,"nameZh":6,"description":366,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":367,"categories":368,"keywords":370,"publishedAt":43},"01M6CZ1B2JGJTB9FRD0TW4RXXE","scientific-brainstorming","Creative research ideation and exploration. Use for open-ended brainstorming sessions, exploring interdisciplinary connections, challenging assumptions, or identifying research gaps. Best for early-stage research planning when you do not have specific observations yet. For formulating testable hypotheses from data use hypothesis-generation.","https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FWriting & Research\u002Fscientific-brainstorming\u002FSKILL.md",[369],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[371,372,303,373,268,374,375,376,41,377,378,379,280,380,381,361,382],"brainstorming","scientific brainstorming","sessions","data","hypothesis","open","ideation","creative","do","connections","research ideation","generation",{"skillNo":384,"name":385,"nameZh":6,"description":386,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":387,"categories":388,"keywords":395,"publishedAt":43},"01M6CZ16JG8N7A2ZX04BGE8J2Y","research-lookup","Look up current research information using the Parallel Chat API (primary) or Perplexity sonar-pro-search (academic paper searches). Automatically routes queries to the best backend. Use for finding papers, gathering research data, and verifying scientific information.","https:\u002F\u002Fgithub.com\u002Feric861129\u002FSKILLS_All-in-one\u002Fblob\u002Fmain\u002Fpublic\u002FSKILLS\u002FWriting & Research\u002Fresearch-lookup\u002FSKILL.md",[389,392,393,394],{"categoryNo":390,"categoryName":391,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":294,"categoryName":295,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[303,396,397,398,374,399,400,37,401,402,277,278,310,41,403,404,405,406,407,312],"lookup","research lookup","search","perplexity","api","parallel","openrouter","backend","up","look","queries","chat"]