ops-linear

GitHub

Linear项目管理中心,支持查看当前Sprint、创建/更新Issue、同步GSD阶段及处理优先级。通过MCP或GraphQL API与Linear交互,实现敏捷开发流程的自动化管理。

claude-ops/skills/ops-linear/SKILL.md Lifecycle-Innovations-Limited/claude-ops

Trigger Scenarios

需要查看当前Sprint状态 创建或更新Issue 同步项目进度到Linear

Install

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-linear -g -y
More Options

Non-standard path

npx skills add https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-linear -g -y

Use without installing

npx skills use Lifecycle-Innovations-Limited/claude-ops@ops-linear

指定 Agent (Claude Code)

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-linear -a claude-code -g -y

安装 repo 全部 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --all -g -y

预览 repo 内 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --list

SKILL.md

Frontmatter
{
    "name": "ops-linear",
    "effort": "medium",
    "maxTurns": 30,
    "description": "Linear command center. Shows current sprint, creates\/updates issues, manages priorities, syncs with GSD phases.",
    "allowed-tools": [
        "Bash",
        "Read",
        "Grep",
        "Glob",
        "Skill",
        "AskUserQuestion",
        "TaskCreate",
        "TaskUpdate",
        "WebFetch",
        "mcp__linear__list_issues",
        "mcp__linear__list_teams",
        "mcp__linear__list_projects",
        "mcp__linear__get_issue",
        "mcp__linear__update_issue",
        "mcp__linear__create_issue",
        "mcp__linear__create_comment",
        "mcp__linear__search_issues"
    ],
    "argument-hint": "[sprint|create|update|sync|backlog|issue-id]"
}

OPS ► LINEAR COMMAND CENTER

Runtime Context

Before executing, load available context:

  1. Secrets: Linear API key required for MCP fallback queries.

    Secret Resolution

    • Check $LINEAR_API_KEY env var
    • Then: Doppler MCP tools (mcp__doppler__*) — if Doppler MCP server is configured
    • Then: doppler secrets get LINEAR_API_KEY --plain (if doppler CLI configured in prefs)
    • Then: use password_manager_config.query_cmd from ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json
    • If unavailable, use Linear MCP tools exclusively (no curl fallback possible)
  2. Preferences: Read ${CLAUDE_PLUGIN_DATA_DIR}/preferences.json for secrets_manager / doppler config.

CLI/API Reference

Linear GraphQL (fallback when MCP unavailable)

Command Usage Output
curl -X POST https://api.linear.app/graphql -H "Authorization: $LINEAR_API_KEY" -H "Content-Type: application/json" -d '{"query":"{ issues(filter: {state: {type: {in: [\"started\",\"unstarted\"]}}}) { nodes { id title state { name } priority assignee { name } } } }"}' Active issues JSON
curl -X POST https://api.linear.app/graphql -H "Authorization: $LINEAR_API_KEY" -H "Content-Type: application/json" -d '{"query":"{ cycles(filter: {isActive: {eq: true}}) { nodes { id number startsAt endsAt } } }"}' Current cycles JSON

Phase 1 — Load data

Run in parallel:

  1. mcp__linear__list_teams — get all team IDs
  2. mcp__linear__list_issues — get issues with cycle filter (use GraphQL fallback for cycle queries if needed)

Then fetch issues for the current cycle: mcp__linear__list_issues filtered to current cycle ID.


Route by $ARGUMENTS

Argument Action
(empty), sprint Show current sprint board
backlog Show unassigned/unscheduled issues
create [title] Create a new issue (prompt for details)
update [id] Update issue by ID
sync Sync GSD phases to Linear issues
[issue-id] Show and edit that specific issue

Sprint board view

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 LINEAR ► SPRINT [N] — [start] → [end]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

IN PROGRESS
 [id]  [priority]  [title]  [assignee]  [estimate]

TODO
 [id]  [priority]  [title]  [assignee]  [estimate]

DONE THIS SPRINT
 [id]  [title]  [completed date]

BLOCKED / CANCELLED
 [id]  [title]  [reason]

──────────────────────────────────────────────────────
 Sprint velocity: [done points] / [total points] ([%])
──────────────────────────────────────────────────────

Use batched AskUserQuestion calls (max 4 options each):

AskUserQuestion call 1:

  [Create new issue]
  [Update issue status]
  [Move issue to/from sprint]
  [More...]

AskUserQuestion call 2 (only if "More..."):

  [View backlog]
  [Sync with GSD phases]

Create issue flow

Collect from user (or parse from $ARGUMENTS):

  • Title
  • Team (list choices if ambiguous)
  • Priority (urgent/high/medium/low)
  • Cycle (current sprint or backlog)
  • Assignee (optional)
  • Estimate (optional)

Use mcp__linear__create_issue to create. Confirm: Created [id]: [title]


GSD sync flow

Read all active GSD STATE.md files across projects. For each active phase:

  1. Check if a Linear issue exists with matching phase reference.
  2. If not, offer to create one.
  3. If status differs (GSD says done, Linear says in-progress), offer to sync.

Update Linear issues to match GSD phase completion status.

Use AskUserQuestion after displaying any view to get the next action.


Native tool usage

Tasks — sprint work tracking

When the user starts working on a Linear issue, use TaskCreate to track it locally. Update with TaskUpdate as the issue progresses. This bridges Linear state with local session state.

WebFetch — Linear API fallback

When Linear MCP tools hit quota limits or fail, fall back to WebFetch with the Linear GraphQL API:

WebFetch(url: "https://api.linear.app/graphql", method: "POST", headers: {"Authorization": "$LINEAR_API_KEY"}, body: '{"query":"{ issues(filter: {cycle: {id: {eq: \"<id>\"}}}}) { nodes { id title state { name } } } }"}')

Ledger Integration

CLAIM_KEY: linear:issue:<identifier> (e.g. linear:issue:<TEAM>-123)

Pre-flight skip-check

CLAIM_KEY="linear:issue:<identifier>"
ledger query --claim-key "$CLAIM_KEY" --since=-PT24H

If in_progress or done exists, skip — another session or Perplexity already acted on this issue. Surface awaiting_sam entries as "update already staged."

Claim + resolve

# Claim when creating, updating, or triaging a Linear issue
ledger write \
  --claim-key "$CLAIM_KEY" \
  --kind "file" \
  --status "in_progress" \
  --title "Linear: <identifier> — <title>" \
  --ttl-sec 3600

# Resolve after Linear state is updated
ledger write \
  --claim-key "$CLAIM_KEY" \
  --kind "file" \
  --status "done" \
  --title "Linear: <identifier> — <title>" \
  --context "status→<new_state> | assignee→<assignee>"

Version History

  • 64bad13 Current 2026-08-12 09:01

Same Skill Collection

claude-ops/skills/boss/SKILL.md
claude-ops/skills/flow/SKILL.md
claude-ops/skills/ledger/SKILL.md
claude-ops/skills/ops-accounts/SKILL.md
claude-ops/skills/ops-ar/SKILL.md
claude-ops/skills/ops-aws-audit/SKILL.md
claude-ops/skills/ops-comms/SKILL.md
claude-ops/skills/ops-competitors/SKILL.md
claude-ops/skills/ops-credentials/SKILL.md
claude-ops/skills/ops-daemon/SKILL.md
claude-ops/skills/ops-dash/SKILL.md
claude-ops/skills/ops-deploy-fix/SKILL.md
claude-ops/skills/ops-deploy/SKILL.md
claude-ops/skills/ops-desktop/SKILL.md
claude-ops/skills/ops-doctor/SKILL.md
claude-ops/skills/ops-ecom/SKILL.md
claude-ops/skills/ops-feature-dev/SKILL.md
claude-ops/skills/ops-fires/SKILL.md
claude-ops/skills/ops-fleet/SKILL.md
claude-ops/skills/ops-go/SKILL.md
claude-ops/skills/ops-gtm/SKILL.md
claude-ops/skills/ops-home/SKILL.md
claude-ops/skills/ops-inbox/SKILL.md
claude-ops/skills/ops-integrate/SKILL.md
claude-ops/skills/ops-leadgen/SKILL.md
claude-ops/skills/ops-mac/SKILL.md
claude-ops/skills/ops-marketing/SKILL.md
claude-ops/skills/ops-mcp/SKILL.md
claude-ops/skills/ops-merge/SKILL.md
claude-ops/skills/ops-monitor/SKILL.md
claude-ops/skills/ops-next/SKILL.md
claude-ops/skills/ops-orchestrate/SKILL.md
claude-ops/skills/ops-package/SKILL.md
claude-ops/skills/ops-pocket/SKILL.md
claude-ops/skills/ops-projects/SKILL.md
claude-ops/skills/ops-recap/SKILL.md
claude-ops/skills/ops-release/SKILL.md
claude-ops/skills/ops-resume/SKILL.md
claude-ops/skills/ops-revenue/SKILL.md
claude-ops/skills/ops-rotate-setup/SKILL.md
claude-ops/skills/ops-rotate/SKILL.md
claude-ops/skills/ops-secret-sync/SKILL.md
claude-ops/skills/ops-settings/SKILL.md
claude-ops/skills/ops-ship/SKILL.md
claude-ops/skills/ops-speedup/SKILL.md
claude-ops/skills/ops-status/SKILL.md
claude-ops/skills/ops-triage/SKILL.md
claude-ops/skills/ops-unifi/SKILL.md
claude-ops/skills/ops-update/SKILL.md

Metadata

Files
0
Version
64bad13
Hash
fea7525f
Indexed
2026-08-12 09:01

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-12 20:20
浙ICP备14020137号-1 $방문자$