SuperAPI AI 工具集

archive

编程与开发

查看项目

更新于 10-15 12:27

技能介绍

用途

Archive 是 Beat 工作流中用于归档已完成变更的技能。当一次 Beat 变更已经完成(已实现,或已提炼并验证)并准备归档时使用它。它不用于验证实现。

运行时机:在 /beat:verify 之后、PR 或合并之前,在变更所在的任意分支上(通常是 /beat:design 创建的 worktree 分支)。归档是该分支上的最后一次提交,随代码一起进入同一个 PR,因此主分支永远不会为已经落地的功能保留活跃的 beat/changes/<name> 目录。归档本身会交接给合并/PR 步骤(第 7 步)——绝不应在 PR 合并之后再执行归档。归档从不创建或切换分支:如果用户位于基础分支,就在那里归档,由第 7 步处理分支状态。

决策边界

适用场景:

  • 归档已完成(或已验证提炼)的变更
  • 将功能同步到 beat/features/ 长期文档
  • 归档前的最终长期文档清扫(术语表、最后一公里 ADR)

不适用场景:

  • 对照规格验证实现(使用 /beat:verify)
  • 实现剩余任务(使用 /beat:apply)
  • 创建或修改规格产物(使用 /beat:design)
  • 等待 PR 先合并——归档是分支上的最后一次提交,在 PR 之前,且它自己会调用合并/PR 步骤

触发示例:"Archive the change" / "The change is done, wrap it up" / "Sync the features" 不应触发:"verify the implementation" / "implement the change" / "design a feature"

前置条件

技能 时机 优先级
finishing-a-development-branch 归档完成后 必须

如果不可用(技能未安装),跳过并仅显示归档摘要。

主要能力

  • 选择变更:若未提供名称,查找 beat/changes/ 目录(排除 archive/),只有一个则使用,多个则让用户选择,仅显示活跃(未归档)变更。
  • 检查产物完成情况:读取 status.yaml,检查哪些产物已完成、哪些待处理(非跳过)。若有非跳过产物仍待处理,显示警告并确认是否继续。
  • 检查任务完成情况(若存在 tasks.md):统计未完成与已完成任务,若有未完成则警告并确认。
  • 检查是否运行过验证:读取 status.yaml 顶层 verification 字段。缺失则警告"此变更从未验证"并确认;status: issues-found 则警告并确认;status: passed 则静默继续。只告知和确认,绝不阻塞。
  • 将功能同步到长期文档:若 gherkin 状态为 skipped 则跳过同步;若为 done,读取 features/*.feature、proposal.md、design.md,读取 beat/config.yaml 确定 README 语言,通过 AskUserQuestion 确定能力映射,扫描功能文件中未定义的项目特定术语并提示加入 beat/CONTEXT.md,然后同步文件到 beat/features/<capability>/。
  • 处理 .orig 备份:当 status.yaml 有 gherkin.modified 时,将修改版本同步到 beat/features/<capability>/,删除 .feature.orig 备份,若使用 pytest-bdd 则更新 @scenario 装饰器路径。
  • 最后一公里 ADR 清扫:统计本次变更写入或引用的 ADR 文件;若至少有一个则静默跳过;若为零则提示一次,询问是否有难以逆转、令人意外且涉及真实权衡的决策值得记录。
  • 执行归档:更新 status.yaml 的 phase 为 archive,创建 beat/changes/archive,生成目标名 YYYY-MM-DD-<change-name>,检查是否已存在,然后移动目录。
  • 重写旧变更路径引用:移动目录会破坏所有指向它的链接(ADR source 字段和链接、已同步功能和设计文档中的交叉引用、术语表或 README 提及、被移动目录内部的自引用)。使用 git grep 查找并重写。

使用方式

输入:可选指定变更名称。若省略,则从上下文推断或提示。

流程:选择变更 → 检查产物完成 → 检查任务完成 → 检查验证记录 → 检查 Gherkin 是否完成 → 询问能力映射 → 扫描未定义术语 → 同步功能(或跳过)→ 最后一公里 ADR 清扫 → 移动到归档 → 重写旧变更路径引用 → 提交归档 → 显示摘要 → 调用 finishing-a-development-branch。

适用场景

  • 一次 Beat 变更已实现并准备归档
  • 需要将功能同步到 beat/features/ 长期文档
  • 需要在归档前进行术语表和 ADR 的最终清扫

限制

  • 不用于验证实现、实现剩余任务或创建/修改规格产物。
  • 归档是分支上的最后一次提交,在 PR 之前,不应在 PR 合并后执行。
  • 归档从不创建或切换分支。
  • 若 finishing-a-development-branch 技能未安装,则跳过并仅显示归档摘要。
  • 关于收费、价格、平台等具体信息暂未提供。