关于 blueprint-work-order
该 Agent 技能将 PRD、PRP 或 GitHub issue 拆解为可独立执行的工作单,适合需要委派聚焦开发任务的团队。它可生成本地文档,并可选择创建或更新 GitHub issue。
主要功能
- 01从 PRP 或 GitHub issue 生成工作单
- 02分析 PRD 和项目进度来确定任务
- 03提供隔离任务所需的最少上下文
- 04将 TDD 要求和验收标准纳入工作单
- 05可选发布并关联 GitHub issue
适用场景
- 01将现有 PRP 拆成可委派的子任务
- 02把 GitHub issue 转为带编号的工作单
- 03离线创建本地工作单而不发布
- 04跟踪工作单与 PRP、任务清单及 issue 的关联
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill blueprint-work-order安装后在 Claude Code 中输入/blueprint-work-order确认已加载。
详细介绍
生成用于隔离子 Agent 执行的工单文档,并可选择集成 GitHub issue。
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下改用 blueprint-prp-create…… |
|---|---|
| 你要将 PRP 拆分为可委派给子 Agent 的任务 | 你要创建 PRP 本身,并进行全面研究和设置验证关卡 |
| 你想要一个上下文精简、聚焦 TDD 的任务包 | 你需要一份通过收集上下文制定的全面实施计划 |
你想从现有 PRP 创建工单(--from-prp) | 如果要执行已编写的 PRP,请改用 blueprint-prp-execute |
你想从 GitHub issue 创建工单(--from-issue) | 如果要在委派前评估准备情况,请改用 confidence-scoring |
标志
| 标志 | 描述 |
|---|---|
--no-publish | 仅创建本地工单,跳过创建 GitHub issue |
--from-issue N | 根据现有 GitHub issue #N 创建工单(work-order-draft 提案 issue 会升级为正式工单:使用工单包,并将标签替换为 work-order) |
--from-prp NAME | 根据现有 PRP 创建工单(自动填充上下文) |
默认行为:同时创建本地工单和带有 work-order 标签的 GitHub issue。
交互模式
在任何结束时的 AskUserQuestion 菜单之前,解析自动化配置:
bash "${CLAUDE_SKILL_DIR}/../../scripts/get-automation-config.sh"
当 EFFECTIVE_INTERACTION_MODE=quiet 且本次调用由自动化触发(autopilot、会话收尾、drift-nudge 后续操作——而非用户输入的斜杠命令)时,跳过结束导航菜单(“接下来做什么?”/“再创建一个?”之类),应用安全默认选项,然后以一行回执结束。安静模式绝不会跳过保护写入操作的确认关卡——仅跳过导航菜单。用户直接调用时始终采用完整交互模式(明确意图优先于安静模式;参见 ADR-0020)。
前提条件
- 已初始化 Blueprint Development(存在
docs/blueprint/) - 至少存在一个 PRD(使用
--from-issue或--from-prp时除外) ghCLI 已通过身份验证(使用--no-publish时除外)
模式:根据 PRP 创建(--from-prp NAME)
提供 --from-prp NAME 时:
-
读取 PRP:
cat docs/prps/$NAME.md -
提取 PRP 内容:
- 解析 frontmatter,提取 id、置信度评分和实现引用
- 提取 Objective 部分
- 提取 Implementation Blueprint 任务
- 提取 TDD 要求
- 提取 Success Criteria
- 记录精选规则引用(
.claude/rules/条目)
-
验证置信度:
- 如果置信度低于 9:警告 PRP 可能尚未达到可委派状态
- 询问是否仍要继续,或返回完善 PRP
-
生成工单:
- 根据 PRP 内容预填工单
- 将相关精选规则作为内联上下文加入(而非引用)
- 原样复制 TDD 要求
- 包含 PRP 的 Codebase Intelligence 部分中的文件列表
-
继续执行第 6 步(保存并可选择发布)
模式:根据现有议题创建(--from-issue N)
提供 --from-issue N 时:
-
获取议题:
gh issue view N --json title,body,labels,number -
解析议题内容:
- 从标题/正文中提取目标
- 提取其中的 TDD 要求或成功标准(如有)
- 记录现有标签
2a. 提升 work-order-draft 提案(ADR-0020 自动草拟通道):
如果议题带有 work-order-draft 标签,它就是由 /blueprint:autopilot 自动草拟的
提案——其正文已经是完整的工单数据包(标题格式为 [work-order-draft] PRP-NNN: <title>)。
提升操作是人工提交行为,草稿通道会保留该行为:
- 原样使用该数据包作为工单内容(草稿正文取代步骤 3 的重新生成;仍需确认引用的 PRP 存在 且其置信度为当前值——如果低于 9,则发出警告)
- 在步骤 4 中,额外交换标签:
gh issue edit N --remove-label "work-order-draft" --add-label "work-order" - 按常规保存流程继续(步骤 6):本地 WO 文件、
feature-tracker.json的tasks.pending和清单的id_registry都在此处 (提升时)变更——绝不在草拟时变更
-
生成工单:
- 编号与议题编号一致(例如,议题 #42 → 工单
042-...) - 根据议题内容预填
- 添加上下文部分(文件、PRD 引用等)
- 编号与议题编号一致(例如,议题 #42 → 工单
-
更新议题并添加链接:
gh issue comment N --body "Work-order created: \`docs/blueprint/work-orders/NNN-task-name.md\`" # Ensure the label exists before applying it if ! gh label list --search "work-order" --json name | jq -e '.[] | select(.name=="work-order")' >/dev/null 2>&1; then gh label create work-order --description "AI-assisted work order" --color "0E8A16" fi gh issue edit N --add-label "work-order" -
继续保存并报告(跳至下方步骤 6)
模式:创建新工单(默认)
步骤 1:分析当前状态
- 阅读
docs/blueprint/feature-tracker.json,了解当前阶段和任务 - 运行
git status,检查未提交的工作 - 运行
git log -5 --oneline,查看近期工作 - 查找现有工单(统计数量以确定编号)
步骤 2:阅读相关 PRD
- 阅读 PRD 文件以了解需求
- 根据以下内容确定下一个合理的工作单元:
- 工作概览进度
- PRD 阶段/章节顺序
- Git 历史记录(已完成的工作)
步骤 3:确定下一个工作单元
应满足:
- 具体:单一功能/组件/修复
- 独立:依赖项最少
- 可测试:成功标准明确
- 聚焦:工作量为 1-4 小时
良好示例:
- “实现 JWT 令牌生成方法”
- “为注册端点添加输入验证”
- “创建用户表的数据库迁移”
不良示例(范围过大):
- “实现身份验证”
- “修复 Bug”
步骤 4:确定最少上下文
- 要修改/创建的文件(仅相关文件)
- PRD 章节(仅包含此任务的具体要求)
- 现有代码(仅相关片段,而非完整文件)
- 依赖项(外部库、环境变量)
步骤 5:生成工单
- 编号:查找现有最高工单编号并加 1(001、002 等)
- 名称:
NNN-brief-task-description.md
工单结构:
name: blueprint-work-order
---
id: WO-NNN
created: {YYYY-MM-DD}
status: pending
implements: # Source PRP or PRD
- PRP-NNN
relates-to: # Related documents
- ADR-NNNN
github-issues:
- N
---
# Work-Order NNN: [Task Name]
**ID**: WO-NNN
**GitHub Issue**: #N
**Status**: pending
## Objective
[One sentence describing what needs to be accomplished]
## Context
### Required Files
[Only files needed - list with purpose]
### PRD Reference
[Link to specific PRD section, not entire PRD]
### Technical Decisions
[Only decisions relevant to this specific task]
### Existing Code
[Only relevant code excerpts needed for integration]
## TDD Requirements
### Test 1: [Test Description]
[Exact test to write, with code template]
**Expected Outcome**: Test should fail
### Test 2: [Test Description]
[Exact test to write]
**Expected Outcome**: Test should fail
[More tests as needed]
## Implementation Steps
1. **Write Test 1** - Run: `[test_command]` - Expected: **FAIL**
2. **Implement Test 1** - Run: `[test_command]` - Expected: **PASS**
3. **Refactor (if needed)** - Run: `[test_command]` - Expected: **STILL PASS**
[Repeat for all tests]
## Success Criteria
- [ ] All specified tests written and passing
- [ ] [Specific functional requirement met]
- [ ] [Performance/security baseline met]
- [ ] No regressions (existing tests pass)
## Notes
[Additional context, gotchas, considerations]
## Related Work-Orders
- **Depends on**: Work-Order NNN (if applicable)
- **Blocks**: Work-Order NNN (if applicable)
步骤 6:保存工单
保存到 docs/blueprint/work-orders/NNN-task-name.md
确保编号以零补齐(001、002、010、100)
步骤 7:创建 GitHub 议题(除非使用 --no-publish)
gh issue create \
--title "[WO-NNN] [Task Name]" \
--body "## Work Order: [Task Name]
**ID**: WO-NNN
**Local Context**: \`docs/blueprint/work-orders/NNN-task-name.md\`
### Related Documents
- **Implements**: {PRP-NNN or PRD-NNN}
- **Related ADRs**: {list of ADR-NNNN}
### Objective
[One-line objective from work order]
### TDD Requirements
- [ ] Test 1: [description]
- [ ] Test 2: [description]
### Success Criteria
- [ ] [Criterion 1]
- [ ] [Criterion 2]
---
*AI-assisted development work order. See linked file for full execution context.*" \
--label "work-order"
记录议题编号并更新工单文件:
# Extract issue number from gh output
gh issue create ... 2>&1 | grep -oE '#[0-9]+' | head -1
使用议题编号更新工单文件中的 **GitHub Issue**: 行。
步骤 8:更新 docs/blueprint/feature-tracker.json
将新工单添加到待处理任务:
jq '.tasks.pending += [{"id": "WO-NNN", "description": "[Task name]", "source": "PRP-NNN", "added": "YYYY-MM-DD"}]' \
docs/blueprint/feature-tracker.json > tmp.json && mv tmp.json docs/blueprint/feature-tracker.json
步骤 8.5:更新清单
更新 docs/blueprint/manifest.json 的 ID 注册表:
{
"id_registry": {
"documents": {
"WO-NNN": {
"path": "docs/blueprint/work-orders/NNN-task-name.md",
"title": "[Task Name]",
"implements": ["PRP-NNN"],
"github_issues": [N],
"created": "{date}"
}
},
"github_issues": {
"N": ["WO-NNN", "PRP-NNN"]
}
}
}
同时更新源 PRP/PRD,将此工单添加到其跟踪信息中。
步骤 9:报告
Work-order created!
ID: WO-NNN
Work-Order: 003-jwt-token-generation.md
Location: docs/blueprint/work-orders/003-jwt-token-generation.md
GitHub Issue: #42 (or "Local only" if --no-publish)
Traceability:
- Implements: PRP-002 (OAuth Integration)
- Related: ADR-0003 (Session Storage)
Objective: [Brief objective]
Context included:
- Files: [List files]
- Tests: [Number of tests specified]
- Dependencies: [Key dependencies]
Ready for execution:
- Can be executed by subagent with isolated context
- TDD workflow enforced (tests specified first)
- Clear success criteria defined
- PR should use "Fixes #42" to auto-close issue
- Commit messages should use: feat(WO-NNN): description
步骤 10:提示下一步操作
使用 AskUserQuestion:
question: "Work-order ready. What would you like to do?"
options:
- label: "Execute this work-order (Recommended)"
description: "Start working on the task with TDD workflow"
- label: "Create another work-order"
description: "Generate the next task from pending items"
- label: "Delegate to subagent"
description: "Hand off for isolated execution"
- label: "I'm done for now"
description: "Exit - work-order is saved and ready"
根据选择:
- “执行此工单” → 使用工单上下文运行
/project:continue - “创建另一个工单” → 再次运行
/blueprint:work-order - “委派给子 Agent” → 提供子 Agent 执行的交接说明
- “我完成了” → 退出
核心原则
- 最小上下文:只提供必要内容,而非完整文件/PRD
- 具体测试:明确的测试用例,而非模糊描述
- 强制执行 TDD:先指定测试,再进行实现
- 明确标准:成功复选框的含义清晰明确
- 独立性:只凭提供的上下文即可完成任务
- 透明性:GitHub issue 让协作者了解进展
错误处理
| 情况 | 操作 |
|---|---|
| 不存在 PRD | 引导用户先编写 PRD |
| feature-tracker 中没有任务 | 询问当前阶段/状态 |
| 任务不明确 | 询问用户接下来要处理什么 |
gh 未通过身份验证 | 发出警告,并回退到 --no-publish 行为 |
issue 已有 work-order 标签 | 发出警告,询问是更新还是新建 |
GitHub 集成说明
完成流程
- 完成 work-order 上的工作
- 在 PR 正文/标题中加入
Fixes #N - 将 work-order 移至
completed/目录 - PR 合并时自动关闭 issue
标签约定
work-order 标签用于标识通过此工作流创建的 issue。如果仓库中不存在此标签,请创建:
gh label create work-order --description "AI-assisted work order" --color "0E8A16"
离线模式
在以下情况下使用 --no-publish:
- 离线工作时
- 进行私密试验时
- 不需要让 issue 对外可见时
之后可以手动创建 issue 并更新 work-order 文件来发布。