名称: linear-sop 描述: 线性票务管理最佳实践。在创建问题、更新状态或附加证据时使用。提供开发/暂存/完成阶段的证据模板。
Linear SOP 技能
目的
指导一致的Linear票务管理。提供强制性的开发/暂存/UAT证据政策的证据模板。
当此技能适用时
在以下情况下调用此技能:
- 创建新的Linear问题
- 更新票务状态
- 附加证据到票务
- 解析验收标准
- 处理UUID和问题ID
Linear MCP 工具
读取问题
# 通过标识符获取问题
mcp__linear-mcp__get_issue({ id: "{{TICKET_PREFIX}}-459" })
# 使用过滤器列出问题
mcp__linear-mcp__list_issues({
team: "{{PROJECT_TEAM_NAME}}",
state: "进行中",
assignee: "我",
})
创建问题
mcp__linear-mcp__create_issue({
title: "功能(范围): 描述",
team: "{{PROJECT_TEAM_NAME}}",
description: "## 总结
...",
labels: ["功能", "冲刺-1"],
parentId: "父级-uuid", // 可选 - 用于子问题
})
更新问题
mcp__linear-mcp__update_issue({
id: "{{TICKET_PREFIX}}-459",
state: "完成",
})
添加评论
mcp__linear-mcp__create_comment({
issueId: "{{TICKET_PREFIX}}-459",
body: "**开发证据**
...",
})
证据政策(必须)
每个问题在每个阶段都需要证据:
| 阶段 | 是否必需? | 内容 |
|---|---|---|
| 开发 | 必须 | 实施证明 |
| 暂存 | 必须 | UAT验证(或不适用) |
| 完成 | 必须 | 最终验证 |
证据模板
开发证据模板
**开发证据**
**PR**: https://github.com/{{ORG_NAME}}/{{REPO_NAME}}/pull/XXX
**提交**: [短哈希]
**分支**: {{TICKET_PREFIX}}-XXX-描述
**实施:**
- [x] 功能已实施
- [x] 测试通过
- [x] 代码检查通过
**验证:**
\`\`\`bash
yarn ci:validate
# 输出:所有检查通过
\`\`\`
暂存/UAT证据模板
**暂存证据**
**环境**: Pop OS开发服务器
**URL**: http://pop-os:3000
**验证步骤:**
1. 部署到暂存: [时间戳]
2. 冒烟测试通过: [是/否]
3. 功能已验证: [描述]
**UAT状态:** [通过/待处理/不适用]
如果不适用,原因: [例如,"仅开发工具 - 无用户界面更改"]
完成证据模板
**完成证据**
**PR已合并**: https://github.com/{{ORG_NAME}}/{{REPO_NAME}}/pull/XXX
**合并提交**: [哈希]
**最终检查清单:**
- [x] 所有验收标准已满足
- [x] 文档已更新(如适用)
- [x] 未检测到回归
验收标准解析
当读取问题描述时,提取验收标准:
## 验收标准
- [ ] 用户可以执行操作X
- [ ] 系统响应Y
- [ ] Z的错误处理
转换为可测试的检查清单:
const acceptanceCriteria = [
{ criterion: "用户可以执行操作X", verified: false },
{ criterion: "系统响应Y", verified: false },
{ criterion: "Z的错误处理", verified: false },
];
状态工作流
待办 -> 就绪 -> 进行中 -> 测试中 -> 待评审 -> 完成
状态更新指南
| 从 | 到 | 何时 |
|---|---|---|
| 待办 | 就绪 | 冲刺规划 |
| 就绪 | 进行中 | 工作开始 |
| 进行中 | 测试中 | PR已创建 |
| 测试中 | 待评审 | 测试通过,UAT完成 |
| 待评审 | 完成 | POPM批准 |
UUID处理
Linear在内部使用UUID。当处理API时:
// 问题标识符(人类可读)
const issueId = "{{TICKET_PREFIX}}-459";
// UUIDs(API操作)
const uuid = "ef6a5fa0-2b46-417f-8266-dea2d187b10a";
// 通过MCP工具从标识符获取UUID
// mcp__linear-mcp__get_issue({ id: "{{TICKET_PREFIX}}-459" })
// 返回包含.id属性的问题对象,该属性包含UUID
常见操作
链接PR到问题
当以下情况时,PR会自动链接:
- 分支名称包含
{{TICKET_PREFIX}}-XXX - PR标题包含
[{{TICKET_PREFIX}}-XXX]
创建子问题
mcp__linear-mcp__create_issue({
title: "子任务描述",
team: "{{PROJECT_TEAM_NAME}}",
parentId: "父级问题-uuid",
})
按标签查询
mcp__linear-mcp__list_issues({
label: "冲刺-1",
team: "{{PROJECT_TEAM_NAME}}",
})
权威参考
- Agent Workflow SOP:
docs/sop/AGENT_WORKFLOW_SOP.md - Linear MCP Docs: 内置在Claude Code中
- CONTRIBUTING.md: 工作流文档