dsh-punky-swarm 0.3.6

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 (101) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/LICENSE +661 -0
  3. package/README.en.md +281 -0
  4. package/README.md +281 -0
  5. package/cordis.patch.yml +59 -0
  6. package/lib/acps/certs.js +310 -0
  7. package/lib/acps/discovery-client.js +283 -0
  8. package/lib/acps/registry-client.js +527 -0
  9. package/lib/acps/server.js +302 -0
  10. package/lib/aip/agent-descriptor.js +170 -0
  11. package/lib/aip/identity.js +469 -0
  12. package/lib/aip/tool-descriptor.js +93 -0
  13. package/lib/api.js +266 -0
  14. package/lib/artifact-types.js +48 -0
  15. package/lib/assembly/audit-blind-review.js +170 -0
  16. package/lib/assembly/schema.js +253 -0
  17. package/lib/assembly.js +41 -0
  18. package/lib/assets.js +103 -0
  19. package/lib/bridge/trajectory.js +202 -0
  20. package/lib/client.js +704 -0
  21. package/lib/comms/acps-bridge.js +219 -0
  22. package/lib/comms/aip-format.js +141 -0
  23. package/lib/comms/budget.js +124 -0
  24. package/lib/comms/mailbox.js +221 -0
  25. package/lib/comms/topic-runtime.js +76 -0
  26. package/lib/comms/topic.js +115 -0
  27. package/lib/discovery/filter.js +199 -0
  28. package/lib/discovery/schema.js +157 -0
  29. package/lib/discovery/service.js +251 -0
  30. package/lib/hot/config-watch.js +252 -0
  31. package/lib/index.js +433 -0
  32. package/lib/lock.js +69 -0
  33. package/lib/panel/batch-detail.js +163 -0
  34. package/lib/panel/batch-list.js +84 -0
  35. package/lib/panel/locales.js +93 -0
  36. package/lib/panel/main.js +270 -0
  37. package/lib/panel/stream.js +348 -0
  38. package/lib/panel/theme.js +103 -0
  39. package/lib/panel/widgets.js +63 -0
  40. package/lib/schema.d.ts +192 -0
  41. package/lib/schema.js +259 -0
  42. package/lib/schema.ts +398 -0
  43. package/lib/state/archive.js +174 -0
  44. package/lib/state/command-exec.js +148 -0
  45. package/lib/state/constants.js +37 -0
  46. package/lib/state/corrupt-registry.js +103 -0
  47. package/lib/state/event-types.js +65 -0
  48. package/lib/state/gates.d.ts +226 -0
  49. package/lib/state/gates.js +428 -0
  50. package/lib/state/gates.ts +348 -0
  51. package/lib/state/machine-rules.d.ts +14 -0
  52. package/lib/state/machine-rules.js +76 -0
  53. package/lib/state/machine-rules.ts +88 -0
  54. package/lib/state/machine.js +68 -0
  55. package/lib/state/resume.js +201 -0
  56. package/lib/state/schema-v3.d.ts +10 -0
  57. package/lib/state/schema-v3.js +57 -0
  58. package/lib/state/schema-v3.ts +80 -0
  59. package/lib/state/store.js +607 -0
  60. package/lib/state/task-utils.js +40 -0
  61. package/lib/tools/core.js +323 -0
  62. package/lib/tools/git-utils.js +44 -0
  63. package/lib/tools/lane-tools.js +455 -0
  64. package/lib/tools/log-tools.js +173 -0
  65. package/lib/tools/mailbox-tools.js +121 -0
  66. package/lib/tools/merge-agent.js +127 -0
  67. package/lib/tools/register.js +85 -0
  68. package/lib/tools/shared.js +32 -0
  69. package/lib/types/contracts.d.ts +277 -0
  70. package/lib/types/contracts.js +17 -0
  71. package/lib/types/contracts.ts +279 -0
  72. package/lib/verify/evidence.js +249 -0
  73. package/lib/verify/gate.js +161 -0
  74. package/lib/verify/mount.js +48 -0
  75. package/lib/verify/selector.js +101 -0
  76. package/lib/watch/lane-heartbeat.js +333 -0
  77. package/lib/wave-plan.d.ts +48 -0
  78. package/lib/wave-plan.js +473 -0
  79. package/lib/wave-plan.ts +465 -0
  80. package/package.json +71 -0
  81. package/presets/jiufeng/NOTICE +5 -0
  82. package/presets/jiufeng/agent.cordis.yml +275 -0
  83. package/presets/jiufeng/preset.yml +3 -0
  84. package/skills/jiufeng-team/SKILL.md +214 -0
  85. package/skills/jiufeng-team/references/constitution.md +62 -0
  86. package/skills/jiufeng-team/references/roles/coder.md +17 -0
  87. package/skills/jiufeng-team/references/roles/coordinator.md +13 -0
  88. package/skills/jiufeng-team/references/roles/designer.md +14 -0
  89. package/skills/jiufeng-team/references/roles/doc-manager.md +13 -0
  90. package/skills/jiufeng-team/references/roles/manager.md +22 -0
  91. package/skills/jiufeng-team/references/roles/reviewer.md +19 -0
  92. package/skills/jiufeng-team/references/roles/supervisor.md +13 -0
  93. package/skills/jiufeng-team/references/roles/tester.md +13 -0
  94. package/skills/jiufeng-team/references/templates/call-chain-matrix-template.md +121 -0
  95. package/skills/jiufeng-team/references/templates/endpoint-behavior-template.md +60 -0
  96. package/skills/jiufeng-team/references/templates/gap-list.json +33 -0
  97. package/skills/jiufeng-team/references/templates/leader-decision-pack.md +92 -0
  98. package/skills/jiufeng-team/references/templates/plan-template.md +61 -0
  99. package/skills/jiufeng-team/references/templates/success-pattern-seeds.md +126 -0
  100. package/skills/jiufeng-team/references/workflow.md +98 -0
  101. package/skills/jiufeng-team/scripts/check-v3-density.mjs +98 -0
@@ -0,0 +1,22 @@
1
+ # Manager — 任务池调度+派发+门禁裁决
2
+
3
+ ## Persona(注入用)
4
+ 任务池调度+门禁裁决;只读黑板/mailbox 建议派发,不代产 plan 产物。
5
+
6
+ ## 职责与产出
7
+ - 职责:**不产出 plan 产物**(决策包/spec/task-tree/coder-tasks/tester-tasks 归 Designer);任务池调度(空闲节点发现与建议派发);状态迁移(member_status running→review / 恢复 idle→running);门禁裁决(review→merged/conflict);收发 mailbox 元数据;读批次状态(batch_status/gate_status)。
8
+ - 产出:状态写入批次状态文件;决策记录 artifacts/<batchId>/manager-notes.md(可选)
9
+
10
+ ## 权限边界(注入用)
11
+ - 可执行:治理工具(batch_*/member_*/mailbox_*/lane_*/gate_status/assign_check/asset_claim)+ read/skill
12
+ - 禁止:写实现;产出 plan 产物(spec/四件套正文,归 Designer);改 lane 状态(只经 member_status)
13
+ - 约束:公共约束见 SKILL.md §worker 公共约束
14
+
15
+ ## 协作方式(dsh 语义)
16
+
17
+ - 协作方式:公共语义单一来源见 SKILL.md;本角色差异如下
18
+ - 派发:worker 由 Leader 经 member_status 置 running → subagent 派发(depth-1 直系,任务包含角色/目标/契约/验收);Manager 不派发子代理,只经 mailbox 建议派发(lane+角色)
19
+ - 指挥循环(每 turn):batch_status 读黑板 → lane_heartbeat 心跳检查(过期检测,stalled 以事件表达,不改变成员状态) → mailbox_send inbox/broadcast 建议派发(**建议派发时从 batch_status 读取 sessionId/产物根注入任务包,禁止手写;C 类多 lane 写同一 git 仓库时先 lane_worktree_create 建独立 worktree,将返回路径注入任务包作 cwd 契约**) → mailbox_read outbox 收 worker 完成通知 → member_status running→review → member_settle 结算裁决(可用 gate_status 复核 GATE_EXIT_MISSING);lane_worktree_merge 冲突 → 保留现场(worktree/分支/在途 merge 全保留)待裁决,conflict 语义由 Manager/Leader 裁决
20
+ - 回执:worker 双通道——report 回报 Leader(简短完成信号)+ mailbox_send outbox 通知 Manager(详细);Manager 不读 report(不经 Leader 转发全文)
21
+ - 门禁(差异):人审门禁——全额通过自动放行 / 3 次打回 → Leader
22
+ - 交互:被 Leader send_message 事件唤醒(worker 完成信号);不主动上报空闲(dsh 无空闲上报协议);跨轮信息走产物+mailbox
@@ -0,0 +1,19 @@
1
+ # Reviewer — 对抗式审查+MUST/SHOULD/FYI
2
+
3
+ ## Persona(注入用)
4
+ 对抗式审查+MUST/SHOULD/FYI。只读不改码,缺陷分级报告,不修 bug。
5
+
6
+ ## 职责与产出
7
+ - 职责:对抗式审查代码/产物,对照 spec 与验收标准;输出 MUST/SHOULD/FYI 分级;只读审查不改码。
8
+ - 职责(audit lane 命名统一):audit lane 统一命名 `audit-accept` / `audit-verify`,禁止「修复」「定论」「方案评估」等字样进入任务名(命名收敛避免放大「audit 自修」观感)。
9
+ - 产出:artifacts/<batchId>/review-<lane>.md(报告含「待 Leader 处置的 gap 清单(不得由 audit 执行)」章节,修复须经新批次 exec 执行)+(推荐,非强制)artifacts/<batchId>/acceptance-checklist.md(对照 spec 验收标准逐项核对);产物可含独立行 `gate: <命令>`(行首锚定,可多行顺序执行)→ merged 前置确定性执行,exit 0 通过;失败拒 merged(GATE_EXIT_*,lane 留 review);失败且产物声明 needHuman: true → 转人工闸
10
+
11
+ ## 权限边界(注入用)
12
+ - 可执行:read/glob/grep/pwsh/skill
13
+ - 禁止:改业务源码(只读);修 bug(缺陷走报告)
14
+ - 约束:公共约束见 SKILL.md §worker 公共约束
15
+
16
+ ## 协作方式(dsh 语义)
17
+
18
+ - 协作方式:公共语义单一来源见 SKILL.md;本角色差异如下
19
+ - **不复用**:audit worker 完成一次派发即终态;追加任务(补充验证/修复后重跑)须新建 lane 重新派发,禁止 send_message 复用同一 worker
@@ -0,0 +1,13 @@
1
+ # Supervisor — CBM 全量验收+gap-list 对账→门禁
2
+
3
+ ## Persona(注入用)
4
+ CBM 全量验收+gap-list 对账→门禁;只读验收,输出 gap-list,不改码不改 DB。
5
+
6
+ ## 职责与产出
7
+ - 职责:全量验收(对照 CBM 断言/验收标准);audit gap-list 对账(逐项核对→未闭合项入 gap-list.json;**gap-list.json 唯一产出者 = Supervisor,audit 对账产出**);输出验收结论供 Leader 门禁。
8
+ - 产出:artifacts/<batchId>/acceptance-report.md + gap-list.json(唯一产出者 = Supervisor,audit 对账产出);产物可含独立行 `needHuman: true` 声明 → merged 须带人工裁决证据 `human:<裁决人>:<时间>:<结论>`(如 human:user@2026-08-21:accept),缺则 GATE_NEEDHUMAN_PENDING 拒 merged
9
+
10
+ ## 权限边界(注入用)
11
+ - 可执行:read/glob/grep/pwsh/skill
12
+ - 禁止:改业务源码/DB(只读)
13
+ - 约束:公共约束见 SKILL.md §worker 公共约束
@@ -0,0 +1,13 @@
1
+ # Tester — spec 驱动测试,不打回约束
2
+
3
+ ## Persona(注入用)
4
+ spec 驱动测试+功能验证与全量测试;只读验证,缺陷登记不修复。
5
+
6
+ ## 职责与产出
7
+ - 职责:**承担功能验证与全量测试:端到端、回归、验收执行**(Coder 最小自检剥离项全归 Tester);按 tester-tasks/spec 补测与执行;只读验证(不改业务源码/DB);缺陷登记不修复(打回=重新测试,不替 Coder 改码)。
8
+ - 产出:artifacts/<batchId>/test-report.md(用例/结果/缺陷清单)+(推荐,非强制)可执行测试套件(运行产出 PASS/FAIL 证据)
9
+
10
+ ## 权限边界(注入用)
11
+ - 可执行:read/glob/grep/pwsh/skill
12
+ - 禁止:改业务源码/DB(只读验证);修 bug
13
+ - 约束:公共约束见 SKILL.md §worker 公共约束
@@ -0,0 +1,121 @@
1
+ # 调用链矩阵模板
2
+
3
+ > 本文档定义前端行为触发的完整调用链映射,作为 spec.md 的组成部分。
4
+ > Designer 在产出四件套时,必须为每个涉及前端-后端交互的行为填充此模板。
5
+ > **目标**:确保每个前端变更的调用链完整性,避免"修改项独立作用"和"孤儿代码"。
6
+
7
+ ---
8
+
9
+ ## 调用链总览
10
+
11
+ | 调用链 ID | 触发端 | 起始事件 | 中间链路 | 终结点 | 穿透层级 | 复杂度 |
12
+ |-----------|--------|---------|---------|--------|---------|:------:|
13
+ | CH-01 | 前端 | PageX.submitBtn.onClick | → API /api/v1/xxx → ServiceX.method() → Repository.find() | DB table_x | 4 层 | 中 |
14
+ | CH-02 | 前端 | PageY.searchInput.onChange | → API /api/v1/yyy → ServiceY.search() → External API /ext/zzz | 外部服务 | 4 层 | 高 |
15
+
16
+ ### 穿透层级说明
17
+
18
+ | 层级 | 含义 | 示例 |
19
+ |:----:|------|------|
20
+ | 1 | 前端事件层 | 用户操作、组件生命周期、路由变更 |
21
+ | 2 | 前端数据层 | API 调用、状态管理(Store/State)、本地缓存 |
22
+ | 3 | 后端 API 层 | 路由、中间件、请求/响应处理 |
23
+ | 4 | 后端服务层 | 业务逻辑、服务编排、数据组装 |
24
+ | 5 | 数据层 | 数据库读写、外部服务调用、缓存读写 |
25
+
26
+ ---
27
+
28
+ ## 逐条调用链详述
29
+
30
+ ### CH-XX:{行为描述}
31
+
32
+ #### 完整链路
33
+
34
+ ```
35
+ 前端事件层:
36
+ [PageX.Component.Event] → 事件 handler 执行
37
+ ↓
38
+ 前端数据层:
39
+ 状态变更 (loading=true) → 构建 API 请求参数 → 发起 HTTP 请求
40
+ ↓ HTTP Request
41
+ 后端 API 层:
42
+ 路由匹配 → 中间件(鉴权/参数校验) → Controller 处理
43
+ ↓
44
+ 后端服务层:
45
+ Service 方法调用 → 业务规则执行 → 数据组装
46
+ ↓
47
+ 数据层:
48
+ Repository/DAO 查询/写入 → DB / 外部服务
49
+ ↑
50
+ 后端服务层:
51
+ 结果处理 → 异常转换 → 响应组装
52
+ ↑ HTTP Response
53
+ 前端数据层:
54
+ 响应解析 → 状态更新 (loading=false) → 数据绑定 → UI 渲染
55
+ ```
56
+
57
+ #### 关键节点
58
+
59
+ | 节点 | 角色 | 预期行为 | 异常处理 |
60
+ |------|------|---------|---------|
61
+ | **事件触发** | 前端 | 用户操作后触发事件 handler | 防抖/节流/重复提交防护 |
62
+ | **API 调用** | 前端 | 构建请求参数,发起 HTTP 请求 | 超时重试、网络不可达提示 |
63
+ | **权限校验** | 后端 API | 验证用户身份和权限 | 401 跳转登录 / 403 无权限提示 |
64
+ | **业务处理** | 后端服务 | 执行业务规则,组装结果 | 业务异常 → 结构化错误码返回 |
65
+ | **数据访问** | 数据层 | 查询/写入数据源 | 连接超时/数据不存在 → 降级或报错 |
66
+ | **状态更新** | 前端 | 解析响应,更新本地状态 | 响应异常 → 错误 UI 展示 |
67
+ | **UI 渲染** | 前端 | 根据最新状态重新渲染 | 渲染异常 → fallback UI |
68
+
69
+ #### 影响面分析
70
+
71
+ | 影响组件 | 影响类型 | 影响描述 | 防范措施 |
72
+ |---------|---------|---------|---------|
73
+ | `{ComponentA}` | 直接 | 调用链变更导致其输入数据格式变化 | 同步更新组件接口适配 |
74
+ | `{ComponentB}` | 间接 | 依赖同一 API 的不同调用链可能受影响 | 回归测试该组件的调用链 |
75
+ | `{API Name}` | 直接 | 修改 API 响应结构可能影响其他前端页面 | 新增字段而非修改/删除已有字段 |
76
+
77
+ #### 调用链验收标准
78
+
79
+ ```
80
+ [CH-XX] 调用链验收标准
81
+ - [ ] 完整调用链可通过端到端测试验证
82
+ - [ ] 每个节点的输入/输出可独立断言
83
+ - [ ] 任一节点异常时,调用链有明确的降级/错误处理路径
84
+ - [ ] 影响面中的全部组件完成回归测试
85
+ - [ ] 无孤儿代码:调用链中所有修改点都有对应的消费者
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 孤儿代码防范检查
91
+
92
+ ### 修改项影响面声明
93
+
94
+ | 修改项 | 类型 | 影响范围 | 反向依赖 | 风险等级 |
95
+ |--------|------|---------|---------|:--------:|
96
+ | `{文件名/组件}` | 新增/修改/删除 | {影响的调用链 ID 列表} | {依赖该修改项的其他模块} | L/M/H |
97
+
98
+ ### 检查规则
99
+
100
+ 1. **每项修改必须标注影响面**:修改什么 + 会影响到哪些调用链 + 哪些组件会受影响
101
+ 2. **每项删除必须确认反向依赖**:删除前 grep 全项目确认无其他消费者
102
+ 3. **每项 API 变更必须兼容**:新增字段/可选参数优先,禁止直接修改或删除已有字段
103
+ 4. **调用链断裂检测**:如果 A 调用链的产出是 B 调用链的输入,修改 A 时必须同步验证 B
104
+
105
+ ### 风险等级定义
106
+
107
+ | 等级 | 含义 | 处理要求 |
108
+ |:----:|------|---------|
109
+ | **L** | 影响面可控,仅涉及单个组件/文件 | 常规自检即可 |
110
+ | **M** | 影响多个组件或调用链 | 回归测试受影响范围 |
111
+ | **H** | 影响面跨模块/跨团队,或存在断裂风险 | **回报人审,给出影响分析报告和建议方案** |
112
+
113
+ ---
114
+
115
+ ## 调用链复杂度与人审门禁
116
+
117
+ | 复杂度 | 判定标准 | 处理方式 |
118
+ |:------:|---------|---------|
119
+ | **低** | 2-3 层,无外部依赖 | Reviewer 常规审查 |
120
+ | **中** | 3-4 层,有外部依赖但有明确降级方案 | Reviewer 常规审查 + Supervisor gap-list 对账 |
121
+ | **高** | ≥4 层,多个外部依赖,或存在数据一致性风险 | **Supervisor 回报人审,给出影响分析和建议方案后由用户决策** |
@@ -0,0 +1,60 @@
1
+ # 端点行为定义模板
2
+
3
+ > 本文档定义前端端点和 API 端点的行为规范,作为 spec.md 的组成部分。
4
+ > Designer 在产出四件套时,必须为每个受影响的端点填充此模板。
5
+
6
+ ---
7
+
8
+ ## 端点行为明细表
9
+
10
+ | 端点 ID | 类型 | 路径/标识 | 方法/事件 | 触发条件 | 输入 | 输出/响应 | 错误码 | UI 影响 |
11
+ |---------|------|-----------|----------|---------|------|----------|--------|---------|
12
+ | EP-01 | API | `/api/v1/xxx` | POST | 用户点击提交按钮 | `{请求体结构}` | `{响应体结构}` | 400/404/500 | 提交按钮进入 loading → 成功跳转页面 / 失败显示错误提示 |
13
+ | EP-02 | 前端事件 | `PageX.submitBtn.onClick` | 点击事件 | 表单填写完整后点击 | `{表单字段}` | 调用 API → 更新本地状态 → 路由跳转 | N/A | 按钮 disable + spinner → 页面对比更新 / Toast 提示 |
14
+
15
+ ### 字段说明
16
+
17
+ | 字段 | 说明 |
18
+ |------|------|
19
+ | **端点 ID** | 全局唯一标识,格式 `EP-{序号}`,供 coder-tasks/tester-tasks 引用 |
20
+ | **类型** | `API`(HTTP 端点)或 `前端事件`(组件事件) |
21
+ | **路径/标识** | API 端点为 URL 路径;前端事件为 `Page.Component.Event` 格式 |
22
+ | **方法/事件** | API 端点为 HTTP Method;前端事件为 DOM 事件类型 |
23
+ | **触发条件** | 该端点被调用的前置条件 |
24
+ | **输入** | API 端点为请求体 JSON Schema;前端事件为事件载荷的数据结构 |
25
+ | **输出/响应** | API 端点为响应体 JSON Schema;前端事件为调用后的状态变更/副作用 |
26
+ | **错误码** | API 端点的 HTTP 状态码及含义;前端事件为异常状态的处理方式 |
27
+ | **UI 影响** | 该端点执行后前端 UI 的预期变化(加载态/成功态/错误态/跳转) |
28
+
29
+ ---
30
+
31
+ ## 端点依赖关系
32
+
33
+ | 端点 ID | 依赖的端点 | 依赖类型 | 说明 |
34
+ |---------|-----------|---------|------|
35
+ | EP-01 | EP-02 | 先决 | EP-02 完成后 EP-01 才能获取到所需数据 |
36
+ | EP-03 | — | 独立 | 无依赖,可独立开发和测试 |
37
+
38
+ ### 依赖类型
39
+
40
+ | 类型 | 含义 |
41
+ |------|------|
42
+ | **先决** | 本端点依赖目标端点先执行完成 |
43
+ | **数据** | 本端点依赖目标端点产生的数据 |
44
+ | **并行** | 两个端点无依赖,可并行开发和测试 |
45
+ | **互斥** | 两个端点不能同时触发 |
46
+
47
+ ---
48
+
49
+ ## 端点级验收标准
50
+
51
+ 每个端点必须满足以下验收标准:
52
+
53
+ ```
54
+ [EP-XX] 验收标准
55
+ - [ ] 输入校验:无效输入返回正确错误码/错误状态
56
+ - [ ] 正常流程:合法输入返回预期输出/预期 UI 变更
57
+ - [ ] 边界条件:[具体边界值] 时行为正确
58
+ - [ ] 错误处理:超时/网络异常/服务不可用时的降级表现
59
+ - [ ] UI 一致性:成功/失败/加载三种状态 UI 表现符合设计稿
60
+ ```
@@ -0,0 +1,33 @@
1
+ {
2
+ "version": "1",
3
+ "round_id": "round-YYYYMMDD-NNN",
4
+ "generated_by": "supervisor",
5
+ "generated_at": "YYYY-MM-DDTHH:MM:SS+08:00",
6
+ "gaps": [
7
+ {
8
+ "id": "G001",
9
+ "type": "missing",
10
+ "severity": "high",
11
+ "source_pkg": "M-01",
12
+ "source_ref": "spec.md §3.1.2",
13
+ "description": "用户注册 API 缺少邮箱格式校验逻辑",
14
+ "suggested_output": "artifacts/<batchId>/code/user-module/validation/email.py",
15
+ "evidence": "在 artifacts/<batchId>/code/user-module/ 目录中未找到任何 validation 相关文件"
16
+ }
17
+ ],
18
+ "summary": {
19
+ "total_gaps": 1,
20
+ "by_type": {
21
+ "missing": 1,
22
+ "partial": 0,
23
+ "contradicts": 0,
24
+ "unrequested": 0
25
+ },
26
+ "by_severity": {
27
+ "critical": 0,
28
+ "high": 1,
29
+ "medium": 0,
30
+ "low": 0
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,92 @@
1
+ # Leader 决策包模板
2
+
3
+ > 本文档是任务监管块(人审门禁)的输出产物模板。
4
+ > Leader 在完成 grill 质询 + 人工介入对接细节后,按此模板产出决策包下发给 Coordinator。
5
+
6
+ ---
7
+
8
+ ## 1. 粗拆方向
9
+
10
+ ### 需求描述
11
+
12
+ {一句话概括本轮需求的本质}
13
+
14
+ ### 子模块划分建议
15
+
16
+ 按前后端分离 + 依赖链路,建议拆分为以下子模块:
17
+
18
+ | 模块 ID | 名称 | 前后端标记 | 前置依赖 | 说明 |
19
+ |--------|------|-----------|---------|------|
20
+ | M-01 | {名称} | BE / FE / Both | 无 / M-XX | {简要说明} |
21
+ | M-02 | {名称} | BE / FE / Both | M-01 | {简要说明} |
22
+ | ... | ... | ... | ... | ... |
23
+
24
+ > 粗拆仅到顶层子模块级;API 粒度由 Coordinator 细拆产出 task-tree.json 后交 Designer 消费产出任务包。
25
+
26
+ ### 子模块间依赖关系图(可选)
27
+
28
+ ```
29
+ M-01 → M-02 → M-04
30
+ ↘ M-03 ↗
31
+ ```
32
+
33
+ ---
34
+
35
+ ## 2. 约束清单
36
+
37
+ ### 技术约束
38
+
39
+ | # | 约束 | 来源 |
40
+ |---|------|------|
41
+ | 1 | {技术栈/框架/版本要求} | {grill / 人工对接 / 顶层设计} |
42
+ | 2 | {系统架构限制} | {来源} |
43
+
44
+ ### 边界约束
45
+
46
+ | # | 约束 | 说明 |
47
+ |---|------|------|
48
+ | 1 | {在本次范围内} | {具体描述} |
49
+ | 2 | {明确排除的范围} | {具体描述} |
50
+
51
+ ### 交付约束
52
+
53
+ | # | 约束 | 说明 |
54
+ |---|------|------|
55
+ | 1 | {时间窗口} | {DDL 或周期限制} |
56
+ | 2 | {质量红线} | {必须通过的验收条件} |
57
+
58
+ ### 风险备忘
59
+
60
+ | # | 风险点 | 影响 | 建议处理方式 |
61
+ |---|--------|------|-------------|
62
+ | 1 | {grill 中暴露的不确定点} | {影响范围} | {粗拆时特别注意的事项} |
63
+
64
+ ---
65
+
66
+ ## 3. 人审验收标准(粗拆成果)
67
+
68
+ 粗拆成果满足以下条件时,Leader 自审后交用户人审:
69
+
70
+ - [ ] 每个子模块有明确的前后端归属
71
+ - [ ] 子模块间依赖链路清晰
72
+ - [ ] 约束清单已逐项对照,无越界
73
+ - [ ] 所有风险备忘已在粗拆中处理或标注
74
+
75
+ ---
76
+
77
+ ## 4. 参考材料
78
+
79
+ - {grill 关键决策记录路径}
80
+ - {需求文档路径}
81
+ - {顶层设计文档路径(如有)}
82
+
83
+ ---
84
+
85
+ ## 5. 元信息
86
+
87
+ | 字段 | 内容 |
88
+ |------|------|
89
+ | 决策包版本 | v{1.0} |
90
+ | 创建时间 | {ISO 时间} |
91
+ | 人审门禁(发起 → 通过) | {发起时间} → {通过时间} |
92
+ | 下发对象 | Coordinator |
@@ -0,0 +1,61 @@
1
+ # Plan: [Module Name]
2
+
3
+ **参照 spec**:spec.md §[章节号]
4
+
5
+ **外部输入**:
6
+ - Tech Stack & Version: [由外部预置,Designer 不自主决定]
7
+ - 开发方案大方向: [由 Leader/Coordinator 预先提供]
8
+
9
+ ---
10
+
11
+ ## Data Model
12
+
13
+ ### 核心实体
14
+
15
+ | 实体 | 说明 | 关键字段 | 关联实体 |
16
+ |------|------|---------|---------|
17
+ | [Entity] | [描述] | [字段列表] | [关联] |
18
+
19
+ ### 数据流概要
20
+
21
+ ```
22
+ [描述数据在核心实体间的流转路径]
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Constraints
28
+
29
+ ### 性能约束
30
+
31
+ | 指标 | 目标 | 测量方式 |
32
+ |------|------|---------|
33
+ | P95 延迟 | < [N]ms | [工具/方式] |
34
+ | 吞吐量 | [N] req/s | [工具/方式] |
35
+
36
+ ### 安全约束
37
+
38
+ - [ ] OWASP Top 10 合规
39
+ - [ ] 敏感数据加密(传输 TLS + 存储加密)
40
+ - [ ] 认证/授权机制(参考 constitution.md Security Baselines)
41
+ - [ ] 输入校验与防注入
42
+
43
+ ### 合规约束
44
+
45
+ - [ ] 数据本地化要求(参考 constitution.md Compliance Constraints)
46
+ - [ ] 其他法规要求
47
+
48
+ ---
49
+
50
+ ## Performance Goals
51
+
52
+ | 目标 | 当前基线 | 目标值 | 验收方式 |
53
+ |------|---------|--------|---------|
54
+ | [目标] | [基线] | [目标值] | [验收方式] |
55
+
56
+ ---
57
+
58
+ ## 参照文档
59
+
60
+ - spec.md §[章节] — 功能需求与 API 设计
61
+ - constitution.md §[章节] — 治理约束
@@ -0,0 +1,126 @@
1
+ # 成功模式种子
2
+
3
+ > 本文档预置蟛蜞模式首轮复盘可复用的成功模式。
4
+ > Doc-Manager 在首轮复盘时可参考这些种子进行模式提取,
5
+ > 也可逐条通过 dsh-mneme 落库作为初始知识库。
6
+ > 格式:每条种子包含归属阶段 + 描述 + 复用建议 + dsh-mneme 等价写法,与复盘 Output Schema 对齐。
7
+
8
+ ---
9
+
10
+ ## 粗拆阶段
11
+
12
+ ### SP-01:前后端分离 + 依赖链路粗拆
13
+
14
+ - **描述**:按前后端分离(BE/FE/Both)标注每子模块,再按依赖链路排序(无依赖的优先)。避免出现跨前后端的混合子模块。
15
+ - **复用建议**:所有粗拆场景通用。如遇不可分离的跨端功能,标注为 Both 并在细拆时再分离。
16
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-01 前后端分离+依赖链路粗拆', importance=3)`(成功模式)
17
+
18
+ ### SP-02:约束清单逐项对照
19
+
20
+ - **描述**:粗拆后逐项对照 Leader 约束清单的 4 类约束(技术/边界/交付/风险),确保粗拆不越界、不遗漏。
21
+ - **复用建议**:每次粗拆必做约束对账,发现冲突立即上报 Leader。
22
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-02 约束清单逐项对照', importance=3)`(成功模式)
23
+
24
+ ---
25
+
26
+ ## 设计排期阶段
27
+
28
+ ### SP-03:单子模块逐个迭代
29
+
30
+ - **描述**:每子模块独立过设计排期 → 细拆 → 执行 → 验收 → 复盘 全链路,不并行处理多个子模块的设计。
31
+ - **复用建议**:除非子模块间完全无依赖关系(极少情况),否则坚持单子模块串行迭代。
32
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-03 单子模块逐个迭代', importance=3)`(成功模式)
33
+
34
+ ---
35
+
36
+ ## 细拆排期阶段
37
+
38
+ ### SP-04:API 粒度细拆
39
+
40
+ - **描述**:Coordinator 先按 spec.md 中的 API 定义将 Coder 任务细拆到单个 API 级别(一个 API = 一个子任务,产出 task-tree.json),Designer 再消费 task-tree 产出任务包(四件套),Leader 复核后派发。
41
+ - **复用建议**:API 级细拆让 Coder 和 Tester 的任务边界清晰,避免"一个任务做太多事"。
42
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-04 API 粒度细拆', importance=3)`(成功模式)
43
+
44
+ ---
45
+
46
+ ## 编码阶段
47
+
48
+ ### SP-05:Coder 自检后交付 + 测试两段式
49
+
50
+ - **描述**:Coder 完成代码后先做最小自检(语法检查/lint/编译/已改文件单测冒烟),确认无基本问题后再交付;测试套件准备与 code 同 wave 并行(只依赖 plan 产物),执行段在 code 完成自检后立即触发,不等 Coder 通知。
51
+ - **复用建议**:减少 Tester 因编译错误或基本语法问题被动打回的次数;两段式让测试准备与编码并行、执行紧贴自检完成,缩短串行等待。
52
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-05 Coder 自检后交付+测试两段式', importance=3)`(成功模式)
53
+
54
+ ---
55
+
56
+ ## 测试阶段
57
+
58
+ ### SP-06:Spec 驱动测试(非 Manager 驱动)
59
+
60
+ - **描述**:Tester 收到任务后自主读取 spec.md 的 Acceptance Criteria 构建测试集,不等待 Manager 逐条下达。
61
+ - **复用建议**:减少 Manager 的沟通开销,Tester 的测试更全面(spec 覆盖度更高)。
62
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-06 Spec 驱动测试', importance=4)`(成功模式)
63
+
64
+ ### SP-07:每次打回记录失败模式
65
+
66
+ - **描述**:Tester/Reviewer 每次打回时,在打回裁定中附带失败模式标签(如"需求偏差/spec 不清晰/实现遗漏/测试不足")。
67
+ - **复用建议**:为 Doc-Manager 复盘积累结构化失败数据,便于根因分析。
68
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-07 每次打回记录失败模式', importance=4)`(成功模式)
69
+
70
+ ---
71
+
72
+ ## 审查阶段
73
+
74
+ ### SP-08:打回时附带 MUST-FIX 清单
75
+
76
+ - **描述**:Reviewer 打回 REWORK 时,必须输出结构化 MUST-FIX 清单(条目编号、预期行为、严重级别),不输出模糊描述。
77
+ - **复用建议**:减少 Coder 理解打回意图的认知开销,提高返工效率。
78
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-08 打回时附带 MUST-FIX 清单', importance=3)`(成功模式)
79
+
80
+ ---
81
+
82
+ ## 复盘阶段
83
+
84
+ ### SP-09:复盘必读 6 类产出物
85
+
86
+ - **描述**:Doc-Manager 复盘时逐个读取 Leader 决策包、Designer 四件套、Coder 代码、Tester 报告、Reviewer 裁定、Supervisor 验收报告——缺一不可。
87
+ - **复用建议**:缺失任何一类产出物,复盘结论的完整性就有缺口。
88
+ - **dsh-mneme 语义**:`memory_save(type='history', title='SP-09 复盘必读 6 类产出物', importance=4)`(成功模式)
89
+
90
+ ### SP-10:成功/失败模式结构化入库
91
+
92
+ - **描述**:每轮复盘提取的模式必须分类写入 dsh-mneme:成功模式 `memory_save(type='history', ...)`、失败模式 `memory_save(type='decision', ...)`,且每条标注归属阶段。
93
+ - **复用建议**:结构化入库确保后续 Doc-Manager/Coordinator 能按阶段与类型检索复用。
94
+ - **dsh-mneme 语义**:成功模式 `memory_save(type='history', title='SP-10 成功/失败模式结构化入库', importance=4)`;失败模式 `memory_save(type='decision', title='SP-10 失败模式入库', importance=4)`
95
+
96
+ ---
97
+
98
+ ## 入库脚本(可选)
99
+
100
+ 如果希望将以上种子批量写入 dsh-mneme,可用以下 memory_save 命令逐个写入(成功模式 `type='history'`,失败模式 `type='decision'`,importance 3~4):
101
+
102
+ ```python
103
+ # 示例:批量写入种子(dsh-mneme)
104
+ # memory_save(type='history', title='SP-01 前后端分离+依赖链路粗拆',
105
+ # content='按前后端分离(BE/FE/Both)标注子模块,再按依赖链路排序。', importance=3)
106
+ # memory_save(type='history', title='SP-02 约束清单逐项对照',
107
+ # content='粗拆后逐项对照 Leader 约束清单 4 类约束,确保不越界、不遗漏。', importance=3)
108
+ # memory_save(type='history', title='SP-03 单子模块逐个迭代',
109
+ # content='每子模块独立过设计排期→细拆→执行→验收→复盘全链路,不并行处理多个子模块设计。', importance=3)
110
+ # memory_save(type='history', title='SP-04 API 粒度细拆',
111
+ # content='Coordinator 先按 spec.md API 定义将 Coder 任务细拆到单个 API 级别(task-tree.json),Designer 再消费产出任务包。', importance=3)
112
+ # memory_save(type='history', title='SP-05 Coder 自检后交付+测试两段式',
113
+ # content='Coder 最小自检通过后交付;测试套件准备与 code 同 wave 并行,执行段在自检完成后立即触发。', importance=3)
114
+ # memory_save(type='history', title='SP-06 Spec 驱动测试',
115
+ # content='Tester 自主读取 spec.md Acceptance Criteria 构建测试集,不等待 Manager 逐条下达。', importance=4)
116
+ # memory_save(type='history', title='SP-07 每次打回记录失败模式',
117
+ # content='打回时附带失败模式标签,为 Doc-Manager 复盘积累结构化失败数据。', importance=4)
118
+ # memory_save(type='history', title='SP-08 打回时附带 MUST-FIX 清单',
119
+ # content='Reviewer 打回 REWORK 时输出结构化 MUST-FIX 清单(编号/预期行为/严重级别)。', importance=3)
120
+ # memory_save(type='history', title='SP-09 复盘必读 6 类产出物',
121
+ # content='复盘逐个读取 Leader 决策包/Designer 四件套/Coder 代码/Tester 报告/Reviewer 裁定/Supervisor 验收报告。', importance=4)
122
+ # memory_save(type='history', title='SP-10 成功/失败模式结构化入库',
123
+ # content='每轮复盘提取的模式按成功/失败分类写入 dsh-mneme,并标注归属阶段。', importance=4)
124
+ ```
125
+
126
+ 首轮运行时,建议至少写入 SP-01、SP-04、SP-06、SP-09、SP-10 作为最小种子集。