setup
每个仓库完整执行一次。其它工程技能运行 .agents/scripts/precheck.mjs 判定是否已 setup,缺了就停,不代跑本技能。禁止啰嗦和故作高深。
项目类别与仓库结构写在 .agents/docs/PROJECT.md,不要写进根 AGENTS.md。业务/技术架构、技术栈由本技能写入 .agents/docs/ARCHITECTURE.md(仅代码类)。坏味道基线从技能包模板原样复制为 .agents/docs/SMELLS.md(仅代码类)。
统一工具定义
交互式提问:Agent 内置的向用户提问并给出选项的工具,各 Agent 命名不同(如AskUserQuestion、AskQuestion)。本技能所有向用户的提问都用它。
完成判定
写完后运行 node .agents/scripts/precheck.mjs:FAIL 则补缺失项直到 PASS。检查项以该脚本为准。
已完成且用户只是说 setup:告知已完成,使用 交互式提问 工具来问要不要走「更新模式」。
工作流
1. 确定工作目录
目标根目录 = 当前 workspace / git 根目录。有歧义时必须确认:
- 用户指定了子目录
- 多个 git 根
- monorepo 里多个可独立交付的包
确认前不要写文件。之后所有路径相对该根目录。
2. 目录与 gitignore
- 创建
.agents/docs/、.agents/cooking/(空目录即可,不要写 README) - 创建
.agents/scripts/,把<engineering>/setup/scripts/整目录复制到.agents/scripts/(<engineering>= 本技能包目录)。里面有 precheck / spec-files / cooking 三个脚本和两份根 AGENTS 模板,precheck 运行时读同目录模板,缺一不可 .gitignore追加.agents/cooking/(已有则跳过)- 若
.gitignore忽略了整个.agents/:改成只忽略 cooking,.agents/docs/和.agents/scripts/必须能提交 - 模板见 templates.md
3. 分类,写 PROJECT.md
按 classify.md:现有项目先推断;新项目能从描述定类别就不要再问类别。写 .agents/docs/PROJECT.md,模板见 templates.md。只留类别、组织结构、(全栈才有)架构形态、一句「是什么」。
新项目判定见 new-project.md。
4. 覆写根 AGENTS.md
按类别用 shell 复制文件:cp .agents/scripts/root-agents-code.md AGENTS.md 或 cp .agents/scripts/root-agents-non-code.md AGENTS.md(源文件见 root-agents-code.md / root-agents-non-code.md)。不要手打必有行。禁止短注、流程章、把项目特例写成正文。
- 没有:直接复制
- 已有且很长:代码类把技术栈 →
ARCHITECTURE.md,开发偏好 →DEV-STANDARDS.md,目录/模块 →CODE-MAP.md;能对应上的原文尽量搬迁。然后按下一则处理 - 已有且已是索引:复制模板后,把原表里自定义
.agents/docs/行追加回表末(不是PROJECT.md/ARCHITECTURE.md/DEV-STANDARDS.md/SMELLS.md/CODE-MAP.md的才算自定义)。丢掉短注、流程章。禁止改模板必有行的文案
用户全局规则(例如个人 AGENTS.md)不要复制进本仓库 docs。
5. 写其余 docs
非代码:不写 ARCHITECTURE.md、DEV-STANDARDS.md、CODE-MAP.md、SMELLS.md。从代码改为非代码时只改 AGENTS 索引,不强制删盘上旧的这些文件。
代码类:先按 interview.md 多轮澄清,再按 templates.md 写:
| 文件 | 现有项目 | 新项目 |
|---|---|---|
ARCHITECTURE.md |
从代码归纳草稿,访谈补空白和矛盾 | 按用户回答写 |
DEV-STANDARDS.md |
从 eslint/prettier/测试目录/现有代码归纳;无依据的章节删掉;必须人定的仍要问 | 按用户回答写 |
CODE-MAP.md |
扫真实目录;模块怎么切拿不准才问 | 按组织结构写规划目录,确认模块切分;尚未建目录就标明「规划」 |
SMELLS.md |
从 smells.md 原样复制;已有则覆写为当前模板 | 同左。禁止按项目改写、追加或删条 |
CODE-MAP 何时改见 code-map-update.md。已有文档对齐见 persistent-docs.md。.agents/docs 已有文件之后由 sync-docs 更新。
6. 汇报
列出写入的路径,每个文件一句话。不要把流程教程写进 AGENTS.md。提醒:流程可选;技能默认不自动触发;.agents/docs 过时跑 sync-docs;脚本 / 根 AGENTS.md 走样再跑更新模式。
工作流第 6 步汇报之后、以及更新模式正常结束之后:用 交互式提问 询问是否为编码加一层验收保障(token 与工时会明显增加)。
选否或跳过:不生成验收文件、不代跑 acceptance。选是:只提示显式调用 acceptance。
不把验收访谈写入 interview.md,不在 setup 里生成 .agents/docs/ACCEPTANCE.md。
更新模式
docs 已存在、用户要刷新底座,或 precheck 缺项时:
| 变更 | 做 |
|---|---|
| 代码/非代码切换 | 改用对应 AGENTS 模板;按第 5 步补缺的代码类 docs。从代码改为非代码不强制删旧的代码类 docs |
.agents/scripts/ 缺失任一脚本 / 模板或与技能包不一致 |
从 <engineering>/setup/scripts/ 整目录覆盖复制 |
AGENTS.md 掺了短注、流程章,或缺模板必有行 |
按第 4 步重建必有行,保留用户追加的 .agents/docs/ 索引行 |
| 代码类必有 docs 缺失 | 按第 5 步补写 |
.agents/docs/ 已有文档内容过时 |
让用户跑 sync-docs,不要在这里改 |
禁止:删除 cooking/ 里进行中的功能、把规范全文写回根目录 AGENTS.md。
正常结束后执行上文验收保障询问。