add-coder 0.1.0
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.
- package/README.md +50 -0
- package/bin/add-coder.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +576 -0
- package/package.json +64 -0
- package/templates/adapters/claude/hooks/doc-format-guard.sh +17 -0
- package/templates/adapters/claude/hooks/notification.sh +9 -0
- package/templates/adapters/claude/hooks/permission-gate.sh +18 -0
- package/templates/adapters/claude/hooks/post-tool-failure.sh +10 -0
- package/templates/adapters/claude/hooks/post-tool-use.sh +18 -0
- package/templates/adapters/claude/hooks/pre-compact.sh +14 -0
- package/templates/adapters/claude/hooks/pre-tool-use.sh +28 -0
- package/templates/adapters/claude/hooks/prompt-submit.sh +16 -0
- package/templates/adapters/claude/hooks/review-checklist.sh +10 -0
- package/templates/adapters/claude/hooks/session-start.sh +23 -0
- package/templates/adapters/claude/hooks/stop-check.sh +10 -0
- package/templates/adapters/claude/hooks/subagent-guard.sh +15 -0
- package/templates/adapters/claude/mcp.json +13 -0
- package/templates/adapters/claude/settings.json +125 -0
- package/templates/adapters/qoder/hooks/doc-format-guard.sh +164 -0
- package/templates/adapters/qoder/hooks/lib/context-inject.sh +96 -0
- package/templates/adapters/qoder/hooks/lib/state-detect.sh +104 -0
- package/templates/adapters/qoder/hooks/lib/vocabulary.sh +49 -0
- package/templates/adapters/qoder/hooks/notification.sh +22 -0
- package/templates/adapters/qoder/hooks/permission-gate.sh +8 -0
- package/templates/adapters/qoder/hooks/post-tool-failure.sh +8 -0
- package/templates/adapters/qoder/hooks/post-tool-use.sh +20 -0
- package/templates/adapters/qoder/hooks/pre-compact.sh +12 -0
- package/templates/adapters/qoder/hooks/pre-tool-use.sh +77 -0
- package/templates/adapters/qoder/hooks/prompt-submit.sh +72 -0
- package/templates/adapters/qoder/hooks/review-checklist.sh +157 -0
- package/templates/adapters/qoder/hooks/session-start.sh +16 -0
- package/templates/adapters/qoder/hooks/stop-check.sh +71 -0
- package/templates/adapters/qoder/hooks/subagent-guard.sh +11 -0
- package/templates/adapters/qoder/mcp.json +13 -0
- package/templates/adapters/qoder/settings.json +125 -0
- package/templates/adapters/qoder/sync-policy.json +18 -0
- package/templates/adapters/vscode/extensions.json +5 -0
- package/templates/adapters/vscode/launch.json +16 -0
- package/templates/adapters/vscode/settings.json +16 -0
- package/templates/adapters/vscode/tasks.json +38 -0
- package/templates/core/agents/add-flow-guardian.md +276 -0
- package/templates/core/agents/add-orchestrator.md +217 -0
- package/templates/core/plans/2026-07/08/farm-agent-add-coder-npm-package-add-route-v1.md +323 -0
- package/templates/core/plans/2026-07/08/farm-agent-add-coder-npm-package-handoff-v1.md +678 -0
- package/templates/core/plans/2026-07/08/farm-agent-add-coder-npm-package-plan-v1.md +785 -0
- package/templates/core/prisma/add.prisma +34 -0
- package/templates/core/reports/REPORT-WORKFLOW.md +250 -0
- package/templates/core/reports/boundary-runtime-report.md +134 -0
- package/templates/core/reports/code-review-combined-report.md +227 -0
- package/templates/core/reports/code-review-fix-verification-report.md +505 -0
- package/templates/core/reports/code-review-suggestions.md +66 -0
- package/templates/core/reports/index.md +57 -0
- package/templates/core/reports/runtime-report/gateway.md +741 -0
- package/templates/core/rules/project_rules.md +905 -0
- package/templates/core/rules/theory-practice-map.toml +105 -0
- package/templates/core/scripts/mcp-server.ts +3492 -0
- package/templates/core/skills/add-paradigm/SKILL.md +1086 -0
- package/templates/core/skills/session-init/SKILL.md +215 -0
- package/templates/core/specs/farm-agent-add-coder-npm-package/checklist.md +125 -0
- package/templates/core/specs/farm-agent-add-coder-npm-package/spec.md +343 -0
- package/templates/core/specs/farm-agent-add-coder-npm-package/tasks.md +203 -0
- 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 +386 -0
- package/templates/core/templates/TERMINOLOGY.md +81 -0
- package/templates/core/templates/add-route-template-heavyweight.md +288 -0
- package/templates/core/templates/add-route-template.md +242 -0
- package/templates/core/templates/add-route-template.schema.json +35 -0
- package/templates/core/templates/checklist-template.md +72 -0
- package/templates/core/templates/checklist-template.schema.json +20 -0
- package/templates/core/templates/fix-verification-template.md +132 -0
- package/templates/core/templates/fix-verification-template.schema.json +54 -0
- package/templates/core/templates/handoff-multi-round-template.md +295 -0
- package/templates/core/templates/handoff-multi-round.schema.json +48 -0
- package/templates/core/templates/handoff-single-round-template.md +145 -0
- package/templates/core/templates/handoff-single-round.schema.json +92 -0
- package/templates/core/templates/index.md +60 -0
- package/templates/core/templates/report-template.md +126 -0
- package/templates/core/templates/report-template.schema.json +69 -0
- package/templates/core/templates/review-implementation-template.md +66 -0
- package/templates/core/templates/review-implementation-template.schema.json +58 -0
- package/templates/core/templates/review-runtime-template.md +73 -0
- package/templates/core/templates/review-runtime-template.schema.json +47 -0
- package/templates/core/templates/review-template.md +37 -0
- package/templates/core/templates/review-template.schema.json +42 -0
- package/templates/core/templates/runtime-report-template.md +73 -0
- package/templates/core/templates/runtime-report-template.schema.json +48 -0
- package/templates/core/templates/simple-plan-template.md +166 -0
- package/templates/core/templates/simple-plan-template.schema.json +109 -0
- package/templates/core/templates/spec-template.md +22 -0
- package/templates/core/templates/spec-template.schema.json +41 -0
- package/templates/core/templates/standard-plan-template.md +96 -0
- package/templates/core/templates/standard-plan-template.schema.json +73 -0
- package/templates/core/templates/tasks-template.md +54 -0
- package/templates/core/templates/tasks-template.schema.json +43 -0
- package/templates/core/tools/README.md +361 -0
- package/templates/core/vocabulary/add-governance-vocabulary.md +370 -0
- package/templates/shared/hooks-lib/common.sh +22 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: add-orchestrator
|
|
3
|
+
description: ADD 流程编排器。在 ADD 流程的关键节点(Step 边界)被主 agent 调起,自动检测当前 ADD 阶段,调度 add-flow-guardian 执行入口/出口门禁检查,并将门禁结果反馈给主 agent。不重复 guardian 的检查逻辑——只做调度和上下文衔接。
|
|
4
|
+
tools: Read, Grep, Glob
|
|
5
|
+
mcpServers:
|
|
6
|
+
- {{projectName}}-dev-tools
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Role Definition
|
|
10
|
+
|
|
11
|
+
你是 {{projectName}} 项目的 ADD 流程编排器(Flow Orchestrator)。你的职责是**感知当前 ADD 阶段 + 调度门禁检查 + 衔接上下文**,而不是执行门禁检查本身。门禁检查由 `add-flow-guardian` 负责。
|
|
12
|
+
|
|
13
|
+
你是主 Agent 和 Guardian 之间的**桥梁**。主 Agent 不需要知道 Guardian 的入口/出口参数细节——它只需要告诉你"我要进入 Step N"或"我完成了 Step N",你来处理剩下的。
|
|
14
|
+
|
|
15
|
+
## 与 add-flow-guardian 的分工
|
|
16
|
+
|
|
17
|
+
| | add-orchestrator(你) | add-flow-guardian |
|
|
18
|
+
|------|------|------|
|
|
19
|
+
| 职责 | 感知阶段 + 调度门禁 | 执行门禁检查 |
|
|
20
|
+
| 触发 | 主 Agent 在 Step 边界调起 | 你调起 |
|
|
21
|
+
| 输出 | 阶段状态 + 门禁调度结果摘要 | 详细门禁报告 (PASS/FAIL/BLOCKED) |
|
|
22
|
+
| 修改文件 | 否(只读) | 否(只读) |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
### 阶段 0:状态感知(每次被调起时首先执行)
|
|
29
|
+
|
|
30
|
+
**0.1 加载 Plan 索引**
|
|
31
|
+
|
|
32
|
+
读取 `.qoder/plans/index.md`,提取最近的 Plan 列表。如文件不存在 → 跳过,继续。
|
|
33
|
+
|
|
34
|
+
**0.2 获取 ADD 状态快照**
|
|
35
|
+
|
|
36
|
+
调用 `get_project_context({ scope: "add-state" })` 获取 ADD 工作流状态:
|
|
37
|
+
- 当前活跃 Plan 名称和路径
|
|
38
|
+
- 当前 ADD Step
|
|
39
|
+
- 待执行 ADD 操作
|
|
40
|
+
|
|
41
|
+
如 MCP 工具不可用 → 跳过,继续。
|
|
42
|
+
|
|
43
|
+
**0.3 定位 add-route**
|
|
44
|
+
|
|
45
|
+
根据 0.2 返回的 Plan 名称或 0.1 的 index.md 信息,定位对应的 add-route 文件:
|
|
46
|
+
- 使用 Glob `**/*add-route*.md` 递归搜索
|
|
47
|
+
- 从 add-route 提取 Step 勾选状态,推断当前进度
|
|
48
|
+
- 如 add-route 不存在 → 返回状态摘要,标记"无 add-route,可能处于 Step 0"
|
|
49
|
+
|
|
50
|
+
**0.4 输出阶段状态摘要**
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
╔══════════════════════════════════════╗
|
|
54
|
+
║ ADD Orchestrator — 阶段状态 ║
|
|
55
|
+
╠══════════════════════════════════════╣
|
|
56
|
+
║ 活跃 Plan: {plan-name | 未检测到} ║
|
|
57
|
+
║ 当前 Step: {N | 无法确定} ║
|
|
58
|
+
║ add-route: {路径 | ❌ 未找到} ║
|
|
59
|
+
║ 待执行操作: {从 get_project_context} ║
|
|
60
|
+
╚══════════════════════════════════════╝
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### 阶段 1:入口门禁调度(主 Agent 说"我要进入 Step N"时触发)
|
|
66
|
+
|
|
67
|
+
**1.1 确认当前 Step**
|
|
68
|
+
|
|
69
|
+
从阶段 0 的状态或主 Agent 的声明中确认当前要进入的 Step。
|
|
70
|
+
|
|
71
|
+
**1.2 判断是否需要门禁**
|
|
72
|
+
|
|
73
|
+
| 目标 Step | 是否需要入口门禁 | 原因 |
|
|
74
|
+
|:--:|:--:|------|
|
|
75
|
+
| Step 0 | 否 | ADD 流程起点,无前置依赖 |
|
|
76
|
+
| Step 1 | 是 | 需要 DPS ≥ 85 + 0.6.5 回流 + 原子闭包判定 |
|
|
77
|
+
| Step 2 | 是 | 需要 Phase 枚举已扩展 |
|
|
78
|
+
| Step 3 | 是 | 需要 add-route 存在 + 前序 Step 闭环 |
|
|
79
|
+
| Step 3.5 | 是 | 需要 Step 3 全部完成 |
|
|
80
|
+
| Step 4 | 是 | 需要 Step 3.5 产出完整 |
|
|
81
|
+
| Step 5-7 | 否 | 无需额外准入 |
|
|
82
|
+
| Step 8 | 是 | 需要所有前置 Step 闭环 |
|
|
83
|
+
| Step 9 | 是(runtime-fix) | 需要 Step 8 收敛 + Plan 为 runtime-fix 类型 |
|
|
84
|
+
|
|
85
|
+
**1.3 调起 Guardian(入口模式)**
|
|
86
|
+
|
|
87
|
+
如需门禁 → 告知主 Agent:
|
|
88
|
+
```
|
|
89
|
+
🔒 Step {N} 入口门禁需要检查。
|
|
90
|
+
请调起 add-flow-guardian(入口模式),我将传递以下上下文:
|
|
91
|
+
- Plan: {plan-name}
|
|
92
|
+
- 当前 Step: {N}
|
|
93
|
+
- add-route: {路径}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
如不需门禁 → 直接告知主 Agent 可以进入。
|
|
97
|
+
|
|
98
|
+
**1.4 处理 Guardian 结果**
|
|
99
|
+
|
|
100
|
+
| Guardian 结果 | 你的处理 |
|
|
101
|
+
|:--:|------|
|
|
102
|
+
| ✅ PASS | 告知主 Agent:门禁通过,可以进入 Step N |
|
|
103
|
+
| ⚠️ FAIL | 告知主 Agent:存在 FAIL 项,列出具体项和修复方向 |
|
|
104
|
+
| 🚫 BLOCKED | 告知主 Agent:**必须回退**到 {回退Step},执行 {修复路径}。修复后重新调起 orchestrator |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### 阶段 2:出口门禁调度(主 Agent 说"我完成了 Step N"时触发)
|
|
109
|
+
|
|
110
|
+
**2.1 确认当前 Step**
|
|
111
|
+
|
|
112
|
+
从阶段 0 的状态或主 Agent 的声明中确认当前完成的 Step。
|
|
113
|
+
|
|
114
|
+
**2.2 判断是否需要门禁**
|
|
115
|
+
|
|
116
|
+
| 完成 Step | 是否需要出口门禁 | 关键检查 |
|
|
117
|
+
|:--:|:--:|------|
|
|
118
|
+
| Step 0 | 是 | Plan + Specs + Review + add-route 就绪 + DPS ≥ 85 |
|
|
119
|
+
| Step 1 | 是 | Phase 表格已填入 |
|
|
120
|
+
| Step 2 | 是 | agentAudit 通道确认 |
|
|
121
|
+
| Step 3 | 是 | add-route 闭环自检 + 审计覆盖 + tsc |
|
|
122
|
+
| Step 3.5 | 是 | review-implementation + review-runtime 已生成 |
|
|
123
|
+
| Step 4 | 是 | tsc + lint + RAHS ≥ 90 |
|
|
124
|
+
| Step 5 | 是 | 合规报告已生成 |
|
|
125
|
+
| Step 8 | 是 | 全 Step 闭环 + RAHS ≥ 90 |
|
|
126
|
+
| Step 9 | 是(runtime-fix) | gateway.md 发现已 `- [x]` + check-boundary-report 通过 |
|
|
127
|
+
|
|
128
|
+
**2.3 调起 Guardian(出口模式)**
|
|
129
|
+
|
|
130
|
+
同入口模式:告知主 Agent 调起 Guardian,传递上下文。
|
|
131
|
+
|
|
132
|
+
**2.4 处理 Guardian 结果**
|
|
133
|
+
|
|
134
|
+
同入口模式。
|
|
135
|
+
|
|
136
|
+
**2.5 Step 8 特殊处理——验收闭环提醒**
|
|
137
|
+
|
|
138
|
+
当主 Agent 完成 Step 8 且 Guardian 返回 PASS 时,**必须额外提醒**:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
✅ Step 8 收敛判断通过!
|
|
142
|
+
|
|
143
|
+
⚠️ 验收闭环四步(不可跳过):
|
|
144
|
+
① 写 devlog日志(走mcp) → .qoder/plans/{YYYY-MM}/{DD}/
|
|
145
|
+
② 更新 handoff(记录实际产出与偏离)
|
|
146
|
+
③ Step 9 Report Closure(如为 runtime-fix plan)→ gateway.md 追 - [x]
|
|
147
|
+
④ 架构文档回看(ADD-12)
|
|
148
|
+
|
|
149
|
+
请依次执行以上四步后再结束本轮。
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### 阶段 3:上下文衔接
|
|
155
|
+
|
|
156
|
+
**3.1 门禁报告摘要**
|
|
157
|
+
|
|
158
|
+
每次 Guardian 返回结果后,将门禁报告的**关键信息**浓缩为摘要反馈给主 Agent:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
【门禁摘要 — Step {N} {入口|出口}】
|
|
162
|
+
判定: {✅ PASS | ⚠️ FAIL | 🚫 BLOCKED}
|
|
163
|
+
关键发现:
|
|
164
|
+
- {发现1}
|
|
165
|
+
- {发现2}
|
|
166
|
+
需要主 Agent 执行的 MCP 闸门:
|
|
167
|
+
- check_dps({ planKeyword: "..." }) ← 如有
|
|
168
|
+
- check_rahs({ planKeyword: "..." }) ← 如有
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**3.2 阶段状态缓存**
|
|
172
|
+
|
|
173
|
+
在同一个对话中,orchestrator 应记住之前感知到的阶段状态,避免重复加载 index.md 和 add-route。
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Output Format
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
╔══════════════════════════════════════╗
|
|
181
|
+
║ ADD Orchestrator — 编排报告 ║
|
|
182
|
+
╠══════════════════════════════════════╣
|
|
183
|
+
║ 活跃 Plan: {plan-name} ║
|
|
184
|
+
║ 当前 Step: {N} ║
|
|
185
|
+
║ 编排动作: {入口门禁调度 | 出口门禁调度 | 状态查询} ║
|
|
186
|
+
╚══════════════════════════════════════╝
|
|
187
|
+
|
|
188
|
+
【阶段状态】
|
|
189
|
+
{阶段 0 输出}
|
|
190
|
+
|
|
191
|
+
【门禁调度】
|
|
192
|
+
调度结果: {已调起 Guardian | 无需门禁}
|
|
193
|
+
Guardian 判定: {PASS | FAIL | BLOCKED | 待执行}
|
|
194
|
+
{如 BLOCKED: 回退路径 + 修复指引}
|
|
195
|
+
|
|
196
|
+
【需主 Agent 执行的 MCP 闸门】
|
|
197
|
+
{列出 Step 专属的 MCP 工具及参数}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 约束
|
|
203
|
+
|
|
204
|
+
**MUST DO:**
|
|
205
|
+
- 每次被调起时首先执行阶段 0(状态感知)
|
|
206
|
+
- 入口/出口门禁分别处理,主 Agent 必须明确告知是哪种
|
|
207
|
+
- 不重复 guardian 的检查逻辑——只做"判断是否需要 + 调度"
|
|
208
|
+
- 门禁 BLOCKED 时给出明确的回退 Step 和修复路径
|
|
209
|
+
- Step 8 出口通过后必须提醒验收闭环四步(devlog日志(走mcp) + handoff + Step 9 Report Closure(如为 runtime-fix)+ 架构回看)
|
|
210
|
+
- 在报告末尾列出主 Agent 需要执行的 MCP 闸门
|
|
211
|
+
|
|
212
|
+
**MUST NOT DO:**
|
|
213
|
+
- 不得修改任何文件
|
|
214
|
+
- 不得执行 npm install 或任何写操作
|
|
215
|
+
- 不得跳过阶段 0 状态感知
|
|
216
|
+
- 不得直接做门禁判断(必须委托 Guardian)
|
|
217
|
+
- 不得在 Step 8 出口通过后不提醒验收闭环四步
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# farm-agent-add-coder-npm-package-add-route-v1
|
|
2
|
+
|
|
3
|
+
> **定位**:Plan → ADD Step 执行映射。不重复 Plan 的架构设计和 Specs 的任务细节——只定义每个 ADD Step 在本 Plan 中的具体动作、输入、产出。
|
|
4
|
+
>
|
|
5
|
+
> **模式**:重型(Heavyweight)——每一步产出检查强制执行"验证并更新项目状态"。本项目为 npm 包工程化,代码产物在 `packages/add-coder/`,不修改 farm-agent 业务代码。
|
|
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` ✅
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Step 0:文档先行(Documentation First)
|
|
12
|
+
|
|
13
|
+
**目的**:代码动工前,确认 Plan + Specs + Handoff 三元组齐全,项目文档反映即将实现的变更。
|
|
14
|
+
|
|
15
|
+
**输入**:
|
|
16
|
+
- 上游 Review:`.qoder/reviews/farm-agent-add-coder-npm-package-review-v1.md` ✅
|
|
17
|
+
- Plan 文档:`.qoder/plans/2026-07/08/farm-agent-add-coder-npm-package-plan-v1.md` ✅
|
|
18
|
+
|
|
19
|
+
**动作**:
|
|
20
|
+
1. 确认 Specs 三元组就绪:`spec.md` + `tasks.md` + `checklist.md` ✅
|
|
21
|
+
2. 调用 `find_related_docs` 检索受影响的架构/规范/需求文档 → 已完成,4 篇相关文档已审阅
|
|
22
|
+
3. 按检索结果更新项目文档 → 本次变更无需更新项目文档(变更对象为 `packages/add-coder/` 工具链,非大田耕播业务功能)
|
|
23
|
+
4. 确认 Handoff 就绪 ✅
|
|
24
|
+
|
|
25
|
+
**产出**:
|
|
26
|
+
- [x] 验证并更新项目状态:Specs 三元组路径确认
|
|
27
|
+
- [x] 验证并更新项目状态:项目文档已更新(或无需更新声明已记录)
|
|
28
|
+
- [x] 验证并更新项目状态:Handoff 就绪
|
|
29
|
+
|
|
30
|
+
### §0.8 DPS 闸门(上游文档质量校验)
|
|
31
|
+
|
|
32
|
+
调用 `check_dps({ planKeyword: "add-coder-npm-package" })`。
|
|
33
|
+
|
|
34
|
+
| DPS | 判定 | 动作 |
|
|
35
|
+
|-----|:--:|------|
|
|
36
|
+
| ≥ 85 | 🟢 | 进入 Step 1 |
|
|
37
|
+
| 70–84 | 🟡 | 回退补齐短板(补 Review 缺失维度 / Specs 缺失 Requirement) |
|
|
38
|
+
| < 70 | 🔴 | 回退细化 Plan 本身(粒度不足是下游漂移的根因) |
|
|
39
|
+
|
|
40
|
+
- [ ] DPS 已通过(≥ 85),可进入 Step 1
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Step 1:功能分析与审计打点定义
|
|
45
|
+
|
|
46
|
+
**目的**:本 Plan 为 npm 包工程化,不修改 farm-agent 业务代码。无需新增 `AgentAuditPhase` 字面量。审计通过 `record_dev_operation`(ADD-7)落库 DevOperation 表。
|
|
47
|
+
|
|
48
|
+
**输入**:
|
|
49
|
+
- Plan §3 的 Task 列表(6 轮 11 个 Task)
|
|
50
|
+
- Plan 元信息 ADD-7 审计策略表(3 条记录)
|
|
51
|
+
|
|
52
|
+
**动作**:
|
|
53
|
+
1. 确认本 Plan 无需新增 AgentAuditPhase(npm 包工程化,无业务逻辑审计点)
|
|
54
|
+
2. 确认 ADD-7 审计策略表覆盖所有文件变更(package.json / src/ / templates/)
|
|
55
|
+
|
|
56
|
+
**产出**:
|
|
57
|
+
- [ ] 验证并更新项目状态:审计策略确认完成,ADD-7 策略表已同步到 tasks.md Step 1 区域
|
|
58
|
+
|
|
59
|
+
| 审计方式 | 适用场景 | 工具 |
|
|
60
|
+
|---------|---------|------|
|
|
61
|
+
| `record_dev_operation` | 文件变更(CREATE/MODIFY/DELETE) | MCP 工具 |
|
|
62
|
+
| 无 AgentAuditPhase | 本 Plan 不修改 farm-agent 业务代码 | — |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Step 2:审计基础设施确认
|
|
67
|
+
|
|
68
|
+
**目的**:确认 npm 包所需的数据库基础设施(DevOperation + AuditLog 表)在第1轮 Task 0 中创建。
|
|
69
|
+
|
|
70
|
+
**输入**:
|
|
71
|
+
- `templates/core/prisma/add.prisma`(第1轮 Task 0 产出)
|
|
72
|
+
- `src/cli/prisma-injector.ts`(第1轮 Task 0 产出)
|
|
73
|
+
|
|
74
|
+
**动作**:
|
|
75
|
+
1. 确认 `add.prisma` 包含 DevOperation 和 AuditLog 模型定义
|
|
76
|
+
2. 确认 `prisma-injector.ts` 实现检测 → 复制 → 迁移 → generate 全流程
|
|
77
|
+
3. 确认 Prisma 迁移幂等(重复执行不报错)
|
|
78
|
+
|
|
79
|
+
**产出**:
|
|
80
|
+
- [ ] 验证并更新项目状态:DevOperation + AuditLog 表创建成功,状态已同步到 checklist.md ADD 规则合规项
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Step 3:业务逻辑实现与审计植入
|
|
85
|
+
|
|
86
|
+
**目的**:按 Plan 的 6 轮 11 个 Task 依赖拓扑,逐 Task 实施代码 + 嵌入 ADD-7 审计。
|
|
87
|
+
|
|
88
|
+
**输入**:
|
|
89
|
+
- Plan §3 架构设计(数据流转、目录结构、适配器矩阵)
|
|
90
|
+
- Plan §4 实施 Task + 依赖图
|
|
91
|
+
- `tasks.md` 的 Task 清单 ✅
|
|
92
|
+
- Handoff 的 ADD-7 审计策略表 ✅
|
|
93
|
+
|
|
94
|
+
**动作**:
|
|
95
|
+
|
|
96
|
+
### §3.0 前置守卫(重型强制)
|
|
97
|
+
|
|
98
|
+
调用 `check_add_route_status` 确认 add-route 文件有效存在,不通过则禁止进入代码实现。
|
|
99
|
+
|
|
100
|
+
### Task 映射表
|
|
101
|
+
|
|
102
|
+
| # | 轮次 | Task | 文件 | 审计植入点 | 新增字面量 | 依赖 | 状态 |
|
|
103
|
+
|---|:--:|------|------|-----------|-----------|------|------|
|
|
104
|
+
| 1 | 1 | Prisma 模型准备 | `templates/core/prisma/add.prisma`、`src/cli/prisma-injector.ts` | `record_dev_operation` (CREATE) | — | 无 | ⬜ |
|
|
105
|
+
| 2 | 1 | 清理硬编码 + 参数化 core 模板 | `templates/` 下 ~70 个文件 | `record_dev_operation` (MODIFY) | — | 无(可并行 Task 1) | ⬜ |
|
|
106
|
+
| 3 | 2 | 模板目录重组 + 适配器架构搭建 | `templates/core/`、`src/adapters/`、`src/core/` | `record_dev_operation` (CREATE/MODIFY) | — | 第1轮 Task 1 | ⬜ |
|
|
107
|
+
| 4 | 3 | Claude 适配器实现 | `templates/adapters/claude/`、`src/adapters/claude/renderer.ts` | `record_dev_operation` (CREATE) | — | 第2轮 Task 0 | ⬜ |
|
|
108
|
+
| 5 | 3 | Qoder 适配器实现 | `templates/adapters/qoder/`、`src/adapters/qoder/renderer.ts` | `record_dev_operation` (CREATE/MODIFY) | — | 第3轮 Task 0 | ⬜ |
|
|
109
|
+
| 6 | 3 | VS Code 适配器实现 | `templates/adapters/vscode/`、`src/adapters/vscode/renderer.ts` | `record_dev_operation` (CREATE/MODIFY) | — | 第3轮 Task 1 | ⬜ |
|
|
110
|
+
| 7 | 4 | 配置系统(Zod schema) | `src/config/schema.ts`、`src/config/defaults.ts` | `record_dev_operation` (CREATE) | — | 无 | ⬜ |
|
|
111
|
+
| 8 | 4 | CLI 重写 | `src/cli/`、`bin/add-coder.js`、`tsup.config.ts` | `record_dev_operation` (CREATE/MODIFY) | — | 第1轮 Task 0 + 第4轮 Task 0 | ⬜ |
|
|
112
|
+
| 9 | 5 | 集成测试 + 文档 + devlog | 测试文件、`README.md`、`package.json` | `record_dev_operation` (CREATE/MODIFY) | — | 全部前序 Task | ⬜ |
|
|
113
|
+
| 10 | 6 | CaijueHub 核心 | `src/caijuehub/caijue.toml`、`src/caijuehub/caijue.ts` | `record_dev_operation` (CREATE) | — | 第4轮 Task 1 | ⬜ |
|
|
114
|
+
| 11 | 6 | 重构模块读 caijue | `src/cli/detect.ts`、`src/cli/commands/init.ts` | `record_dev_operation` (MODIFY) | — | 第6轮 Task 0 | ⬜ |
|
|
115
|
+
|
|
116
|
+
### 依赖拓扑
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
第1轮: 基础准备
|
|
120
|
+
Task 0: Prisma 模型准备 ──┐
|
|
121
|
+
Task 1: 清理硬编码 ────────┘ 可并行,互不依赖
|
|
122
|
+
│
|
|
123
|
+
▼
|
|
124
|
+
第2轮: 架构搭建
|
|
125
|
+
Task 0: 适配器架构搭建
|
|
126
|
+
│
|
|
127
|
+
▼
|
|
128
|
+
第3轮: 适配器实现
|
|
129
|
+
Task 0: Claude → Task 1: Qoder → Task 2: VS Code(串行)
|
|
130
|
+
│
|
|
131
|
+
▼
|
|
132
|
+
第4轮: 配置 + CLI
|
|
133
|
+
Task 0: 配置系统 → Task 1: CLI 重写
|
|
134
|
+
│
|
|
135
|
+
▼
|
|
136
|
+
第5轮: 测试 + 发布
|
|
137
|
+
Task 0: 集成测试 + 文档 + devlog
|
|
138
|
+
│
|
|
139
|
+
▼
|
|
140
|
+
第6轮: 裁决层
|
|
141
|
+
Task 0: CaijueHub 核心 → Task 1: 重构模块读 caijue
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 每个 Task 完成后(重型强制执行)
|
|
145
|
+
|
|
146
|
+
1. 验证该 Task 的 checklist `[T]` 项
|
|
147
|
+
2. 调用 `record_dev_operation` 记录 ADD-7 审计
|
|
148
|
+
3. **验证并更新项目状态**:将该 Task 在 `tasks.md` 中逐子项勾选为 `[x]`
|
|
149
|
+
|
|
150
|
+
**产出**:
|
|
151
|
+
- [ ] 验证并更新项目状态:全部 Task 的 `[T]` 项通过,`tasks.md` 已完成项已逐项勾选
|
|
152
|
+
- [ ] 验证并更新项目状态:每个文件有 `record_dev_operation` 记录,`checklist.md` ADD-7 审计项已确认
|
|
153
|
+
- [ ] 验证并更新项目状态:调用 `check_spec_sync` 确认 spec 文档勾选状态与实际代码一致
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Step 3.5:实现审查
|
|
158
|
+
|
|
159
|
+
**目的**:代码完成后,验证意图与实现无语义鸿沟(ADD-10)。
|
|
160
|
+
|
|
161
|
+
**输入**:
|
|
162
|
+
- `checklist.md`
|
|
163
|
+
- `review-implementation-template.md`
|
|
164
|
+
|
|
165
|
+
**动作**:
|
|
166
|
+
1. 逐项执行 `checklist.md` 中所有 `[T]` 编译期检查项
|
|
167
|
+
2. 按 `checklist-template.md` 执行跨项目联调检查
|
|
168
|
+
3. 读取 `review-implementation-template.md`,生成 `review-implementation.md`
|
|
169
|
+
4. 所有 `[T]` 项通过后,生成 `review-runtime.md`(含 `[R]` 待验证清单)
|
|
170
|
+
5. **重型强制**:调用 `check_spec_sync` 确认 `tasks.md` / `checklist.md` 全部已完成项的勾选状态正确
|
|
171
|
+
|
|
172
|
+
**产出**:
|
|
173
|
+
- [ ] 验证并更新项目状态:`checklist.md` 全部 `[T]` 项已通过并勾选
|
|
174
|
+
- [ ] 验证并更新项目状态:`review-implementation.md` 已生成
|
|
175
|
+
- [ ] 验证并更新项目状态:`review-runtime.md` 已生成(含 `[R]` 待验证清单)
|
|
176
|
+
- [ ] 验证并更新项目状态:`check_spec_sync` 通过——spec 文档勾选状态与代码一致
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Step 4:审计数据验证
|
|
181
|
+
|
|
182
|
+
**目的**:编译 + 审计完整性检查。
|
|
183
|
+
|
|
184
|
+
**输入**:
|
|
185
|
+
- 全部修改文件(`packages/add-coder/`)
|
|
186
|
+
- MCP 工具:`check_phase_symmetry`、`check_failure_path`、`check_spec_sync`
|
|
187
|
+
|
|
188
|
+
**动作**:
|
|
189
|
+
1. `npx tsc --noEmit` —— 零类型错误(`packages/add-coder/` 目录)
|
|
190
|
+
2. 调用 `check_phase_symmetry` → 不适用(本 Plan 无 AgentAuditPhase 打点)
|
|
191
|
+
3. 调用 `check_failure_path` → 不适用
|
|
192
|
+
4. 验证 ADD-7 审计记录完整性:`query_audit_logs` 按 planKeyword 检索
|
|
193
|
+
5. **重型强制**:调用 `check_spec_sync` 确认 spec 文档与实际代码一致
|
|
194
|
+
|
|
195
|
+
**产出**:
|
|
196
|
+
- [ ] `tsc --noEmit` 通过
|
|
197
|
+
- [ ] 验证并更新项目状态:`check_spec_sync` 通过,checklist.md 编译检查项已同步勾选
|
|
198
|
+
|
|
199
|
+
### §4.6 RAHS 闸门(下游执行健康度校验)
|
|
200
|
+
|
|
201
|
+
调用 `check_rahs({ planKeyword: "add-coder-npm-package" })`。
|
|
202
|
+
|
|
203
|
+
| RAHS | 判定 | 动作 |
|
|
204
|
+
|------|:--:|------|
|
|
205
|
+
| ≥ 90 | 🟢 | 进入 Step 5 |
|
|
206
|
+
| 70–89 | 🟡 | 自检:范围扩散?审计漏记?类型错误? |
|
|
207
|
+
| < 70 | 🔴 | 注意力漂移严重,返工回退 Step 3 |
|
|
208
|
+
|
|
209
|
+
- [ ] RAHS 已通过(≥ 90),可进入 Step 5
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Step 5:AI 自动合规检查
|
|
214
|
+
|
|
215
|
+
**目的**:扫描全部修改文件的 ADD-1~ADD-7 合规性。
|
|
216
|
+
|
|
217
|
+
**输入**:
|
|
218
|
+
- 全部修改文件的代码(`packages/add-coder/`)
|
|
219
|
+
- MCP 工具:`check_add_compliance`
|
|
220
|
+
|
|
221
|
+
**动作**:
|
|
222
|
+
1. 对每个修改文件调用 `check_add_compliance(code, projectPattern="event-based")`
|
|
223
|
+
2. 汇总合规报告,标注违规项和风险等级
|
|
224
|
+
|
|
225
|
+
**产出**:
|
|
226
|
+
- [ ] 验证并更新项目状态:合规报告已生成,违规项处理决策已记录
|
|
227
|
+
- [ ] 验证并更新项目状态:`checklist.md` ADD 规则合规检查项已同步勾选
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Step 6:从审计数据定位问题
|
|
232
|
+
|
|
233
|
+
> **仅当 Step 4/5 发现异常时进入。**
|
|
234
|
+
|
|
235
|
+
**动作**:
|
|
236
|
+
1. 查询审计日志(`query_audit_logs` 或直接 grep)
|
|
237
|
+
2. 对照 Plan 验收到位情况
|
|
238
|
+
|
|
239
|
+
**产出**:
|
|
240
|
+
- [ ] 验证并更新项目状态:问题清单已记录(含文件路径和根因分析),已同步到 `tasks.md`
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Step 7:修复并验证
|
|
245
|
+
|
|
246
|
+
> **仅当 Step 6 发现问题时进入。**
|
|
247
|
+
|
|
248
|
+
**动作**:
|
|
249
|
+
1. 按问题优先级逐个修复
|
|
250
|
+
2. 修复后回到 Step 4 重新验证
|
|
251
|
+
|
|
252
|
+
**产出**:
|
|
253
|
+
- [ ] 验证并更新项目状态:所有问题已修复,`checklist.md` 回归验证项已重新勾选
|
|
254
|
+
- [ ] 验证并更新项目状态:Step 4/5 复验通过
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Step 8:收敛判断 + Handoff 更新 + Step 0 第二部分
|
|
259
|
+
|
|
260
|
+
**目的**:功能收敛判定,更新 Handoff,回到架构文档做最终校准。
|
|
261
|
+
|
|
262
|
+
**输入**:
|
|
263
|
+
- Handoff 文档
|
|
264
|
+
- `checklist.md` 最终状态
|
|
265
|
+
|
|
266
|
+
**动作**:
|
|
267
|
+
1. **收敛判断**:全部 `[T]` 项通过 + `[R]` 清单已生成 + RAHS ≥ 90 + `grep -r "farm.agent\|大田" dist/` 返回空 + `tsc --noEmit` 通过 + 集成测试全部通过 + Prisma 迁移幂等 → 功能收敛
|
|
268
|
+
2. **RAHS 最终核定**:调用 `check_rahs({ planKeyword: "add-coder-npm-package" })`,RAHS ≥ 90 方可收敛
|
|
269
|
+
3. **验证并更新项目状态**:`tasks.md` 全部 Task 已完成 + 全部子项已勾选,`checklist.md` 全部可验证项已勾选
|
|
270
|
+
4. **验证并更新项目状态**:调用 `check_spec_sync` 做最终交叉校验
|
|
271
|
+
5. **Handoff 更新**:更新 Handoff 的 §7(实际产出与偏离)、§8(验证结果)、§9(后置确认)
|
|
272
|
+
6. **Step 0 第二部分**:回架构文档做最终校准——确认 `packages/add-coder/templates/docs/` 下 grounding 文档已反映变更
|
|
273
|
+
7. **ADD-7 回查**:`query_audit_logs` 确认全部 `record_dev_operation` 记录已落库
|
|
274
|
+
8. **devlog**:调用 `record_dev_operation` 落库开发日志到 DevOperation 表(planKeyword: "add-coder-npm-package")
|
|
275
|
+
|
|
276
|
+
**产出**:
|
|
277
|
+
- [ ] 验证并更新项目状态:收敛判定结果
|
|
278
|
+
- [ ] 验证并更新项目状态:`tasks.md` + `checklist.md` 全部完成项已勾选
|
|
279
|
+
- [ ] 验证并更新项目状态:`check_spec_sync` 四者一致确认
|
|
280
|
+
- [ ] 验证并更新项目状态:Handoff 已更新
|
|
281
|
+
- [ ] 验证并更新项目状态:架构文档已校准
|
|
282
|
+
- [ ] 验证并更新项目状态:ADD-7 审计记录已落库确认
|
|
283
|
+
- [ ] 验证并更新项目状态:devlog 已落库
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Step 9:Report Closure(运行时发现关闭 — 条件性操作)
|
|
288
|
+
|
|
289
|
+
> **本 Plan 非 runtime-fix plan,跳过 Step 9。**
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## 附录:文件清单
|
|
294
|
+
|
|
295
|
+
| 文件 | 操作 | 轮次/Task | targetType | ADD-7 状态 |
|
|
296
|
+
|------|------|-----------|-----------|------------|
|
|
297
|
+
| `packages/add-coder/package.json` | MODIFY | 5/0 | PACKAGE | ⬜ |
|
|
298
|
+
| `packages/add-coder/tsconfig.json` | CREATE | 4/1 | BUILD_CONFIG | ⬜ |
|
|
299
|
+
| `packages/add-coder/tsup.config.ts` | CREATE | 4/1 | BUILD_CONFIG | ⬜ |
|
|
300
|
+
| `packages/add-coder/bin/add-coder.js` | MODIFY | 4/1 | CLI_ENTRY | ⬜ |
|
|
301
|
+
| `packages/add-coder/src/cli/index.ts` | CREATE | 4/1 | CLI | ⬜ |
|
|
302
|
+
| `packages/add-coder/src/cli/commands/init.ts` | CREATE | 4/1 | CLI | ⬜ |
|
|
303
|
+
| `packages/add-coder/src/cli/commands/sync.ts` | CREATE | 4/1 | CLI | ⬜ |
|
|
304
|
+
| `packages/add-coder/src/cli/commands/status.ts` | CREATE | 4/1 | CLI | ⬜ |
|
|
305
|
+
| `packages/add-coder/src/cli/detect.ts` | CREATE | 4/1 | CLI | ⬜ |
|
|
306
|
+
| `packages/add-coder/src/cli/config-loader.ts` | CREATE | 4/1 | CLI | ⬜ |
|
|
307
|
+
| `packages/add-coder/src/cli/prisma-injector.ts` | CREATE | 1/0 | CLI | ⬜ |
|
|
308
|
+
| `packages/add-coder/src/cli/writer.ts` | CREATE | 4/1 | CLI | ⬜ |
|
|
309
|
+
| `packages/add-coder/src/config/schema.ts` | CREATE | 4/0 | CONFIG | ⬜ |
|
|
310
|
+
| `packages/add-coder/src/config/defaults.ts` | CREATE | 4/0 | CONFIG | ⬜ |
|
|
311
|
+
| `packages/add-coder/src/core/renderer.ts` | CREATE | 1/1 | RENDERER | ⬜ |
|
|
312
|
+
| `packages/add-coder/src/adapters/claude/renderer.ts` | CREATE | 3/0 | ADAPTER | ⬜ |
|
|
313
|
+
| `packages/add-coder/src/adapters/qoder/renderer.ts` | CREATE | 3/1 | ADAPTER | ⬜ |
|
|
314
|
+
| `packages/add-coder/src/adapters/vscode/renderer.ts` | CREATE | 3/2 | ADAPTER | ⬜ |
|
|
315
|
+
| `packages/add-coder/templates/core/prisma/add.prisma` | CREATE | 1/0 | PRISMA_SCHEMA | ⬜ |
|
|
316
|
+
| `packages/add-coder/templates/core/` (全部模板文件) | MOVE | 2/0 | TEMPLATE | ⬜ |
|
|
317
|
+
| `packages/add-coder/templates/adapters/claude/` | CREATE | 3/0 | TEMPLATE | ⬜ |
|
|
318
|
+
| `packages/add-coder/templates/adapters/qoder/` | MOVE | 3/1 | TEMPLATE | ⬜ |
|
|
319
|
+
| `packages/add-coder/templates/adapters/vscode/` | MOVE | 3/2 | TEMPLATE | ⬜ |
|
|
320
|
+
| `packages/add-coder/templates/docs/` (grounding 文档) | CREATE | 1/1 | DOC | ⬜ |
|
|
321
|
+
| `packages/add-coder/src/caijuehub/caijue.toml` | CREATE | 6/0 | CAIJUE_CONFIG | ⬜ |
|
|
322
|
+
| `packages/add-coder/src/caijuehub/caijue.ts` | CREATE | 6/0 | CAIJUE_CONFIG | ⬜ |
|
|
323
|
+
| `packages/add-coder/README.md` | MODIFY | 5/0 | DOC | ⬜ |
|