Archive Feature 用于关闭已完成的功能,并将整个功能文件夹从 .scratch/ 移动到 docs/archive/,使其在定期清理后仍保留在仓库中。该技能仅基于文件内容工作,不会勾选或取消勾选任何复选框,也不会修改工单内容,仅可能替换 Status: 行的值。
用途
当功能开发完毕,需要将其规格、工单等文件从临时目录移出并长期保存时,可使用此技能。它支持指定单个功能(通过文件夹名或 SPEC.md 路径),或不带参数运行以处理 .scratch/ 下的所有功能。
主要能力
- 追踪器检查:若
docs/agents/issue-tracker.md存在且指向远程追踪器(如 GitHub、GitLab、Linear),则技能不适用并停止。 - 就绪检查:读取规格与工单,判断每个工单的
Status:是否为ready-for-human或done,且所有复选框是否已勾选。无工单时需询问用户是否已实现。 - 决策:就绪则继续;未就绪则展示缺失项,询问用户是停止还是仍归档。
- 目标检查:若
docs/archive/<feature-slug>/已存在,则警告并停止,不覆盖或合并。 - 关闭:就绪功能将规格与所有工单的
Status:设为done;未就绪但坚持归档时,仅将符合就绪规则的工单设为done,其余保留原状,并在规格底部添加带日期的## Comments条目说明被排除的工单与未勾选项。 - 移动:若
docs/archive/或docs/archive/README.md缺失则创建,README.md 内容固定;然后执行git mv .scratch/<feature-slug> docs/archive/<feature-slug>。若文件夹未跟踪导致git mv失败,则报告并停止(无参数运行时跳过该功能继续)。
使用方式
- 单功能运行:传入功能文件夹名或
SPEC.md路径。若文件夹无SPEC.md,则告知非功能并停止。随后按步骤 1 至 7 执行。 - 无参数运行:扫描
.scratch/下所有文件夹,有SPEC.md的视为功能;无SPEC.md的列为忽略。检查每个功能的就绪情况,展示汇总表(含就绪、缺失项、无工单待询问、目标已存在将跳过等)。对无工单功能逐个询问是否已实现。汇总表后一次性确认是否归档所有就绪功能;未就绪功能仅当用户点名时才归档。逐个归档,顺序为:目标检查、关闭、移动。单个功能失败不影响其他功能。最后生成报告。
适用场景
适用于本地 Markdown 工单追踪的项目,功能规格与工单存放于 .scratch/ 下,需要在功能完成后归档以保留历史记录的场景。
限制
- 不适用于远程追踪器(GitHub、GitLab、Linear 等)。
- 不会修改工单内容(除
Status:行外),不会勾选或取消勾选复选框。 - 目标目录已存在时不会覆盖或合并。
git mv失败时不会回退到mv。- 无工单的功能无法从文件判断是否完成,需用户确认。
- 移动和编辑后的文件处于已暂存或已修改但未提交状态,需用户自行提交。