将已完成的 feature spec 归档到项目的全局知识库(spec/global/)。此技能从 feature 的设计文档和实际代码中提取关键决策,使用 4 部分领域文档结构执行增量领域综合,更新全局约束和概述文档,然后将整个 feature 目录移到 spec/archive/。
触发方式: 手动触发,用户运行 /sdd-archive
启动时声明: "我正在使用 sdd-archive 技能来归档 feature spec。"
检查当前模型是否为 Opus(检查 system prompt 中的模型信息)。如果不是 Opus,输出以下纯文本提示并继续(非阻塞):
⚠️ 当前模型不是 Opus,归档提取需要较强的理解和摘要能力,建议切换到 Opus。输入 /model 切换模型。
检查 spec/global/ 目录是否存在。
spec/ 中匹配 feature_* 模式的目录spec/archive/ 和 spec/global/AskUserQuestion 展示最新的 3 个 feature 目录:spec-design.md显示:"未找到可归档的 feature 目录。spec/ 下没有 feature_* 目录。"
停止。
显示:"所选 feature 目录中未找到 spec-design.md,无法提取摘要。请确认该 feature 已完成设计阶段。"
停止。
检查 feature 的完成状态:
spec/{feature}/spec-plan.md- [ ] 和 - [x])和已完成复选框数(- [x])spec/{feature}/spec-human-verify.md[!](失败)和 [ ](待处理)项目```
⚠️ 该 feature 尚未完全完成:
```
使用 AskUserQuestion:「继续归档」/「取消」
```
⚠️ 该 feature 缺少执行计划或验收文件,可能尚未经过完整 SDD 流程。
```
使用 AskUserQuestion:「继续归档」/「取消」
读取 feature 的 spec-design.md 并扫描与 feature 相关的实际代码文件。
描述此 feature 做什么的简洁中文句子(最多 30 个字符)。
提取 feature 中做出的 3-7 个关键技术或设计决策。每个决策是一个短bullet point,例如:
从 spec-design.md 和实际代码模式中获取决策。
展示提取结果,使用 AskUserQuestion:「确认」/「需要修改」
如果用户选择 "需要修改":
AskUserQuestion 重新确认spec/global/constraints.md显示每个发现:
🔍 约束演进检查:
- [新增] 缓存技术: Redis(当前约束中未记录)
- [冲突] API 风格: feature 使用 GraphQL,但约束记录为 RESTful
对于每个发现,使用 AskUserQuestion:
将确认的更改应用到 spec/global/constraints.md 并追加更新页脚:
---
*最后更新: YYYY-MM-DD — 由 {feature_directory_name} 归档时更新*
显示:"约束检查通过,无需更新。"
约束演进检查后,对概况文档进行轻量级检查。
spec/global/overview.md、spec/global/architecture.md、spec/global/features.mdfeatures.mdoverview.md 和/或 architecture.mdarchitecture.md显示每个发现:
🔍 概况文档演进检查:
- [features.md] 新增功能点: {description}
- [architecture.md] 新组件: {description}
- [overview.md] 新外部依赖: {description}
对于每个需要更新的文档,使用 AskUserQuestion:「更新」/「跳过」
对于确认的更新:
最后更新: YYYY-MM-DD — 由 {feature_directory_name} 归档时更新显示:"概况文档检查通过,无需更新。"
在功能表顶部插入新行(最新优先):
| [{feature_id}](../archive/{feature_dir}/) | {一句话摘要} | {primary_domain} | {YYYY-MM-DD} |
更新底部的领域索引部分 — 添加或更新具有正确 feature 计数的领域条目。
文件: spec/global/domains/{primary_domain}.md
使用领域文档模板(见下面的模板部分)创建新的领域文档,所有 4 个部分根据此 feature 填充。
执行增量领域综合:
## Feature 附录 下追加新的 feature 条目目标是当前状态的快照 — 不是演进历史。每个部分应该作为领域的当前状态连贯描述,而不是变更日志。
确定目标领域后,检查该领域是否≤2 个 feature(包括正在归档的)。如果是:
AskUserQuestion 展示建议:```
💡 领域 "{domain}" 目前仅有 {N} 个 feature,建议合并到 "{suggested_domain}" 领域。
```
选项:「合并」/「保持独立」
如果用户确认合并:
对于每个相关领域(非主要领域):
spec/global/domains/{related_domain}.md## 相关 Feature 部分下添加交叉引用:- → [{primary_domain}.md#{feature_dir}](./{primary_domain}.md#{feature_dir}) — {一句话摘要}
写入/更新所有全局 spec 文件后,收集配图需求并逐一生成配图。
评估哪些文档被修改需要更新配图:
对于每个需要的配图,如果文档中尚未存在,在文档中插入 !描述 引用,并添加到清单:
{
"description": "描述文字(用于图片生成 prompt)",
"type": "architecture|feature-relationship|tech-stack|concept",
"style": "根据 Style Mapping 确定",
"aspect_ratio": "16:9 或 1:1",
"output_path": "spec/global/images/NN-type.png(全局文档)或 spec/global/domains/images/NN-type.png(领域文档)"
}
根据源 md 文件确定输出目录:
spec/global/images/spec/global/domains/images/如果清单非空,遍历清单逐一生成配图:
对于清单中的每个配图:
🖼️ 正在生成第 X/N 张:{description}.../gen-image skill,参数:prompt={description + style prefix}, aspect_ratio, size=1K, output={output_path}✅ 已保存: {output_path}⚠️ 生成失败: {description},已跳过 并继续下一个配图所有配图处理完后,显示总结:
🖼️ 配图全部生成完成({N} 张)🖼️ 配图生成完成: {X} 张成功,{Y} 张失败如果不需要配图,跳到 Step 8。
spec/archive/ 目录spec/{feature_dir}/ → spec/archive/{feature_dir}/mv 命令用中文显示简洁总结:
✅ 归档完成
📁 归档位置: spec/archive/{feature_dir}/
📝 更新的全局文件:
- spec/global/index.md(新增条目)
- spec/global/domains/{primary_domain}.md(领域综合更新)
{- spec/global/domains/{related_domain}.md(新增交叉引用) // 仅适用时}
{- spec/global/constraints.md(更新约束: ...) // 仅约束更改时}
{- spec/global/overview.md(更新: ...) // 仅更改时}
{- spec/global/architecture.md(更新: ...) // 仅更改时}
{- spec/global/features.md(新增功能点: ...) // 仅更改时}
🖼️ 配图: X 张生成成功
{或: 🖼️ 配图: X 张成功,Y 张失败({失败文件列表})}
{或: (无需更新配图)}
不要执行任何 git 操作。
# {Domain} 领域

## 领域综述
{概念模型、核心职责、与其他领域的边界}
## 核心流程
{当前该领域的主要工作流,基于实际代码}
## 技术方案总结
{跨 feature 的技术选型汇总:存储方案、组件复用、设计模式}
## Feature 附录
### {feature_directory_name}
**摘要:** {一句话摘要}
**关键决策:** {bullet list}
**归档:** [链接](../../archive/{feature_dir}/)
**归档日期:** {YYYY-MM-DD}
---
## 相关 Feature
| 配图类型 | Style prefix | 宽高比 |
|---|---|---|
| ----------- | ------------- | ------------- |
| 架构/数据流 | Technical diagram, vector style | 16:9 |
| 功能关系 | Clean flat flowchart, minimal | 16:9 |
| 技术栈概览 | Technical diagram, vector style | 16:9 |
| 概念图示 | Flat design, soft pastel | 1:1 或 16:9 |
/sdd-archive./images/ 相对路径 — 全局文档用 spec/global/images/,领域文档用 spec/global/domains/images/共 1 个版本