用途
sdd-archive 是 SDD(Spec-Driven Development)流程中的第 7 步,用于在功能开发完成后进行文档归档与项目文档同步。它的核心目标是把已完成功能的规范文件从项目根目录移入归档目录,并据此更新项目的总览文档 docs/project.md。
输入
技能接受以下输入:
- feature_name(可选):归档文件夹名称,采用 kebab-case 命名;省略时从 feature.md 标题推导。示例:jwt-authentication。
技能会在对话中检查 feature_name,以及项目根目录下的 feature.md 与 plan.md。若 feature.md 或 plan.md 不存在,则停止并告知用户这两个文件为必需。技能还会检查根目录是否存在 review.md 与 impl-summary.md,若存在则一并归档。
主要流程
-
确定功能名:使用 Step 0 得到的 feature_name;通过 date +"%Y%m%d%H%M" 获取当前时间戳并作为前缀,形成归档目录名 <yyyymmddHHMM>-<feature-name>(例如 202604191430-jwt-authentication)。若 feature_name 缺失,则读取 feature.md 并从 # Feature: 标题推导,转换为 kebab-case(如 "User Authentication" → user-authentication)后自动继续。
-
验证完成度:读取 feature.md,检查所有验收标准复选框是否已勾选。若有未勾选项,警告用户并在归档前请求确认。
-
更新 docs/project.md:这是关键步骤。完整读取 docs/project.md,再读取待归档的 feature.md 与 plan.md 以提取实际变更,并按以下章节更新 project.md(章节不存在时创建):
- Features 列表:定位或创建 ## Features 章节,以单行条目新增功能,保留既有列表并追加,不重排或删除既有条目。
- Architecture Decisions:扫描 feature.md(Open Questions、Technical Scope)与 plan.md(Architecture Decisions),提取对系统构建方式有实质影响的决策(如引入新的架构模式、影响后续功能的横切决策、有理由的约定偏离、新的外部系统集成点)。日常实现选择、文件命名或包放置决策、不改变架构方向的轻微重构不属于此列。符合条件的决策写入或追加到 ## Architecture Decisions 表格(含 Date、Decision、Rationale、Feature 列),表格已存在时追加行,不重建表格。
- API Surface(如适用):若功能新增或修改了 REST 端点,定位或创建 ## API 章节,记录新端点的 Method、Path、Description、Auth Required,仅记录新增或变更的端点,保留既有条目。
- Environment / Configuration:若功能引入新的环境变量或配置项,加入 ## Environment & Configuration 章节(含 Key、Description、Required、Default 列)。
-
展示 project.md 变更:写入前先呈现即将对 project.md 做出的每一项变更摘要(Features 新增项、Architecture Decisions 新增项、API 新增项、Environment & Configuration 新增项,以及无变化的部分如 Tech Stack、Architecture overview、Conventions),请用户确认后再写入;若用户要求修改,先应用其修正再写入。
-
归档:执行以下操作,其中 review.md 与 impl-summary.md 仅在存在时移动:
ARCHIVE_DIR="docs/specs-archive/$(date +"%Y%m%d%H%M")-<feature-name>"
mkdir -p "$ARCHIVE_DIR"
mv feature.md "$ARCHIVE_DIR/feature.md"
mv plan.md "$ARCHIVE_DIR/plan.md"
# move review.md only if it exists
[ -f review.md ] && mv review.md "$ARCHIVE_DIR/review.md"
# move impl-summary.md only if it exists
[ -f impl-summary.md ] && mv impl-summary.md "$ARCHIVE_DIR/impl-summary.md"
-
创建简要摘要:在 docs/specs-archive/<yyyymmddHHMM>-<feature-name>/README.md 中生成摘要,包含功能名、实现日期,以及构建内容的简要描述、关键文件和值得注意的决策。
-
确认:向用户报告最终摘要,包括归档到 docs/specs-archive/<yyyymmddHHMM>-<feature-name>/ 的文件(feature.md、plan.md,以及若存在的 review.md 和 impl-summary.md)、docs/project.md 中更新的章节,并提醒将归档目录与 docs/project.md 提交到版本控制。
适用场景
适用于采用 SDD 工作流的项目,在功能实现完成后整理规范文档、沉淀架构决策,并保持 docs/project.md 作为项目主文档的时效性。
限制
feature.md 与 plan.md 为必需文件,缺失时技能会停止。归档前会校验 feature.md 的验收标准是否全部勾选,未勾选时需要用户确认。对 docs/project.md 的写入需用户先确认变更摘要。具体文件路径、时间戳格式与命令以实现中给出的内容为准;关于支持的平台、安装方式、收费与价格等信息,资料中暂未提供。