关于 linear-status
用于只读诊断 Linear issue 当前阶段并建议如何继续的技能。它依据 issue 状态和经验证的评论,而非记忆,并指出缺失证据或状态冲突。
主要功能
- 01检测 Linear issue 阶段
- 02验证标记评论与描述面板
- 03检查认领锁是否过期
- 04报告证据与阻塞项
- 05推荐后续工作流技能
适用场景
- 01判断 issue 接下来应采取的步骤
- 02查找标签与状态证据冲突
- 03检查 issue 的认领锁是否过期
MCP 相关
在可用时使用 Linear MCP 只读工具获取 issue 详情和评论,并验证标记评论与 issue 描述面板。除非明确以最终处理者身份操作,否则不会更改 issue 状态。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lkshrk/ linear-ai --skill linear-status安装后在 Claude Code 中输入/linear-status确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamldocs/workflow.mdschemas/linear-ai.claim.v1.schema.yamllinear-ai.dashboard.v1.schema.yamllinear-ai.plan.v1.schema.yamllinear-ai.review-ledger.v1.schema.yamllinear-ai.status.v1.schema.yamlscripts/validate_marked_comments.ts详细介绍
Linear 状态
将此用作单个 Linear 事项的只读状态检查和恢复检测器。当 Agent 不确定下一步该做什么时,从这里开始。
Linear MCP 合约
在可用时使用以下 Linear MCP 工具:
get_issue- 读取事项描述仪表板、标签、状态、负责人、项目、分支元数据和链接。list_comments- 查找最新的已标记计划和状态评论。
使用以下内容验证已标记评论和事项描述仪表板:
scripts/validate_marked_comments.ts --description <issue-description-file> <comment-file>
使用 Agent 可用的本地 JavaScript 包管理器或运行时:Bun 可直接运行 .ts 脚本;Node/npm/pnpm/yarn 环境应通过 TypeScript 运行器(例如 tsx)运行这些脚本。
如果 Linear MCP 读取工具不可用,请用户粘贴事项描述、标签、状态和最新的已标记评论。如果 Linear MCP 写入工具不可用,或事项状态需要修复,请输出 REQUIRED_LINEAR_MUTATIONS,并列出要应用的确切描述、标签、状态和评论。
阶段检测
根据事项的实际状态(而不是记忆)确定当前阶段:
setup-blocked- 缺少必需的 Linear 标签、项目或组件/类型标签;运行linear-doctor。create-issue- 不存在 Linear 事项,或受理元数据不完整;运行linear-create-issue。refine-plan- 事项带有llm-refine,没有有效的就绪计划,或存在未解决的产品问题;运行linear-refine。implement- 事项带有llm-ready,且最新的有效计划具有plan_status: ready;运行linear-implement。blocked- 事项带有llm-blocked,或最新状态评论中存在未解决的问题;运行linear-refine或询问列出的阻塞问题。review-handoff- 事项带有llm-review,或最新状态评论为review_ready;准备人工审查。repair-state- 标签、描述仪表板和评论相互不一致;存在多个llm-*状态;最新的已标记评论无效;缺少必需的仪表板/状态证据;或in-use声明锁已过期或存在矛盾(参见声明锁检查)。
当标签、描述仪表板和评论不一致时,优先将已验证的标记证据作为依据,然后建议最小限度地修复描述、标签或状态。
声明锁检查
按照 docs/workflow.md 中的声明锁规则检查 in-use 声明锁;如果锁看起来已遗留,则在 repair-state 下报告 claim-stale 发现。
第 1 级 — 结构性矛盾(仅检查标签,可靠)。当 in-use 无法与当前状态合理共存时,将其标记出来:
- 事项已完成/关闭,但仍带有
in-use(漏掉了释放操作); - 存在
in-use,但没有活动工作状态,或当前状态为停止时释放锁的状态(llm-ready、llm-blocked)。
in-use 与 llm-refine、llm-active 或 llm-review 同时存在属于正常持锁;不要仅凭标签将其标记出来。
第 2 级 — 过期(需要声明元数据)。如果描述中存在 linear-ai:claim 块,当 now - claimed_at 超过过期阈值(默认 60 分钟;允许用户覆盖)时,将锁视为已过期。报告 claimed_by 和锁的持续时间。如果存在 in-use,但没有声明块,则标记此不匹配(标签和声明块必须同时存在或同时不存在),并回退到第 1 级检查。
对于任何已过期或存在矛盾的锁,建议最小限度的修复:移除 in-use 标签和 linear-ai:claim 块。除非你正在使用可用的写入工具以最终处理者身份执行操作,否则不要应用此修复;否则请将其作为 REQUIRED_LINEAR_MUTATIONS 输出。
阶段完成交接
报告:
- 当前阶段
- 有哪些变化(如果此状态检查修复或澄清了状态)
- 来自 issue 标签/状态和最新标记评论的证据
- 缺失的证据
- 尚未解决的阻碍
- 建议的下一步
- 建议的下一个技能
询问此状态步骤是否还有其他内容需要补充。如果有,请重新读取新增证据并继续当前步骤。如果没有,请建议进入下一个工作流步骤,并指出要运行的技能。
用户回答“没有”后,询问用户是否要继续使用建议的下一个技能。明确说出建议的下一个技能并等待用户确认;不要自动运行。
使用以下回复格式:
- 当前阶段
- 有哪些变化
- 证据
- 缺失的证据
- 尚未解决的阻碍
- 建议的下一步
- 建议的下一个技能
- 问题:继续之前还有其他内容需要补充吗?
- 问题:你要继续使用建议的下一个技能吗?
完成阶段诊断、缺失证据列表和建议的下一个技能后即停止。除非明确作为最终处理者且有可用的写入工具,否则不要更改 issue 状态。