mcpField
B
blueprint-work-order

blueprint-work-order

github.com/laurigatesAgent 工作流5968 次安装1 天前更新
代码仓库

关于 blueprint-work-order

该 Agent 技能将 PRD、PRP 或 GitHub issue 拆解为可独立执行的工作单,适合需要委派聚焦开发任务的团队。它可生成本地文档,并可选择创建或更新 GitHub issue。

主要功能

  1. 01从 PRP 或 GitHub issue 生成工作单
  2. 02分析 PRD 和项目进度来确定任务
  3. 03提供隔离任务所需的最少上下文
  4. 04将 TDD 要求和验收标准纳入工作单
  5. 05可选发布并关联 GitHub issue

适用场景

  1. 01将现有 PRP 拆成可委派的子任务
  2. 02把 GitHub issue 转为带编号的工作单
  3. 03离线创建本地工作单而不发布
  4. 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 时除外)
  • gh CLI 已通过身份验证(使用 --no-publish 时除外)

模式:根据 PRP 创建(--from-prp NAME)

提供 --from-prp NAME 时:

  1. 读取 PRP:

    cat docs/prps/$NAME.md
    
  2. 提取 PRP 内容:

    • 解析 frontmatter,提取 id、置信度评分和实现引用
    • 提取 Objective 部分
    • 提取 Implementation Blueprint 任务
    • 提取 TDD 要求
    • 提取 Success Criteria
    • 记录精选规则引用(.claude/rules/ 条目)
  3. 验证置信度:

    • 如果置信度低于 9:警告 PRP 可能尚未达到可委派状态
    • 询问是否仍要继续,或返回完善 PRP
  4. 生成工单:

    • 根据 PRP 内容预填工单
    • 将相关精选规则作为内联上下文加入(而非引用)
    • 原样复制 TDD 要求
    • 包含 PRP 的 Codebase Intelligence 部分中的文件列表
  5. 继续执行第 6 步(保存并可选择发布)

模式:根据现有议题创建(--from-issue N)

提供 --from-issue N 时:

  1. 获取议题:

    gh issue view N --json title,body,labels,number
    
  2. 解析议题内容:

    • 从标题/正文中提取目标
    • 提取其中的 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 都在此处 (提升时)变更——绝不在草拟时变更
  1. 生成工单:

    • 编号与议题编号一致(例如,议题 #42 → 工单 042-...)
    • 根据议题内容预填
    • 添加上下文部分(文件、PRD 引用等)
  2. 更新议题并添加链接:

    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"
    
  3. 继续保存并报告(跳至下方步骤 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 集成说明

完成流程
  1. 完成 work-order 上的工作
  2. 在 PR 正文/标题中加入 Fixes #N
  3. 将 work-order 移至 completed/ 目录
  4. PR 合并时自动关闭 issue
标签约定

work-order 标签用于标识通过此工作流创建的 issue。如果仓库中不存在此标签,请创建:

gh label create work-order --description "AI-assisted work order" --color "0E8A16"
离线模式

在以下情况下使用 --no-publish:

  • 离线工作时
  • 进行私密试验时
  • 不需要让 issue 对外可见时

之后可以手动创建 issue 并更新 work-order 文件来发布。

评论

支持 Markdown