add-coder 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/index.js +26 -6
  2. package/package.json +1 -1
  3. package/templates/core/agents/add-flow-guardian.md +6 -6
  4. package/templates/core/agents/add-orchestrator.md +2 -2
  5. package/templates/core/hooks/doc-format-guard.sh +17 -0
  6. package/templates/core/hooks/lib/context-inject.sh +96 -0
  7. package/templates/core/hooks/lib/state-detect.sh +104 -0
  8. package/templates/core/hooks/lib/vocabulary.sh +49 -0
  9. package/templates/core/hooks/notification.sh +9 -0
  10. package/templates/core/hooks/permission-gate.sh +18 -0
  11. package/templates/core/hooks/post-tool-failure.sh +10 -0
  12. package/templates/core/hooks/post-tool-use.sh +18 -0
  13. package/templates/core/hooks/pre-compact.sh +14 -0
  14. package/templates/core/hooks/pre-tool-use.sh +28 -0
  15. package/templates/core/hooks/prompt-submit.sh +16 -0
  16. package/templates/core/hooks/review-checklist.sh +10 -0
  17. package/templates/core/hooks/session-start.sh +23 -0
  18. package/templates/core/hooks/stop-check.sh +10 -0
  19. package/templates/core/hooks/subagent-guard.sh +15 -0
  20. package/templates/core/plans/2026-07/08/{farm-agent-add-coder-npm-package-add-route-v1.md → add-coder-npm-package-add-route-v1.md} +9 -9
  21. package/templates/core/plans/2026-07/08/{farm-agent-add-coder-npm-package-handoff-v1.md → add-coder-npm-package-handoff-v1.md} +43 -43
  22. package/templates/core/plans/2026-07/08/{farm-agent-add-coder-npm-package-plan-v1.md → add-coder-npm-package-plan-v1.md} +47 -47
  23. package/templates/core/reports/REPORT-WORKFLOW.md +2 -2
  24. package/templates/core/reports/index.md +1 -1
  25. package/templates/core/rules/project_rules.md +29 -29
  26. package/templates/core/scripts/mcp-server.ts +17 -17
  27. package/templates/core/skills/add-paradigm/SKILL.md +18 -16
  28. package/templates/core/skills/session-init/SKILL.md +3 -3
  29. package/templates/core/specs/{farm-agent-add-coder-npm-package → add-coder-npm-package}/checklist.md +7 -7
  30. package/templates/core/specs/{farm-agent-add-coder-npm-package → add-coder-npm-package}/spec.md +12 -12
  31. package/templates/core/specs/{farm-agent-add-coder-npm-package → add-coder-npm-package}/tasks.md +17 -17
  32. package/templates/core/templates/01-/346/236/266/346/236/204//343/200/212ADD/345/274/200/345/217/221/345/267/245/344/275/234/350/267/257/345/276/204/344/270/216/346/226/207/346/241/243/345/215/217/345/220/214/350/247/204/350/214/203/343/200/213.md +25 -25
  33. package/templates/core/templates/TERMINOLOGY.md +1 -1
  34. package/templates/core/templates/checklist-template.md +1 -1
  35. package/templates/core/templates/handoff-multi-round-template.md +10 -10
  36. package/templates/core/templates/handoff-single-round-template.md +1 -1
  37. package/templates/core/templates/index.md +5 -1
  38. package/templates/core/templates/prd-incremental-template.md +103 -0
  39. package/templates/core/templates/prd-incremental-template.schema.json +32 -0
  40. package/templates/core/templates/prd-standard-template.md +219 -0
  41. package/templates/core/templates/prd-standard-template.schema.json +27 -0
  42. package/templates/core/templates/simple-plan-template.md +2 -2
  43. package/templates/core/templates/standard-plan-template.md +9 -9
  44. package/templates/core/tools/README.md +2 -2
  45. package/templates/core/vocabulary/add-governance-vocabulary.md +28 -26
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## Forbidden
11
11
 
12
- - 禁止修改 farm-agent 业务代码(`src/`、`docs/` 等)
12
+ - 禁止修改 add-coder 业务代码(`src/`、`docs/` 等)
13
13
  - 禁止引入第三方模板引擎(Handlebars/EJS 等)
14
14
  - 禁止在模板代码中保留 `process.env.X || "兜底值"` 反模式
15
15
 
@@ -30,23 +30,23 @@
30
30
  - [x] 已有 `add.prisma` 时:交互三选一(跳过/覆盖/diff+备份)
31
31
 
32
32
  - [x] Task 1.1: 清理硬编码 + 参数化 core 模板 — 验证: `grep -r "farm.agent\|farm_secure_pass\|大田精准\|/home/xmm\|/Users/milkytea" templates/` 返回空
33
- - [x] 15 个 `.md` 模板(plan/spec/tasks/checklist/handoff/review/add-route 等):`docs/大田精准耕播智能决策系统/` → `{{docsDir}}/`、`farm-agent-*` → `{{projectName}}-*`
33
+ - [x] 15 个 `.md` 模板(plan/spec/tasks/checklist/handoff/review/add-route 等):`docs/大田精准耕播智能决策系统/` → `{{docsDir}}/`、`add-coder-*` → `{{projectName}}-*`
34
34
  - [x] 15 个 `.schema.json`:检查确认无硬编码
35
- - [x] `skills/add-paradigm/SKILL.md`:`/home/xmm/ai/farm-agent/` → `{{projectRoot}}/`
36
- - [x] `skills/session-init/SKILL.md`:`farm-agent-*` → `{{projectName}}-*`
35
+ - [x] `skills/add-paradigm/SKILL.md`:`/home/xmm/ai/add-coder/` → `{{projectRoot}}/`
36
+ - [x] `skills/session-init/SKILL.md`:`add-coder-*` → `{{projectName}}-*`
37
37
  - [x] `agents/add-flow-guardian.md`:检查确认
38
38
  - [x] `agents/add-orchestrator.md`:检查确认
39
- - [x] `rules/project_rules.md`:`farm-agent` → `{{projectName}}`、`src/agents/` → `{{sourceDir}}/agents/`
39
+ - [x] `rules/project_rules.md`:`add-coder` → `{{projectName}}`、`src/agents/` → `{{sourceDir}}/agents/`
40
40
  - [x] `rules/theory-practice-map.toml`:检查确认
41
41
  - [x] `vocabulary/add-governance-vocabulary.md`:检查确认
42
42
  - [x] `scripts/mcp-server.ts`:`DATABASE_URL || "postgresql://..."` → `process.env.DATABASE_URL`(无兜底值)、`.env.development` → `{{envFilePath}}`
43
43
  - [x] `scripts/add-coder-mcp-server.ts`:同上
44
- - [x] `.qoder/settings.json`:hook 脚本绝对路径 → `{{projectRoot}}/.qoder/hooks/`
45
- - [x] `.qoder/mcp.json`:`DATABASE_URL` 硬编码密码 → `process.env.DATABASE_URL`
46
- - [x] `.qoder/sync-policy.json`:检查确认
47
- - [x] `.qoder/hooks/` 下 14 个 `.sh` + `lib/`:项目名提取逻辑 → 使用 `$CLAUDE_PROJECT_DIR` 或 `{{projectRoot}}`
44
+ - [x] `{{magicDir}}/settings.json`:hook 脚本绝对路径 → `{{projectRoot}}/{{magicDir}}/hooks/`
45
+ - [x] `{{magicDir}}/mcp.json`:`DATABASE_URL` 硬编码密码 → `process.env.DATABASE_URL`
46
+ - [x] `{{magicDir}}/sync-policy.json`:检查确认
47
+ - [x] `{{magicDir}}/hooks/` 下 14 个 `.sh` + `lib/`:项目名提取逻辑 → 使用 `$CLAUDE_PROJECT_DIR` 或 `{{projectRoot}}`
48
48
  - [x] `.vscode/` 下 4 个文件:MCP 配置中的项目特定路径 → `{{projectRoot}}`
49
- - [x] `reports/` 下 7 个文件:`farm-agent`、绝对路径 → `{{projectName}}`、`{{projectRoot}}`
49
+ - [x] `reports/` 下 7 个文件:`add-coder`、绝对路径 → `{{projectName}}`、`{{projectRoot}}`
50
50
  - [x] `tools/README.md`:检查确认
51
51
  - [x] 创建 `src/core/renderer.ts`:接收 config 对象,执行 `"{{key}}".replace("{{key}}", config.key)`
52
52
 
@@ -66,10 +66,10 @@
66
66
  - [x] 迁移 `scripts/` → `templates/core/scripts/`
67
67
  - [x] 迁移 `reports/` → `templates/core/reports/`
68
68
  - [x] 迁移 `tools/` → `templates/core/tools/`
69
- - [x] 迁移 `.qoder/hooks/`(14 个 .sh + lib/) → `templates/adapters/qoder/hooks/`
70
- - [x] 迁移 `.qoder/settings.json` → `templates/adapters/qoder/settings.json`
71
- - [x] 迁移 `.qoder/mcp.json` → `templates/adapters/qoder/mcp.json`
72
- - [x] 迁移 `.qoder/sync-policy.json` → `templates/adapters/qoder/sync-policy.json`
69
+ - [x] 迁移 `{{magicDir}}/hooks/`(14 个 .sh + lib/) → `templates/adapters/qoder/hooks/`
70
+ - [x] 迁移 `{{magicDir}}/settings.json` → `templates/adapters/qoder/settings.json`
71
+ - [x] 迁移 `{{magicDir}}/mcp.json` → `templates/adapters/qoder/mcp.json`
72
+ - [x] 迁移 `{{magicDir}}/sync-policy.json` → `templates/adapters/qoder/sync-policy.json`
73
73
  - [x] 迁移 `.vscode/`(4 个文件) → `templates/adapters/vscode/`
74
74
  - [x] 迁移 `debug-dump/`、`repowiki/` → `templates/shared/`(空目录占位)
75
75
  - [x] 创建 `templates/adapters/claude/` 目录(空壳)
@@ -100,7 +100,7 @@
100
100
  - [x] `doc-format-guard.sh`
101
101
  - [x] 实现 `src/adapters/claude/renderer.ts`
102
102
 
103
- - [x] Task 3.1: Qoder 适配器实现 — 验证: `npx add-coder init --adapter qoder` 生成正确的 `.qoder/` 目录
103
+ - [x] Task 3.1: Qoder 适配器实现 — 验证: `npx add-coder init --adapter qoder` 生成正确的 `{{magicDir}}/` 目录
104
104
  - [x] 确认 `templates/adapters/qoder/` 下文件已清理 hardcode(第1轮 Task 1.1 已做)
105
105
  - [x] `settings.json` 的 matcher 适配:`Write|write_to_file|create_file|CreateFile` 等双套工具名
106
106
  - [x] 实现 `src/adapters/qoder/renderer.ts`
@@ -124,7 +124,7 @@
124
124
  - [x] `src/cli/commands/init.ts`:init 命令(七步流程:检测 IDE → 加载配置 → 渲染 core → 渲染 adapter → Prisma 注入 → 写入 → 摘要)
125
125
  - [x] `src/cli/commands/sync.ts`:sync 命令(只同步缺失文件)
126
126
  - [x] `src/cli/commands/status.ts`:status 命令(检查完整性)
127
- - [x] `src/cli/detect.ts`:IDE 环境检测(扫描 `.qoder/` `.claude/` `.vscode/` 存在性)
127
+ - [x] `src/cli/detect.ts`:IDE 环境检测(扫描 `{{magicDir}}/` `.claude/` `.vscode/` 存在性)
128
128
  - [x] `src/cli/config-loader.ts`:配置加载 + Zod 校验 + 优先级合并(交互式 > 配置文件 > 自动检测 > 默认值)
129
129
  - [x] `src/cli/writer.ts`:智能写入(四种模式:交互 / `--yes` / `--force` / `--dry-run`)
130
130
  - [x] `bin/add-coder.js` 改为加载 `dist/cli/index.js`
@@ -195,7 +195,7 @@
195
195
  - [x] `grep -r "process.env.*||" dist/` 返回空
196
196
  - [x] `npx add-coder init` 在空白项目中零配置生成完整 ADD 模板
197
197
  - [x] `npx add-coder init --adapter claude` 生成 `.claude/` 目录
198
- - [x] `npx add-coder init --adapter qoder` 生成 `.qoder/` 目录
198
+ - [x] `npx add-coder init --adapter qoder` 生成 `{{magicDir}}/` 目录
199
199
  - [x] `npx add-coder init --adapter vscode` 生成 `.vscode/` 目录
200
200
  - [x] `npm pack` 产出包含 `dist/` + `templates/` + `bin/`,不包含 `src/`
201
201
  - [x] `prisma migrate dev --schema=prisma/` 成功创建 DevOperation + AuditLog 表
@@ -21,9 +21,9 @@ ADD 不是"写代码时顺便打日志",而是一套覆盖全开发周期的
21
21
  │ │ 🚪 0.6.5 Review 结论回流至 Plan 与 Specs(强制卡位) │
22
22
  │ │ 🚪 0.7 原子闭包判定(Plan 级 + 轮次级) │
23
23
  │ │ 产物:docs/*/knowledge/ 下的规划说明书、架构文档、规范文档 │
24
- │ │ .qoder/plans/{需求域名}-plan-v{n}.md │
25
- │ │ .qoder/plans/{需求域名}-add-route-v{n}.md │
26
- │ │ .qoder/reviews/{需求域名}-review-v{n}.md │
24
+ │ │ {{magicDir}}/plans/{需求域名}-plan-v{n}.md │
25
+ │ │ {{magicDir}}/plans/{需求域名}-add-route-v{n}.md │
26
+ │ │ {{magicDir}}/reviews/{需求域名}-review-v{n}.md │
27
27
  │ │ 阈值:check_dps(DPS ≥ 85 方可进入 Step 1) │
28
28
  ├────────────┼─────────────────────────────────────────────────────────────────┤
29
29
  │ Step 1 │ 功能分析与审计阶段定义 │
@@ -42,8 +42,8 @@ ADD 不是"写代码时顺便打日志",而是一套覆盖全开发周期的
42
42
  ├────────────┼─────────────────────────────────────────────────────────────────┤
43
43
  │ Step 3.5 │ 实现审查(ADD-10 意图与实现的语义鸿沟) │
44
44
  │ 实现审查 │ 运行 spec checklist [T] 项 → 跨项目联调检查 │
45
- │ │ 产物:.qoder/reviews/{需求域名}-review-implementation-v{n}.md │
46
- │ │ .qoder/reviews/{需求域名}-review-runtime-v{n}.md │
45
+ │ │ 产物:{{magicDir}}/reviews/{需求域名}-review-implementation-v{n}.md │
46
+ │ │ {{magicDir}}/reviews/{需求域名}-review-runtime-v{n}.md │
47
47
  ├────────────┼─────────────────────────────────────────────────────────────────┤
48
48
  │ Step 4 │ 审计数据验证 │
49
49
  │ 审计验证 │ 运行功能 → 收集审计数据 → check_phase_symmetry → check_failure_path │
@@ -89,7 +89,7 @@ ADD 流程中有四个强制卡位,在任何情况下都不可跳过:
89
89
  | **每轮原子闭包** | 不是按文件数量拆分,而是按"可独立提交、验证、审计、恢复"的最小业务闭包拆分 |
90
90
  | **人类评审节点** | 每轮 spec 必须经过人类 review(spec-review.md),AI 不擅自越过评审进入代码实现 |
91
91
  | **三件套不可跳过** | spec.md + tasks.md + checklist.md 三者齐备才能开始写代码 |
92
- | **日志代理用户 ID** | 所有 `AuditLog` 写入及业务表 `createdBy`/`createdById` 字段统一使用项目日志代理用户 ID 函数(禁止硬编码 `"system"` 等字符串)。详见 `.qoder/rules/project_rules.md` ADD-4 §日志代理用户 ID |
92
+ | **日志代理用户 ID** | 所有 `AuditLog` 写入及业务表 `createdBy`/`createdById` 字段统一使用项目日志代理用户 ID 函数(禁止硬编码 `"system"` 等字符串)。详见 `{{magicDir}}/rules/project_rules.md` ADD-4 §日志代理用户 ID |
93
93
  | **四层审查** | 方案审查(ADD-9 方向验证)→ 实现审查(ADD-10 语义对齐)→ 运行时纠偏(ADD-11 证据持久化)→ 验收闭环(ADD-12 漂移校准),四道关卡覆盖全生命周期 |
94
94
  | **检查项 [T]/[R] 分拆** | checklist 中 [T] = 编译期可验证(AI 直接检查),[R] = 运行时验证(部署后确认,自动流转到 review-runtime.md)。[T] 全部通过时自动生成 review-runtime.md |
95
95
  | **跨对话接续** | 下一轮通过 `query_audit_logs` 恢复上游审计上下文,无需人类复述 |
@@ -125,12 +125,12 @@ ADD 不是万能范式。用错了阶段反而拖慢迭代速度。
125
125
  | `docs/哲学理论/` | 哲学理论基础文章 | 公开 |
126
126
  | `{{docsDir}}/` | 项目文档(需求/架构/规范) | 公开 |
127
127
  | `TODO/` | 开源协作 TODO,与 docs/ 平级 | 公开 |
128
- | `.qoder/plans/` | 需求方案 + 任务拆分 + 轮间交接手册 | 开发内部 |
129
- | `.qoder/reviews/` | 方案评审 + 逐轮 spec 评审 | 开发内部 |
130
- | `.qoder/specs/` | 每轮 spec + tasks + checklist(三件套) | 开发内部 |
131
- | `.qoder/rules/` | 项目规则文件(权威约束) | 开发内部 |
132
- | `.qoder/skills/` | SKILL 行为定义(AI 助手的标准行为模式) | 开发内部 |
133
- | `.qoder/scripts/` | 工具脚本 + MCP 服务器 | 开发内部 |
128
+ | `{{magicDir}}/plans/` | 需求方案 + 任务拆分 + 轮间交接手册 | 开发内部 |
129
+ | `{{magicDir}}/reviews/` | 方案评审 + 逐轮 spec 评审 | 开发内部 |
130
+ | `{{magicDir}}/specs/` | 每轮 spec + tasks + checklist(三件套) | 开发内部 |
131
+ | `{{magicDir}}/rules/` | 项目规则文件(权威约束) | 开发内部 |
132
+ | `{{magicDir}}/skills/` | SKILL 行为定义(AI 助手的标准行为模式) | 开发内部 |
133
+ | `{{magicDir}}/scripts/` | 工具脚本 + MCP 服务器 | 开发内部 |
134
134
 
135
135
  ### 目录层级决策原则
136
136
 
@@ -138,12 +138,12 @@ ADD 不是万能范式。用错了阶段反而拖慢迭代速度。
138
138
  公开可见 = docs/ + TODO/
139
139
  ↑ 面向社区、贡献者、学术引用者
140
140
 
141
- 开发内部 = .qoder/
141
+ 开发内部 = {{magicDir}}/
142
142
  ↑ 面向 AI 助手 + 核心开发者(不影响外部用户克隆体验)
143
143
  ```
144
144
 
145
145
  - `TODO/` 与 `docs/` 平级而非嵌套在 `docs/` 下:TODO 是**行动清单**("我们计划做什么"),docs 是**知识资产**("我们做了什么、是什么"),语义不同不应混放
146
- - `plans/` + `reviews/` + `specs/` 三者都在 `.qoder/` 下:它们是 ADD 开发流程的产物,面向 AI 和开发者,不属于公开文档
146
+ - `plans/` + `reviews/` + `specs/` 三者都在 `{{magicDir}}/` 下:它们是 ADD 开发流程的产物,面向 AI 和开发者,不属于公开文档
147
147
  - `plans/` 下同时放 plan + add-route + handoff:三者属于"需求理解与任务拆分"这个完整的大阶段,放在同一个目录保证阶段内文件的连续性
148
148
 
149
149
  ---
@@ -204,13 +204,13 @@ ADD 不是万能范式。用错了阶段反而拖慢迭代速度。
204
204
  ## 五、工作流三大阶段与目录映射
205
205
 
206
206
  ```
207
- 需求理解 + 任务拆分 → .qoder/plans/ (plan + add-route + handoff)
207
+ 需求理解 + 任务拆分 → {{magicDir}}/plans/ (plan + add-route + handoff)
208
208
 
209
209
 
210
- 评审 → .qoder/reviews/ (plan-review + roundN-spec-review)
210
+ 评审 → {{magicDir}}/reviews/ (plan-review + roundN-spec-review)
211
211
 
212
212
 
213
- Spec 执行 → .qoder/specs/ (三件套:spec + tasks + checklist)
213
+ Spec 执行 → {{magicDir}}/specs/ (三件套:spec + tasks + checklist)
214
214
  ```
215
215
 
216
216
  每个阶段的产物只放在一个目录下,不在多个目录重复存放。
@@ -223,12 +223,12 @@ Spec 执行 → .qoder/specs/ (三件套:spec + tasks + c
223
223
 
224
224
  | 阶段 | 文件 | 说明 |
225
225
  |------|------|------|
226
- | 需求方案 | `.qoder/plans/{{projectName}}-多轮对话能力专家链路优化统一状态管理-plan-v1.md` | 总体设计 |
227
- | 拆分拓扑 | `.qoder/plans/{{projectName}}-多轮对话能力专家链路优化统一状态管理-7轮原子事务拆分-add-route-v1.md` | 7 轮依赖拓扑 |
228
- | 方案评审 | `.qoder/reviews/{{projectName}}-多轮对话能力专家链路优化统一状态管理-方案评审-review-v1.md` | 可行性验证 |
229
- | 交接手册 | `.qoder/plans/{{projectName}}-多轮对话能力专家链路优化统一状态管理-7轮原子事务交接-handoff-v1.md` | 轮间输入输出 |
230
- | 第1轮 spec | `.qoder/specs/{{projectName}}-type-convergence-v1/` | 类型收敛三件套 |
231
- | 第1轮评审 | `.qoder/reviews/{{projectName}}-多轮对话能力专家链路优化统一状态管理-round1-类型收敛-thinkingLevel路由-spec-review-v1.md` | spec 人工 review |
226
+ | 需求方案 | `{{magicDir}}/plans/{{projectName}}-多轮对话能力专家链路优化统一状态管理-plan-v1.md` | 总体设计 |
227
+ | 拆分拓扑 | `{{magicDir}}/plans/{{projectName}}-多轮对话能力专家链路优化统一状态管理-7轮原子事务拆分-add-route-v1.md` | 7 轮依赖拓扑 |
228
+ | 方案评审 | `{{magicDir}}/reviews/{{projectName}}-多轮对话能力专家链路优化统一状态管理-方案评审-review-v1.md` | 可行性验证 |
229
+ | 交接手册 | `{{magicDir}}/plans/{{projectName}}-多轮对话能力专家链路优化统一状态管理-7轮原子事务交接-handoff-v1.md` | 轮间输入输出 |
230
+ | 第1轮 spec | `{{magicDir}}/specs/{{projectName}}-type-convergence-v1/` | 类型收敛三件套 |
231
+ | 第1轮评审 | `{{magicDir}}/reviews/{{projectName}}-多轮对话能力专家链路优化统一状态管理-round1-类型收敛-thinkingLevel路由-spec-review-v1.md` | spec 人工 review |
232
232
  | ... | ... | 第2-7 轮同理 |
233
233
 
234
234
  ---
@@ -237,7 +237,7 @@ Spec 执行 → .qoder/specs/ (三件套:spec + tasks + c
237
237
 
238
238
  本文档内容同时体现在:
239
239
 
240
- - **`.qoder/rules/project_rules.md`** 中的 ADD-8 规则(权威约束,AI 助手强制执行)
240
+ - **`{{magicDir}}/rules/project_rules.md`** 中的 ADD-8 规则(权威约束,AI 助手强制执行)
241
241
  - **`README.md`** 中的三、ADD 编程范式章节(面向外部读者的简明版本)
242
242
  - **本文档**(面向开发者的完整版本,包含案例和决策说明)
243
243
 
@@ -383,4 +383,4 @@ Step 8 收敛判断
383
383
  | `check_dps({ planKeyword })` | Step 0 末尾(进入 Step 1 前) | `"dps": { "enabled": true, "severity": "block", "threshold": 85 }` |
384
384
  | `check_rahs({ planKeyword })` | Step 4 末尾 + Step 8 收敛 | `"rahs": { "enabled": true, "severity": "block", "threshold": 90 }` |
385
385
 
386
- 策略文件位于 `.qoder/sync-policy.json`,重型 add-route 模板已内置对应的 §0.8 / §4.6 闸门段落。
386
+ 策略文件位于 `{{magicDir}}/sync-policy.json`,重型 add-route 模板已内置对应的 §0.8 / §4.6 闸门段落。
@@ -1,7 +1,7 @@
1
1
  # ADD 模板术语权威规范
2
2
 
3
3
  > **定位**:项目所有 ADD 模板的术语唯一真相源。模板修改、守卫校验、LLM prompt 均以此为准。
4
- > **消费方**:16 个模板、`doc-format-guard.sh`、`pre-tool-use.sh`、`AGENTS.md`、`.qoder/hooks/lib/vocabulary.sh`
4
+ > **消费方**:16 个模板、`doc-format-guard.sh`、`pre-tool-use.sh`、`AGENTS.md`、`{{magicDir}}/hooks/lib/vocabulary.sh`
5
5
  > **关联 Plan**:`{{projectName}}-add-template-standardization-plan-v1.md`
6
6
 
7
7
  ---
@@ -65,7 +65,7 @@
65
65
  > 当所有 `[T]` 编译期检查项均为 `[x]` 时(`[R]` 项可保持 `[ ]`),AI 必须执行:
66
66
  >
67
67
  > 1. **读取** `review-implementation-template.md`,逐项填写实现审查内容
68
- > 2. **读取** `review-runtime-template.md`,复制为 `.qoder/reviews/{project}-review-runtime.md`
68
+ > 2. **读取** `review-runtime-template.md`,复制为 `{{magicDir}}/reviews/{project}-review-runtime.md`
69
69
  > - 替换占位符(标题、关联文档路径)
70
70
  > - §1 发现列表初始化为 "尚无运行时发现"
71
71
  > - §1 末尾自动插入本 checklist 中所有 `[R]` 项的清单,标记为 "待运行时验证"
@@ -51,7 +51,7 @@
51
51
  ### 交接手册与 spec 的优先级
52
52
 
53
53
  - 本 handoff 是新对话的入口索引,负责说明Round位置、上下游依赖、文件边界、高风险误区、恢复关键词和审计闭环。
54
- - 具体实现细节以对应 `.qoder/specs/{spec-name}/spec.md`、`tasks.md`、`checklist.md` 为准。
54
+ - 具体实现细节以对应 `{{magicDir}}/specs/{spec-name}/spec.md`、`tasks.md`、`checklist.md` 为准。
55
55
  - 如果 handoff 摘要与 spec/tasks/checklist 存在颗粒度差异,以 spec/tasks/checklist 为准,不允许按 handoff 的简写自行简化实现。
56
56
  - 每轮完成后的 ADD-7 不只写入 `record_dev_operation`,还必须用 `query_audit_logs` 按 action/targetId/keyword 回查确认落库。
57
57
 
@@ -114,9 +114,9 @@ query_audit_logs({ keyword: "{ACTION_2}" })
114
114
  1. session-init SKILL(强制前置)
115
115
  2. query_audit_logs({}) → 查看最近所有操作
116
116
  3. query_audit_logs({ keyword: "{汇总关键词}" }) → 看本轮所有记录(应该返回 {N} 条)
117
- 4. read ".qoder/specs/{spec-name}/spec.md"
118
- 5. read ".qoder/specs/{spec-name}/tasks.md"
119
- 6. read ".qoder/specs/{spec-name}/checklist.md"
117
+ 4. read "{{magicDir}}/specs/{spec-name}/spec.md"
118
+ 5. read "{{magicDir}}/specs/{spec-name}/tasks.md"
119
+ 6. read "{{magicDir}}/specs/{spec-name}/checklist.md"
120
120
  ```
121
121
 
122
122
  Step 3 搜索 `"{汇总关键词}"` 可以一次性拉取全部本轮审计记录,是最快的一键恢复方式。
@@ -127,9 +127,9 @@ Step 3 搜索 `"{汇总关键词}"` 可以一次性拉取全部本轮审计记
127
127
 
128
128
  ### spec 文件
129
129
 
130
- - `.qoder/specs/{spec-name}/spec.md`
131
- - `.qoder/specs/{spec-name}/tasks.md`
132
- - `.qoder/specs/{spec-name}/checklist.md`
130
+ - `{{magicDir}}/specs/{spec-name}/spec.md`
131
+ - `{{magicDir}}/specs/{spec-name}/tasks.md`
132
+ - `{{magicDir}}/specs/{spec-name}/checklist.md`
133
133
 
134
134
  ### 架构文档
135
135
 
@@ -258,9 +258,9 @@ query_audit_logs({ keyword: "{汇总关键词}" })
258
258
 
259
259
  1. 执行 session-init SKILL
260
260
  2. 执行 add-paradigm SKILL(含 Step 0 文档先行)
261
- 3. 读本轮对应 .qoder/specs/{spec-name}/spec.md(含其中的「文档先行三步闭环」章节,按 spec 的指示更新架构文档)
262
- 4. 读本轮对应 .qoder/specs/{spec-name}/tasks.md
263
- 5. 读本轮对应 .qoder/specs/{spec-name}/checklist.md
261
+ 3. 读本轮对应 {{magicDir}}/specs/{spec-name}/spec.md(含其中的「文档先行三步闭环」章节,按 spec 的指示更新架构文档)
262
+ 4. 读本轮对应 {{magicDir}}/specs/{spec-name}/tasks.md
263
+ 5. 读本轮对应 {{magicDir}}/specs/{spec-name}/checklist.md
264
264
  6. 按 tasks.md 顺序执行代码修改
265
265
  7. 每完成一个 Task:读 checklist.md → 逐项验证 → **附可验证证据** → 勾选
266
266
  8. 每完成一个文件修改:record_dev_operation 写入 ADD-7 审计
@@ -120,7 +120,7 @@ ORDER BY "createdAt" DESC;
120
120
  - grep 验证命令:
121
121
 
122
122
  ```bash
123
- grep -R "{关键字}" .qoder/specs/
123
+ grep -R "{关键字}" {{magicDir}}/specs/
124
124
  ```
125
125
 
126
126
  ---
@@ -6,6 +6,8 @@
6
6
 
7
7
  **我要做…** | **用这个模板** | **为什么**
8
8
  --|--|--
9
+ | 写产品需求文档 | `prd-standard-template.md` | 含 Plan 拆分建议 + 裁决层关联 |
10
+ | 增量更新 PRD | `prd-incremental-template.md` | 在原 PRD 上追加/修改 |
9
11
  | 新建开发任务(需要架构设计) | `standard-plan-template.md` | 含方案选型、架构设计、依赖图,适合复杂改动(**默认**)
10
12
  | 新建开发任务(简单修复) | `simple-plan-template.md` | 内联 Handoff,无需独立 spec 文件(仅小修改/用户主动提)
11
13
  | 定义功能需求 | `spec-template.md` | Why/What/Impact/Requirements
@@ -20,12 +22,14 @@
20
22
  | 运行时评审 | `review-runtime-template.md` | 发现列表、流程改进
21
23
  | 写代码审查报告 | `report-template.md` | Issue 总览、分类统计
22
24
  | 写运行时异常报告 | `runtime-report-template.md` | 发现列表、关联 Issue
23
- | 写修复验证报告 | `fix-verification-template.md` | 逐条对照、修复趋势
25
+ | 写修复验证报告 | `fix-verification-template.md` | 逐条对照、修复趋势 |
24
26
 
25
27
  ## 模板→Schema 索引
26
28
 
27
29
  | 模板 | Schema |
28
30
  |------|------|
31
+ | `prd-standard-template.md` | `prd-standard-template.schema.json` |
32
+ | `prd-incremental-template.md` | `prd-incremental-template.schema.json` |
29
33
  | `standard-plan-template.md` | `standard-plan-template.schema.json` |
30
34
  | `simple-plan-template.md` | `simple-plan-template.schema.json` |
31
35
  | `spec-template.md` | `spec-template.schema.json` |
@@ -0,0 +1,103 @@
1
+ # {需求名称} PRD 增量更新 v{版本号}
2
+
3
+ > PRD 增量模板:用于在已有 PRD 基础上追加/修改/删除需求。不是独立文档,是 PRD 的变更记录。
4
+ > 新建 PRD 请使用 `prd-standard-template.md`。
5
+
6
+ **创建时间**: {ISO 时间戳}
7
+ **作者**: {作者标识}
8
+ **状态**: 草稿 / 评审中 / 已确认
9
+ **基于 PRD**: `docs/{项目}/knowledge/00-需求/{原PRD文件名}.md` v{原版本号}
10
+
11
+ ---
12
+
13
+ ## 变更摘要
14
+
15
+ | 类型 | 数量 | 说明 |
16
+ |------|:--:|------|
17
+ | 新增 | N | {一句话} |
18
+ | 修改 | N | {一句话} |
19
+ | 删除 | N | {一句话} |
20
+
21
+ ---
22
+
23
+ ## 一、新增内容
24
+
25
+ ### 1.1 {新增项1标题}
26
+
27
+ {新增的功能描述、用户场景、验收标准等,格式与标准 PRD 对应章节一致}
28
+
29
+ ### 1.2 {新增项2标题}
30
+
31
+ {内容}
32
+
33
+ ---
34
+
35
+ ## 二、修改内容
36
+
37
+ ### 2.1 {修改项1标题}
38
+
39
+ > 原 PRD §{章节号} "{原章节标题}"
40
+
41
+ **变更前**:
42
+ {原有内容摘要}
43
+
44
+ **变更后**:
45
+ {修改后内容}
46
+
47
+ **变更原因**:{一句话}
48
+
49
+ ### 2.2 {修改项2标题}
50
+
51
+ > 原 PRD §{章节号} "{原章节标题}"
52
+
53
+ **变更前**:
54
+ {原有内容摘要}
55
+
56
+ **变更后**:
57
+ {修改后内容}
58
+
59
+ **变更原因**:{一句话}
60
+
61
+ ---
62
+
63
+ ## 三、删除内容
64
+
65
+ ### 3.1 {删除项1标题}
66
+
67
+ > 原 PRD §{章节号} "{原章节标题}"
68
+
69
+ **删除内容**:{被删除的内容摘要}
70
+
71
+ **删除原因**:{一句话}
72
+
73
+ ---
74
+
75
+ ## 四、Plan 拆分影响
76
+
77
+ > 本次变更是否影响了原 PRD 的 Plan 拆分建议?必填——增量改动可能改变 Plan 链路。
78
+
79
+ **影响判定**:无影响 / 新增 Plan / 调整 Plan 依赖 / 废弃 Plan
80
+
81
+ **变更后的 Plan 链路**:
82
+
83
+ ```text
84
+ {更新后的 Plan 链路,格式与标准 PRD §10.1 一致}
85
+ ```
86
+
87
+ ---
88
+
89
+ ## 五、裁决层影响
90
+
91
+ > 本次变更涉及哪些裁决规则的增删改?必填。
92
+
93
+ | 操作 | 规则 | 裁决条目 | 说明 |
94
+ |------|------|------|------|
95
+ | 新增 / 修改 / 删除 | {规则描述} | `[[caijue]] id="{entry-id}"` | {一句话} |
96
+
97
+ ---
98
+
99
+ ## 六、关联文档
100
+
101
+ | 类型 | 路径 | 说明 |
102
+ |------|------|------|
103
+ | 原 PRD | `docs/{项目}/knowledge/00-需求/{原PRD文件名}.md` | 本次更新基于的 PRD |
@@ -0,0 +1,32 @@
1
+ {
2
+ "template": "prd-incremental-template.md",
3
+ "description": "增量 PRD 校验只验证 ADD 交互接口——Plan 拆分影响 + 裁决层影响。变更内容本身是人工写作,不做结构校验。",
4
+ "sections": [
5
+ {
6
+ "id": "plan-impact",
7
+ "heading": "## 四、Plan 拆分影响",
8
+ "required": true,
9
+ "description": "增量改动必须声明是否影响原 PRD 的 Plan 拆分链路。"
10
+ },
11
+ {
12
+ "id": "caijuehub-impact",
13
+ "heading": "## 五、裁决层影响",
14
+ "required": true,
15
+ "description": "增量改动必须声明涉及哪些裁决规则的增删改。"
16
+ }
17
+ ],
18
+ "placeholders": [
19
+ "{需求名称}",
20
+ "{版本号}",
21
+ "{ISO 时间戳}",
22
+ "{作者标识}",
23
+ "{原PRD文件名}",
24
+ "{原版本号}"
25
+ ],
26
+ "forbidden_terms": [
27
+ "TBD",
28
+ "Phase",
29
+ "Step",
30
+ "Task"
31
+ ]
32
+ }
@@ -0,0 +1,219 @@
1
+ # {需求名称} PRD v{版本号}
2
+
3
+ > PRD 标准模板:用于新建产品需求文档。定义"做什么、为谁做、做到什么程度"。向下游 Plan/Review/Spec 提供唯一真值输入。
4
+ > 适用场景:系统级规划 | 功能/模块级需求 | AI 智能体能力定义。
5
+ > 修改已有 PRD 请使用 `prd-incremental-template.md`。
6
+ > 可选章节(§五 §六 §七 §九)按场景选用,不适用则删除。
7
+
8
+ **创建时间**: {ISO 时间戳}
9
+ **作者**: {作者标识}
10
+ **状态**: 草稿 / 评审中 / 已确认
11
+
12
+ ---
13
+
14
+ ## 一、背景与目标
15
+
16
+ ### 1.1 背景
17
+
18
+ {一句话描述当前面临的问题或机会}
19
+
20
+ ### 1.2 目标
21
+
22
+ - {目标1}
23
+ - {目标2}
24
+
25
+ ### 1.3 范围
26
+
27
+ | 维度 | 本次范围 | 明确不做 |
28
+ |------|---------|---------|
29
+ | {维度1} | {做} | {不做} |
30
+ | {维度2} | {做} | {不做} |
31
+
32
+ ---
33
+
34
+ ## 二、目标用户与场景
35
+
36
+ ### 2.1 用户角色
37
+
38
+ | 角色 | 描述 | 核心诉求 |
39
+ |------|------|---------|
40
+ | {角色1} | {一句话} | {诉求} |
41
+ | {角色2} | {一句话} | {诉求} |
42
+
43
+ ### 2.2 核心场景
44
+
45
+ | 场景 | 触发条件 | 预期行为 | 优先级 |
46
+ |------|---------|---------|:--:|
47
+ | {场景1} | {条件} | {行为} | P0 |
48
+ | {场景2} | {条件} | {行为} | P1 |
49
+
50
+ ---
51
+
52
+ ## 三、功能需求
53
+
54
+ ### 3.1 功能清单
55
+
56
+ | 编号 | 功能 | 描述 | 优先级 |
57
+ |:----|------|------|:--:|
58
+ | F1 | {功能名} | {一句话描述} | P0 |
59
+ | F2 | {功能名} | {一句话描述} | P1 |
60
+
61
+ ### 3.2 功能详述
62
+
63
+ #### F1: {功能名称}
64
+
65
+ - **输入**: {用户输入/系统输入}
66
+ - **处理逻辑**: {核心流程}
67
+ - **输出**: {预期产出}
68
+ - **交互说明**: {UI 交互要点,无 UI 则写"无"}
69
+
70
+ #### F2: {功能名称}
71
+
72
+ - **输入**: {用户输入/系统输入}
73
+ - **处理逻辑**: {核心流程}
74
+ - **输出**: {预期产出}
75
+ - **交互说明**: {UI 交互要点}
76
+
77
+ ---
78
+
79
+ ## 四、非功能需求
80
+
81
+ | 类别 | 要求 |
82
+ |------|------|
83
+ | 性能 | {如:页面加载 < 2s} |
84
+ | 安全 | {如:所有 API 需认证} |
85
+ | 可用性 | {如:支持主流浏览器} |
86
+ | 数据 | {如:操作日志保留 90 天} |
87
+
88
+ ---
89
+
90
+ ## 五、智能体能力契约(仅 AI 智能体 PRD 时使用)
91
+
92
+ > 本章节定义智能体的能力边界和裁决逻辑。非智能体需求可删除。
93
+
94
+ ### 5.1 能力清单
95
+
96
+ | 能力 | 描述 | 触发条件 | 输出格式 |
97
+ |------|------|---------|---------|
98
+ | {能力1} | {描述} | {何时触发} | {输出 schema} |
99
+
100
+ ### 5.2 裁决规则
101
+
102
+ 当多个能力冲突时,按以下优先级裁决:
103
+
104
+ 1. {规则1}
105
+ 2. {规则2}
106
+
107
+ ### 5.3 能力边界
108
+
109
+ - **能做**: {范围}
110
+ - **不能做**: {边界约束}
111
+ - **降级策略**: {能力不可用时的 fallback}
112
+
113
+ ---
114
+
115
+ ## 六、系统架构约束(仅系统级规划时使用)
116
+
117
+ > 本章节定义顶层架构的硬约束。功能级需求可删除。
118
+
119
+ ### 6.1 子系统划分
120
+
121
+ | 子系统 | 职责 | 边界 |
122
+ |--------|------|------|
123
+ | {子系统1} | {职责} | {边界} |
124
+
125
+ ### 6.2 技术选型约束
126
+
127
+ | 层级 | 选型 | 约束条件 |
128
+ |------|------|---------|
129
+ | {前端/后端/数据} | {技术} | {条件} |
130
+
131
+ ---
132
+
133
+ ## 七、接口与数据(涉及 API / 数据模型时使用)
134
+
135
+ > 本章节定义关键接口契约和数据模型。不涉及可删除。
136
+
137
+ ### 7.1 关键接口
138
+
139
+ | 接口 | 方法 | 路径 | 说明 |
140
+ |------|:--:|------|------|
141
+ | {接口名} | GET/POST | `/api/...` | {说明} |
142
+
143
+ ### 7.2 核心数据实体
144
+
145
+ | 实体 | 核心字段 | 关系 |
146
+ |------|---------|------|
147
+ | {实体1} | {字段列表} | {关联} |
148
+
149
+ ---
150
+
151
+ ## 八、验收标准
152
+
153
+ - [ ] {验收条件1}
154
+ - [ ] {验收条件2}
155
+ - [ ] {验收条件3}
156
+
157
+ ---
158
+
159
+ ## 九、MVP 范围与迭代计划
160
+
161
+ > 单次交付无需拆分时,写"本次全部交付"即可。需分阶段时填写。
162
+
163
+ | 阶段 | 范围 | 交付物 | 预计工期 |
164
+ |:----|------|------|------|
165
+ | Phase 1 核心 | {核心功能集合} | {交付物} | {周数} |
166
+ | Phase 2 增强 | {增强功能} | {交付物} | {周数} |
167
+
168
+ ---
169
+
170
+ ## 十、Plan 拆分建议
171
+
172
+ > 本章节指导下游 AI 如何将本 PRD 拆分为 Plan。必填——没有这条,AI 拿到 PRD 不知道从哪下手。
173
+
174
+ ### 10.1 推荐 Plan 链路
175
+
176
+ ```text
177
+ Plan 1: {plan名称} ── 聚焦: {子功能描述}
178
+ │ 依赖: 无
179
+
180
+ Plan 2: {plan名称} ── 聚焦: {子功能描述}
181
+ │ 依赖: Plan 1 完成的 {产出物}
182
+
183
+ Plan 3: {plan名称} ── 聚焦: {子功能描述}
184
+ 依赖: Plan 2 完成的 {产出物}
185
+ ```
186
+
187
+ ### 10.2 Plan 间依赖说明
188
+
189
+ | 依赖关系 | 原因 |
190
+ |---------|------|
191
+ | Plan 2 依赖 Plan 1 | {为什么必须先做 Plan 1} |
192
+ | Plan 3 依赖 Plan 2 | {为什么必须先做 Plan 2} |
193
+
194
+ ---
195
+
196
+ ## 十一、裁决层关联
197
+
198
+ > 本章节列出本 PRD 涉及的规则和边界,哪些建议集中到 `caijue.toml` 管理。必填——PRD 中的约束不进入裁决层,等于没有被强制执行。
199
+
200
+ ### 11.1 建议集中裁决的规则
201
+
202
+ | 规则 | 类型 | 建议裁决条目 | 说明 |
203
+ |------|------|------|------|
204
+ | {规则描述} | edge / strategy / contract | `[[caijue]] id="{entry-id}"` | {一句话} |
205
+
206
+ ### 11.2 边界约束
207
+
208
+ | 约束 | 说明 |
209
+ |------|------|
210
+ | {边界1} | {如:禁止跨 Expert 共享 Collection} |
211
+ | {边界2} | {如:单次检索 topK 上限 20} |
212
+
213
+ ---
214
+
215
+ ## 十二、关联文档
216
+
217
+ | 类型 | 路径 | 说明 |
218
+ |------|------|------|
219
+ | 相关需求 | `docs/{项目}/knowledge/00-需求/{关联PRD}.md` | {与本文档的关系} |