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
@@ -1,10 +1,10 @@
1
- # farm-agent-add-coder-npm-package-add-route-v1
1
+ # add-coder-add-coder-npm-package-add-route-v1
2
2
 
3
3
  > **定位**:Plan → ADD Step 执行映射。不重复 Plan 的架构设计和 Specs 的任务细节——只定义每个 ADD Step 在本 Plan 中的具体动作、输入、产出。
4
4
  >
5
- > **模式**:重型(Heavyweight)——每一步产出检查强制执行"验证并更新项目状态"。本项目为 npm 包工程化,代码产物在 `packages/add-coder/`,不修改 farm-agent 业务代码。
5
+ > **模式**:重型(Heavyweight)——每一步产出检查强制执行"验证并更新项目状态"。本项目为 npm 包工程化,代码产物在 `packages/add-coder/`,不修改 add-coder 业务代码。
6
6
  >
7
- > **绑定**:Plan: `.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-plan-v1.md` · Spec: `.qoder/specs/farm-agent-add-coder-npm-package/spec.md` ✅ · Tasks: `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md` ✅ · Handoff: `.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-handoff-v1.md` ✅
7
+ > **绑定**:Plan: `{{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-plan-v1.md` · Spec: `{{magicDir}}/specs/add-coder-add-coder-npm-package/spec.md` ✅ · Tasks: `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md` ✅ · Handoff: `{{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-handoff-v1.md` ✅
8
8
 
9
9
  ---
10
10
 
@@ -13,9 +13,9 @@
13
13
  **目的**:代码动工前,确认 Plan + Specs + Handoff 三元组齐全,项目文档反映即将实现的变更。
14
14
 
15
15
  **输入**:
16
- - 上游 Review:`.qoder/reviews/farm-agent-add-coder-npm-package-review-v1.md` ✅
17
- - 上游 Review v2:`.qoder/reviews/farm-agent-add-coder-npm-package-review-v2.md` ✅ — 代码实现评审
18
- - Plan 文档:`.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-plan-v1.md` ✅
16
+ - 上游 Review:`{{magicDir}}/reviews/add-coder-add-coder-npm-package-review-v1.md` ✅
17
+ - 上游 Review v2:`{{magicDir}}/reviews/add-coder-add-coder-npm-package-review-v2.md` ✅ — 代码实现评审
18
+ - Plan 文档:`{{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-plan-v1.md` ✅
19
19
 
20
20
  **动作**:
21
21
  1. 确认 Specs 三元组就绪:`spec.md` + `tasks.md` + `checklist.md` ✅
@@ -44,7 +44,7 @@
44
44
 
45
45
  ## Step 1:功能分析与审计打点定义
46
46
 
47
- **目的**:本 Plan 为 npm 包工程化,不修改 farm-agent 业务代码。无需新增 `AgentAuditPhase` 字面量。审计通过 `record_dev_operation`(ADD-7)落库 DevOperation 表。
47
+ **目的**:本 Plan 为 npm 包工程化,不修改 add-coder 业务代码。无需新增 `AgentAuditPhase` 字面量。审计通过 `record_dev_operation`(ADD-7)落库 DevOperation 表。
48
48
 
49
49
  **输入**:
50
50
  - Plan §3 的 Task 列表(6 轮 11 个 Task)
@@ -60,7 +60,7 @@
60
60
  | 审计方式 | 适用场景 | 工具 |
61
61
  |---------|---------|------|
62
62
  | `record_dev_operation` | 文件变更(CREATE/MODIFY/DELETE) | MCP 工具 |
63
- | 无 AgentAuditPhase | 本 Plan 不修改 farm-agent 业务代码 | — |
63
+ | 无 AgentAuditPhase | 本 Plan 不修改 add-coder 业务代码 | — |
64
64
 
65
65
  ---
66
66
 
@@ -108,7 +108,7 @@
108
108
  | 4 | 3 | Claude 适配器实现 | `templates/adapters/claude/`、`src/adapters/claude/renderer.ts` | `record_dev_operation` (CREATE) | — | 第2轮 Task 0 | ⬜ |
109
109
  | 5 | 3 | Qoder 适配器实现 | `templates/adapters/qoder/`、`src/adapters/qoder/renderer.ts` | `record_dev_operation` (CREATE/MODIFY) | — | 第3轮 Task 0 | ⬜ |
110
110
  | 6 | 3 | VS Code 适配器实现 | `templates/adapters/vscode/`、`src/adapters/vscode/renderer.ts` | `record_dev_operation` (CREATE/MODIFY) | — | 第3轮 Task 1 | ⬜ |
111
- | 6b | 3 | 三目录部署(core→.add/.qoder/.claude) | `src/core/renderer.ts`、`src/cli/commands/init.ts`、adapter renderers | `record_dev_operation` (MODIFY) | — | 第3轮 Task 2 | ⬜ |
111
+ | 6b | 3 | 三目录部署(core→.add/{{magicDir}}/.claude) | `src/core/renderer.ts`、`src/cli/commands/init.ts`、adapter renderers | `record_dev_operation` (MODIFY) | — | 第3轮 Task 2 | ⬜ |
112
112
  | 7 | 4 | 配置系统(Zod schema) | `src/config/schema.ts`、`src/config/defaults.ts` | `record_dev_operation` (CREATE) | — | 无 | ⬜ |
113
113
  | 8 | 4 | CLI 重写 | `src/cli/`、`bin/add-coder.js`、`tsup.config.ts` | `record_dev_operation` (CREATE/MODIFY) | — | 第1轮 Task 0 + 第4轮 Task 0 | ⬜ |
114
114
  | 9 | 5 | 集成测试 + 文档 + devlog | 测试文件、`README.md`、`package.json` | `record_dev_operation` (CREATE/MODIFY) | — | 全部前序 Task | ⬜ |
@@ -1,6 +1,6 @@
1
1
  # add-coder npm 包 — 6 轮原子事务交接手册
2
2
 
3
- > **适用场景**:6 轮原子事务变更,每轮独立收敛。将 ADD 范式从 farm-agent 内部工具改造为可发布的 npm 包。
3
+ > **适用场景**:6 轮原子事务变更,每轮独立收敛。将 ADD 范式从 add-coder 内部工具改造为可发布的 npm 包。
4
4
  >
5
5
  > **用途**:每个新对话开始时,把对应轮次章节粘贴给 LLM。
6
6
 
@@ -8,9 +8,9 @@
8
8
 
9
9
  ## 全局元信息
10
10
 
11
- - **父 Plan**: `farm-agent-add-coder-npm-package-plan-v1.md`
12
- - **原子事务拓扑**: `farm-agent-add-coder-npm-package-add-route-v1.md`
13
- - **目标仓库**: `/home/xmm/ai/farm-agent`
11
+ - **父 Plan**: `add-coder-add-coder-npm-package-plan-v1.md`
12
+ - **原子事务拓扑**: `add-coder-add-coder-npm-package-add-route-v1.md`
13
+ - **目标仓库**: `/home/xmm/ai/add-coder`
14
14
  - **总文件数**: 约 90 个独立文件
15
15
  - **轮次数**: 6 轮局部闭包
16
16
  - **拆分原则**: 以业务原子闭包为主,以对话上下文容量为辅
@@ -47,7 +47,7 @@
47
47
 
48
48
  ### 交接手册与 spec 的优先级
49
49
 
50
- - 本 handoff 是新对话的入口索引。具体实现细节以 `.qoder/specs/farm-agent-add-coder-npm-package/spec.md`、`tasks.md`、`checklist.md` 为准。
50
+ - 本 handoff 是新对话的入口索引。具体实现细节以 `{{magicDir}}/specs/add-coder-add-coder-npm-package/spec.md`、`tasks.md`、`checklist.md` 为准。
51
51
  - 如果 handoff 摘要与 spec/tasks/checklist 存在颗粒度差异,以 spec/tasks/checklist 为准。
52
52
 
53
53
  ---
@@ -83,9 +83,9 @@ query_audit_logs({ targetId: "packages/add-coder/templates/core/prisma/add.prism
83
83
  ```
84
84
  1. session-init SKILL
85
85
  2. query_audit_logs({ planKeyword: "add-coder-npm-package" }) → 查看本轮 4 条记录
86
- 3. read ".qoder/specs/farm-agent-add-coder-npm-package/spec.md"
87
- 4. read ".qoder/specs/farm-agent-add-coder-npm-package/tasks.md"(第1轮)
88
- 5. read ".qoder/specs/farm-agent-add-coder-npm-package/checklist.md"(一、二、四)
86
+ 3. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/spec.md"
87
+ 4. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md"(第1轮)
88
+ 5. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md"(一、二、四)
89
89
  ```
90
90
 
91
91
  ### 原子事务目标
@@ -96,9 +96,9 @@ query_audit_logs({ targetId: "packages/add-coder/templates/core/prisma/add.prism
96
96
 
97
97
  ### spec 文件
98
98
 
99
- - `.qoder/specs/farm-agent-add-coder-npm-package/spec.md`
100
- - `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md`(第1轮)
101
- - `.qoder/specs/farm-agent-add-coder-npm-package/checklist.md`(一、二、四)
99
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/spec.md`
100
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md`(第1轮)
101
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md`(一、二、四)
102
102
 
103
103
  ### 你要改的文件(Task 1.0: 2 新建 + Task 1.1: ~70 修改)
104
104
 
@@ -106,11 +106,11 @@ query_audit_logs({ targetId: "packages/add-coder/templates/core/prisma/add.prism
106
106
  |------|------|--------|
107
107
  | `packages/add-coder/templates/core/prisma/add.prisma` | 新建 | DevOperation + AuditLog 模型定义 |
108
108
  | `packages/add-coder/src/cli/prisma-injector.ts` | 新建 | Prisma 注入器(检测→复制→迁移→generate) |
109
- | `templates/` 下 15 个 `.md` 模板 | 修改 | `farm-agent-*` → `{{projectName}}-*` |
109
+ | `templates/` 下 15 个 `.md` 模板 | 修改 | `add-coder-*` → `{{projectName}}-*` |
110
110
  | `skills/` 下 2 个 SKILL.md | 修改 | `/home/xmm/` → `{{projectRoot}}/` |
111
111
  | `scripts/mcp-server.ts` + `add-coder-mcp-server.ts` | 修改 | 数据库密码 → `process.env.DATABASE_URL` |
112
- | `.qoder/settings.json` / `.qoder/mcp.json` | 修改 | 硬编码路径 → 占位符 |
113
- | `.qoder/hooks/` 下 14 个 `.sh` + `lib/` | 修改 | 项目名提取逻辑 |
112
+ | `{{magicDir}}/settings.json` / `{{magicDir}}/mcp.json` | 修改 | 硬编码路径 → 占位符 |
113
+ | `{{magicDir}}/hooks/` 下 14 个 `.sh` + `lib/` | 修改 | 项目名提取逻辑 |
114
114
  | `.vscode/` 下 4 个文件 | 修改 | MCP 路径 → `{{projectRoot}}` |
115
115
  | `reports/` 下 7 个文件 | 修改 | 硬编码 → `{{projectName}}` |
116
116
  | `packages/add-coder/src/core/renderer.ts` | 新建 | 核心渲染器 |
@@ -182,7 +182,7 @@ query_audit_logs({ targetId: "packages/add-coder/src/adapters/" })
182
182
  **恢复顺序建议**:
183
183
  ```
184
184
  1. query_audit_logs({ planKeyword: "add-coder-npm-package" })
185
- 2. read ".qoder/specs/farm-agent-add-coder-npm-package/tasks.md"(第2轮)
185
+ 2. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md"(第2轮)
186
186
  ```
187
187
 
188
188
  ### 原子事务目标
@@ -191,7 +191,7 @@ query_audit_logs({ targetId: "packages/add-coder/src/adapters/" })
191
191
 
192
192
  ### spec 文件
193
193
 
194
- - `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md`(第2轮)
194
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md`(第2轮)
195
195
 
196
196
  ### 你要改的文件(22 迁移 + 4 新建)
197
197
 
@@ -206,9 +206,9 @@ query_audit_logs({ targetId: "packages/add-coder/src/adapters/" })
206
206
  | `templates/scripts/` | `templates/core/scripts/` | 迁移 |
207
207
  | `templates/reports/` | `templates/core/reports/` | 迁移 |
208
208
  | `templates/tools/` | `templates/core/tools/` | 迁移 |
209
- | `templates/.qoder/hooks/` | `templates/adapters/qoder/hooks/` | 迁移 |
210
- | `templates/.qoder/settings.json` | `templates/adapters/qoder/settings.json` | 迁移 |
211
- | `templates/.qoder/mcp.json` | `templates/adapters/qoder/mcp.json` | 迁移 |
209
+ | `templates/{{magicDir}}/hooks/` | `templates/adapters/qoder/hooks/` | 迁移 |
210
+ | `templates/{{magicDir}}/settings.json` | `templates/adapters/qoder/settings.json` | 迁移 |
211
+ | `templates/{{magicDir}}/mcp.json` | `templates/adapters/qoder/mcp.json` | 迁移 |
212
212
  | `templates/.vscode/` (4) | `templates/adapters/vscode/` | 迁移 |
213
213
  | — | `templates/adapters/claude/` | 新建空壳 |
214
214
  | — | `templates/shared/hooks-lib/common.sh` | 新建 |
@@ -258,8 +258,8 @@ query_audit_logs({ targetId: "packages/add-coder/src/adapters/claude/renderer.ts
258
258
  **恢复顺序建议**:
259
259
  ```
260
260
  1. query_audit_logs({ planKeyword: "add-coder-npm-package" })
261
- 2. read ".qoder/specs/farm-agent-add-coder-npm-package/tasks.md"(第3轮)
262
- 3. read ".qoder/specs/farm-agent-add-coder-npm-package/checklist.md"(三)
261
+ 2. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md"(第3轮)
262
+ 3. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md"(三)
263
263
  ```
264
264
 
265
265
  ### 原子事务目标
@@ -268,8 +268,8 @@ query_audit_logs({ targetId: "packages/add-coder/src/adapters/claude/renderer.ts
268
268
 
269
269
  ### spec 文件
270
270
 
271
- - `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md`(第3轮)
272
- - `.qoder/specs/farm-agent-add-coder-npm-package/checklist.md`(三)
271
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md`(第3轮)
272
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md`(三)
273
273
 
274
274
  ### 你要改的文件(Task 3.0 Claude: 14 新建 / Task 3.1 Qoder: 3 / Task 3.2 VS Code: 3)
275
275
 
@@ -300,7 +300,7 @@ query_audit_logs({ targetId: "packages/add-coder/src/adapters/claude/renderer.ts
300
300
  #### 已完成验证
301
301
 
302
302
  - `npx add-coder init --adapter claude` 生成 `.claude/` 目录 ✅
303
- - `npx add-coder init --adapter qoder` 生成 `.qoder/` 目录 ✅
303
+ - `npx add-coder init --adapter qoder` 生成 `{{magicDir}}/` 目录 ✅
304
304
  - `npx add-coder init --adapter vscode` 生成 `.vscode/` 目录 ✅
305
305
 
306
306
  ---
@@ -336,8 +336,8 @@ query_audit_logs({ targetId: "packages/add-coder/src/cli/commands/init.ts" })
336
336
  **恢复顺序建议**:
337
337
  ```
338
338
  1. query_audit_logs({ planKeyword: "add-coder-npm-package" })
339
- 2. read ".qoder/specs/farm-agent-add-coder-npm-package/tasks.md"(第4轮)
340
- 3. read ".qoder/specs/farm-agent-add-coder-npm-package/checklist.md"(五)
339
+ 2. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md"(第4轮)
340
+ 3. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md"(五)
341
341
  ```
342
342
 
343
343
  ### 原子事务目标
@@ -346,8 +346,8 @@ query_audit_logs({ targetId: "packages/add-coder/src/cli/commands/init.ts" })
346
346
 
347
347
  ### spec 文件
348
348
 
349
- - `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md`(第4轮)
350
- - `.qoder/specs/farm-agent-add-coder-npm-package/checklist.md`(五)
349
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md`(第4轮)
350
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md`(五)
351
351
 
352
352
  ### 你要改的文件(Task 4.0: 2 新建 + Task 4.1: 10 文件)
353
353
 
@@ -412,8 +412,8 @@ query_audit_logs({ targetId: "packages/add-coder/package.json" })
412
412
  **恢复顺序建议**:
413
413
  ```
414
414
  1. query_audit_logs({ planKeyword: "add-coder-npm-package" })
415
- 2. read ".qoder/specs/farm-agent-add-coder-npm-package/tasks.md"(第5轮)
416
- 3. read ".qoder/specs/farm-agent-add-coder-npm-package/checklist.md"(五、六、八)
415
+ 2. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md"(第5轮)
416
+ 3. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md"(五、六、八)
417
417
  ```
418
418
 
419
419
  ### 原子事务目标
@@ -422,8 +422,8 @@ query_audit_logs({ targetId: "packages/add-coder/package.json" })
422
422
 
423
423
  ### spec 文件
424
424
 
425
- - `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md`(第5轮)
426
- - `.qoder/specs/farm-agent-add-coder-npm-package/checklist.md`(五、六、八)
425
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md`(第5轮)
426
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md`(五、六、八)
427
427
 
428
428
  ### 你要改的文件(6 文件)
429
429
 
@@ -495,8 +495,8 @@ query_audit_logs({ targetId: "packages/add-coder/src/cli/detect.ts" })
495
495
  **恢复顺序建议**:
496
496
  ```
497
497
  1. query_audit_logs({ planKeyword: "add-coder-npm-package" })
498
- 2. read ".qoder/specs/farm-agent-add-coder-npm-package/tasks.md"(第6轮)
499
- 3. read ".qoder/specs/farm-agent-add-coder-npm-package/checklist.md"(七)
498
+ 2. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md"(第6轮)
499
+ 3. read "{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md"(七)
500
500
  4. 执行 npm run generate 确保 GENERATED 区块最新
501
501
  ```
502
502
 
@@ -507,9 +507,9 @@ query_audit_logs({ targetId: "packages/add-coder/src/cli/detect.ts" })
507
507
 
508
508
  ### spec 文件
509
509
 
510
- - `.qoder/specs/farm-agent-add-coder-npm-package/spec.md`(Requirement: CaijueHub 裁决层)
511
- - `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md`(第6轮)
512
- - `.qoder/specs/farm-agent-add-coder-npm-package/checklist.md`(七)
510
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/spec.md`(Requirement: CaijueHub 裁决层)
511
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md`(第6轮)
512
+ - `{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md`(七)
513
513
 
514
514
  ### 你要改的文件(~16 个)
515
515
 
@@ -610,11 +610,11 @@ npm run generate → transcribe.ts → GENERATED 区块 │ injectPrisma
610
610
  | caijue.toml | 无 | 索引注册 4 个策略 | 新增 |
611
611
  | transcribe.ts | 无 | GENERATED 区块产出引擎 | 新增 |
612
612
  | 策略文件 | 无 | GENERATED+USER CODE 双区块模式 | 新增 |
613
- | 模板部署策略 | 仅 `.add/` | `.qoder/` `.claude/` 同时部署 core 内容 | IDE 只认自身 magic path,需三者各自完整 |
613
+ | 模板部署策略 | 仅 `.add/` | `{{magicDir}}/` `.claude/` 同时部署 core 内容 | IDE 只认自身 magic path,需三者各自完整 |
614
614
  | `templates/core/prisma/` | add.prisma 模板 | 删除,由 injectPrisma 直接处理 | Prisma 文件不应在 `.add/` 下 |
615
615
  | plans/specs 示例 | 无 | `templates/core/plans/` `specs/` 含 add-coder 示例 | 用户首次 init 即可看到完整 ADD 文档样例 |
616
616
  | 三目录部署 | 仅 `.add/` | Plan 已设计,`renderCore()` 改造待执行 | 见 Plan §3.2 改造待执行清单 |
617
- | Review v2 回流 | 无 | `.qoder/reviews/farm-agent-add-coder-npm-package-review-v2.md` | 代码实现评审:2 条 P0(spawnSync catch 失能、ask 重复定义)在 Plan §4.8 回流,P0-1 已补充至 Task 1.0 验收项 |
617
+ | Review v2 回流 | 无 | `{{magicDir}}/reviews/add-coder-add-coder-npm-package-review-v2.md` | 代码实现评审:2 条 P0(spawnSync catch 失能、ask 重复定义)在 Plan §4.8 回流,P0-1 已补充至 Task 1.0 验收项 |
618
618
 
619
619
  ## §8 验证结果
620
620
 
@@ -650,15 +650,15 @@ npm run generate → transcribe.ts → GENERATED 区块 │ injectPrisma
650
650
 
651
651
  你在执行 add-coder npm 包工程化的 [第N轮]。
652
652
  上游 [第1轮~第N-1轮] 已完成。
653
- 先读 .qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-handoff-v1.md 的 <第N轮> 章节。
653
+ 先读 {{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-handoff-v1.md 的 <第N轮> 章节。
654
654
 
655
655
  ## 启动步骤(按顺序)
656
656
 
657
657
  1. 执行 session-init SKILL
658
658
  2. 执行 add-paradigm SKILL
659
- 3. 读 .qoder/specs/farm-agent-add-coder-npm-package/spec.md
660
- 4. 读 .qoder/specs/farm-agent-add-coder-npm-package/tasks.md(第N轮)
661
- 5. 读 .qoder/specs/farm-agent-add-coder-npm-package/checklist.md
659
+ 3. 读 {{magicDir}}/specs/add-coder-add-coder-npm-package/spec.md
660
+ 4. 读 {{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md(第N轮)
661
+ 5. 读 {{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md
662
662
  6. 按 tasks.md 顺序执行代码修改
663
663
  7. 每完成一个 Task:读 checklist.md → 逐项验证 → 附证据 → 勾选
664
664
  8. 每完成一个文件修改:record_dev_operation 写入 ADD-7 审计
@@ -1,24 +1,24 @@
1
- # farm-agent-add-coder-npm-package-plan-v1
1
+ # add-coder-add-coder-npm-package-plan-v1
2
2
 
3
3
  > **Plan/Spec 边界提醒**:Plan 回答"改什么、为什么改、改哪里"——写到让 Review 能判断方向对不对、有没有遗漏维度的程度(文件路径 + Task 验收标准 + 架构维度全覆盖)。**不要**在 Plan 中写完整 TS 类型定义、WHEN-THEN 场景、精确函数签名——那是 Spec 的职责。
4
4
 
5
5
  ## PLAN 元信息
6
6
 
7
- - **Plan 名称**: farm-agent-add-coder-npm-package-v1
7
+ - **Plan 名称**: add-coder-add-coder-npm-package-v1
8
8
  - **启动时间**: 2026-07-08T00:00:00+08:00
9
9
  - **主导 AI**: Qoder (Claude 4)
10
10
  - **关联文档**:
11
- - ADD Route: `.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-add-route-v1.md` ✅
12
- - Handoff: `.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-handoff-v1.md` ✅
13
- - Review: `.qoder/reviews/farm-agent-add-coder-npm-package-review-v1.md` ✅
14
- - Review v2: `.qoder/reviews/farm-agent-add-coder-npm-package-review-v2.md` ✅ — 代码实现评审,2 条 P0(spawnSync catch 失能、ask 重复定义)
11
+ - ADD Route: `{{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-add-route-v1.md` ✅
12
+ - Handoff: `{{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-handoff-v1.md` ✅
13
+ - Review: `{{magicDir}}/reviews/add-coder-add-coder-npm-package-review-v1.md` ✅
14
+ - Review v2: `{{magicDir}}/reviews/add-coder-add-coder-npm-package-review-v2.md` ✅ — 代码实现评审,2 条 P0(spawnSync catch 失能、ask 重复定义)
15
15
  - **ADD-7 审计策略**:
16
16
 
17
17
  | 文件 | targetType | action | beforeState | afterState | 状态 |
18
18
  |-----|-----------|--------|------------|-----------|------|
19
19
  | packages/add-coder/package.json | PACKAGE | PACKAGE_CONFIG_UPDATED | private:true, 无构建流程 | public, TypeScript 构建, 发布就绪 | 待实施 |
20
20
  | packages/add-coder/src/ | SOURCE | SOURCE_CREATED | 无 src 目录 | 完整 CLI + 适配器源码 | 待实施 |
21
- | packages/add-coder/templates/ | TEMPLATE | TEMPLATE_REFACTORED | 硬编码 farm-agent 专属 | 参数化占位符 + 通用化 | 待实施 |
21
+ | packages/add-coder/templates/ | TEMPLATE | TEMPLATE_REFACTORED | 硬编码 add-coder 专属 | 参数化占位符 + 通用化 | 待实施 |
22
22
 
23
23
  ---
24
24
 
@@ -28,7 +28,7 @@
28
28
 
29
29
  当前 `packages/add-coder/` 是一个 **不可发布的半成品**:
30
30
 
31
- 1. **模板硬编码**:`templates/` 下所有文件直接来自 farm-agent 项目,包含数据库密码、项目名、特定路径等不可移植内容
31
+ 1. **模板硬编码**:`templates/` 下所有文件直接来自 add-coder 项目,包含数据库密码、项目名、特定路径等不可移植内容
32
32
  2. **CLI 纯搬运**:`bin/add-coder.js`(113 行 CommonJS)只有 `init/sync/status` 三个命令,全是 `fs.copyFileSync`,无参数化渲染、无配置合并
33
33
  3. **无适配层抽象**:`.qoder` 和 `.vscode` 是两套独立静态模板,无共享逻辑。加 Claude 适配需要再复制一套
34
34
  4. **VS Code 无 hook 层**:`.vscode/` 只有 MCP 配置,缺少 Qoder 的 11 个 hook 等价物
@@ -43,7 +43,7 @@
43
43
  2. **极客可调**:通过 `add-coder.config.ts` 覆盖任意模板变量、自定义 hook 行为
44
44
  3. **多 IDE 兼容**:Claude Code(第一公民)、Qoder/QoderCN(Claude 衍生)、VS Code(阉割版),三层适配器共享同一套 ADD 核心逻辑
45
45
  4. **模板参数化**:所有硬编码(项目名、数据库密码、特定路径)替换为 `{{placeholder}}`,`init` 时交互式填充或从配置文件读取
46
- 5. **配置智能合并**:不覆盖用户已有的 `.qoder/settings.json`、`.vscode/settings.json` 等配置
46
+ 5. **配置智能合并**:不覆盖用户已有的 `{{magicDir}}/settings.json`、`.vscode/settings.json` 等配置
47
47
 
48
48
  ---
49
49
 
@@ -146,7 +146,7 @@ src/cli/commands/init.ts ── 主命令
146
146
 
147
147
  ├── ① 检测 IDE 环境
148
148
  │ src/cli/detect.ts
149
- │ → 扫描 .qoder/ .claude/ .vscode/ 存在性 → 确定 targetAdapter
149
+ │ → 扫描 {{magicDir}}/ .claude/ .vscode/ 存在性 → 确定 targetAdapter
150
150
  │ → 若 --adapter 未指定,且检测不到任何 IDE 特征:
151
151
  │ 无 package.json → 报错退出(无法确定项目根)
152
152
  │ 有 package.json → 交互式提示选择 IDE(claude/qoder/vscode/auto)
@@ -256,7 +256,7 @@ packages/add-coder/
256
256
  │ │ │ ├── hooks/ # shell 脚本(共享 core 逻辑,matcher 用标准工具名)
257
257
  │ │ │ ├── settings.json
258
258
  │ │ │ └── mcp.json
259
- │ │ ├── qoder/ # 产出 .qoder/
259
+ │ │ ├── qoder/ # 产出 {{magicDir}}/
260
260
  │ │ │ ├── hooks/ # shell 脚本(matcher 适配双套工具名)
261
261
  │ │ │ ├── settings.json
262
262
  │ │ │ ├── mcp.json
@@ -299,7 +299,7 @@ packages/add-coder/
299
299
  │ ├── settings.json # ← templates/adapters/{target}/settings.json
300
300
  │ └── sync-policy.json # ← templates/adapters/qoder/sync-policy.json
301
301
 
302
- ├── .qoder/ # ★ Qoder IDE 配置
302
+ ├── {{magicDir}}/ # ★ Qoder IDE 配置
303
303
  │ ├── agents/ # ← 同 .add/agents/
304
304
  │ ├── skills/ # ← 同 .add/skills/
305
305
  │ ├── templates/ # ← 同 .add/templates/
@@ -349,13 +349,13 @@ packages/add-coder/
349
349
  └── .env.development # prisma init 创建,用户配置 DATABASE_URL
350
350
  ```
351
351
 
352
- > **部署策略**:`templates/core/` 内容复制到 `.add/`、`.qoder/`、`.claude/` 三个目录。
353
- > IDE 只认自身的 magic path(`.qoder/` / `.claude/`),必须各自包含完整内容。
352
+ > **部署策略**:`templates/core/` 内容复制到 `.add/`、`{{magicDir}}/`、`.claude/` 三个目录。
353
+ > IDE 只认自身的 magic path(`{{magicDir}}/` / `.claude/`),必须各自包含完整内容。
354
354
  > `.add/` 保留作为 add-coder 推荐蓝图,供未来工具链引用。
355
355
 
356
356
  > **⚠️ 改造待执行**:当前 `renderCore()` 仅输出到 `.add/`,需改造为三目录并行输出:
357
357
  > 1. `src/core/renderer.ts`:`renderCore()` 返回值改为 `Map<string, string>[]`(三份)
358
- > 2. `src/cli/commands/init.ts`:core 文件写入 `.add/` `.qoder/` `.claude/` 三个目标
358
+ > 2. `src/cli/commands/init.ts`:core 文件写入 `.add/` `{{magicDir}}/` `.claude/` 三个目标
359
359
  > 3. adapter renderers:不再单独部署 core 内容,只处理 adapter 专属文件(hooks/mcp/settings)
360
360
  > 4. 写入去重:三目录同名文件只写一次,后两次 skip(内容相同)
361
361
 
@@ -375,7 +375,7 @@ const adapterDir = path.join(TEMPLATES_ROOT, 'adapters', target)
375
375
 
376
376
  | 维度 | Claude Code | Qoder | VS Code |
377
377
  |------|--------|-------|---------|
378
- | Magic Path | `.claude/` | `.qoder/` | `.vscode/` |
378
+ | Magic Path | `.claude/` | `{{magicDir}}/` | `.vscode/` |
379
379
  | Hook 配置格式 | `settings.json` (Claude schema) | `settings.json` (Qoder schema) | 无原生 hook |
380
380
  | Hook 事件数量 | 27 个(含 PreToolUse/PostToolUse/Stop/SessionStart/UserPromptSubmit/PermissionRequest 等) | ~11 个 | 0(可用 tasks.json 模拟文件保存触发) |
381
381
  | 工具名 matcher | `Write`, `Edit`, `Bash`(标准名) | `Write\|write_to_file`, `Edit\|edit_file`, `Bash`(双套兼容) | N/A |
@@ -383,8 +383,8 @@ const adapterDir = path.join(TEMPLATES_ROOT, 'adapters', target)
383
383
  | 退出码机制 | exit 0 = 放行,exit 2 = 阻断 | exit 0 = 放行,exit 2 = 阻断 | N/A |
384
384
  | Hook 脚本 | 完整(与 Qoder 共享核心逻辑,差异仅在 matcher 工具名映射) | 完整(matcher 适配) | 无 |
385
385
  | MCP 配置 | `mcp.json` (Claude 格式) | `mcp.json` (Qoder 格式) | `settings.json` 内嵌 |
386
- | Skills 加载 | `.claude/skills/` | `.qoder/skills/` | 不支持 |
387
- | Subagents 加载 | `.claude/agents/` | `.qoder/agents/` | 不支持 |
386
+ | Skills 加载 | `.claude/skills/` | `{{magicDir}}/skills/` | 不支持 |
387
+ | Subagents 加载 | `.claude/agents/` | `{{magicDir}}/agents/` | 不支持 |
388
388
  | 能力声明 | 完整 ADD 运行时 | 完整 ADD 运行时 | 仅模板 + MCP,无 hook 执法 |
389
389
 
390
390
  **关键发现**:Claude Code 和 Qoder 的 hook 退出码机制完全一致(exit 0/2),shell 脚本可 90% 复用。SessionStart、UserPromptSubmit、PermissionRequest 三个事件两者均原生支持,不应在迁移时移除。
@@ -431,11 +431,11 @@ const adapterDir = path.join(TEMPLATES_ROOT, 'adapters', target)
431
431
  ### 3.5 裁决层:CaijueHub(三段式裁决生成管线)
432
432
 
433
433
  > **定位**:add-coder 聚焦管线阶段 ③④——通用转录引擎 + 编译集成。
434
- > 阶段 ①②(产品文档 → 规则提取 → caijue.toml)由 farm-agent 的独立 Plan 承接,add-coder 不耦合业务域。
434
+ > 阶段 ①②(产品文档 → 规则提取 → caijue.toml)由 add-coder 的独立 Plan 承接,add-coder 不耦合业务域。
435
435
 
436
436
  ```
437
437
  ┌─────────────────────────────────────────────────────────────┐
438
- │ 阶段 ①②: farm-agent Plan 承接 │
438
+ │ 阶段 ①②: add-coder Plan 承接 │
439
439
  │ │
440
440
  │ 产品文档 → 提取函数 → caijue.toml │
441
441
  │ (业务规则) (AI/规则引擎) (规则索引) │
@@ -552,7 +552,7 @@ init 启动
552
552
  | IDE 检测 | `{ env: {}, dirs: [] }` | `{ detected: "qoder", via: "QODER_CN_IDE" }` |
553
553
  | 配置加载 | `{ sources: ["auto-detect", "defaults"] }` | `{ projectName: "test", ... }` |
554
554
  | Prisma 注入 | `{ prisma: "missing" }` | `{ decision: "block", reason: "无 Prisma 目录" }` |
555
- | Writer 写入 | `{ path: ".qoder/settings.json", existing: true }` | `{ decision: "skip", reason: "--yes" }` |
555
+ | Writer 写入 | `{ path: "{{magicDir}}/settings.json", existing: true }` | `{ decision: "skip", reason: "--yes" }` |
556
556
 
557
557
  #### 3.5.5 目录结构增量
558
558
 
@@ -619,7 +619,7 @@ packages/add-coder/
619
619
 
620
620
  **范围**:`templates/core/prisma/add.prisma` + `src/cli/prisma-injector.ts`
621
621
 
622
- - 从 farm-agent 的 `prisma/main.prisma` 中提取 DevOperation 和 AuditLog 模型定义
622
+ - 从 add-coder 的 `prisma/main.prisma` 中提取 DevOperation 和 AuditLog 模型定义
623
623
  - 写入 `templates/core/prisma/add.prisma`(模型定义,无参数化)
624
624
  - 实现 `src/cli/prisma-injector.ts`:
625
625
  - 检测用户项目是否已有 Prisma(`prisma/` 目录 + `schema.prisma`)→ 无则报错
@@ -644,29 +644,29 @@ packages/add-coder/
644
644
 
645
645
  | # | 文件组 | 文件 | 典型硬编码 | 改为 | 变量类型 |
646
646
  |---|--------|------|----------|------|---------|
647
- | 1 | 模板 | 15 个 `.md` 模板(plan/spec/tasks/checklist/handoff/review/add-route 等) | `docs/大田精准耕播智能决策系统/`、`farm-agent-*` 文件名示例 | `{{docsDir}}/`、`{{projectName}}-*` | Init-time |
647
+ | 1 | 模板 | 15 个 `.md` 模板(plan/spec/tasks/checklist/handoff/review/add-route 等) | `docs/大田精准耕播智能决策系统/`、`add-coder-*` 文件名示例 | `{{docsDir}}/`、`{{projectName}}-*` | Init-time |
648
648
  | 2 | 模板 Schema | 15 个 `.schema.json` | 无硬编码(结构定义) | 无需修改 | — |
649
- | 3 | Skills | `skills/add-paradigm/SKILL.md` | `docs/大田精准耕播智能决策系统/`、`/home/xmm/ai/farm-agent/`、`farm-agent-response-strategy/` 示例 | `{{docsDir}}/`、`{{projectRoot}}/`、`{{projectName}}-*` | Init-time |
650
- | 4 | Skills | `skills/session-init/SKILL.md` | `farm-agent-review-runtime.md` 示例 | `{{projectName}}-review-runtime.md` | Init-time |
649
+ | 3 | Skills | `skills/add-paradigm/SKILL.md` | `docs/大田精准耕播智能决策系统/`、`/home/xmm/ai/add-coder/`、`add-coder-response-strategy/` 示例 | `{{docsDir}}/`、`{{projectRoot}}/`、`{{projectName}}-*` | Init-time |
650
+ | 4 | Skills | `skills/session-init/SKILL.md` | `add-coder-review-runtime.md` 示例 | `{{projectName}}-review-runtime.md` | Init-time |
651
651
  | 5 | Agents | `agents/add-flow-guardian.md` | 无项目特定硬编码 | 检查确认 | — |
652
652
  | 6 | Agents | `agents/add-orchestrator.md` | 无项目特定硬编码 | 检查确认 | — |
653
- | 7 | Rules | `rules/project_rules.md` | `farm-agent` 项目名、`src/agents/` 路径 | `{{projectName}}`、`{{sourceDir}}/agents/` | Init-time |
653
+ | 7 | Rules | `rules/project_rules.md` | `add-coder` 项目名、`src/agents/` 路径 | `{{projectName}}`、`{{sourceDir}}/agents/` | Init-time |
654
654
  | 8 | Rules | `rules/theory-practice-map.toml` | 无项目特定硬编码 | 检查确认 | — |
655
655
  | 9 | 词汇 | `vocabulary/add-governance-vocabulary.md` | 无项目特定硬编码 | 检查确认 | — |
656
656
  | 10 | 脚本 | `scripts/mcp-server.ts` | `DATABASE_URL \|\| "postgresql://farm_admin:farm_secure_pass_2024@..."`、`".env.development"` | `process.env.DATABASE_URL`(无兜底值)、`"{{envFilePath}}"` | Runtime + Init-time |
657
657
  | 11 | 脚本 | `scripts/add-coder-mcp-server.ts` | 同上 | 同上 | Runtime + Init-time |
658
- | 12 | Hook 配置 | `.qoder/settings.json` | hook 脚本绝对路径 `/home/xmm/ai/farm-agent/.qoder/hooks/` | `{{projectRoot}}/.qoder/hooks/` | Init-time |
659
- | 13 | MCP 配置 | `.qoder/mcp.json` | `DATABASE_URL` 硬编码密码 | `process.env.DATABASE_URL`(无兜底值) | Runtime |
660
- | 14 | 同步策略 | `.qoder/sync-policy.json` | 无项目特定硬编码 | 检查确认 | — |
661
- | 15 | Hook 脚本 | `.qoder/hooks/` 下 14 个 `.sh` 文件 | `state-detect.sh` 中项目名提取逻辑、hook 脚本内部绝对路径 | 使用 `$CLAUDE_PROJECT_DIR` 或 `{{projectRoot}}` 替代 | Init-time |
658
+ | 12 | Hook 配置 | `{{magicDir}}/settings.json` | hook 脚本绝对路径 `/home/xmm/ai/add-coder/{{magicDir}}/hooks/` | `{{projectRoot}}/{{magicDir}}/hooks/` | Init-time |
659
+ | 13 | MCP 配置 | `{{magicDir}}/mcp.json` | `DATABASE_URL` 硬编码密码 | `process.env.DATABASE_URL`(无兜底值) | Runtime |
660
+ | 14 | 同步策略 | `{{magicDir}}/sync-policy.json` | 无项目特定硬编码 | 检查确认 | — |
661
+ | 15 | Hook 脚本 | `{{magicDir}}/hooks/` 下 14 个 `.sh` 文件 | `state-detect.sh` 中项目名提取逻辑、hook 脚本内部绝对路径 | 使用 `$CLAUDE_PROJECT_DIR` 或 `{{projectRoot}}` 替代 | Init-time |
662
662
  | 16 | VS Code | `.vscode/settings.json` | MCP 配置中的项目特定路径 | `{{projectRoot}}` | Init-time |
663
663
  | 17 | VS Code | `.vscode/tasks.json` | 无项目特定硬编码 | 检查确认 | — |
664
664
  | 18 | VS Code | `.vscode/launch.json` | 无项目特定硬编码 | 检查确认 | — |
665
665
  | 19 | VS Code | `.vscode/extensions.json` | 无项目特定硬编码 | 检查确认 | — |
666
- | 20 | Reports | `reports/` 下 7 个文件 | `farm-agent`、`/Users/milkytea/WebstormProjects/rfMain/智能体/farm-agent/` 等绝对路径 | 全部 `{{projectName}}`、`{{projectRoot}}` | Init-time |
666
+ | 20 | Reports | `reports/` 下 7 个文件 | `add-coder`、`/Users/milkytea/WebstormProjects/rfMain/智能体/add-coder/` 等绝对路径 | 全部 `{{projectName}}`、`{{projectRoot}}` | Init-time |
667
667
  | 21 | 工具 | `tools/README.md` | 无项目特定硬编码 | 检查确认 | — |
668
668
  | 22 | Prisma | `prisma/add.prisma` | 无硬编码(模型定义,直接复制到用户项目) | 无需修改 | — |
669
- | 23 | Grounding 文档 | `docs/01-架构/《ADD开发工作路径与文档协同规范》.md` | `docs/大田精准耕播智能决策系统/`、`farm-agent-*` 文件名示例(15 处) | `{{docsDir}}/`、`{{projectName}}-*` | Init-time |
669
+ | 23 | Grounding 文档 | `docs/01-架构/《ADD开发工作路径与文档协同规范》.md` | `docs/大田精准耕播智能决策系统/`、`add-coder-*` 文件名示例(15 处) | `{{docsDir}}/`、`{{projectName}}-*` | Init-time |
670
670
 
671
671
  - 创建 `src/core/renderer.ts`:接收 config 对象,执行 `"{{projectName}}".replace("{{projectName}}", config.name)`
672
672
 
@@ -694,10 +694,10 @@ packages/add-coder/
694
694
  | `reports/` | `templates/core/reports/` | IDE 无关 |
695
695
  | `tools/` | `templates/core/tools/` | IDE 无关 |
696
696
  | `docs/`(grounding 文档:00-需求/01-架构/02-规范) | `templates/core/docs/` | 保留子目录结构 |
697
- | `.qoder/hooks/`(14 个 .sh + lib/) | `templates/adapters/qoder/hooks/` | Qoder 适配器 |
698
- | `.qoder/settings.json` | `templates/adapters/qoder/settings.json` | Qoder 适配器 |
699
- | `.qoder/mcp.json` | `templates/adapters/qoder/mcp.json` | Qoder 适配器 |
700
- | `.qoder/sync-policy.json` | `templates/adapters/qoder/sync-policy.json` | Qoder 适配器 |
697
+ | `{{magicDir}}/hooks/`(14 个 .sh + lib/) | `templates/adapters/qoder/hooks/` | Qoder 适配器 |
698
+ | `{{magicDir}}/settings.json` | `templates/adapters/qoder/settings.json` | Qoder 适配器 |
699
+ | `{{magicDir}}/mcp.json` | `templates/adapters/qoder/mcp.json` | Qoder 适配器 |
700
+ | `{{magicDir}}/sync-policy.json` | `templates/adapters/qoder/sync-policy.json` | Qoder 适配器 |
701
701
  | `.vscode/`(4 个文件) | `templates/adapters/vscode/` | VS Code 适配器 |
702
702
  | `debug-dump/`, `repowiki/` | `templates/shared/` | 空目录占位,init 时在用户项目中创建 |
703
703
  | 无(新建) | `templates/adapters/claude/` | Claude 适配器,从 qoder 派生 |
@@ -729,12 +729,12 @@ packages/add-coder/
729
729
 
730
730
  **范围**:`templates/adapters/qoder/` + `src/adapters/qoder/renderer.ts`
731
731
 
732
- - 从现有 `templates/.qoder/` 迁移到 `templates/adapters/qoder/`,清理 hardcode
732
+ - 从现有 `templates/{{magicDir}}/` 迁移到 `templates/adapters/qoder/`,清理 hardcode
733
733
  - `settings.json` 的 matcher 适配:`Write|write_to_file|create_file|CreateFile` 等双套工具名
734
734
  - 保留 Qoder 专有事件:`SessionStart`, `UserPromptSubmit`, `PermissionRequest`
735
735
  - 实现 `src/adapters/qoder/renderer.ts`
736
736
 
737
- **验收**:`npx add-coder init --adapter qoder` 生成正确的 `.qoder/` 目录
737
+ **验收**:`npx add-coder init --adapter qoder` 生成正确的 `{{magicDir}}/` 目录
738
738
 
739
739
  #### Task 2: VS Code 适配器实现
740
740
 
@@ -867,11 +867,11 @@ packages/add-coder/
867
867
 
868
868
  - [ ] `npx add-coder init` 在空白项目中零配置生成完整 ADD 模板
869
869
  - [ ] `npx add-coder init --adapter claude` 生成 `.claude/` 目录
870
- - [ ] `npx add-coder init --adapter qoder` 生成 `.qoder/` 目录
870
+ - [ ] `npx add-coder init --adapter qoder` 生成 `{{magicDir}}/` 目录
871
871
  - [ ] `npx add-coder init --adapter vscode` 生成 `.vscode/` 目录
872
- - [ ] 模板中无 farm-agent 硬编码(`grep -r "farm.agent\|大田" dist/` 返回空)
872
+ - [ ] 模板中无 add-coder 硬编码(`grep -r "farm.agent\|大田" dist/` 返回空)
873
873
  - [ ] `add-coder.config.ts` 可覆盖项目名、源码目录、日志目录等
874
- - [ ] 已有 `.qoder/settings.json` 时 `init` 不覆盖,展示 diff 并交互确认
874
+ - [ ] 已有 `{{magicDir}}/settings.json` 时 `init` 不覆盖,展示 diff 并交互确认
875
875
  - [ ] `npx tsc --noEmit` 通过
876
876
  - [ ] `npm pack` 产出的 tarball 包含 `dist/` + `templates/` + `bin/`,不包含 `src/`
877
877
  - [ ] `package.json` 中 `"private": false`
@@ -887,9 +887,9 @@ packages/add-coder/
887
887
 
888
888
  | 文档 | 路径 | 状态 |
889
889
  |------|------|:--:|
890
- | ADD Route | `.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-add-route-v1.md` | ✅ |
891
- | Handoff | `.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-handoff-v1.md` | ✅ |
892
- | Review | `.qoder/reviews/farm-agent-add-coder-npm-package-review-v1.md` | ✅ |
893
- | Spec | `.qoder/specs/farm-agent-add-coder-npm-package/spec.md` | ✅ |
894
- | Tasks | `.qoder/specs/farm-agent-add-coder-npm-package/tasks.md` | ✅ |
895
- | Checklist | `.qoder/specs/farm-agent-add-coder-npm-package/checklist.md` | ✅ |
890
+ | ADD Route | `{{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-add-route-v1.md` | ✅ |
891
+ | Handoff | `{{magicDir}}/plans/2026-07/08/add-coder-add-coder-npm-package-handoff-v1.md` | ✅ |
892
+ | Review | `{{magicDir}}/reviews/add-coder-add-coder-npm-package-review-v1.md` | ✅ |
893
+ | Spec | `{{magicDir}}/specs/add-coder-add-coder-npm-package/spec.md` | ✅ |
894
+ | Tasks | `{{magicDir}}/specs/add-coder-add-coder-npm-package/tasks.md` | ✅ |
895
+ | Checklist | `{{magicDir}}/specs/add-coder-add-coder-npm-package/checklist.md` | ✅ |
@@ -7,7 +7,7 @@
7
7
  ## 目录结构
8
8
 
9
9
  ```
10
- .qoder/reports/
10
+ {{magicDir}}/reports/
11
11
  ├── REPORT-WORKFLOW.md ← 本文件
12
12
  ├── boundary-runtime-report.md ← Runtime Report ↔ 静态 Report 边界划分
13
13
  ├── index.md ← Issue 注册表(由 gen-report-index.sh 每天自动生成,勿手动编辑)
@@ -130,7 +130,7 @@ runtime-issue-{date}-{seq}.md
130
130
 
131
131
  创建 runtime-fix-plan-v1.md
132
132
  │ 命名: {子系统}-runtime-fix-{关键词}-plan-v1.md
133
- │ 位置: .qoder/plans/{YYYY-MM}/{DD}/
133
+ │ 位置: {{magicDir}}/plans/{YYYY-MM}/{DD}/
134
134
  │ 模板: plan-template.md
135
135
 
136
136
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 自动生成: 2026-07-01 11:41:22 | 共 6 份 Report | 下次更新: 每天 2:10 AM
4
4
  >
5
- > 扫描范围: `.qoder/reports/`(Plan Review 在 `.qoder/reviews/`,由 Plan 管线管理)
5
+ > 扫描范围: `{{magicDir}}/reports/`(Plan Review 在 `{{magicDir}}/reviews/`,由 Plan 管线管理)
6
6
 
7
7
  ---
8
8