Commit 1251c274bb55b2870793471e5eb3463a1e13f703
1 parent
5c491c18
coding-start/README: 并行透传 parallel:{modules:true,maxWidth:3} + 阶段 B 文档同步——featur…
…es 闸刻意不传(留 Task 14 验收开启),逃生口 modules:false 完全回退串行
Showing
2 changed files
with
13 additions
and
3 deletions
README.md
| @@ -31,7 +31,14 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | @@ -31,7 +31,14 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | ||
| 31 | 31 | ||
| 32 | coding.mjs Router → 解析 docs/08 § 二/§ 三 + milestone/* / req-done/* git tag,列出待跑模块 | 32 | coding.mjs Router → 解析 docs/08 § 二/§ 三 + milestone/* / req-done/* git tag,列出待跑模块 |
| 33 | │ | 33 | │ |
| 34 | - ├─ B-后端(按模块循环,每模块一个里程碑 tag;功能链顺序 for-await,单工作树串行 commit) | 34 | + ├─ B-后端(按依赖波次推进模块,每模块一个里程碑 tag;模块内功能链仍顺序 for-await) |
| 35 | + │ · 调度:LLM 只输出模块间依赖边(fk/api/seed/order…,宁串勿并、证据可查), | ||
| 36 | + │ JS 做确定性拓扑波次(Kahn);同波次 ≥2 模块才启用并行机器,宽 1 波次走现行主根路径 | ||
| 37 | + │ · lane 隔离:并行模块各占 lane worktree(独立 index,commit 不争锁)+ lane 测试库 | ||
| 38 | + │ (ERP_TEST_DB_SCHEMA 打穿到 Spring)+ 专属 migration 版本段(版本号只保唯一、 | ||
| 39 | + │ 不保连续不保合并序,Flyway 须 out-of-order: true);milestone/RESUME 与起栈类 stage 全局互斥 | ||
| 40 | + │ · 降级:任何并行机制失败(调度违例/环/lane DB 不支持/worktree 建失败)一律 fail-open | ||
| 41 | + │ 回现行串行路径,绝不因并行机制 halt;args.parallel 缺省或 modules:false 即全串行 | ||
| 35 | │ runBranchSetup(module-<id>) ← JS 编排:detect default → wt clean → exists? → | 42 | │ runBranchSetup(module-<id>) ← JS 编排:detect default → wt clean → exists? → |
| 36 | │ checkout/create → confirm HEAD(5 微 agent) | 43 | │ checkout/create → confirm HEAD(5 微 agent) |
| 37 | │ → featureLoop(后端):spec → plan → tdd → verify → review(有界 5 轮修复, | 44 | │ → featureLoop(后端):spec → plan → tdd → verify → review(有界 5 轮修复, |
skills/coding/coding-start/SKILL.md
| @@ -97,12 +97,15 @@ Workflow({ | @@ -97,12 +97,15 @@ Workflow({ | ||
| 97 | scriptPath: "${CLAUDE_PLUGIN_ROOT}/workflows/coding.mjs", | 97 | scriptPath: "${CLAUDE_PLUGIN_ROOT}/workflows/coding.mjs", |
| 98 | args: { | 98 | args: { |
| 99 | projectRoot: "<git rev-parse --show-toplevel 的 stdout>", | 99 | projectRoot: "<git rev-parse --show-toplevel 的 stdout>", |
| 100 | - pluginRoot: "${CLAUDE_PLUGIN_ROOT}" | 100 | + pluginRoot: "${CLAUDE_PLUGIN_ROOT}", |
| 101 | + parallel: { modules: true, maxWidth: 3 } | ||
| 101 | } | 102 | } |
| 102 | }) | 103 | }) |
| 103 | ``` | 104 | ``` |
| 104 | 105 | ||
| 105 | > `pluginRoot` 供 coding.mjs 调用插件 `lib/req-ledger.mjs` 在首跑时自动建立需求台账基线(P1#3,使日后 `/add-req` 能识别增量、免空跑);缺省则该增强静默跳过。 | 106 | > `pluginRoot` 供 coding.mjs 调用插件 `lib/req-ledger.mjs` 在首跑时自动建立需求台账基线(P1#3,使日后 `/add-req` 能识别增量、免空跑);缺省则该增强静默跳过。 |
| 107 | +> | ||
| 108 | +> `parallel` 是模块级并行总开关:`modules: true` 时 coding.mjs 先跑调度器(LLM 只输出模块间依赖边,JS 做确定性拓扑波次),同波次 ≥2 个后端模块各自在 lane worktree + lane 测试库 + 专属 migration 版本段内并行推进;任何调度/隔离环节失败一律 fail-open 降级串行,绝不因并行机制 halt。**逃生口**:改传 `parallel: { modules: false }`(或整个不传 `parallel`)即完全回退现行串行路径。`features`(feature 级并行)**刻意不传**——维持缺省关闭,待并行化计划 Task 14 收益评估通过后才在此处开启(附录补 1)。 | ||
| 106 | 109 | ||
| 107 | ### 步骤 5:告知用户 Workflow 已启动 | 110 | ### 步骤 5:告知用户 Workflow 已启动 |
| 108 | 111 | ||
| @@ -118,7 +121,7 @@ Workflow({ | @@ -118,7 +121,7 @@ Workflow({ | ||
| 118 | ✓ Plan 完成态:docs/08 §一 A0~A5 全勾 | 121 | ✓ Plan 完成态:docs/08 §一 A0~A5 全勾 |
| 119 | ✓ 已取得 projectRoot(仓库根绝对路径),传入 Workflow | 122 | ✓ 已取得 projectRoot(仓库根绝对路径),传入 Workflow |
| 120 | 123 | ||
| 121 | - Workflow 将按模块顺序全自动、静默推进,跑完所有模块或在某模块 | 124 | + Workflow 将按依赖波次全自动、静默推进,跑完所有模块或在某模块 |
| 122 | halt(测试闸持续 RED / review 5 轮未过 / 缺值阻塞等)时返回最终状态。 | 125 | halt(测试闸持续 RED / review 5 轮未过 / 缺值阻塞等)时返回最终状态。 |
| 123 | halt 后请按诊断修复,再重新运行 /erp-workflow:coding-start 续跑 | 126 | halt 后请按诊断修复,再重新运行 /erp-workflow:coding-start 续跑 |
| 124 | (git 分支由 coding.mjs 自行处理:残留功能分支直接续用、新模块从默认分支建, | 127 | (git 分支由 coding.mjs 自行处理:残留功能分支直接续用、新模块从默认分支建, |