mcpField
O
ops-linear

ops-linear

github.com/davepoon开发3.7k69 次安装1 天前更新
代码仓库

关于 ops-linear

ops-linear 是用于查看和管理 Linear 问题、迭代看板及待办项的 Claude 技能,也支持将活跃的 GSD 阶段与 Linear 问题状态同步。

主要功能

  1. 01查看当前迭代和待办项
  2. 02创建和更新 Linear 问题
  3. 03在迭代间移动问题
  4. 04同步 GSD 阶段
  5. 05使用 Linear MCP 或 GraphQL 回退

适用场景

  1. 01检查当前迭代的计划工作
  2. 02创建或编辑 Linear 问题
  3. 03使 Linear 问题与 GSD 阶段保持一致

MCP 相关

使用 Linear MCP 工具列出团队和问题并创建问题。MCP 工具不可用或失败时,可回退到 Linear GraphQL API。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davepoon/buildwithclaude --skill ops-linear

安装后在 Claude Code 中输入/ops-linear确认已加载。

详细介绍

OPS ► LINEAR COMMAND CENTER

运行时上下文

执行前,加载可用上下文:

  1. 密钥:MCP 回退查询需要 Linear API 密钥。

    密钥解析
    • 检查 $LINEAR_API_KEY 环境变量
    • 然后:Doppler MCP 工具(mcp__doppler__*)——如果已配置 Doppler MCP 服务
    • 然后:doppler secrets get LINEAR_API_KEY --plain(如果 prefs 中已配置 doppler CLI)
    • 然后:使用 ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json 中的 password_manager_config.query_cmd
    • 如果不可用,则仅使用 Linear MCP 工具(无法回退到 curl)
  2. 偏好设置:读取 ${CLAUDE_PLUGIN_DATA_DIR}/preferences.json 中的 secrets_manager / doppler 配置。

CLI/API 参考

Linear GraphQL(MCP 不可用时的回退方式)
命令用法输出
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 } } } }"}'活跃问题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 } } }"}'当前周期JSON

阶段 1 — 加载数据

并行运行:

  1. mcp__linear__list_teams — 获取所有团队 ID
  2. mcp__linear__list_issues — 获取带周期筛选条件的问题(必要时使用 GraphQL 回退方式查询周期)

然后获取当前周期的问题:使用当前周期 ID 作为筛选条件调用 mcp__linear__list_issues。


根据 $ARGUMENTS 分流

参数操作
(空),sprint显示当前冲刺看板
backlog显示未分配/未安排的问题
create [title]创建新问题(提示用户提供详细信息)
update [id]按 ID 更新问题
sync将 GSD 阶段同步到 Linear 问题
[issue-id]显示并编辑指定问题

冲刺看板视图

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 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] ([%])
──────────────────────────────────────────────────────

使用分批调用 AskUserQuestion(每次最多 4 个选项):

AskUserQuestion 调用 1:

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

AskUserQuestion 调用 2(仅当选择“更多...”时):

  [View backlog]
  [Sync with GSD phases]

创建问题流程

向用户收集(或从 $ARGUMENTS 解析):

  • 标题
  • 团队(选项不明确时列出可选项)
  • 优先级(紧急/高/中/低)
  • 周期(当前冲刺或待办列表)
  • 负责人(可选)
  • 预估工时(可选)

使用 mcp__linear__create_issue 创建。确认:Created [id]: [title]


GSD 同步流程

读取所有项目中活跃的 GSD STATE.md 文件。针对每个活跃阶段:

  1. 检查是否存在引用该阶段的 Linear 问题。
  2. 如果不存在,询问是否创建。
  3. 如果状态不同(GSD 显示已完成,Linear 显示进行中),询问是否同步。

更新 Linear 问题,使其与 GSD 阶段的完成状态一致。

显示任何视图后,使用 AskUserQuestion 询问下一步操作。


原生工具用法

任务 — 冲刺工作跟踪

用户开始处理 Linear 问题时,使用 TaskCreate 在本地跟踪。随着问题进展,使用 TaskUpdate 更新。这将 Linear 状态与本地会话状态衔接起来。

WebFetch — Linear API 回退方式

当 Linear MCP 工具达到配额限制或失败时,使用 Linear GraphQL API 回退到 WebFetch:

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 } } } }"}')

评论

支持 Markdown