用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/rpamis/comet --skill comet-build命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | comet-build |
| description | Comet Classic 阶段 3 —— 恢复或创建实施计划并执行其任务。 |
开始或恢复前必须先读取并执行 comet-classic/reference/classic-layout.md;本文件中的 OpenSpec CLI 调用必须使用 adapter,文件路径必须使用该协议绑定的 <classic-*> 逻辑根。
按 comet-classic/reference/scripts.md 使用稳定 comet CLI,然后执行入口验证;从任意入口恢复时先按 comet-classic/reference/context-recovery.md 运行恢复检查:
comet state select <change-name>
comet state check <name> build
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
若上述 select / check 输出 BLOCKED,且原因是 bound_branch 与当前分支不一致,立即按 comet-classic/reference/decision-point.md 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 comet state rebind <change-name> 并重新入口验证。不得自行切换分支,不得自行换绑。
幂等性:build 阶段所有操作可安全重复执行。读取 .comet.yaml 的 phase 字段确认仍在 build 阶段,读取 plan 文件头的 base-ref,再按文档顺序解析 tasks.md 的复选框,从第一个未勾选任务继续执行。已提交的任务不得重复提交。
使用 writing-plans Skill 创建实施计划。计划必须使用 comet state get <name> language 读取到的 Comet 配置产物语言,并保存至固定路径 docs/superpowers/plans/<YYYY-MM-DD>-<change-name>.md(如 docs/superpowers/plans/2026-08-21-rename-alert.md)。
调用 Skill 时提供以下输入:
comet state get <name> language 的解析结果docs/superpowers/specs/ 下的技术设计文档)<classic-change-dir>/tasks.md(任务边界)git rev-parse HEAD 的结果只使用 writing-plans 的计划编写与自检流程;计划完成后返回 Comet Build,由 Comet 统一处理后续执行配置。若 Skill 加载或计划生成失败,停止 Build 并报告原因。
计划要求:
---
change: <openspec-change-name>
design-doc: docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md
base-ref: <git rev-parse HEAD before implementation>
---
base-ref 用于验证阶段跨提交统计改动规模。创建计划时先记录当前提交:
git rev-parse HEAD
计划写入后确认该路径存在,再运行 Step 2 的 comet state set <name> plan ... 记录计划路径。
先记录 plan 路径:
comet state set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
无需手动更新 phase,阶段守卫(guard --apply)会在退出条件满足后推进 phase 字段。
展示联合决策时,只提供本工作流支持的执行方式、TDD 模式和代码审查模式。工作区已经在 Open 阶段准备并绑定;若当前 change 没有有效 isolation,返回 /comet-open 修复,不在 Build 创建或切换工作区。
计划写入后只提供一个联合决策点,一次收集:是否现在继续、执行方式、TDD 模式和代码审查模式。不得先询问“继续/暂停”,继续后又创建第二个配置阻塞点。
| 选项 | 行为 | 说明 |
|---|---|---|
| A | 继续执行并提交配置 | 在同一次回复中选择 Step 3 的执行、TDD 和审查配置 |
| B | 暂停切换模型 | 记录 build_pause: plan-ready,本次 /comet-build 停止,用户稍后可从 /comet-classic 或 /comet-build 恢复 |
这是用户决策点。必须按 comet-classic/reference/decision-point.md 的协议一次性展示计划摘要、暂停选项和 Step 3 全部可执行配置。不得自动选择,也不得把暂停写入 build_mode。
用户选择继续并给出完整配置时:
comet state set <name> build_pause null
用户选择暂停时:
comet state set <name> build_pause plan-ready
设置 build_pause: plan-ready 后,当前调用停止。不要选择 isolation 或 build_mode,不要加载执行技能。
如果恢复时检测到 build_pause: plan-ready 且 plan 文件存在,不要重新运行 writing-plans。重新发起 Step 2 的同一个联合决策;只有用户同时给出完整配置后才清除暂停:
comet state set <name> build_pause null
然后应用本步骤中的执行方式、TDD 模式和代码审查模式。
计划已写入 Open 阶段准备好的工作区。先确认已有绑定:
comet state get <name> isolation
如果结果为空,停止 Build 并返回 /comet-open 执行 workspace resolve/prepare;不得在本步骤首次选择或创建 current、branch、worktree。
执行方式:
| 选项 | 技能 | 适用场景 |
|---|---|---|
| A | Superpowers subagent-driven-development | 任务独立、复杂度高;每个任务在隔离的 implementer subagent 中执行,审查由 review_mode 驱动 |
| B | Superpowers executing-plans | 由主会话按计划顺序执行,适合任务较少或紧密关联的改动 |
执行方式推荐规则:
执行方式、TDD 和审查表格是 Step 2 联合决策的一部分,不再单独暂停。不得用推荐规则替代用户确认。
用户选择后,只更新执行方式、TDD 模式和代码审查模式相关字段;保留 Open 阶段已绑定的 isolation 和 bound_branch。
executing-plans:运行 comet state set <name> subagent_dispatch null,再运行 comet state set <name> build_mode executing-planssubagent-driven-development:先运行 comet state set <name> subagent_dispatch confirmed 记录已选择子代理执行,再运行 comet state set <name> build_mode subagent-driven-developmentTDD 模式:
| 选项 | 含义 | 适用场景 |
|---|---|---|
tdd | 每个任务先写失败测试再写实现 | 推荐。变更涉及业务逻辑、新功能、API |
direct | 实现优先,不强制逐任务 Red-Green-Refactor | 仍需运行相关测试并为 bug 修复保留回归证据;hotfix/tweak 预设默认使用 direct |
运行 comet state set <name> tdd_mode <tdd|direct>
代码审查模式:
| 选项 | 含义 | 适用场景 |
|---|---|---|
off | 不自动派发代码审查 | 文档、配置、文案、小范围低风险任务 |
standard | 任务命中风险信号时派发任务级审查,并在 Verify 执行一次最终整合审查 | 默认推荐,适合大多数普通改动 |
thorough | 每个任务派发任务级审查,并在 Verify 执行一次最终整合审查 | 高风险、多模块、架构或安全相关改动 |
运行 comet state set <name> review_mode <off|standard|thorough>
isolation 是脚本级硬约束。full workflow 必须在 Open 阶段写入 current、branch 或 worktree,并在进入 Build 前完成对应 workspace 准备和 bound_branch 绑定;若缺失,Build 只能停止并返回 Open 修复。
subagent_dispatch 是脚本级硬约束,用于记录用户已选择子代理执行。build_mode: subagent-driven-development 离开 build 阶段前必须同时满足 subagent_dispatch: confirmed,否则 comet guard build --apply 和 comet state transition build-complete 都会失败;它不是能力检查。
tdd_mode 是脚本级硬约束。full workflow 离开 build 阶段前 tdd_mode 必须已选择为 tdd 或 direct,否则 comet guard build --apply 和 comet state transition build-complete 都会失败。
review_mode 是脚本级硬约束。新建 full workflow 离开 build 阶段前 review_mode 必须已选择为 off、standard 或 thorough,否则 comet guard build --apply 和 comet state transition build-complete 都会失败。旧状态文件若没有该字段,按兼容路径继续,但恢复时应补写该字段。
build_mode 默认仅 hotfix/tweak 预设使用 direct。full workflow 不得默认使用 direct。只有用户明确要求跳过计划执行技能,且你已记录显式 override 时,才允许:
comet state set <name> direct_override true
comet state set <name> build_mode direct
没有 direct_override: true 时,full workflow 的 build_mode=direct 会被 guard 和状态转换同时拦截。
执行位置:
Open 阶段已经根据 isolation 准备好当前目录、分支或 Worktree,并返回了实际 projectRoot。恢复时先运行 comet classic workspace resolve <name> --json,进入返回目录,再运行 comet state select <change-name>;不得在 Build 再创建 Worktree、切换分支、提交计划以跨 Worktree 传递,或重新绑定 isolation。
执行计划:必须按 build_mode 的真实运行位置处理。
build_mode: executing-plans:立即执行: 使用 Skill 工具加载 Superpowers executing-plans 技能。禁止跳过此步骤。若加载失败,停止并报告错误,不要用普通对话替代该步骤。技能加载后,ARGUMENTS 必须包含与 Step 1 相同的 Language 约束:Language: 使用 comet state get <name> language 读取到的 Comet 配置产物语言输出。按计划执行。build_mode: subagent-driven-development:主会话只负责协调,禁止直接编写实现代码。立即执行: 使用 Skill 工具加载 Superpowers subagent-driven-development 技能。技能加载后,读取 comet-classic/reference/subagent-dispatch.md 获取 Comet 专属扩展(子代理派发、任务隔离、勾选验证、TDD 约束、连续执行、上下文恢复),与技能工作流配合应用。若两者发生冲突,以更具体的 Comet 扩展为准。comet-classic/reference/subagent-dispatch.md 将当前任务记录为 BLOCKED 并带上失败原因;主会话不得接管实现。TDD 模式执行约束:
若 tdd_mode: tdd:
build_mode: executing-plans:加载执行技能后、执行第一个任务前,立即执行: 使用 Skill 工具加载 Superpowers test-driven-development 技能一次。禁止跳过此步骤。技能加载后,从第一个未勾选任务开始,对每个任务遵循已加载的 TDD Red-Green-Refactor 循环执行。不得跳过失败测试验证阶段。后续任务不再重新加载该技能,直接遵循已加载流程。若上下文压缩后恢复,重新运行本步骤加载 TDD 技能一次,然后从第一个未勾选任务继续。build_mode: subagent-driven-development:主会话不加载 TDD skill;TDD 约束和证据门槛已在 comet-classic/reference/subagent-dispatch.md 中定义,每个后台 implementer 和修复 agent 必须自行使用 Skill 工具加载 Superpowers test-driven-development 技能,并遵循 Comet 注入的 TDD 硬约束。若 tdd_mode: direct:按正常流程执行,不强制 TDD。
Build 审查边界:Build 只保留任务级或分段审查,Verify 负责整个 change 的唯一最终集成代码审查。
executing-plans + off|standard:Build 不额外请求整个 change 的最终审查;完成任务验收后进入 Verifyexecuting-plans + thorough:每完成 3 个任务请求一次分段审查,只覆盖该段 diff;总任务数不超过 3 时不在 Build 额外审查subagent-driven-development:按 comet-classic/reference/subagent-dispatch.md 执行 review_mode 对应的任务级审查,不在全部任务结束后追加 final reviewer分段或任务级审查发现 CRITICAL/IMPORTANT 问题时必须在 Build 修复;加载所需审查 Skill 失败时停止并报告,不能静默跳过。非 CRITICAL 发现如被接受,在持久产物中记录原因和影响范围。
执行任务期间,只要运行程序、测试、构建或手动验证时出现崩溃、异常行为、测试失败或构建失败,必须使用 Skill 工具加载 Superpowers systematic-debugging 技能。在完成根因调查前,不得提出或实施源码修复。
具体调查、最小失败测试、修复验证和保持当前 change 验证闭环的要求,按 comet-classic/reference/debug-gate.md 执行。
实施过程中发现初版 spec 不完整时,按变更规模分级处理:
| 规模 | 触发条件 | 做法 |
|---|---|---|
| 小 | 遗漏验收场景、边界条件 | 直接编辑 delta spec + design.md,追加 tasks.md 任务 |
| 中 | 接口变更、新增组件、数据流变化 | 暂停、展示选择并等待用户明确确认后,必须使用 Skill 工具加载 Superpowers brainstorming 更新 Design Doc + delta spec |
| 大 | 全新 capability 需求 | 暂停、展示拆分选择并等待用户明确确认;用户确认后,通过 /comet-open 创建独立 change |
50% 阈值判定:以 tasks.md 初始任务总数为基准,若新增任务数超过该总数的一半,视为超出原计划范围,必须按 comet-classic/reference/decision-point.md 的协议暂停并等待用户决定是否拆分为新 change。
创建独立 change 时必须调用 /comet-open,不得直接调用 /opsx:new。/comet-open 会同时创建 OpenSpec 产物和 .comet.yaml,避免新 change 脱离 Comet 状态机。
用户选择必须包含:
/comet-open 创建独立 change原则:
handoff 同步:delta spec 的增、改、删都会使设计交接包(handoff_hash)过期。Build 阶段可随时直接重新生成,无需回退当前 phase 或 step:
comet handoff <change-name> design --write
重新生成会从当前 OpenSpec artifacts 重建 handoff 并更新 handoff_hash,不会改变 phase 字段或 Runtime currentStep;刷新后可按 build 阶段继续推进。
Build 是最长阶段,可能跨越大量任务。为支持上下文压缩后断点恢复:
review_mode 完成验收后再勾选对应任务并提交。subagent-driven-development 在 off 时不派发每任务 reviewer;standard 下仅当任务命中风险信号时派发;thorough 下每个任务都派发每任务 reviewer。所有模式都必须按任务唯一文本完成定向检查。通过解析 tasks.md 复选框统计剩余任务,无需反复读取与当前任务无关的正文comet-classic/reference/context-recovery.md 执行,phase 参数为 build。comet-classic/reference/dirty-worktree.md 协议处理未提交改动。该协议定义了检查步骤、归因分类和禁令。build 阶段的特殊处理:
isolation 已写为 current、branch 或 worktreebuild_mode 已写为 subagent-driven-development、executing-plans 或带显式 override 的 direct;若为 subagent-driven-development,subagent_dispatch 必须为 confirmedtdd_mode 已写为 tdd 或 directreview_mode 已写为 off、standard 或 thoroughreview_mode 要求的任务级或分段审查;不在 Build 重复 Verify 的最终集成审查comet guard <change-name> build --apply,全部 PASS 后由守卫推进到 phase: verify(此步骤更新 phase 字段,与 auto_transition 无关)Guard 会运行自动探测到的项目构建检查(检测到时使用 npm run build、Maven 或 Cargo)。构建失败时 guard 会打印失败命令输出,作为排查证据。
若项目没有可自动探测的构建命令,用户或 Agent 必须先自行运行真实构建命令,再单独记录构建证据:
comet state record-check <change-name> build --command "<实际运行的构建命令>" --exit-code 0
--command 只记录命令文本,Comet 绝不会执行该文本。build 与 verify 证据彼此独立,不能互相替代。COMET_SKIP_BUILD=1 仅是旧流程的兼容绕过方式,不是可审计的构建证据。
退出前运行阶段守卫推进 phase(此步骤与 auto_transition 无关):
comet guard <change-name> build --apply
状态文件自动更新为 phase: verify、verify_result: pending。
按 comet-classic/reference/auto-transition.md 执行。关键命令:
comet state next <change-name>
NEXT: auto → 调用 SKILL 指向的 skill 进入下一阶段NEXT: manual → 不调用下一 skill,按 HINT 交还控制权并结束当前调用;不再创建确认点NEXT: done → 流程已完成,无需继续