关于 blueprint-execute
用于分析仓库状态并选择下一步操作的 Blueprint 工作流编排技能,适合需要恢复或推进项目 Blueprint 流程的团队。它依次检查初始化、升级、文档、生成内容和待办任务,再委派给相应命令执行单项操作。
主要功能
- 01分析仓库与 Blueprint 状态
- 02按规则选择下一步操作
- 03委派给专用 Blueprint 命令
- 04并行收集项目上下文
- 05单次执行一个操作
适用场景
- 01拉取代码后判断接下来要做什么
- 02自动检查过期的生成内容
- 03查找并推进待办工作项
- 04从统一入口运行 Blueprint 流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill blueprint-execute安装后在 Claude Code 中输入/blueprint-execute确认已加载。
附带文件REFERENCE.md
详细介绍
智能元命令,可分析仓库状态并执行合适的蓝图操作。
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下改用 blueprint-status…… |
|---|---|
| 你希望自动检测 init/upgrade/derive/generate/execute 步骤 | 你只想查看状态,不执行任何操作 |
| 你在拉取代码后继续项目,想知道“接下来做什么?” | 你想要只读报告,可使用 --report-only |
| 你希望通过一个入口调用特定的蓝图技能 | 在初始化全新项目时,改用 blueprint-init |
| 你说“运行 blueprint”之类的话,但没有指定命令 | 确定需要迁移时,改用 blueprint-upgrade |
概念:随时运行此命令,即可自动确定蓝图工作流接下来应执行的操作。可安全地重复运行——此命令具有幂等性,并且始终能确定正确的操作。
用法:/blueprint:execute
工作原理:此命令充当编排器,用于检测项目的当前状态,并根据需要调用特定的蓝图命令。它会并行使用多个 Agent,高效收集上下文。
如需查看详细的 AskUserQuestion 模板、示例和常见工作流,请参阅 REFERENCE.md。
交互模式
在任何结束用的 AskUserQuestion 菜单之前,先解析自动化配置:
bash "${CLAUDE_SKILL_DIR}/../../scripts/get-automation-config.sh"
当 EFFECTIVE_INTERACTION_MODE=quiet 且 此次调用由自动化发起(autopilot、会话收尾、偏移提醒后续操作——而非用户输入的斜杠命令)时,跳过结束导航菜单(“接下来做什么?”/“再创建一个?”等):应用安全的默认选项,然后以一行回执结束。静默模式绝不会跳过写入操作的确认关卡——只跳过导航菜单。直接由用户发起的调用始终保持完整交互(明确意图优先于静默模式;参见 ADR-0020)。
阶段 0:并行收集上下文
同时启动以下 Agent 以收集上下文:
| Agent | 任务 |
|---|---|
| Git 历史分析 | 最近的提交(最近 20 条)、分支、未提交的更改、常规提交的使用情况 |
| 文档状态 | docs/ 中的 PRD、ADR、PRP:数量、frontmatter 状态、可执行项 |
| 蓝图状态 | manifest.json 版本、.claude/rules/ 中生成的规则、功能跟踪器状态 |
| 任务注册表 | 从 manifest.json 读取 task_registry:启用/禁用状态、计划、上次运行时间、到期任务 |
将结果整合为统一上下文:Git 质量、文档覆盖率、蓝图健康状况和可执行项。
状态检测与操作流程
按顺序执行以下检查,并执行第一个匹配的操作:
1. 检查初始化状态
test -f docs/blueprint/manifest.json
如果尚未初始化:运行 /blueprint:init,然后退出。
2. 检查升级
cat docs/blueprint/manifest.json | grep '"format_version"'
当前格式版本:3.0.0
如果 manifest 版本 < 3.0.0:运行 /blueprint:upgrade,然后退出。
2.5. 检查任务注册表中的到期任务
如果 manifest 中有 task_registry:
jq -r '.task_registry | to_entries[] | select(.value.enabled == true) | select(.value.auto_run == true) | .key' docs/blueprint/manifest.json
对于每个已启用的 auto_run 任务,根据计划检查是否到期:
daily:如果last_completed_at为 null 或距今超过 24h,则到期weekly:如果last_completed_at为 null 或距今超过 7d,则到期on-change:如果源输入发生更改,则到期(由各任务单独检查)on-demand:绝不自动触发
如果有 auto_run 任务到期:按顺序静默执行这些任务(例如 validate、sync 等只读任务)。简要报告结果。继续下一项检查。
如果有 non-auto_run 任务到期:在状态中注明这些任务。此处不要发起提示——让特定检查来处理。
3. 检查缺失的文档(推导阶段)
git rev-list --count HEAD 2>/dev/null || echo 0
find docs/prds -name "*.md" 2>/dev/null | wc -l
find docs/adrs -name "*.md" 2>/dev/null | wc -l
cat docs/blueprint/manifest.json | jq -r '.derived_rules.last_derived_at // empty'
如果 Git 历史超过 10 条提交,但没有 PRD 和 ADR:提示用户选择推导方式(推导全部、仅推导 PRD、仅推导 ADR,或跳过)。执行选定的操作,然后退出。
如果有 Git 历史,但没有推导出的规则:提示是否从 Git 推导规则。如果是,则运行 /blueprint:derive-rules,然后退出。
4. 检查过时或已修改的生成内容
将每条生成规则的哈希值与清单进行比对:
如果已过时(生成后 PRD 发生了变化):提示重新生成或跳过。如果选择重新生成,则运行 /blueprint:generate-rules,然后退出。
如果已修改(用户编辑了生成的文件):提示检查、提升到自定义层或跳过。执行所选操作,然后退出。
5. 检查尚无生成规则的 PRD
prd_count=$(find docs/prds -name "*.md" 2>/dev/null | wc -l)
generated_count=$(cat docs/blueprint/manifest.json | jq '.generated.rules | length')
如果存在 PRD,但尚无生成规则:运行 /blueprint:generate-rules,然后退出。
6. 检查已就绪的 PRP
find docs/prps -name "*.md" -type f 2>/dev/null
如果有多个高置信度 PRP(>= 2 个且分数 >= 9):提示创建并行工作单或执行单个 PRP。
如果只有一个 PRP,或用户选择了一个 PRP:运行 /blueprint:prp-execute {selected-prp},然后退出。
7. 检查待处理的工作单
find docs/blueprint/work-orders -maxdepth 1 -name "*.md" -type f 2>/dev/null
如果发现工作单:提示选择。执行选定的工作单,完成后移至 completed/,如果已启用则同步功能跟踪器,然后退出。
8. 检查功能跟踪器中的活动任务
cat docs/blueprint/feature-tracker.json | jq '{
in_progress: .tasks.in_progress,
pending: .tasks.pending,
current_phase: .current_phase
}'
如果存在进行中的任务:提示继续、创建工作单或跳过。执行所选操作,然后退出。
如果存在待处理任务(没有进行中的任务):提示开始任务、创建 PRP、创建工作单或跳过。执行所选操作,然后退出。
9. 检查功能跟踪器(如果已启用)
test -f docs/blueprint/feature-tracker.json
如果 task_registry 计划(默认:每天)规定需要同步,或在执行 PRP/完成工作单后,则自动同步。有关同步详情,请参阅 REFERENCE.md。
如果完成度 < 100%:显示状态并提示下一项功能工作。
如果完成度 == 100%:报告所有功能均已完成,然后继续执行第 10 步。
10. 没有明确的下一步操作——显示状态和选项
运行 /blueprint:status,显示完整的 Blueprint 状态及可用的下一步操作。
注册表更新
执行任何任务操作后,更新 manifest.json 中对应的 task_registry 条目:
jq --arg task "$TASK_NAME" --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg result "$RESULT" \
'.task_registry[$task].last_completed_at = $now | .task_registry[$task].last_result = $result | .task_registry[$task].stats.runs_total = ((.task_registry[$task].stats.runs_total // 0) + 1)' \
docs/blueprint/manifest.json > tmp.json && mv tmp.json docs/blueprint/manifest.json
这样可确保每次执行都会更新操作元数据,以用于跟踪和后续计划安排。
幂等性保证
| 保证 | 方式 |
|---|---|
| 状态检测为只读 | 在选择操作前只读取文件 |
| 每次仅执行一个操作 | 每次运行执行一个操作,然后退出 |
| 用户确认 | 执行关键操作前会提示确认 |
| 状态一致 | 每项操作都会使项目保持有效状态 |
| 无副作用 | 完成后重新运行只会显示状态 |
与现有命令的集成
此元命令会委派给现有 Blueprint 命令,而不是取代它们。用户仍可在明确知道需求时直接运行特定命令。需要系统自行决定时,可使用 /blueprint:execute。
Agent 优化
| 场景 | 命令 |
|---|---|
| 智能决定下一步操作 | /blueprint:execute |
| 每日开始工作 | /blueprint:execute(确定上次停在何处) |
| 拉取更改后 | /blueprint:execute(检查是否存在过时内容) |
| 直接初始化 | /blueprint:init(跳过检测) |
| 直接执行 PRP | /blueprint:prp-execute {name}(跳过检测) |
注意:这是一个元编排命令。它会分析状态,并委派给特定的 Blueprint 命令。它旨在成为 Blueprint 工作流的“智能入口”,同时让高级用户仍可使用各个独立命令。