关于 sdd-init
sdd-init 是用于初始化规范驱动开发上下文的 Agent 技能,可检测项目技术栈和约定、生成技能注册表,并将上下文写入磁盘;Engram 可用时还会保存指针。
主要功能
- 01检测项目技术栈与约定
- 02生成技能和约定注册表
- 03优先写入磁盘保存上下文
- 04可选保存 Engram 指针
- 05返回结构化初始化摘要
适用场景
- 01在现有项目中启动 SDD
- 02整理项目技能与指令文件
- 03为后续 SDD 阶段记录架构
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fearovex-labs/ agent-config --skill sdd-init安装后在 Claude Code 中输入/sdd-init确认已加载。
详细介绍
触发条件:"sdd init"、"iniciar sdd"、在项目中初始化 SDD。
目的
你是负责在项目中初始化规格驱动开发(SDD)上下文的子 Agent。你需要检测项目技术栈和惯例,然后引导 Engram 持久化。
你是此阶段的执行者,而不是协调者。请自行完成初始化工作。不要启动子 Agent,不要调用 delegate 或 task,除非遇到必须向上游报告的实际阻碍,否则不要交回执行任务。
执行与持久化约定
-
如果 Engram 可用(默认),请按磁盘优先的方式持久化(参见
_shared/sdd-phase-common.md第 C 节): 保存项目上下文 — 先写入磁盘,再保存 Engram 指针:Write("docs/sdd/{project-name}/init-context.md", "{detected project context markdown}") mem_save( title: "sdd-init/{project-name}", topic_key: "sdd-init/{project-name}", type: "architecture", project: "{project-name}", content: "path: docs/sdd/{project-name}/init-context.md\n\n{1-3 sentence summary}" )topic_key支持 upsert——重新运行 init 时会更新现有指针,而不是创建重复项。磁盘文件是真实数据源。(完整命名约定请参见
skills/_shared/engram-convention.md。) -
如果 Engram 不可用(
none模式):以内联形式返回检测到的上下文;生成项目上下文时仍需写入磁盘文件。
流程
步骤 1:检测项目上下文
阅读项目以了解:
- 技术栈(检查 package.json、go.mod、pyproject.toml 等)
- 现有惯例(代码检查工具、测试框架、CI)
- 正在使用的架构模式
步骤 2:构建技能注册表
构建技能注册表:
- 扫描用户技能:在技能目录中使用
*/SKILL.mdglob 模式。用户级:~/.claude/skills/。项目级:.claude/skills/、skills/。跳过sdd-*和_shared。按名称去重(项目级优先)。读取 frontmatter 中的触发条件。 - 扫描项目惯例:检查项目根目录中的
agents.md、AGENTS.md、CLAUDE.md(项目级)、.cursorrules、GEMINI.md、copilot-instructions.md。如果找到索引文件(例如agents.md),请读取该文件并提取所有引用的文件路径——将索引文件及其引用的文件都纳入注册表。 - 始终在项目根目录写入
.agent-config/skill-registry.md(如有需要,创建.agent-config/)。此文件与模式无关——它属于基础设施,而不是 SDD 产物。 - 如果 Engram 可用,还要保存到 Engram:
mem_save(title: "skill-registry", topic_key: "skill-registry", type: "config", project: "{project}", content: "{registry markdown}")
注册表格式:每项技能包含名称、路径、触发条件和格式类型。
步骤 3:持久化项目上下文
此步骤为必需步骤——不得跳过。
以磁盘优先的方式持久化——先写入磁盘产物(真实数据源),再保存 Engram 指针:
Write("docs/sdd/{project-name}/init-context.md", "{your detected project context from Steps 1-2}")
如果 Engram 可用,还要保存指针:
mem_save(
title: "sdd-init/{project-name}",
topic_key: "sdd-init/{project-name}",
type: "architecture",
project: "{project-name}",
content: "path: docs/sdd/{project-name}/init-context.md\n\n{1-3 sentence summary}"
)
步骤 4:返回摘要
返回结构化摘要:
如果 Engram 可用:
按照 skills/_shared/engram-convention.md 持久化项目上下文,标题和 topic_key 使用 sdd-init/{project-name}。
返回:
## SDD Initialized
**Project**: {project name}
**Stack**: {detected stack}
**Persistence**: engram
### Context Saved
Project context persisted to Engram.
- **Engram ID**: #{observation-id}
- **Topic key**: sdd-init/{project-name}
No project files created.
### Next Steps
Ready for /sdd-explore <topic> or /sdd-propose <change-name>.
如果 Engram 不可用:
## SDD Initialized
**Project**: {project name}
**Stack**: {detected stack}
**Persistence**: none (ephemeral)
### Context Detected
{summary of detected stack and conventions}
### Recommendation
Enable `engram` for artifact persistence across sessions. Without persistence, all SDD artifacts will be lost when the conversation ends.
### Next Steps
Ready for /sdd-explore <topic> or /sdd-propose <change-name>.
规则
- 绝不创建占位规格文件——规格文件应在变更期间通过 sdd-spec 创建
- 始终检测真实技术栈,不要猜测
- 在此阶段绝不扮演协调者——直接执行并返回结果
- 配置上下文应简洁——不超过 10 行
- 返回包含以下字段的结构化封装:
status、executive_summary、detailed_report(可选)、artifacts、next_recommended和risks