add-coder 0.3.16 → 0.3.18

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 (33) hide show
  1. package/dist/index.js +269 -37
  2. package/package.json +1 -1
  3. package/templates/.add-coder-src-hash.json +31 -24
  4. package/templates/adapters/claude/hooks/pre-tool-use.sh +6 -1
  5. package/templates/adapters/codex/hooks/pre-tool-use.sh +7 -1
  6. package/templates/adapters/qoder/hooks/pre-tool-use.sh +6 -1
  7. package/templates/adapters/trae/hooks/pre-tool-use.sh +7 -1
  8. package/templates/adapters/vscode/hooks/pre-tool-use.sh +6 -1
  9. package/templates/core/hooks/pre-tool-use.sh +7 -1
  10. package/templates/core/prisma/add.prisma +35 -0
  11. package/templates/core/rules/profiles/index.toml +12 -0
  12. package/templates/core/rules/profiles/machineserver-profile.md +22 -0
  13. package/templates/core/rules/profiles/webapp-profile.md +61 -0
  14. package/templates/core/rules/project_rules.md +6 -54
  15. package/templates/core/scripts/mcp-server/tools/audit.ts +23 -14
  16. package/templates/core/scripts/mcp-server/tools/context.ts +20 -2
  17. package/templates/core/scripts/mcp-server/tools/contract.ts +202 -0
  18. package/templates/core/scripts/mcp-server/tools/docs.ts +2 -2
  19. package/templates/core/scripts/mcp-server/tools/gateway/check_add_route_completeness.ts +2 -2
  20. package/templates/core/scripts/mcp-server/tools/gateway/check_add_route_status.ts +2 -2
  21. package/templates/core/scripts/mcp-server/tools/gateway/check_dps.ts +2 -2
  22. package/templates/core/scripts/mcp-server/tools/gateway/check_rahs.ts +2 -2
  23. package/templates/core/scripts/mcp-server/tools/gateway/check_spec_sync.ts +2 -2
  24. package/templates/core/scripts/mcp-server/tools/gateway/index.ts +2 -2
  25. package/templates/core/scripts/mcp-server/tools/hitl.ts +13 -5
  26. package/templates/core/scripts/mcp-server/tools/hook-event-report.ts +2 -2
  27. package/templates/core/scripts/mcp-server/tools/index.ts +29 -10
  28. package/templates/core/scripts/mcp-server/tools/plan.ts +5 -2
  29. package/templates/core/scripts/mcp-server/tools/quality.ts +2 -2
  30. package/templates/core/scripts/mcp-server/tools/registrar.ts +11 -0
  31. package/templates/core/scripts/mcp-server/tools/review.ts +2 -2
  32. package/templates/core/templates/collab-contract-template.md +203 -0
  33. package/templates/core/templates/collab-contract-template.schema.json +133 -0
@@ -0,0 +1,203 @@
1
+ # {需求域名}-{核心内容}-collab-contract-v{版本号}
2
+
3
+ # ADD 范式并发协作契约({平台名} 多智能体实施)
4
+
5
+ > **性质**:并发协作契约(Concurrency Collaboration Contract)——非实施 Plan。
6
+ > 本契约定义"总控 Plan + N 个子 Plan"在多智能体模式(如 Qoder Quest Experts)下**如何并行协作、按触发条件依次工作**的规则集。实施内容由各子 Plan 把控,本契约只管**协作秩序**。
7
+ >
8
+ > **适用条件**:已有 ≥2 个子 Plan 需并行实施;平台支持 Lead Agent 调度 + 自定义子智能体(子智能体可绑定独立 planKeyword / Skills / MCP)。
9
+
10
+ ## PLAN 元信息
11
+
12
+ - **契约名称**: {需求域名}-{核心内容}-collab-contract-v{版本号}
13
+ - **制定时间**: {ISO 时间戳}
14
+ - **主导 AI**: {AI 助手标识}
15
+ - **目标仓库**: {仓库绝对路径}
16
+ - **关联体系**:
17
+ - 总控 Plan: `{总控 Plan 路径}`
18
+ - 子 Plan 1: `{子 Plan 1 路径}`
19
+ - 子 Plan 2: `{子 Plan 2 路径}`
20
+ - 子 Plan N: `{子 Plan N 路径}`
21
+ - **ADD-7 审计策略**:
22
+
23
+ | 文件 | targetType | action | beforeState | afterState | 状态 |
24
+ |-----|-----------|--------|------------|-----------|------|
25
+ | {契约文件路径} | PLAN | PLAN_CREATED | 无并发协作契约 | 多智能体协作规则集 | 本文件 |
26
+
27
+ ---
28
+
29
+ ## HITL 契约总览(一次性提交人类审核)
30
+
31
+ | 维度 | 内容 | 人类决策 |
32
+ |------|------|:---:|
33
+ | 参与者 | {Lead Agent 角色} + {N 个自定义专家} | 同意/调整 |
34
+ | 并行策略 | {阶段划分与并行度描述} | 同意/调整 |
35
+ | 触发机制 | {Lead 如何解析依赖与拉起专家} | 同意/调整 |
36
+ | 文件边界 | {三方文件域划分} | 同意/调整 |
37
+ | 风险等级 | {🟢/🟡/🔴} | 同意/调整 |
38
+
39
+ > **人类确认后**:契约定稿,可作为平台专家团配置指南。
40
+
41
+ ---
42
+
43
+ ## 一、背景与目标
44
+
45
+ ### 1.1 问题现状
46
+
47
+ {为什么需要并发契约:已有子 Plan 体系但协作秩序未定义 / 平台能力已具备但规则未制定 / 无契约时并行必然冲突}
48
+
49
+ ### 1.2 目标
50
+
51
+ 1. {定义并行协作规则(角色/触发/边界/仲裁)}
52
+ 2. {让平台多智能体模式原生承载 ADD 范式}
53
+ 3. {审计天然分桶,跨会话恢复不混淆}
54
+
55
+ ---
56
+
57
+ ## 二、参与者与角色
58
+
59
+ | 角色 | 平台实体 | 对应 Plan | 职责 |
60
+ |------|-----------|-----------|------|
61
+ | **Lead Agent** | {主智能体} | {总控 Plan} | {调度/对齐/验收;不写实施代码} |
62
+ | **专家 1** | {自定义子智能体} | {子 Plan 1} | {职责} |
63
+ | **专家 2** | {自定义子智能体} | {子 Plan 2} | {职责} |
64
+ | **专家 N** | {自定义子智能体} | {子 Plan N} | {职责} |
65
+
66
+ **每个专家绑定**:
67
+ - 独立 planKeyword(hook 事件 + record_dev_operation 归因)
68
+ - 独立 Skills + MCP
69
+ - **description 字段**(平台自动委派依据——描述“何时被调用”,与 §3.1 触发条件对齐)
70
+ - 追加提示词:职责边界 + 文件边界 + 完成判定
71
+
72
+ > **专家定义(2026-08-05 websearch 核实)**:平台 Subagent 本质是**任务委派单元**——通过 `description` 字段声明“何时被调用”,主智能体按任务描述自动匹配并委派。本项目将 Subagent 绑定为「Plan 实施单元」:description 即触发条件(§3.1),tools/skills/mcpServers 即能力边界(§2.1)。
73
+
74
+ ### 2.1 能力矩阵(每个专家的能力边界)——必填
75
+
76
+ | 能力 | 专家 1 | 专家 2 | ... | Lead |
77
+ |------|:---:|:---:|:---:|:---:|
78
+ | {能力 A} | ✅/❌ | ✅/❌ | | ✅/❌ |
79
+ | {能力 B} | ✅/❌ | ✅/❌ | | ✅/❌ |
80
+
81
+ **能力边界规则**:每个专家只能在其能力列 ✅ 范围内工作;能力交叉区按文件边界细分(§3.2)。
82
+
83
+ ---
84
+
85
+ ## 三、协作规则(契约主体)
86
+
87
+ ### 3.1 触发条件表(谁先谁后)——必填
88
+
89
+ | 阶段 | 专家 | 触发条件 | 并行度 |
90
+ |------|------|---------|:---:|
91
+ | A | {专家} | {前置依赖/无依赖} | 并行/串行 |
92
+ | B | {专家} | {消费 A 产出} | 串行 |
93
+
94
+ **规则**:Lead Agent 每轮检查触发条件——满足即拉起,不满足不阻塞(等待或先做无依赖部分)。
95
+
96
+ **触发机制(平台 Subagent 调度)**:主智能体把当前任务描述与各专家 `description` 比对,命中即委派;彼此独立的任务可并发。因此每个专家的 `description` 必须与本节触发条件表对齐:
97
+
98
+ | 专家 | description 建议文案(触发匹配依据) |
99
+ |------|-----------------------------------|
100
+ | 专家 1 | “实施 {子 Plan 1}:{一句话职责}” |
101
+ | 专家 2 | “实施 {子 Plan 2}:{一句话职责}” |
102
+ | Lead | “总控:解析依赖拓扑,按触发条件委派专家,验收整合” |
103
+
104
+ ### 3.1.1 依赖拓扑图(完整)——必填
105
+
106
+ ```
107
+ {ASCII 依赖图:Lead 在顶,专家分叉,标注产出/消费关系与阶段}
108
+ ```
109
+
110
+ **依赖关系声明**(机器可读,供 Lead 解析):
111
+
112
+ ```
113
+ 依赖: {专家X} → { 专家Y产出(说明), ... }
114
+ 无依赖: {专家A}, {专家B}(可立即并行)
115
+ ```
116
+
117
+ ### 3.2 文件边界(防冲突硬约束)——必填
118
+
119
+ | 专家 | 独占文件域 | 禁区 |
120
+ |------|-----------|------|
121
+ | {专家 1} | {路径域} | {禁改域} |
122
+ | {专家 2} | {路径域} | {禁改域} |
123
+
124
+ **仲裁**:跨边界修改必须经 Lead Agent 批准(记录仲裁事件,planKeyword=总控)。
125
+
126
+ > **隔离强度(2026-08-05 websearch 核实)**:平台支持 Subagent 在独立 git worktree 运行(隔离工作区)。默认文件边界(软隔离),高风险/大改场景升级 worktree(硬隔离):
127
+ >
128
+ > | 模式 | 适用 | 隔离强度 |
129
+ > |------|------|---------|
130
+ > | 文件边界(默认) | 常规实施 | 软隔离(git diff 检查交叉) |
131
+ > | worktree 隔离 | 大改/高风险 | 硬隔离(独立 git worktree) |
132
+ >
133
+ > worktree 模式由 Lead Agent 判定启用。
134
+
135
+ ### 3.3 审计归因(ADD-7)
136
+
137
+ | 动作 | 归因规则 |
138
+ |------|---------|
139
+ | `record_dev_operation` | 专家用自己 planKeyword 落库 |
140
+ | hook 事件 | 专家绑定的 planKeyword 写入 |
141
+ | 审计查询 | `query_audit_logs({ planKeyword: "<子Plan>" })` 分桶检索 |
142
+ | HITL 审批 | 子 Plan 级走子 Plan 审批;跨 Plan 决策走总控审批 |
143
+
144
+ ### 3.4 完成判定——必填
145
+
146
+ | 专家 | 完成标志 |
147
+ |------|---------|
148
+ | {专家 1} | {可验证的完成条件} |
149
+ | Lead | {总控 checklist 全过 + DPS ≥ 80 → 白皮书/最终产物} |
150
+
151
+ ### 3.5 冲突仲裁流程
152
+
153
+ ```
154
+ 专家 A 需要触碰专家 B 的边界文件
155
+ → 记录请求(planKeyword=总控,action=BOUNDARY_REQUEST)
156
+ → Lead Agent 裁决(同意/拒绝/改道)
157
+ → 裁决结果 record_dev_operation 落库
158
+ → 专家 A 按裁决执行
159
+ ```
160
+
161
+ ### 3.6 契约自身 HITL 审批配套——必填
162
+
163
+ > 契约是文档类型,不是实施 Plan——但契约变更(参与者/边界/触发条件)直接影响并行秩序,必须走 HITL 审批。
164
+
165
+ | 项 | 设计 |
166
+ |----|------|
167
+ | 审批类型 | `HitlType` 扩展 `COLLAB_CONTRACT`(与 PLAN/PLAN_REVIEW 并列) |
168
+ | 审批对象 | 契约文件 + 变更 diff(参与者/能力矩阵/文件边界/依赖拓扑) |
169
+ | 发起时机 | 契约新建 / 契约重大变更(参与者增减、边界重划、触发条件变更) |
170
+ | round 机制 | 复用 HitlRecord.round(同一契约多次变更递增 round) |
171
+ | 与子 Plan 审批关系 | 契约审批是**总控级**(planName=总控 Plan);子 Plan 审批独立进行(互不阻塞) |
172
+ | 哨兵 | `.qoder/hitl/.tongyi-{contractName}`(复用现有哨兵机制) |
173
+ | 审计 | 契约审批记录入 HitlRecord(type=COLLAB_CONTRACT)→ query_audit_logs 可查 |
174
+
175
+ ---
176
+
177
+ ## 四、Task 映射(契约 ↔ 子 Plan)
178
+
179
+ | 契约 Task | 子 Plan Task | 专家 | 触发 |
180
+ |-----------|-------------|------|------|
181
+ | CT-1 {描述} | {子 Plan Task} | {专家} | {触发条件} |
182
+
183
+ ---
184
+
185
+ ## 五、验收标准
186
+
187
+ - [ ] Lead Agent 按触发条件正确拉起全部专家(无提前/无遗漏)
188
+ - [ ] 各方文件边界零冲突(git diff 无交叉)
189
+ - [ ] 审计分桶正确(query_audit_logs 按 planKeyword 各查各的)
190
+ - [ ] 边界仲裁有记录(BOUNDARY_REQUEST 事件可查)
191
+ - [ ] 全部专家完成判定达标 → 总控 DPS ≥ 80 → 最终产物产出
192
+
193
+ ---
194
+
195
+ ## 六、关联文档
196
+
197
+ | 文档 | 路径 |
198
+ |------|------|
199
+ | 总控 Plan | `{路径}` |
200
+ | 子 Plan 1..N | `{路径}` |
201
+ | 平台文档 | {官方能力依据 URL} |
202
+
203
+ ---
@@ -0,0 +1,133 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "collab-contract-template",
4
+ "description": "ADD 范式并发协作契约模板(多智能体协作规则集)",
5
+ "type": "object",
6
+ "required": ["contractName", "participants", "stages", "fileBoundaries", "auditAttribution", "completionCriteria"],
7
+ "properties": {
8
+ "contractName": {
9
+ "type": "string",
10
+ "description": "契约名称:{需求域名}-{核心内容}-collab-contract-v{版本号}"
11
+ },
12
+ "participants": {
13
+ "type": "array",
14
+ "description": "参与者(Lead Agent + 自定义专家)",
15
+ "items": {
16
+ "type": "object",
17
+ "required": ["role", "platformEntity", "boundPlan", "responsibility", "planKeyword", "description"],
18
+ "properties": {
19
+ "role": { "type": "string", "description": "角色:Lead Agent / 专家 N" },
20
+ "platformEntity": { "type": "string", "description": "平台实体(主智能体/自定义子智能体)" },
21
+ "boundPlan": { "type": "string", "description": "绑定的子 Plan 名称" },
22
+ "responsibility": { "type": "string", "description": "职责描述" },
23
+ "planKeyword": { "type": "string", "description": "审计归因 planKeyword" },
24
+ "description": { "type": "string", "description": "Subagent 触发匹配描述(平台自动委派依据)" }
25
+ }
26
+ }
27
+ },
28
+ "contractRole": {
29
+ "type": "object",
30
+ "description": "Plan 主/从角色(§3.6):MASTER=总控 / SUB=子 Plan",
31
+ "properties": {
32
+ "masterPlan": { "type": "string", "description": "总控 Plan 名称(ContractRole=MASTER)" },
33
+ "subPlans": {
34
+ "type": "array",
35
+ "items": { "type": "string" },
36
+ "description": "子 Plan 名称列表(ContractRole=SUB)"
37
+ }
38
+ }
39
+ },
40
+ "hitlApproval": {
41
+ "type": "object",
42
+ "description": "契约自身 HITL 审批配套(§3.6)",
43
+ "properties": {
44
+ "type": { "type": "string", "enum": ["COLLAB_CONTRACT"] },
45
+ "triggerTiming": { "type": "string" },
46
+ "sentinelPath": { "type": "string" }
47
+ }
48
+ },
49
+ "abilityMatrix": {
50
+ "type": "object",
51
+ "description": "能力矩阵(§2.1):每个专家的能力边界",
52
+ "additionalProperties": {
53
+ "type": "object",
54
+ "description": "能力 → 各专家是否具备",
55
+ "additionalProperties": { "type": "boolean" }
56
+ }
57
+ },
58
+ "stages": {
59
+ "type": "array",
60
+ "description": "触发条件表(§3.1):阶段/专家/触发条件/并行度",
61
+ "items": {
62
+ "type": "object",
63
+ "required": ["stage", "expert", "trigger", "parallelism"],
64
+ "properties": {
65
+ "stage": { "type": "string", "description": "阶段标识(A/B/C/D)" },
66
+ "expert": { "type": "string", "description": "执行的专家" },
67
+ "trigger": { "type": "string", "description": "触发条件(前置依赖/无依赖)" },
68
+ "parallelism": { "enum": ["parallel", "serial"], "description": "并行度" }
69
+ }
70
+ }
71
+ },
72
+ "dependencyGraph": {
73
+ "type": "string",
74
+ "description": "依赖拓扑 ASCII 图(§3.1.1)"
75
+ },
76
+ "dependencyDeclarations": {
77
+ "type": "array",
78
+ "description": "机器可读依赖声明(§3.1.1)",
79
+ "items": { "type": "string", "description": "如:依赖: 专家2 → { 专家1产出 }" }
80
+ },
81
+ "fileBoundaries": {
82
+ "type": "array",
83
+ "description": "文件边界(§3.2):防冲突硬约束",
84
+ "items": {
85
+ "type": "object",
86
+ "required": ["expert", "exclusiveDomain", "forbidden"],
87
+ "properties": {
88
+ "expert": { "type": "string" },
89
+ "exclusiveDomain": { "type": "string", "description": "独占文件域" },
90
+ "forbidden": { "type": "string", "description": "禁改域" },
91
+ "isolationMode": { "type": "string", "enum": ["file", "worktree"], "description": "隔离模式:file=文件级独占 / worktree=工作树级隔离" }
92
+ }
93
+ }
94
+ },
95
+ "auditAttribution": {
96
+ "type": "object",
97
+ "description": "审计归因(§3.3)",
98
+ "properties": {
99
+ "recordDevOperation": { "type": "string" },
100
+ "hookEvents": { "type": "string" },
101
+ "auditQuery": { "type": "string" },
102
+ "hitlApproval": { "type": "string" }
103
+ }
104
+ },
105
+ "completionCriteria": {
106
+ "type": "object",
107
+ "description": "完成判定(§3.4)",
108
+ "additionalProperties": {
109
+ "type": "string",
110
+ "description": "专家 → 可验证的完成标志"
111
+ }
112
+ },
113
+ "taskMapping": {
114
+ "type": "array",
115
+ "description": "Task 映射(§四)",
116
+ "items": {
117
+ "type": "object",
118
+ "required": ["contractTask", "subPlanTask", "expert", "trigger"],
119
+ "properties": {
120
+ "contractTask": { "type": "string" },
121
+ "subPlanTask": { "type": "string" },
122
+ "expert": { "type": "string" },
123
+ "trigger": { "type": "string" }
124
+ }
125
+ }
126
+ },
127
+ "acceptanceCriteria": {
128
+ "type": "array",
129
+ "description": "验收标准(§五)",
130
+ "items": { "type": "string" }
131
+ }
132
+ }
133
+ }