@zmice/zc 0.2.6 → 0.2.8

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 (75) hide show
  1. package/README.md +430 -420
  2. package/dist/cli/__tests__/platform.test.js +158 -89
  3. package/dist/cli/__tests__/platform.test.js.map +1 -1
  4. package/dist/cli/__tests__/surface.test.js +1 -1
  5. package/dist/cli/__tests__/surface.test.js.map +1 -1
  6. package/dist/cli/platform.d.ts.map +1 -1
  7. package/dist/cli/platform.js +92 -10
  8. package/dist/cli/platform.js.map +1 -1
  9. package/dist/cli/setup.d.ts +3 -0
  10. package/dist/cli/setup.d.ts.map +1 -0
  11. package/dist/cli/setup.js +41 -0
  12. package/dist/cli/setup.js.map +1 -0
  13. package/dist/node_modules/@zmice/platform-core/dist/index.test.js +5 -3
  14. package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  15. package/dist/runtime/worktree-manager.js +2 -2
  16. package/dist/runtime/worktree-manager.js.map +1 -1
  17. package/dist/utils/codex-config-merge.d.ts +3 -0
  18. package/dist/utils/codex-config-merge.d.ts.map +1 -0
  19. package/dist/utils/codex-config-merge.js +43 -0
  20. package/dist/utils/codex-config-merge.js.map +1 -0
  21. package/dist/utils/codex-config-merge.test.d.ts +2 -0
  22. package/dist/utils/codex-config-merge.test.d.ts.map +1 -0
  23. package/dist/utils/codex-config-merge.test.js +64 -0
  24. package/dist/utils/codex-config-merge.test.js.map +1 -0
  25. package/dist/utils/install-target.test.js +3 -2
  26. package/dist/utils/install-target.test.js.map +1 -1
  27. package/dist/utils/qwen-extension-cli.d.ts.map +1 -1
  28. package/dist/utils/qwen-extension-cli.js +4 -4
  29. package/dist/utils/qwen-extension-cli.js.map +1 -1
  30. package/dist/utils/qwen-extension-cli.test.js +9 -6
  31. package/dist/utils/qwen-extension-cli.test.js.map +1 -1
  32. package/dist/utils/workspace.js +1 -1
  33. package/dist/utils/workspace.js.map +1 -1
  34. package/dist/utils/workspace.test.js +14 -0
  35. package/dist/utils/workspace.test.js.map +1 -1
  36. package/package.json +3 -3
  37. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +5 -3
  38. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  39. package/vendor/packages/platform-claude/dist/index.js +75 -75
  40. package/vendor/packages/platform-claude/dist/index.test.js +11 -8
  41. package/vendor/packages/platform-claude/dist/index.test.js.map +1 -1
  42. package/vendor/packages/platform-codex/dist/index.d.ts.map +1 -1
  43. package/vendor/packages/platform-codex/dist/index.js +262 -165
  44. package/vendor/packages/platform-codex/dist/index.js.map +1 -1
  45. package/vendor/packages/platform-codex/dist/index.test.js +42 -20
  46. package/vendor/packages/platform-codex/dist/index.test.js.map +1 -1
  47. package/vendor/packages/platform-opencode/dist/index.js +75 -75
  48. package/vendor/packages/platform-opencode/dist/index.test.js +19 -15
  49. package/vendor/packages/platform-opencode/dist/index.test.js.map +1 -1
  50. package/vendor/packages/platform-qwen/dist/index.js +75 -75
  51. package/vendor/packages/platform-qwen/dist/index.test.js +9 -7
  52. package/vendor/packages/platform-qwen/dist/index.test.js.map +1 -1
  53. package/vendor/packages/toolkit/src/content/agents/architect/body.md +42 -42
  54. package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +41 -41
  55. package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +40 -40
  56. package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +31 -31
  57. package/vendor/packages/toolkit/src/content/commands/start/body.md +197 -197
  58. package/vendor/packages/toolkit/src/content/commands/start/meta.yaml +55 -55
  59. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +172 -172
  60. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +111 -111
  61. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +86 -86
  62. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +140 -140
  63. package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +80 -80
  64. package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +67 -67
  65. package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +102 -102
  66. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +81 -81
  67. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +113 -113
  68. package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +75 -75
  69. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +83 -83
  70. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +95 -95
  71. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +99 -99
  72. package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +126 -126
  73. package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +78 -78
  74. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +193 -193
  75. package/vendor/references/upstreams.yaml +94 -94
@@ -1,113 +1,113 @@
1
- # Parallel Agent Dispatch
2
-
3
- ## 角色定位
4
-
5
- 在用户明确允许多 agent / 并行 / team 模式时,把彼此独立的任务做上下文级 fan-out,并在结束时做 fan-in、冲突检测和集成验证。
6
-
7
- 这个 skill 不是默认加速器。能并行不等于应该并行;并行会增加 token、延迟、集成和验证成本。
8
-
9
- ## 快速路径
10
-
11
- 1. 读取计划,列出所有任务、依赖和预计触达文件。
12
- 2. 判断任务是否彼此独立,是否有清晰文件所有权。
13
- 3. 给出并行推荐,但在用户明确确认前不启动子代理。
14
- 4. 为每个 worker 分配唯一责任范围、允许修改文件和验证命令。
15
- 5. fan-out 执行,期间不让多个 worker 修改同一文件。
16
- 6. fan-in 汇总,检查 diff、冲突、接口一致性和测试结果。
17
- 7. 记录验收 transcript:谁做了什么、证据是什么、还有什么风险。
18
-
19
- ## 使用条件
20
-
21
- 适用:
22
-
23
- - 多个任务互不依赖。
24
- - 每个任务能在独立上下文中完成。
25
- - 文件所有权可以提前划清。
26
- - fan-in 后有集成测试或人工审查门禁。
27
-
28
- 不适用:
29
-
30
- - 任务依赖同一个未完成设计。
31
- - 多个任务必须改同一文件。
32
- - 缺少测试或集成验证方式。
33
- - 用户没有明确授权并行。
34
-
35
- ## 模式选择
36
-
37
- | 模式 | 适用场景 | 代价 |
38
- |---|---|---|
39
- | Context Fan-Out | 只需要多个子代理分别分析或修改互不重叠文件 | 共享同一 worktree,fan-in 需谨慎检查 |
40
- | Worktree Parallel | 任务可能触及相邻区域,或需要独立构建环境 | 需要分支和 worktree 清理 |
41
- | Cascade | 任务有层级依赖,但每层内可并行 | 每层都要验证后再进下一层 |
42
- | Team Orchestration | 需要 tmux + git worktree + 多 CLI worker | 运行时成本最高,需 `zc team` 收尾 |
43
-
44
- 如果需要文件系统级隔离,切到 `team-orchestration`;不要在本 skill 内展开完整 `zc team` 教程。
45
-
46
- ## 授权提示
47
-
48
- 启动前必须给用户看到这段信息的等价内容:
49
-
50
- ```text
51
- Recommendation: 开启 <模式> because <并行收益> outweighs <集成代价>。
52
- - worker 数:
53
- - 文件所有权:
54
- - 不并行的替代方案:
55
- - fan-in 验证:
56
-
57
- 确认后我再启动;不确认则按串行推进。
58
- ```
59
-
60
- ## Worker 合约
61
-
62
- 每个子代理都必须收到:
63
-
64
- - 任务目标和验收标准
65
- - 允许读取的关键上下文
66
- - 允许修改的文件或模块边界
67
- - 不得触碰其他 worker 文件的说明
68
- - 任务内验证命令
69
- - 返回格式:`DONE / BLOCKED / NEEDS_CONTEXT`
70
-
71
- 返回时必须列出:
72
-
73
- - 修改文件
74
- - 已运行验证
75
- - 未覆盖风险
76
- - 需要主线程 fan-in 的事项
77
-
78
- ## Fan-In 门禁
79
-
80
- 并行完成不等于任务完成。fan-in 必须检查:
81
-
82
- - 所有子代理结果是否到齐。
83
- - 是否出现同文件修改、命名冲突或接口冲突。
84
- - 局部验证是否可信。
85
- - 主线程是否运行集成测试或目标平台验证。
86
- - 是否需要清理分支、worktree、临时文件或保留待审查分支。
87
-
88
- 推荐记录格式:
89
-
90
- ```text
91
- Parallel acceptance transcript:
92
- - Plan:
93
- - Workers:
94
- - Files:
95
- - Results:
96
- - Verification:
97
- - Conflicts:
98
- - Follow-up:
99
- ```
100
-
101
- ## 失败处理
102
-
103
- - 单个 worker 失败时,不要自动丢弃其他成功结果。
104
- - 先收集成功结果,再判断是否可以部分合入。
105
- - 失败任务优先缩小范围、补上下文或改为串行处理。
106
- - 如果失败暴露计划不成立,回到 `planning-and-task-breakdown`。
107
-
108
- ## 与相关技能的边界
109
-
110
- - `subagent-driven-development`:串行委派,不做并行 fan-out。
111
- - `team-orchestration`:进程级 + 文件系统级隔离。
112
- - `branch-finish-and-cleanup`:fan-in 后处理分支、worktree 和残留状态。
113
- - `verification-before-completion`:声明完成前读取验证输出。
1
+ # Parallel Agent Dispatch
2
+
3
+ ## 角色定位
4
+
5
+ 在用户明确允许多 agent / 并行 / team 模式时,把彼此独立的任务做上下文级 fan-out,并在结束时做 fan-in、冲突检测和集成验证。
6
+
7
+ 这个 skill 不是默认加速器。能并行不等于应该并行;并行会增加 token、延迟、集成和验证成本。
8
+
9
+ ## 快速路径
10
+
11
+ 1. 读取计划,列出所有任务、依赖和预计触达文件。
12
+ 2. 判断任务是否彼此独立,是否有清晰文件所有权。
13
+ 3. 给出并行推荐,但在用户明确确认前不启动子代理。
14
+ 4. 为每个 worker 分配唯一责任范围、允许修改文件和验证命令。
15
+ 5. fan-out 执行,期间不让多个 worker 修改同一文件。
16
+ 6. fan-in 汇总,检查 diff、冲突、接口一致性和测试结果。
17
+ 7. 记录验收 transcript:谁做了什么、证据是什么、还有什么风险。
18
+
19
+ ## 使用条件
20
+
21
+ 适用:
22
+
23
+ - 多个任务互不依赖。
24
+ - 每个任务能在独立上下文中完成。
25
+ - 文件所有权可以提前划清。
26
+ - fan-in 后有集成测试或人工审查门禁。
27
+
28
+ 不适用:
29
+
30
+ - 任务依赖同一个未完成设计。
31
+ - 多个任务必须改同一文件。
32
+ - 缺少测试或集成验证方式。
33
+ - 用户没有明确授权并行。
34
+
35
+ ## 模式选择
36
+
37
+ | 模式 | 适用场景 | 代价 |
38
+ |---|---|---|
39
+ | Context Fan-Out | 只需要多个子代理分别分析或修改互不重叠文件 | 共享同一 worktree,fan-in 需谨慎检查 |
40
+ | Worktree Parallel | 任务可能触及相邻区域,或需要独立构建环境 | 需要分支和 worktree 清理 |
41
+ | Cascade | 任务有层级依赖,但每层内可并行 | 每层都要验证后再进下一层 |
42
+ | Team Orchestration | 需要 tmux + git worktree + 多 CLI worker | 运行时成本最高,需 `zc team` 收尾 |
43
+
44
+ 如果需要文件系统级隔离,切到 `team-orchestration`;不要在本 skill 内展开完整 `zc team` 教程。
45
+
46
+ ## 授权提示
47
+
48
+ 启动前必须给用户看到这段信息的等价内容:
49
+
50
+ ```text
51
+ Recommendation: 开启 <模式> because <并行收益> outweighs <集成代价>。
52
+ - worker 数:
53
+ - 文件所有权:
54
+ - 不并行的替代方案:
55
+ - fan-in 验证:
56
+
57
+ 确认后我再启动;不确认则按串行推进。
58
+ ```
59
+
60
+ ## Worker 合约
61
+
62
+ 每个子代理都必须收到:
63
+
64
+ - 任务目标和验收标准
65
+ - 允许读取的关键上下文
66
+ - 允许修改的文件或模块边界
67
+ - 不得触碰其他 worker 文件的说明
68
+ - 任务内验证命令
69
+ - 返回格式:`DONE / BLOCKED / NEEDS_CONTEXT`
70
+
71
+ 返回时必须列出:
72
+
73
+ - 修改文件
74
+ - 已运行验证
75
+ - 未覆盖风险
76
+ - 需要主线程 fan-in 的事项
77
+
78
+ ## Fan-In 门禁
79
+
80
+ 并行完成不等于任务完成。fan-in 必须检查:
81
+
82
+ - 所有子代理结果是否到齐。
83
+ - 是否出现同文件修改、命名冲突或接口冲突。
84
+ - 局部验证是否可信。
85
+ - 主线程是否运行集成测试或目标平台验证。
86
+ - 是否需要清理分支、worktree、临时文件或保留待审查分支。
87
+
88
+ 推荐记录格式:
89
+
90
+ ```text
91
+ Parallel acceptance transcript:
92
+ - Plan:
93
+ - Workers:
94
+ - Files:
95
+ - Results:
96
+ - Verification:
97
+ - Conflicts:
98
+ - Follow-up:
99
+ ```
100
+
101
+ ## 失败处理
102
+
103
+ - 单个 worker 失败时,不要自动丢弃其他成功结果。
104
+ - 先收集成功结果,再判断是否可以部分合入。
105
+ - 失败任务优先缩小范围、补上下文或改为串行处理。
106
+ - 如果失败暴露计划不成立,回到 `planning-and-task-breakdown`。
107
+
108
+ ## 与相关技能的边界
109
+
110
+ - `subagent-driven-development`:串行委派,不做并行 fan-out。
111
+ - `team-orchestration`:进程级 + 文件系统级隔离。
112
+ - `branch-finish-and-cleanup`:fan-in 后处理分支、worktree 和残留状态。
113
+ - `verification-before-completion`:声明完成前读取验证输出。
@@ -1,75 +1,75 @@
1
- # Performance Optimization
2
-
3
- ## 角色定位
4
-
5
- 性能优化必须从测量开始。这个 skill 用于定位真实瓶颈、做最小修复、再次测量,并补回归保护;不用于凭感觉提前复杂化实现。
6
-
7
- ## 何时使用
8
-
9
- - 规格里有明确性能目标或预算。
10
- - 用户、监控或日志报告慢。
11
- - Core Web Vitals、接口延迟、吞吐、内存或 CPU 有异常。
12
- - 怀疑一次变更造成性能回归。
13
- - 功能会处理大数据量、高并发或关键首屏路径。
14
-
15
- 不适用:没有性能证据,只是担心未来可能慢。
16
-
17
- ## 快速路径
18
-
19
- 1. 写清性能症状和目标指标。
20
- 2. 建立 baseline:真实数据或可复现 synthetic 测量。
21
- 3. 定位瓶颈:前端、后端、数据库、网络、渲染、内存或外部依赖。
22
- 4. 只修当前证据指向的瓶颈。
23
- 5. 再次测量,确认指标改善。
24
- 6. 评估复杂度代价,避免为了小收益引入长期维护成本。
25
- 7. 加 guard:监控、benchmark、预算或回归测试。
26
-
27
- ## 指标选择
28
-
29
- | 场景 | 优先指标 |
30
- |---|---|
31
- | 首屏慢 | LCP、TTFB、bundle size、network waterfall |
32
- | 交互卡顿 | INP、long task、render count、main thread profile |
33
- | 布局跳动 | CLS、图片尺寸、字体加载、late content |
34
- | API 慢 | p95/p99 latency、query time、cache hit、payload size |
35
- | 资源异常 | CPU、memory、GC、connection pool、queue depth |
36
-
37
- 默认使用能复现症状的最小指标。不要同时优化所有指标。
38
-
39
- ## 常见定位方向
40
-
41
- - 前端首屏:大图片、render-blocking CSS/JS、bundle 过大、慢 TTFB。
42
- - 前端交互:长任务、重复渲染、过大 DOM、同步计算。
43
- - 数据加载:瀑布请求、N+1、过大 payload、缺少分页。
44
- - 后端接口:缺索引、锁等待、连接池耗尽、重复计算。
45
- - 内存/CPU:无界缓存、泄漏、正则回溯、同步重计算。
46
-
47
- ## 修复纪律
48
-
49
- - 先证明瓶颈,再改代码。
50
- - 一次只优化一个瓶颈。
51
- - 保留 before / after 数字。
52
- - 小收益大复杂度的优化要默认拒绝。
53
- - 性能关键路径改动要补 benchmark、监控或预算门禁。
54
-
55
- ## 输出契约
56
-
57
- ```text
58
- Performance evidence:
59
- - Symptom:
60
- - Target:
61
- - Baseline:
62
- - Bottleneck:
63
- - Change:
64
- - After:
65
- - Regression guard:
66
- - Trade-off:
67
- ```
68
-
69
- 推荐结论:
70
-
71
- ```text
72
- Recommendation: <optimize / monitor / defer / revert> because <baseline, measured impact, complexity cost, and rejected alternative>.
73
- ```
74
-
75
- 没有 baseline 和 after 数据,不要声明性能优化成立。
1
+ # Performance Optimization
2
+
3
+ ## 角色定位
4
+
5
+ 性能优化必须从测量开始。这个 skill 用于定位真实瓶颈、做最小修复、再次测量,并补回归保护;不用于凭感觉提前复杂化实现。
6
+
7
+ ## 何时使用
8
+
9
+ - 规格里有明确性能目标或预算。
10
+ - 用户、监控或日志报告慢。
11
+ - Core Web Vitals、接口延迟、吞吐、内存或 CPU 有异常。
12
+ - 怀疑一次变更造成性能回归。
13
+ - 功能会处理大数据量、高并发或关键首屏路径。
14
+
15
+ 不适用:没有性能证据,只是担心未来可能慢。
16
+
17
+ ## 快速路径
18
+
19
+ 1. 写清性能症状和目标指标。
20
+ 2. 建立 baseline:真实数据或可复现 synthetic 测量。
21
+ 3. 定位瓶颈:前端、后端、数据库、网络、渲染、内存或外部依赖。
22
+ 4. 只修当前证据指向的瓶颈。
23
+ 5. 再次测量,确认指标改善。
24
+ 6. 评估复杂度代价,避免为了小收益引入长期维护成本。
25
+ 7. 加 guard:监控、benchmark、预算或回归测试。
26
+
27
+ ## 指标选择
28
+
29
+ | 场景 | 优先指标 |
30
+ |---|---|
31
+ | 首屏慢 | LCP、TTFB、bundle size、network waterfall |
32
+ | 交互卡顿 | INP、long task、render count、main thread profile |
33
+ | 布局跳动 | CLS、图片尺寸、字体加载、late content |
34
+ | API 慢 | p95/p99 latency、query time、cache hit、payload size |
35
+ | 资源异常 | CPU、memory、GC、connection pool、queue depth |
36
+
37
+ 默认使用能复现症状的最小指标。不要同时优化所有指标。
38
+
39
+ ## 常见定位方向
40
+
41
+ - 前端首屏:大图片、render-blocking CSS/JS、bundle 过大、慢 TTFB。
42
+ - 前端交互:长任务、重复渲染、过大 DOM、同步计算。
43
+ - 数据加载:瀑布请求、N+1、过大 payload、缺少分页。
44
+ - 后端接口:缺索引、锁等待、连接池耗尽、重复计算。
45
+ - 内存/CPU:无界缓存、泄漏、正则回溯、同步重计算。
46
+
47
+ ## 修复纪律
48
+
49
+ - 先证明瓶颈,再改代码。
50
+ - 一次只优化一个瓶颈。
51
+ - 保留 before / after 数字。
52
+ - 小收益大复杂度的优化要默认拒绝。
53
+ - 性能关键路径改动要补 benchmark、监控或预算门禁。
54
+
55
+ ## 输出契约
56
+
57
+ ```text
58
+ Performance evidence:
59
+ - Symptom:
60
+ - Target:
61
+ - Baseline:
62
+ - Bottleneck:
63
+ - Change:
64
+ - After:
65
+ - Regression guard:
66
+ - Trade-off:
67
+ ```
68
+
69
+ 推荐结论:
70
+
71
+ ```text
72
+ Recommendation: <optimize / monitor / defer / revert> because <baseline, measured impact, complexity cost, and rejected alternative>.
73
+ ```
74
+
75
+ 没有 baseline 和 after 数据,不要声明性能优化成立。
@@ -1,83 +1,83 @@
1
- # 规划与任务拆解
2
-
3
- ## 何时使用
4
-
5
- - 已有规格,需要拆成可执行单元
6
- - 任务太大、太模糊或依赖顺序不明显
7
- - 需要并行推进多个切片
8
- - 需要向人类清楚表达范围、风险和检查点
9
-
10
- 不适用于单文件且边界显而易见的小改动。
11
-
12
- ## 输入前提
13
-
14
- - 已有规格,或至少有清楚的问题定义
15
- - 已读相关代码并识别主要约束
16
- - 愿意在规划阶段保持只读,不边做边改
17
-
18
- ## 执行步骤
19
-
20
- 1. 进入只读分析模式,先看规格和现有代码
21
- 2. 识别依赖图,确定哪些必须先做
22
- 3. 优先做纵向切片,而不是按数据库、API、UI 横向分层
23
- 4. 为每个任务写清:
24
- - 描述
25
- - Acceptance criteria
26
- - Verification
27
- - Dependencies
28
- - Files likely touched
29
- 5. 排出顺序,并设置阶段性检查点
30
-
31
- ## 提问纪律
32
-
33
- - 能从规格、代码、配置、测试或用户原话判断的,不问。
34
- - 只有缺失信息会改变架构、数据模型、任务顺序、破坏性操作或并行边界时才问。
35
- - 一轮最多问 1-3 个关键问题,问题要说明选择会避免什么风险或解锁什么能力。
36
- - 用户已经给出偏好时,把它写进计划假设;不要把偏好扩展成长期配置或跨会话记忆授权。
37
-
38
- ## 计划产物要求
39
-
40
- 计划不是任务名列表,至少要包含:
41
-
42
- - `decision log`:关键取舍和采用原因
43
- - `evidence`:读取过的规格、代码、配置、测试或上游证据
44
- - `open risks`:尚未证明的风险和验证方式
45
- - `fan-out eligibility`:是否能并行、按哪些文件或模块拆、是否需要 `zc team plan`
46
- - `fan-in gate`:实现后如何合流、审查、验证和清理
47
-
48
- ## 决策日志格式
49
-
50
- 每个关键取舍都要写成可审查的推荐,而不是只写“建议这样做”:
51
-
52
- ```text
53
- Recommendation: <chosen action> because <evidence and trade-off>.
54
- - Chosen:
55
- - Rejected alternative:
56
- - Evidence:
57
- - Cost / risk:
58
- - Verification gate:
59
- ```
60
-
61
- 理由必须说明被放弃的替代方案,以及当前选择为什么更适合本任务。不能只写“更稳”“更简单”“更符合最佳实践”。
62
-
63
- ## 成功标准
64
-
65
- - 每个任务都能独立实现、测试和验证
66
- - 任务粒度足够小,不会一次触碰过多文件
67
- - 依赖顺序和可并行项是显式的
68
- - 人类看完计划后能明确判断“方案对不对”
69
- - 计划中的问题和风险都能落到后续验证命令或审查项
70
- - 并行任务必须有明确文件所有权或隔离理由
71
-
72
- ## 相关原则
73
-
74
- - 计划服务实现,不是形式化文档
75
- - 先控制复杂度,再讨论并行度
76
- - 任务必须能验证,不能只写动作名
77
- - 计划阶段发现的问题要进入计划本身,不能只留在聊天里
78
-
79
- ## 与其他技能的衔接
80
-
81
- - 接在 `spec-driven-development` 之后
82
- - 计划确认后交给 `incremental-implementation`
83
- - 涉及方案争议时,可搭配 `multi-perspective-review`
1
+ # 规划与任务拆解
2
+
3
+ ## 何时使用
4
+
5
+ - 已有规格,需要拆成可执行单元
6
+ - 任务太大、太模糊或依赖顺序不明显
7
+ - 需要并行推进多个切片
8
+ - 需要向人类清楚表达范围、风险和检查点
9
+
10
+ 不适用于单文件且边界显而易见的小改动。
11
+
12
+ ## 输入前提
13
+
14
+ - 已有规格,或至少有清楚的问题定义
15
+ - 已读相关代码并识别主要约束
16
+ - 愿意在规划阶段保持只读,不边做边改
17
+
18
+ ## 执行步骤
19
+
20
+ 1. 进入只读分析模式,先看规格和现有代码
21
+ 2. 识别依赖图,确定哪些必须先做
22
+ 3. 优先做纵向切片,而不是按数据库、API、UI 横向分层
23
+ 4. 为每个任务写清:
24
+ - 描述
25
+ - Acceptance criteria
26
+ - Verification
27
+ - Dependencies
28
+ - Files likely touched
29
+ 5. 排出顺序,并设置阶段性检查点
30
+
31
+ ## 提问纪律
32
+
33
+ - 能从规格、代码、配置、测试或用户原话判断的,不问。
34
+ - 只有缺失信息会改变架构、数据模型、任务顺序、破坏性操作或并行边界时才问。
35
+ - 一轮最多问 1-3 个关键问题,问题要说明选择会避免什么风险或解锁什么能力。
36
+ - 用户已经给出偏好时,把它写进计划假设;不要把偏好扩展成长期配置或跨会话记忆授权。
37
+
38
+ ## 计划产物要求
39
+
40
+ 计划不是任务名列表,至少要包含:
41
+
42
+ - `decision log`:关键取舍和采用原因
43
+ - `evidence`:读取过的规格、代码、配置、测试或上游证据
44
+ - `open risks`:尚未证明的风险和验证方式
45
+ - `fan-out eligibility`:是否能并行、按哪些文件或模块拆、是否需要 `zc team plan`
46
+ - `fan-in gate`:实现后如何合流、审查、验证和清理
47
+
48
+ ## 决策日志格式
49
+
50
+ 每个关键取舍都要写成可审查的推荐,而不是只写“建议这样做”:
51
+
52
+ ```text
53
+ Recommendation: <chosen action> because <evidence and trade-off>.
54
+ - Chosen:
55
+ - Rejected alternative:
56
+ - Evidence:
57
+ - Cost / risk:
58
+ - Verification gate:
59
+ ```
60
+
61
+ 理由必须说明被放弃的替代方案,以及当前选择为什么更适合本任务。不能只写“更稳”“更简单”“更符合最佳实践”。
62
+
63
+ ## 成功标准
64
+
65
+ - 每个任务都能独立实现、测试和验证
66
+ - 任务粒度足够小,不会一次触碰过多文件
67
+ - 依赖顺序和可并行项是显式的
68
+ - 人类看完计划后能明确判断“方案对不对”
69
+ - 计划中的问题和风险都能落到后续验证命令或审查项
70
+ - 并行任务必须有明确文件所有权或隔离理由
71
+
72
+ ## 相关原则
73
+
74
+ - 计划服务实现,不是形式化文档
75
+ - 先控制复杂度,再讨论并行度
76
+ - 任务必须能验证,不能只写动作名
77
+ - 计划阶段发现的问题要进入计划本身,不能只留在聊天里
78
+
79
+ ## 与其他技能的衔接
80
+
81
+ - 接在 `spec-driven-development` 之后
82
+ - 计划确认后交给 `incremental-implementation`
83
+ - 涉及方案争议时,可搭配 `multi-perspective-review`