@zmice/zc 0.2.8 → 0.3.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.
Files changed (84) hide show
  1. package/README.md +430 -430
  2. package/dist/cli/__tests__/platform.test.js +89 -112
  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 +5 -62
  8. package/dist/cli/platform.js.map +1 -1
  9. package/dist/node_modules/@zmice/platform-core/dist/index.test.js +3 -5
  10. package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  11. package/dist/runtime/worktree-manager.js +2 -2
  12. package/dist/runtime/worktree-manager.js.map +1 -1
  13. package/dist/utils/install-target.test.js +2 -3
  14. package/dist/utils/install-target.test.js.map +1 -1
  15. package/dist/utils/qwen-extension-cli.d.ts.map +1 -1
  16. package/dist/utils/qwen-extension-cli.js +4 -4
  17. package/dist/utils/qwen-extension-cli.js.map +1 -1
  18. package/dist/utils/qwen-extension-cli.test.js +6 -9
  19. package/dist/utils/qwen-extension-cli.test.js.map +1 -1
  20. package/dist/utils/workspace.js +1 -1
  21. package/dist/utils/workspace.js.map +1 -1
  22. package/dist/utils/workspace.test.js +0 -14
  23. package/dist/utils/workspace.test.js.map +1 -1
  24. package/package.json +5 -5
  25. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +3 -5
  26. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  27. package/vendor/packages/platform-claude/dist/index.js +75 -75
  28. package/vendor/packages/platform-claude/dist/index.test.js +8 -11
  29. package/vendor/packages/platform-claude/dist/index.test.js.map +1 -1
  30. package/vendor/packages/platform-codex/dist/index.js +194 -194
  31. package/vendor/packages/platform-codex/dist/index.test.js +13 -16
  32. package/vendor/packages/platform-codex/dist/index.test.js.map +1 -1
  33. package/vendor/packages/platform-opencode/dist/index.js +75 -75
  34. package/vendor/packages/platform-opencode/dist/index.test.js +15 -19
  35. package/vendor/packages/platform-opencode/dist/index.test.js.map +1 -1
  36. package/vendor/packages/platform-qwen/dist/index.js +75 -75
  37. package/vendor/packages/platform-qwen/dist/index.test.js +7 -9
  38. package/vendor/packages/platform-qwen/dist/index.test.js.map +1 -1
  39. package/vendor/packages/toolkit/dist/content-lint.test.js +161 -1
  40. package/vendor/packages/toolkit/dist/content-lint.test.js.map +1 -1
  41. package/vendor/packages/toolkit/dist/lint/content-lint.d.ts.map +1 -1
  42. package/vendor/packages/toolkit/dist/lint/content-lint.js +183 -2
  43. package/vendor/packages/toolkit/dist/lint/content-lint.js.map +1 -1
  44. package/vendor/packages/toolkit/dist/manifests.test.js +9 -0
  45. package/vendor/packages/toolkit/dist/manifests.test.js.map +1 -1
  46. package/vendor/packages/toolkit/src/content/agents/architect/body.md +42 -42
  47. package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +41 -41
  48. package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +40 -40
  49. package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +42 -31
  50. package/vendor/packages/toolkit/src/content/commands/start/body.md +236 -197
  51. package/vendor/packages/toolkit/src/content/commands/start/meta.yaml +55 -55
  52. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +172 -172
  53. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +111 -111
  54. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +86 -86
  55. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +140 -140
  56. package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +80 -80
  57. package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +67 -67
  58. package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +102 -102
  59. package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/body.md +8 -6
  60. package/vendor/packages/toolkit/src/content/skills/engineering-principles/body.md +10 -5
  61. package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/body.md +9 -9
  62. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +129 -81
  63. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +143 -113
  64. package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +75 -75
  65. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +162 -83
  66. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +130 -95
  67. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +99 -99
  68. package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/body.md +49 -7
  69. package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +133 -126
  70. package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +78 -78
  71. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +193 -193
  72. package/vendor/references/upstreams.yaml +94 -94
  73. package/dist/cli/setup.d.ts +0 -3
  74. package/dist/cli/setup.d.ts.map +0 -1
  75. package/dist/cli/setup.js +0 -41
  76. package/dist/cli/setup.js.map +0 -1
  77. package/dist/utils/codex-config-merge.d.ts +0 -3
  78. package/dist/utils/codex-config-merge.d.ts.map +0 -1
  79. package/dist/utils/codex-config-merge.js +0 -43
  80. package/dist/utils/codex-config-merge.js.map +0 -1
  81. package/dist/utils/codex-config-merge.test.d.ts +0 -2
  82. package/dist/utils/codex-config-merge.test.d.ts.map +0 -1
  83. package/dist/utils/codex-config-merge.test.js +0 -64
  84. package/dist/utils/codex-config-merge.test.js.map +0 -1
@@ -1,67 +1,67 @@
1
- # 上下文工程
2
-
3
- 这是 `command:start` 判型后进入的专项 skill:当任务核心不是“做什么”,而是“如何把正确上下文装载给接下来的阶段”,进入这里。
4
-
5
- ## 何时使用
6
-
7
- - 开始新的编码会话或新子任务时
8
- - 输出质量下降,开始出现幻觉、忽略约定或跑偏
9
- - 任务切换导致上下文混杂时
10
- - 需要为代理准备最小但足够的输入材料时
11
-
12
- ## 方法原则
13
-
14
- - 复杂任务先校准目标、边界和验证方式,再装载上下文
15
- - 最小充分上下文优先于“大而全”材料堆叠
16
- - 上下文装载要服务当前任务,不为可能发生的旁支需求提前铺料
17
- - 一旦任务阶段变化,就主动压缩和重建上下文,避免 drift
18
- - skill 按需加载优先于常驻加载;常驻文件只放稳定项目约定和路由规则
19
- - 用户级配置、跨项目路由、跨会话记忆或跨机器同步都属于持久化行为,必须先说明影响并取得明确授权
20
-
21
- ## 输入前提
22
-
23
- - 已知道当前任务真正需要哪些信息
24
- - 愿意主动裁剪无关上下文
25
- - 接受规则文件、规格、源码、错误输出有不同优先级
26
-
27
- ## 执行步骤
28
-
29
- 1. 先校准:明确目标、非目标、风险点和需要的验证证据
30
- 2. 先装载稳定规则:规则文件、长期约定、关键边界
31
- 3. 再装载任务级上下文:规格片段、相关源码、测试、错误输出
32
- 4. 控制上下文体积,只保留当前任务需要的信息
33
- 5. 任务切换或阶段推进时主动压缩总结,清理旧上下文
34
- 6. 发现上下文冲突、缺口或陈旧信息时,显式暴露而不是猜测
35
- 7. 区分上下文载体:
36
- - `AGENTS.md` / `CLAUDE.md` / `GEMINI.md`:长期规则、项目边界、稳定路由
37
- - skill 文件:阶段性工作流,按需加载
38
- - references / checklists:需要深入验证时再加载
39
- - 用户级配置或记忆:只在明确授权后写入
40
-
41
- ## 成功标准
42
-
43
- - 开始执行前,代理已经知道目标、边界和验证方式
44
- - 代理看到的是当前任务需要的最小充分上下文
45
- - 规则、规格、源码和错误信息的层级清晰
46
- - 上下文切换不会把旧问题带入新任务
47
- - 遇到冲突时能清楚指出需要人类决策的点
48
- - 不会因为上下文膨胀而偏离当前任务
49
- - 没有为了“方便”把所有 skill、所有上游文档或所有历史记忆一次性塞入当前会话
50
- - 任何持久化写入都有明确授权、可解释影响和回滚路径
51
-
52
- ## 相关原则
53
-
54
- - 复杂任务谨慎优先于求快
55
- - 少而准,比多而杂更有效
56
- - 目标导向决定装载顺序
57
- - 外科式修改也适用于上下文,只带入要改的那一小块
58
- - 规格和规则优先于猜测
59
- - 压缩上下文是持续动作,不是最后补救
60
- - 上游能力先变成治理记录,再决定是否成为常驻规则或平台能力
61
-
62
- ## 回到主流程
63
-
64
- - 上下文已校准完成:回到后续真正要执行的阶段或专项入口
65
- - 需求仍模糊:回到 `spec-driven-development`
66
- - 任务已经明确、准备实现:回到 `incremental-implementation`
67
- - 会话健康恶化明显:结合 `context-budget-audit`
1
+ # 上下文工程
2
+
3
+ 这是 `command:start` 判型后进入的专项 skill:当任务核心不是“做什么”,而是“如何把正确上下文装载给接下来的阶段”,进入这里。
4
+
5
+ ## 何时使用
6
+
7
+ - 开始新的编码会话或新子任务时
8
+ - 输出质量下降,开始出现幻觉、忽略约定或跑偏
9
+ - 任务切换导致上下文混杂时
10
+ - 需要为代理准备最小但足够的输入材料时
11
+
12
+ ## 方法原则
13
+
14
+ - 复杂任务先校准目标、边界和验证方式,再装载上下文
15
+ - 最小充分上下文优先于“大而全”材料堆叠
16
+ - 上下文装载要服务当前任务,不为可能发生的旁支需求提前铺料
17
+ - 一旦任务阶段变化,就主动压缩和重建上下文,避免 drift
18
+ - skill 按需加载优先于常驻加载;常驻文件只放稳定项目约定和路由规则
19
+ - 用户级配置、跨项目路由、跨会话记忆或跨机器同步都属于持久化行为,必须先说明影响并取得明确授权
20
+
21
+ ## 输入前提
22
+
23
+ - 已知道当前任务真正需要哪些信息
24
+ - 愿意主动裁剪无关上下文
25
+ - 接受规则文件、规格、源码、错误输出有不同优先级
26
+
27
+ ## 执行步骤
28
+
29
+ 1. 先校准:明确目标、非目标、风险点和需要的验证证据
30
+ 2. 先装载稳定规则:规则文件、长期约定、关键边界
31
+ 3. 再装载任务级上下文:规格片段、相关源码、测试、错误输出
32
+ 4. 控制上下文体积,只保留当前任务需要的信息
33
+ 5. 任务切换或阶段推进时主动压缩总结,清理旧上下文
34
+ 6. 发现上下文冲突、缺口或陈旧信息时,显式暴露而不是猜测
35
+ 7. 区分上下文载体:
36
+ - `AGENTS.md` / `CLAUDE.md` / `GEMINI.md`:长期规则、项目边界、稳定路由
37
+ - skill 文件:阶段性工作流,按需加载
38
+ - references / checklists:需要深入验证时再加载
39
+ - 用户级配置或记忆:只在明确授权后写入
40
+
41
+ ## 成功标准
42
+
43
+ - 开始执行前,代理已经知道目标、边界和验证方式
44
+ - 代理看到的是当前任务需要的最小充分上下文
45
+ - 规则、规格、源码和错误信息的层级清晰
46
+ - 上下文切换不会把旧问题带入新任务
47
+ - 遇到冲突时能清楚指出需要人类决策的点
48
+ - 不会因为上下文膨胀而偏离当前任务
49
+ - 没有为了“方便”把所有 skill、所有上游文档或所有历史记忆一次性塞入当前会话
50
+ - 任何持久化写入都有明确授权、可解释影响和回滚路径
51
+
52
+ ## 相关原则
53
+
54
+ - 复杂任务谨慎优先于求快
55
+ - 少而准,比多而杂更有效
56
+ - 目标导向决定装载顺序
57
+ - 外科式修改也适用于上下文,只带入要改的那一小块
58
+ - 规格和规则优先于猜测
59
+ - 压缩上下文是持续动作,不是最后补救
60
+ - 上游能力先变成治理记录,再决定是否成为常驻规则或平台能力
61
+
62
+ ## 回到主流程
63
+
64
+ - 上下文已校准完成:回到后续真正要执行的阶段或专项入口
65
+ - 需求仍模糊:回到 `spec-driven-development`
66
+ - 任务已经明确、准备实现:回到 `incremental-implementation`
67
+ - 会话健康恶化明显:结合 `context-budget-audit`
@@ -1,102 +1,102 @@
1
- # Continuous Learning
2
-
3
- ## 角色定位
4
-
5
- 把一次会话中的可复用经验提炼成可审查、可回滚的学习项。它服务于长期协作质量,不是默认打开的遥测系统,也不是跨会话记忆的自动授权入口。
6
-
7
- 核心模式:观察 → 提炼 → 验证 → 持久化 → 演化。
8
-
9
- ## 何时使用
10
-
11
- - 用户明确要求 `/learn` 或复盘当前会话。
12
- - 多次出现同一纠正、错误修复路径或项目约定。
13
- - Sprint retrospective 需要沉淀可复用经验。
14
- - 需要把高频经验升级成 skill、command 或项目规则。
15
-
16
- 不适用:
17
-
18
- - 单次偶然偏好。
19
- - 未经验证的猜测。
20
- - 敏感信息、凭据、生产数据或私人内容。
21
- - 用户没有同意的自动跨会话记忆。
22
-
23
- ## 快速路径
24
-
25
- 1. 收集本轮会话中可复用的观察,不存大段原始输入输出。
26
- 2. 区分事实、用户偏好、项目约定和一次性上下文。
27
- 3. 只提炼“触发条件 → 行动”的原子 instinct。
28
- 4. 给每条 instinct 标置信心、证据、作用域和失效条件。
29
- 5. 低置信度只留本地候选;高置信度也要说明为什么可复用。
30
- 6. 需要写入长期文件或跨会话记忆时,先说明范围并等待用户同意。
31
- 7. 多次重复后,再考虑演化为正式 skill / command / AGENTS 规则。
32
-
33
- ## Instinct 格式
34
-
35
- ```yaml
36
- id: prefer-targeted-verification
37
- trigger: "when finishing a scoped toolkit content change"
38
- action: "run toolkit lint and package tests before claiming completion"
39
- confidence: 0.8
40
- scope: project
41
- evidence:
42
- - "User repeatedly asked for evidence before completion"
43
- expires_when: "project verification policy changes"
44
- ```
45
-
46
- 写得下这一段,才说明它足够明确;写不下就不要持久化。
47
-
48
- ## 作用域判断
49
-
50
- | 类型 | 默认作用域 |
51
- |---|---|
52
- | 当前仓库验证命令、目录边界、提交习惯 | project |
53
- | 用户长期偏好,但不含敏感信息 | personal,需确认 |
54
- | 通用安全实践、证据先于断言 | global candidate,需多次证明 |
55
- | 一次性任务背景、临时路径、失败日志 | 不持久化 |
56
-
57
- ## 证据质量
58
-
59
- 可用证据:
60
-
61
- - 用户明确纠正。
62
- - 同一模式在多个任务中重复出现。
63
- - 修复失败后验证证明某个流程更可靠。
64
- - 仓库文档、测试或代码约束支持该规则。
65
-
66
- 不可用证据:
67
-
68
- - 模型自己的感觉。
69
- - 单次偶然成功。
70
- - 未读完整输出的命令结果。
71
- - 涉及秘密、个人数据或生产数据的原文。
72
-
73
- ## 演化门槛
74
-
75
- 从 instinct 升级为正式内容前,检查:
76
-
77
- - 是否至少出现多次,或由用户明确要求沉淀。
78
- - 是否能写成清晰触发条件,而不是宽泛建议。
79
- - 是否与现有 skill / command 重叠。
80
- - 是否有验证方式或反例边界。
81
- - 是否会增加常驻上下文负担。
82
-
83
- 优先把稳定规则写进已有 skill 或项目文档;只有边界清楚、复用频繁时才新增 skill。
84
-
85
- ## Hook 边界
86
-
87
- Hook / automation 只能作为显式 opt-in 能力:
88
-
89
- - 安装前说明会记录什么、不记录什么、写到哪里。
90
- - 默认只记录摘要,不记录完整工具输入输出。
91
- - 支持关闭和清理。
92
- - 平台事件名和配置方式必须以当前官方能力为准。
93
-
94
- 不要在内容层假设所有平台都支持同样的 hook 事件,也不要把 hook 当成默认运行前提。
95
-
96
- ## 推荐输出
97
-
98
- ```text
99
- Recommendation: <不记录 / 记录为候选 / 写入项目规则 / 演化为 skill> because <证据、作用域和长期上下文代价>。
100
- ```
101
-
102
- 推荐必须说明被放弃的替代方案,例如“只留聊天结论”“写入 AGENTS”“新增 skill”,以及为什么当前选择更合适。
1
+ # Continuous Learning
2
+
3
+ ## 角色定位
4
+
5
+ 把一次会话中的可复用经验提炼成可审查、可回滚的学习项。它服务于长期协作质量,不是默认打开的遥测系统,也不是跨会话记忆的自动授权入口。
6
+
7
+ 核心模式:观察 → 提炼 → 验证 → 持久化 → 演化。
8
+
9
+ ## 何时使用
10
+
11
+ - 用户明确要求 `/learn` 或复盘当前会话。
12
+ - 多次出现同一纠正、错误修复路径或项目约定。
13
+ - Sprint retrospective 需要沉淀可复用经验。
14
+ - 需要把高频经验升级成 skill、command 或项目规则。
15
+
16
+ 不适用:
17
+
18
+ - 单次偶然偏好。
19
+ - 未经验证的猜测。
20
+ - 敏感信息、凭据、生产数据或私人内容。
21
+ - 用户没有同意的自动跨会话记忆。
22
+
23
+ ## 快速路径
24
+
25
+ 1. 收集本轮会话中可复用的观察,不存大段原始输入输出。
26
+ 2. 区分事实、用户偏好、项目约定和一次性上下文。
27
+ 3. 只提炼“触发条件 → 行动”的原子 instinct。
28
+ 4. 给每条 instinct 标置信心、证据、作用域和失效条件。
29
+ 5. 低置信度只留本地候选;高置信度也要说明为什么可复用。
30
+ 6. 需要写入长期文件或跨会话记忆时,先说明范围并等待用户同意。
31
+ 7. 多次重复后,再考虑演化为正式 skill / command / AGENTS 规则。
32
+
33
+ ## Instinct 格式
34
+
35
+ ```yaml
36
+ id: prefer-targeted-verification
37
+ trigger: "when finishing a scoped toolkit content change"
38
+ action: "run toolkit lint and package tests before claiming completion"
39
+ confidence: 0.8
40
+ scope: project
41
+ evidence:
42
+ - "User repeatedly asked for evidence before completion"
43
+ expires_when: "project verification policy changes"
44
+ ```
45
+
46
+ 写得下这一段,才说明它足够明确;写不下就不要持久化。
47
+
48
+ ## 作用域判断
49
+
50
+ | 类型 | 默认作用域 |
51
+ |---|---|
52
+ | 当前仓库验证命令、目录边界、提交习惯 | project |
53
+ | 用户长期偏好,但不含敏感信息 | personal,需确认 |
54
+ | 通用安全实践、证据先于断言 | global candidate,需多次证明 |
55
+ | 一次性任务背景、临时路径、失败日志 | 不持久化 |
56
+
57
+ ## 证据质量
58
+
59
+ 可用证据:
60
+
61
+ - 用户明确纠正。
62
+ - 同一模式在多个任务中重复出现。
63
+ - 修复失败后验证证明某个流程更可靠。
64
+ - 仓库文档、测试或代码约束支持该规则。
65
+
66
+ 不可用证据:
67
+
68
+ - 模型自己的感觉。
69
+ - 单次偶然成功。
70
+ - 未读完整输出的命令结果。
71
+ - 涉及秘密、个人数据或生产数据的原文。
72
+
73
+ ## 演化门槛
74
+
75
+ 从 instinct 升级为正式内容前,检查:
76
+
77
+ - 是否至少出现多次,或由用户明确要求沉淀。
78
+ - 是否能写成清晰触发条件,而不是宽泛建议。
79
+ - 是否与现有 skill / command 重叠。
80
+ - 是否有验证方式或反例边界。
81
+ - 是否会增加常驻上下文负担。
82
+
83
+ 优先把稳定规则写进已有 skill 或项目文档;只有边界清楚、复用频繁时才新增 skill。
84
+
85
+ ## Hook 边界
86
+
87
+ Hook / automation 只能作为显式 opt-in 能力:
88
+
89
+ - 安装前说明会记录什么、不记录什么、写到哪里。
90
+ - 默认只记录摘要,不记录完整工具输入输出。
91
+ - 支持关闭和清理。
92
+ - 平台事件名和配置方式必须以当前官方能力为准。
93
+
94
+ 不要在内容层假设所有平台都支持同样的 hook 事件,也不要把 hook 当成默认运行前提。
95
+
96
+ ## 推荐输出
97
+
98
+ ```text
99
+ Recommendation: <不记录 / 记录为候选 / 写入项目规则 / 演化为 skill> because <证据、作用域和长期上下文代价>。
100
+ ```
101
+
102
+ 推荐必须说明被放弃的替代方案,例如“只留聊天结论”“写入 AGENTS”“新增 skill”,以及为什么当前选择更合适。
@@ -19,26 +19,28 @@
19
19
  ## 执行步骤
20
20
 
21
21
  1. 判断是否需要 ADR、README 更新、接口文档或注释
22
- 2. 记录背景、约束、候选方案、决策和后果
23
- 3. 对公共 API 或关键流程补充可消费文档
24
- 4. 对源码中的非显而易见陷阱补充“为什么”类注释
25
- 5. 检查发布或实现是否让以下长期文档产生 drift:
22
+ 2. 先选文档类型:教程、操作指南、参考手册、解释说明或 ADR;不要把这些目的混进同一份文档
23
+ 3. 记录背景、约束、候选方案、决策和后果
24
+ 4. 对公共 API 或关键流程补充可消费文档
25
+ 5. 对源码中的非显而易见陷阱补充“为什么”类注释
26
+ 6. 检查发布或实现是否让以下长期文档产生 drift:
26
27
  - README 和 quick start
27
28
  - 架构说明、ADR、迁移或兼容性说明
28
29
  - 公共 API、CLI、配置项、安装说明
29
30
  - 关键行为变更、默认值变化、已知限制
30
- 6. 满足以下任一触发条件时,把文档同步视为显式收尾项,而不是可选备注:
31
+ 7. 满足以下任一触发条件时,把文档同步视为显式收尾项,而不是可选备注:
31
32
  - 用户首条成功路径变了
32
33
  - 安装、升级、回滚步骤变了
33
34
  - 默认行为、配置语义或兼容性边界变了
34
35
  - 运维、支持或后续开发会因为旧文档而误判
35
- 7. 把文档与代码一起进入版本控制;如果代码已发布,再补一次发布后同步核对
36
+ 8. 把文档与代码一起进入版本控制;如果代码已发布,再补一次发布后同步核对
36
37
 
37
38
  ## 成功标准
38
39
 
39
40
  - 重要决策有书面理由,不依赖口头记忆
40
41
  - 文档说明的是“为什么”和“怎么验证”,不是重复代码
41
42
  - 后续工程师或代理能直接消费这些记录
43
+ - 文档类型清楚,不把教程、参考和 ADR 写成一锅粥
42
44
  - 文档与当前实现保持同步
43
45
  - 文档 drift 被显式识别,而不是在发布后被动暴露
44
46
 
@@ -12,25 +12,29 @@
12
12
  1. 先澄清假设
13
13
  把输入、约束、风险和未知项说清楚,再进入实现。
14
14
 
15
- 2. 简单优先
15
+ 2. 疑点优先收敛
16
+ 遇到相互矛盾、会改变架构或会影响数据安全的疑点时,先提出具体问题;低风险疑点可以声明假设后继续推进。
17
+
18
+ 3. 简单优先
16
19
  先选最直接、最容易验证、最少抽象的方案。
17
20
 
18
- 3. 外科式修改
21
+ 4. 外科式修改
19
22
  只改完成目标所需的最小范围,不顺手扩散、不借题发挥。
20
23
 
21
- 4. 目标导向
24
+ 5. 目标导向
22
25
  每一步都要能回答“这一步为什么必要,它离目标更近了什么”。
23
26
 
24
- 5. 证据先于断言
27
+ 6. 证据先于断言
25
28
  结论必须建立在测试、构建、检查或运行结果上,而不是感觉。
26
29
 
27
- 6. 发布后不允许失控漂移
30
+ 7. 发布后不允许失控漂移
28
31
  已发布行为、文档、门禁和回归基线发生变化时,必须有明确校验与同步动作,不能默认“上线后自然会对齐”。
29
32
 
30
33
  ## 原则落点
31
34
 
32
35
  | 原则 | 主要落点 |
33
36
  | --- | --- |
37
+ | 疑点优先收敛 | `spec-driven-development`、`planning-and-task-breakdown`、`debugging-and-error-recovery` |
34
38
  | 证据先于断言 | `verification-before-completion`、`ci-cd-and-automation`、`browser-qa-testing` |
35
39
  | 复杂任务谨慎优先于求快 | `verification-before-completion`、`context-engineering` |
36
40
  | 简单优先 | `ci-cd-and-automation`、`browser-qa-testing`、`context-engineering` |
@@ -41,6 +45,7 @@
41
45
  ## 执行检查清单
42
46
 
43
47
  - 我是否明确了当前目标和不做什么
48
+ - 我是否把会改变路线的疑点变成了问题或显式假设
44
49
  - 这次改动是否是当前问题的最小可行解
45
50
  - 是否引入了与目标无关的抽象、重命名或结构变动
46
51
  - 是否保留了足够的验证证据来支撑最终结论
@@ -140,29 +140,29 @@ refactor/<简短描述> → refactor/auth-module
140
140
 
141
141
  ## Git Worktree 并行开发
142
142
 
143
- 当多个 AI Agent 需要并行工作时,使用 git worktree 同时运行多个分支:
143
+ 当多个 AI Agent 需要并行工作时,使用 git worktree 同时运行多个分支。优先使用已被 `.gitignore` 覆盖的项目内 `.worktrees/`;如果无法证明项目内目录会被忽略,就使用仓库外的兄弟目录。
144
144
 
145
145
  ```bash
146
146
  # 为 feature 分支创建 worktree
147
- git worktree add ../project-feature-a feature/task-creation
148
- git worktree add ../project-feature-b feature/user-settings
147
+ git worktree add .worktrees/project-feature-a feature/task-creation
148
+ git worktree add .worktrees/project-feature-b feature/user-settings
149
149
 
150
150
  # 每个 worktree 是独立目录,各自有自己的分支
151
151
  # Agent 可以并行工作互不干扰
152
- ls ../
153
- project/ ← main 分支
152
+ ls .worktrees/
154
153
  project-feature-a/ ← task-creation 分支
155
154
  project-feature-b/ ← user-settings 分支
156
155
 
157
- # 完成后合并并清理
158
- git worktree remove ../project-feature-a
156
+ # 完成后先确认状态,再合并或清理
157
+ git -C .worktrees/project-feature-a status --short --branch
158
+ git worktree remove .worktrees/project-feature-a
159
159
  ```
160
160
 
161
161
  优势:
162
162
  - 多个 Agent 可以同时工作在不同功能上
163
163
  - 无需切换分支(每个目录有自己的分支)
164
- - 实验失败时直接删除 worktree — 不会丢失任何东西
165
164
  - 变更相互隔离,直到显式合并
165
+ - 实验失败时也先记录结论并检查 diff,再决定合入、保留或丢弃
166
166
 
167
167
  ## 存档点模式
168
168
 
@@ -180,7 +180,7 @@ Agent 开始工作
180
180
  └── 功能完成 → 所有提交形成干净的历史
181
181
  ```
182
182
 
183
- 这个模式意味着你永远不会丢失超过一个增量的工作。如果 Agent 走偏了,`git reset --hard HEAD` 就能回到上一个成功状态。
183
+ 这个模式意味着你不会把多个未验证增量混成一团。如果 Agent 走偏了,先读 `git status` `git diff`,确认哪些文件属于本次增量,再按团队规则回退或丢弃;不要在未确认范围时使用破坏性回退命令。
184
184
 
185
185
  ## 变更摘要
186
186