仅在用户明确调用 /comet-archive,或由 Comet 根 Skill/runtime 路由到 archive 阶段时使用;确认归档、合并 delta spec 并完成分支收尾。
75
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
branch_status: pending)openspec/changes/<name>/.comet.yaml 中 verify_result: pass归档摘要和生命周期闭环说明必须使用 comet state get <name> language 读取到的 Comet 配置产物语言。
按 comet/reference/scripts.md 使用稳定 comet CLI,然后执行入口验证;从任意入口恢复时先按 comet/reference/context-recovery.md 运行恢复检查:
comet state select <change-name>
comet state check <name> archive验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
若上述 select / check 输出 BLOCKED,且原因是 bound_branch 与当前分支不一致,立即按 comet/reference/decision-point.md 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 comet state rebind <change-name> 并重新入口验证。不得自行切换分支,不得自行换绑。
入口验证通过后,先读取 comet state get <change-name> isolation,再按 comet/reference/decision-point.md 的协议暂停并等待用户确认是否立即归档和远端交付。不得在用户确认前运行 comet state transition <change-name> archive-confirm 或 comet archive "<change-name>"。
确认前必须向用户展示简短摘要:
用户确认问题必须以单选题形式呈现,包含以下选项:
comet state transition <change-name> archive-reopen 回到 phase: verify,再调用 /comet-verify。若验证阶段确认需要修复,再按 /comet-verify 的验证失败决策回到 /comet-buildarchive-confirm 或归档命令,保留 active change、phase: archive 和 branch_status: pending,等待用户稍后再次调用 /comet-archive只有用户选择前两个立即交付选项之一后,才记录其选择并立即执行:
comet state transition <change-name> archive-confirm如 transition 返回非零退出码,报告错误并停止。只有 transition 成功后,才允许继续 Step 2。用户选择「需要调整或重新验证」后,必须先执行 archive-reopen 状态回退,不得手动编辑 .comet.yaml。用户选择「暂不归档」后直接停止,不得归档、提交、推送或把 branch_status 设为 handled。
运行归档脚本:
comet archive "<change-name>"脚本自动执行:
如脚本返回非零退出码,报告错误并停止。 如脚本返回零退出码,归档完成。
脚本摘要中的 X/Y steps succeeded 以真实执行步骤计数,不会因 delta spec 同步或文档标注重复累计。
脚本会调用 OpenSpec 归档能力按 ADDED/MODIFIED/REMOVED/RENAMED 语义合并主 spec,并在归档后校验主 spec 中没有残留 delta-only section 标题。
如需预览而不实际执行,使用 --dry-run 参数。
Spec 生命周期在此完成:
brainstorming → delta spec → 实施 → 验证 → 主 spec 合并 → design doc 标注 → 归档归档脚本只移动文件和合并 spec,不会自动提交。归档完成后工作区会有以下未提交改动:
openspec/changes/<name>/ 移动到 openspec/changes/archive/YYYY-MM-DD-<name>/先把已确认的交付方式持久化到归档状态,再运行最终 archive guard:
comet state set <change-name> branch_status handled
comet guard <change-name> archive这里的 handled 只表示用户已经确认如何远端交付这次完整归档提交,不表示 push 或 PR 创建已经成功。状态写入或 guard 失败时停止,不得提交或执行远端操作。
归档后读取 git status --short,并以归档前的 dirty-worktree 归因记录为基线。只允许暂存可归因于当前 change 的路径:原 active change 路径、脚本输出的实际 archive 路径、归档目录中已更新为 branch_status: handled 的 .comet.yaml、被本次 delta 更新的 main specs,以及当前 Design Doc/Plan 的归档元数据。存在无法归因的路径时停止并请求用户处理。
使用显式 pathspec 暂存核对后的路径,再检查 staged diff;不得使用全仓库暂存,也不得把用户已有改动混入归档提交:
git add -- <逐项核对后的归档路径...>
git diff --cached --stat
git commit -m "chore: archive <change-name>"提交失败或 staged diff 含无关路径时停止,不得继续分支处理。
归档提交成功后,只执行 Step 1 中用户已经确认的远端交付方式:
push 失败时报告错误,保留 current selection 记录,不得清除选择或宣告完成;当前任务中只重试同一个 push。PR 创建失败时分支已经包含完整归档提交,报告错误并保留 current selection 记录;当前任务中只重试创建 PR。不得在失败后自动切换、删除、变基或改写分支。
只有用户选择的远端交付操作全部成功后,才运行 comet state clear-selection 并宣告 Classic workflow 完成。
归档阶段不再调用 Superpowers finishing-a-development-branch。本地合并、保留分支稍后处理或暂不推送都不会立即形成远端最终状态,必须在 Step 1 选择「暂不归档」,不能在归档后再选择。
openspec/changes/archive/YYYY-MM-DD-<change-name>/ 存在.comet.yaml 中 archived: truebranch_status: handled 已包含在唯一归档提交中comet guard <change-name> archive 通过归档脚本会把 openspec/changes/<name>/ 移动到 openspec/changes/archive/YYYY-MM-DD-<name>/。
comet guard <change-name> archive 会按原 change 名解析实际归档目录;不要手工拼接日期目录名。
Comet Classic 流程全部完成。如需开始新的 Classic 工作,调用 /comet-classic 或 /comet-open。
按 comet/reference/context-recovery.md 执行,phase 参数为 archive。若 archived: true 且归档目录存在,不得再次执行归档操作;只有当前任务的上下文已明确记录 Step 1 选择的远端交付方式时,才能重试同一个 push 或 PR 创建操作。本 Skill 不承诺用户脱离流程、自行改变分支拓扑后的自动恢复。
2945693
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.