@aipper/aiws-spec 0.0.24 → 0.0.25

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 (191) hide show
  1. package/README.md +22 -0
  2. package/docs/aiws-bootstrap-routing-design.md +138 -0
  3. package/docs/aiws-governance-positioning.md +69 -0
  4. package/docs/cli-interface.md +87 -5
  5. package/docs/collaboration-artifacts.md +62 -0
  6. package/docs/opencode-omo-adapter.md +135 -0
  7. package/docs/opencode-omo-validation-checklist.md +90 -0
  8. package/docs/spec-contract.md +26 -11
  9. package/docs/superpowers-collaboration-adoption.md +92 -0
  10. package/docs/workflow-delegation-contracts.json +274 -0
  11. package/docs/workflow-delegation-contracts.md +248 -0
  12. package/docs/workflow-delegation-contracts.schema.json +176 -0
  13. package/docs/workflow-governance-rules.json +294 -0
  14. package/docs/workflow-governance-rules.md +63 -0
  15. package/docs/workflow-governance-rules.schema.json +182 -0
  16. package/docs/workflow-review-gates.json +72 -0
  17. package/docs/workflow-review-gates.md +36 -0
  18. package/docs/workflow-review-gates.schema.json +67 -0
  19. package/docs/workflow-router-rules.json +196 -0
  20. package/docs/workflow-router-rules.md +83 -0
  21. package/docs/workflow-router-rules.schema.json +119 -0
  22. package/docs/workflow-stage-contracts.json +148 -0
  23. package/docs/workflow-stage-contracts.md +70 -0
  24. package/docs/workflow-stage-contracts.schema.json +98 -0
  25. package/package.json +1 -1
  26. package/templates/workspace/.agents/skills/using-aiws/SKILL.md +83 -0
  27. package/templates/workspace/.agents/skills/ws-commit/SKILL.md +23 -0
  28. package/templates/workspace/.agents/skills/ws-delegate/SKILL.md +75 -0
  29. package/templates/workspace/.agents/skills/ws-deliver/SKILL.md +22 -0
  30. package/templates/workspace/.agents/skills/ws-dev/SKILL.md +35 -6
  31. package/templates/workspace/.agents/skills/ws-finish/SKILL.md +24 -0
  32. package/templates/workspace/.agents/skills/ws-frontend-design/SKILL.md +126 -0
  33. package/templates/workspace/.agents/skills/ws-handoff/SKILL.md +22 -1
  34. package/templates/workspace/.agents/skills/ws-plan/SKILL.md +25 -1
  35. package/templates/workspace/.agents/skills/ws-plan-verify/SKILL.md +20 -0
  36. package/templates/workspace/.agents/skills/ws-preflight/SKILL.md +23 -0
  37. package/templates/workspace/.agents/skills/ws-quality-review/SKILL.md +56 -0
  38. package/templates/workspace/.agents/skills/ws-review/SKILL.md +24 -0
  39. package/templates/workspace/.agents/skills/ws-spec-review/SKILL.md +57 -0
  40. package/templates/workspace/.agents/skills/ws-verify-before-complete/SKILL.md +59 -0
  41. package/templates/workspace/.claude/commands/using-aiws.md +24 -0
  42. package/templates/workspace/.claude/commands/ws-quality-review.md +24 -0
  43. package/templates/workspace/.claude/commands/ws-spec-review.md +24 -0
  44. package/templates/workspace/.claude/commands/ws-verify-before-complete.md +24 -0
  45. package/templates/workspace/.claude/skills/p-aiws-change-archive/SKILL.md +24 -0
  46. package/templates/workspace/.claude/skills/p-aiws-change-finish/SKILL.md +24 -0
  47. package/templates/workspace/.claude/skills/p-aiws-change-list/SKILL.md +18 -0
  48. package/templates/workspace/.claude/skills/p-aiws-change-new/SKILL.md +26 -0
  49. package/templates/workspace/.claude/skills/p-aiws-change-next/SKILL.md +19 -0
  50. package/templates/workspace/.claude/skills/p-aiws-change-start/SKILL.md +33 -0
  51. package/templates/workspace/.claude/skills/p-aiws-change-status/SKILL.md +19 -0
  52. package/templates/workspace/.claude/skills/p-aiws-change-sync/SKILL.md +19 -0
  53. package/templates/workspace/.claude/skills/p-aiws-change-templates-init/SKILL.md +18 -0
  54. package/templates/workspace/.claude/skills/p-aiws-change-templates-which/SKILL.md +18 -0
  55. package/templates/workspace/.claude/skills/p-aiws-change-validate/SKILL.md +23 -0
  56. package/templates/workspace/.claude/skills/p-aiws-hooks-install/SKILL.md +30 -0
  57. package/templates/workspace/.claude/skills/p-aiws-hooks-status/SKILL.md +18 -0
  58. package/templates/workspace/.claude/skills/p-aiws-init/SKILL.md +27 -0
  59. package/templates/workspace/.claude/skills/p-aiws-rollback/SKILL.md +18 -0
  60. package/templates/workspace/.claude/skills/p-aiws-update/SKILL.md +26 -0
  61. package/templates/workspace/.claude/skills/p-aiws-validate/SKILL.md +22 -0
  62. package/templates/workspace/.claude/skills/p-tasks-plan/SKILL.md +37 -0
  63. package/templates/workspace/.claude/skills/using-aiws/SKILL.md +83 -0
  64. package/templates/workspace/.claude/skills/ws-analyze/SKILL.md +26 -0
  65. package/templates/workspace/.claude/skills/ws-bugfix/SKILL.md +111 -0
  66. package/templates/workspace/.claude/skills/ws-commit/SKILL.md +127 -0
  67. package/templates/workspace/.claude/skills/ws-deliver/SKILL.md +231 -0
  68. package/templates/workspace/.claude/skills/ws-dev/SKILL.md +168 -0
  69. package/templates/workspace/.claude/skills/ws-finish/SKILL.md +220 -0
  70. package/templates/workspace/.claude/skills/ws-frontend-design/SKILL.md +126 -0
  71. package/templates/workspace/.claude/skills/ws-handoff/SKILL.md +52 -0
  72. package/templates/workspace/.claude/skills/ws-migrate/SKILL.md +54 -0
  73. package/templates/workspace/.claude/skills/ws-plan/SKILL.md +138 -0
  74. package/templates/workspace/.claude/skills/ws-plan-verify/SKILL.md +61 -0
  75. package/templates/workspace/.claude/skills/ws-preflight/SKILL.md +55 -0
  76. package/templates/workspace/.claude/skills/ws-pull/SKILL.md +119 -0
  77. package/templates/workspace/.claude/skills/ws-push/SKILL.md +110 -0
  78. package/templates/workspace/.claude/skills/ws-quality-review/SKILL.md +56 -0
  79. package/templates/workspace/.claude/skills/ws-req-change/SKILL.md +41 -0
  80. package/templates/workspace/.claude/skills/ws-req-contract-sync/SKILL.md +17 -0
  81. package/templates/workspace/.claude/skills/ws-req-contract-validate/SKILL.md +12 -0
  82. package/templates/workspace/.claude/skills/ws-req-flow-sync/SKILL.md +28 -0
  83. package/templates/workspace/.claude/skills/ws-req-review/SKILL.md +32 -0
  84. package/templates/workspace/.claude/skills/ws-review/SKILL.md +50 -0
  85. package/templates/workspace/.claude/skills/ws-rule/SKILL.md +23 -0
  86. package/templates/workspace/.claude/skills/ws-spec-review/SKILL.md +57 -0
  87. package/templates/workspace/.claude/skills/ws-submodule-setup/SKILL.md +65 -0
  88. package/templates/workspace/.claude/skills/ws-verify-before-complete/SKILL.md +59 -0
  89. package/templates/workspace/.opencode/command/using-aiws.md +29 -0
  90. package/templates/workspace/.opencode/command/ws-delegate.md +33 -0
  91. package/templates/workspace/.opencode/command/ws-plan.md +3 -0
  92. package/templates/workspace/.opencode/command/ws-preflight.md +4 -0
  93. package/templates/workspace/.opencode/command/ws-quality-review.md +30 -0
  94. package/templates/workspace/.opencode/command/ws-review.md +3 -0
  95. package/templates/workspace/.opencode/command/ws-spec-review.md +30 -0
  96. package/templates/workspace/.opencode/command/ws-verify-before-complete.md +27 -0
  97. package/templates/workspace/.opencode/commands/p-aiws-change-archive.md +27 -0
  98. package/templates/workspace/.opencode/commands/p-aiws-change-finish.md +27 -0
  99. package/templates/workspace/.opencode/commands/p-aiws-change-list.md +26 -0
  100. package/templates/workspace/.opencode/commands/p-aiws-change-new.md +27 -0
  101. package/templates/workspace/.opencode/commands/p-aiws-change-next.md +27 -0
  102. package/templates/workspace/.opencode/commands/p-aiws-change-start.md +27 -0
  103. package/templates/workspace/.opencode/commands/p-aiws-change-status.md +27 -0
  104. package/templates/workspace/.opencode/commands/p-aiws-change-sync.md +27 -0
  105. package/templates/workspace/.opencode/commands/p-aiws-change-templates-init.md +26 -0
  106. package/templates/workspace/.opencode/commands/p-aiws-change-templates-which.md +26 -0
  107. package/templates/workspace/.opencode/commands/p-aiws-change-validate.md +27 -0
  108. package/templates/workspace/.opencode/commands/p-aiws-hooks-install.md +26 -0
  109. package/templates/workspace/.opencode/commands/p-aiws-hooks-status.md +26 -0
  110. package/templates/workspace/.opencode/commands/p-aiws-init.md +23 -0
  111. package/templates/workspace/.opencode/commands/p-aiws-rollback.md +16 -0
  112. package/templates/workspace/.opencode/commands/p-aiws-update.md +22 -0
  113. package/templates/workspace/.opencode/commands/p-aiws-validate.md +17 -0
  114. package/templates/workspace/.opencode/commands/using-aiws.md +29 -0
  115. package/templates/workspace/.opencode/commands/ws-analyze.md +30 -0
  116. package/templates/workspace/.opencode/commands/ws-bugfix.md +35 -0
  117. package/templates/workspace/.opencode/commands/ws-commit.md +70 -0
  118. package/templates/workspace/.opencode/commands/ws-delegate.md +33 -0
  119. package/templates/workspace/.opencode/commands/ws-deliver.md +58 -0
  120. package/templates/workspace/.opencode/commands/ws-dev.md +36 -0
  121. package/templates/workspace/.opencode/commands/ws-finish.md +71 -0
  122. package/templates/workspace/.opencode/commands/ws-handoff.md +25 -0
  123. package/templates/workspace/.opencode/commands/ws-migrate.md +25 -0
  124. package/templates/workspace/.opencode/commands/ws-plan-verify.md +28 -0
  125. package/templates/workspace/.opencode/commands/ws-plan.md +27 -0
  126. package/templates/workspace/.opencode/commands/ws-preflight.md +34 -0
  127. package/templates/workspace/.opencode/commands/ws-pull.md +87 -0
  128. package/templates/workspace/.opencode/commands/ws-push.md +93 -0
  129. package/templates/workspace/.opencode/commands/ws-quality-review.md +30 -0
  130. package/templates/workspace/.opencode/commands/ws-req-change.md +45 -0
  131. package/templates/workspace/.opencode/commands/ws-req-contract-sync.md +21 -0
  132. package/templates/workspace/.opencode/commands/ws-req-contract-validate.md +16 -0
  133. package/templates/workspace/.opencode/commands/ws-req-flow-sync.md +23 -0
  134. package/templates/workspace/.opencode/commands/ws-req-review.md +36 -0
  135. package/templates/workspace/.opencode/commands/ws-review.md +33 -0
  136. package/templates/workspace/.opencode/commands/ws-rule.md +27 -0
  137. package/templates/workspace/.opencode/commands/ws-spec-review.md +30 -0
  138. package/templates/workspace/.opencode/commands/ws-submodule-setup.md +57 -0
  139. package/templates/workspace/.opencode/commands/ws-verify-before-complete.md +27 -0
  140. package/templates/workspace/.opencode/oh-my-opencode.json.example +17 -0
  141. package/templates/workspace/.opencode/skills/p-aiws-change-archive/SKILL.md +24 -0
  142. package/templates/workspace/.opencode/skills/p-aiws-change-finish/SKILL.md +24 -0
  143. package/templates/workspace/.opencode/skills/p-aiws-change-list/SKILL.md +18 -0
  144. package/templates/workspace/.opencode/skills/p-aiws-change-new/SKILL.md +26 -0
  145. package/templates/workspace/.opencode/skills/p-aiws-change-next/SKILL.md +19 -0
  146. package/templates/workspace/.opencode/skills/p-aiws-change-start/SKILL.md +33 -0
  147. package/templates/workspace/.opencode/skills/p-aiws-change-status/SKILL.md +19 -0
  148. package/templates/workspace/.opencode/skills/p-aiws-change-sync/SKILL.md +19 -0
  149. package/templates/workspace/.opencode/skills/p-aiws-change-templates-init/SKILL.md +18 -0
  150. package/templates/workspace/.opencode/skills/p-aiws-change-templates-which/SKILL.md +18 -0
  151. package/templates/workspace/.opencode/skills/p-aiws-change-validate/SKILL.md +23 -0
  152. package/templates/workspace/.opencode/skills/p-aiws-hooks-install/SKILL.md +30 -0
  153. package/templates/workspace/.opencode/skills/p-aiws-hooks-status/SKILL.md +18 -0
  154. package/templates/workspace/.opencode/skills/p-aiws-init/SKILL.md +27 -0
  155. package/templates/workspace/.opencode/skills/p-aiws-rollback/SKILL.md +18 -0
  156. package/templates/workspace/.opencode/skills/p-aiws-update/SKILL.md +26 -0
  157. package/templates/workspace/.opencode/skills/p-aiws-validate/SKILL.md +22 -0
  158. package/templates/workspace/.opencode/skills/p-tasks-plan/SKILL.md +37 -0
  159. package/templates/workspace/.opencode/skills/using-aiws/SKILL.md +87 -0
  160. package/templates/workspace/.opencode/skills/ws-analyze/SKILL.md +26 -0
  161. package/templates/workspace/.opencode/skills/ws-bugfix/SKILL.md +111 -0
  162. package/templates/workspace/.opencode/skills/ws-commit/SKILL.md +127 -0
  163. package/templates/workspace/.opencode/skills/ws-delegate/SKILL.md +63 -0
  164. package/templates/workspace/.opencode/skills/ws-deliver/SKILL.md +231 -0
  165. package/templates/workspace/.opencode/skills/ws-dev/SKILL.md +168 -0
  166. package/templates/workspace/.opencode/skills/ws-finish/SKILL.md +220 -0
  167. package/templates/workspace/.opencode/skills/ws-frontend-design/SKILL.md +126 -0
  168. package/templates/workspace/.opencode/skills/ws-handoff/SKILL.md +52 -0
  169. package/templates/workspace/.opencode/skills/ws-migrate/SKILL.md +54 -0
  170. package/templates/workspace/.opencode/skills/ws-plan/SKILL.md +148 -0
  171. package/templates/workspace/.opencode/skills/ws-plan-verify/SKILL.md +61 -0
  172. package/templates/workspace/.opencode/skills/ws-preflight/SKILL.md +60 -0
  173. package/templates/workspace/.opencode/skills/ws-pull/SKILL.md +119 -0
  174. package/templates/workspace/.opencode/skills/ws-push/SKILL.md +110 -0
  175. package/templates/workspace/.opencode/skills/ws-quality-review/SKILL.md +63 -0
  176. package/templates/workspace/.opencode/skills/ws-req-change/SKILL.md +41 -0
  177. package/templates/workspace/.opencode/skills/ws-req-contract-sync/SKILL.md +17 -0
  178. package/templates/workspace/.opencode/skills/ws-req-contract-validate/SKILL.md +12 -0
  179. package/templates/workspace/.opencode/skills/ws-req-flow-sync/SKILL.md +28 -0
  180. package/templates/workspace/.opencode/skills/ws-req-review/SKILL.md +32 -0
  181. package/templates/workspace/.opencode/skills/ws-review/SKILL.md +57 -0
  182. package/templates/workspace/.opencode/skills/ws-rule/SKILL.md +23 -0
  183. package/templates/workspace/.opencode/skills/ws-spec-review/SKILL.md +64 -0
  184. package/templates/workspace/.opencode/skills/ws-submodule-setup/SKILL.md +65 -0
  185. package/templates/workspace/.opencode/skills/ws-verify-before-complete/SKILL.md +59 -0
  186. package/templates/workspace/AGENTS.md +72 -30
  187. package/templates/workspace/changes/README.md +18 -0
  188. package/templates/workspace/changes/templates/proposal.md +15 -0
  189. package/templates/workspace/changes/templates/tasks.md +9 -2
  190. package/templates/workspace/manifest.json +277 -2
  191. package/templates/workspace/tools/ws_change_check.py +26 -4
package/README.md CHANGED
@@ -12,3 +12,25 @@ npx @aipper/aiws init .
12
12
  - `templates/workspace/`:workspace 模板(真值文件、tool-native commands/skills、hooks、门禁脚本等)
13
13
  - `docs/spec-contract.md`:模板契约(required/optional、managed markers、tool matrix、`.aiws/manifest.json` 约定)
14
14
  - `docs/cli-interface.md`:CLI 行为语义(定义为主)
15
+ - `docs/aiws-governance-positioning.md`:`aiws` 作为工作流治理内核的定位、分层与边界
16
+ - `docs/aiws-bootstrap-routing-design.md`:bootstrap/router 与 `Codex / Claude / OpenCode` 目录对齐设计
17
+ - `docs/superpowers-collaboration-adoption.md`:吸收 `superpowers` 与协同模式的范围、非目标与分阶段路线
18
+ - `docs/workflow-stage-contracts.md`:核心 `ws-*` workflow 的人类可读阶段契约说明(由 JSON 真值生成)
19
+ - `docs/workflow-stage-contracts.json`:dashboard / API 共用的机器可读阶段契约真值
20
+ - `docs/workflow-stage-contracts.schema.json`:阶段契约 JSON 的结构约束
21
+ - `docs/workflow-governance-rules.md`:阶段推断规则的人类可读说明(由 JSON 真值生成)
22
+ - `docs/workflow-governance-rules.json`:`change status/next/dashboard` 共用的机器可读阶段推断规则(含 dual review / finish gate 缺口)
23
+ - `docs/workflow-governance-rules.schema.json`:阶段推断规则 JSON 的结构约束
24
+ - `docs/workflow-router-rules.md`:默认 bootstrap/router 的人类可读说明(由 JSON 真值生成)
25
+ - `docs/workflow-router-rules.json`:`using-aiws` / `ws-router` 共用的机器可读路由规则真值
26
+ - `docs/workflow-router-rules.schema.json`:router 规则 JSON 的结构约束
27
+ - `docs/workflow-review-gates.md`:双审查与完成前验证 gate 的人类可读说明(由 JSON 真值生成)
28
+ - `docs/workflow-review-gates.json`:`ws-spec-review` / `ws-quality-review` / `ws-verify-before-complete` 共用的机器可读 gate 真值
29
+ - `docs/workflow-review-gates.schema.json`:review gate JSON 的结构约束
30
+ - `docs/workflow-delegation-contracts.md`:原生多 agent 委托合同的人类可读说明(由 JSON 真值生成)
31
+ - `docs/workflow-delegation-contracts.json`:原生 delegation 的角色/边界/工件/降级策略真值
32
+ - `docs/workflow-delegation-contracts.schema.json`:delegation contract JSON 的结构约束
33
+ - `docs/opencode-omo-adapter.md`:OpenCode + oh-my-opencode 的适配边界、角色映射与 fallback 约定
34
+ - `docs/opencode-omo-validation-checklist.md`:OpenCode + oMo 的真实项目验收清单(探测、启用、损坏配置、fallback)
35
+ - `templates/workspace/.opencode/oh-my-opencode.json.example`:保守的项目级 oMo agent 建议配置(只覆盖 agents)
36
+ - `docs/collaboration-artifacts.md`:`analysis/patches/review/evidence` 的协同工件目录与生命周期约定
@@ -0,0 +1,138 @@
1
+ # aiws Bootstrap / Router 与跨工具目录对齐设计
2
+
3
+ ## 目标
4
+
5
+ 把 `aiws` 从“提供一组可显式调用的 `ws-*` 入口”推进到“默认先接管 workflow,再决定进入哪个入口”的治理系统,并先把 `Codex / Claude Code / OpenCode` 的目录真值固定下来,避免后续 bootstrap / router / 安装器继续建立在错误路径假设上。
6
+
7
+ ## 本次查档结论(2026-03-30)
8
+
9
+ ### Claude Code
10
+
11
+ - 官方文档公开说明的项目级 / 全局级入口是:
12
+ - skills:`.claude/skills/<skill-name>/SKILL.md` / `~/.claude/skills/<skill-name>/SKILL.md`
13
+ - 自定义 slash commands(legacy compatible):`.claude/commands/` / `~/.claude/commands/`
14
+ - subagents:`.claude/agents/` / `~/.claude/agents/`
15
+ - 官方文档同时说明:`.claude/commands/*.md` 仍然可用,但若 skill 与 command 同名,skill 优先。
16
+
17
+ ### OpenCode
18
+
19
+ - 官方文档公开说明的 native 目录是:
20
+ - skills:`.opencode/skills/` / `~/.config/opencode/skills/`
21
+ - commands:`.opencode/commands/` / `~/.config/opencode/commands/`
22
+ - OpenCode 官方文档同时说明会检测其它 agent 生态目录,包括:
23
+ - `.agents/skills/`
24
+ - `.claude/commands/`
25
+ - `.claude/skills/`
26
+
27
+ ### Codex
28
+
29
+ - 本次检索到的 OpenAI 官方公开页面没有明确给出 “Codex skills 全局目录”的公开路径说明。
30
+ - 因此,`Codex` 的目录结论需要明确标记为**推断**:
31
+ - repo-local:`.agents/skills/`
32
+ - global:`~/.agents/skills/`
33
+ - 这个推断依据是:
34
+ - 当前 Codex 运行环境与生态使用习惯都以 `.agents/skills/` 为项目内 skills 目录
35
+ - OpenCode 官方文档也把 `.agents/skills/` 视为兼容可发现目录
36
+ - 在找到 OpenAI 官方公开页面直接写明路径前,不再把 `~/.codex/skills/` 当成长期目录真值。
37
+
38
+ ## 固定下来的目录决策
39
+
40
+ ### 1. repo 内 workflow skill 的目标投影
41
+
42
+ - `Codex` / agent-compatible:
43
+ - `.agents/skills/<skill-name>/SKILL.md`
44
+ - `Claude Code` native:
45
+ - `.claude/skills/<skill-name>/SKILL.md`
46
+ - `OpenCode` native:
47
+ - `.opencode/skills/<skill-name>/SKILL.md`
48
+ - 设计原则:
49
+ - workflow instruction 的单一真值仍然留在 `packages/spec/`
50
+ - 目标仓库可以投影到多个 tool-native 目录
51
+ - 不能再把 `.agents/skills/` 单独当成覆盖所有工具的唯一目标目录
52
+
53
+ ### 2. Codex 全局 skills 安装目标
54
+
55
+ - 设计真值改为:`~/.agents/skills/<skill-name>/SKILL.md`
56
+ - 不再把 `~/.codex/skills/` 作为长期默认目录
57
+ - 当前实现若仍写入 `~/.codex/skills/`,视为第一版实现遗留;后续通过单独实现条目迁移
58
+
59
+ ### 3. Claude Code 入口策略
60
+
61
+ - native workflow skill 目录:
62
+ - `.claude/skills/<skill-name>/SKILL.md`
63
+ - 如后续确有必要引入 agent 角色:
64
+ - `.claude/agents/*.md`
65
+ - `.claude/commands/*.md` 继续保留为 legacy compatibility / command-style entrypoint,但不再作为唯一长期真值
66
+
67
+ ### 4. OpenCode 入口策略
68
+
69
+ - native 真值应记录为:
70
+ - skills:`.opencode/skills/`
71
+ - commands:`.opencode/commands/`
72
+ - 由于当前仓库仍有 `.opencode/command/`(单数)遗留,先明确它是**legacy compatibility path**,不再把它当未来默认路径
73
+ - 由于 OpenCode 可兼容读取 `.agents/skills/`,repo 共享 workflow skills 仍保持在 `.agents/skills/`
74
+
75
+ ## Bootstrap / Router 设计
76
+
77
+ ### 设计目标
78
+
79
+ - 新增一个总入口:`using-aiws` 或 `ws-router`
80
+ - 作用不是替代所有 `ws-*`,而是让任何 coding task 先经过 workflow 路由,再决定进入哪个 skill
81
+ - 这样 `aiws` 才不是 “opt-in workflow toolbox”,而是 “default-routed governance system”
82
+
83
+ ### 路由顺序
84
+
85
+ 1. 先进入 bootstrap:
86
+ - 读取 `AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md`
87
+ 2. 识别任务意图:
88
+ - 规划类 -> `ws-plan`
89
+ - 实现类 -> `ws-dev` / `ws-execute` / `ws-subagent-dev`
90
+ - 评审类 -> `ws-review`(后续拆分成 `ws-spec-review` + `ws-quality-review`)
91
+ - 收尾类 -> `ws-finish`
92
+ - 交接类 -> `ws-handoff`
93
+ 3. 若意图不明确:
94
+ - 阻断,先澄清任务归因与目标
95
+
96
+ ### Router 真值
97
+
98
+ - 后续新增一份机器可读真值:
99
+ - `packages/spec/docs/workflow-router-rules.json`
100
+ - 并生成:
101
+ - `packages/spec/docs/workflow-router-rules.md`
102
+ - `packages/spec/docs/workflow-router-rules.schema.json`
103
+ - 路由规则必须落在 `packages/spec/`,而不是散落到某个工具专用 prompt 中
104
+
105
+ ## 对现有实现的修正结论
106
+
107
+ ### 需要被后续实现修正的点
108
+
109
+ - `aiws codex install-skills` 的默认全局目录应从 `~/.codex/skills` 调整为 `~/.agents/skills`
110
+ - 若后续增加 Claude 全局 skills 安装,目标应是 `~/.claude/skills/`,不是继续只投递到 `~/.claude/commands/`
111
+ - 若后续增加 OpenCode 全局 skills 安装,目标应是 `~/.config/opencode/skills/`
112
+ - OpenCode 的 native commands 路径长期应对齐到 `.opencode/commands`,不再把 `.opencode/command` 当默认真值
113
+ - 需要新增 bootstrap / router 入口,而不是继续完全依赖使用者手工显式调用 `$ws-plan` / `$ws-dev` / `$ws-review`
114
+
115
+ ### 本文档不做的事
116
+
117
+ - 不在本条中直接修改 CLI 实现
118
+ - 不立即迁移现有模板目录
119
+ - 不把 `aiws` 做成 runtime / daemon / pane orchestration 系统
120
+
121
+ ## 条目拆分与当前状态
122
+
123
+ 1. 目录对齐实现:
124
+ - Codex 全局 skills 目录迁移
125
+ - OpenCode native commands 目录迁移
126
+ - 当前已由 `TOOLING-002G` 落地
127
+ 2. workflow bootstrap / router:
128
+ - `using-aiws`
129
+ - `workflow-router-rules.json`
130
+ - 当前已由 `TOOLING-002H` 落地
131
+ 3. 执行控制器:
132
+ - `ws-execute`
133
+ - `ws-subagent-dev`
134
+ 4. 双审查与完成前验证:
135
+ - `ws-spec-review`
136
+ - `ws-quality-review`
137
+ - `ws-verify-before-complete`
138
+ - 当前已由 `TOOLING-002I` 落地
@@ -0,0 +1,69 @@
1
+ # aiws:工作流治理内核定位
2
+
3
+ ## 一句话定位
4
+
5
+ `aiws` 不是“把模板分发到 Claude Code / OpenCode / Codex / iFlow 的 CLI 薄封装”,而是以 `packages/spec/` 为单一真值,通过 workflow contracts 统一约束、门禁、协同和证据的 AI workspace 工作流治理系统。
6
+
7
+ CLI 分发能力依然重要,但它只是治理内核的一层实现,不是产品的全部定义。
8
+
9
+ ## 为什么不能只把 aiws 看成分发器
10
+
11
+ - 纯分发叙事只能解释“文件写到哪里”,解释不了 `ws-preflight`、`ws-plan`、`ws-review`、`ws-commit`、`ws-finish` 这些 workflow 入口为什么存在。
12
+ - `changes/`、`validate` stamp、review 工件、多工具入口并不是模板副产物,而是治理对象本身。
13
+ - 用户真正需要的是“团队如何被约束并稳定交付”,而不是“某个 prompt 或 skill 被复制到了哪个目录”。
14
+
15
+ ## 分层模型
16
+
17
+ ### 1. 规则真值层
18
+
19
+ - 单一真值固定在 `packages/spec/`。
20
+ - 真值内容包括模板、文档、manifest、门禁脚本与 workflow 约定。
21
+ - 所有工具入口都应回指这层,而不是各写一套规则。
22
+
23
+ ### 2. 工作流治理层
24
+
25
+ - 把工作拆成可审计阶段,而不是把 AI 当成自由发挥的聊天窗口。
26
+ - 典型阶段包括:`preflight -> plan -> dev -> review -> commit -> finish / handoff`。
27
+ - 每个阶段都要定义输入、输出、失败条件和回到真值文件的路径。
28
+
29
+ ### 3. 执行 / 分发层
30
+
31
+ - `@aipper/aiws` CLI 负责把真值层与治理层映射到目标仓库。
32
+ - tool-native files、skills、commands、hooks 都属于这一层的适配器。
33
+ - 这一层应尽量保持“薄”,重点是把治理契约稳定投递到各工具,而不是在工具侧复制业务规则。
34
+
35
+ ### 4. 证据 / 审计层
36
+
37
+ - `changes/`、`.agentdocs/tmp/`、validate stamp、review 结果都属于交付证据。
38
+ - `aiws` 不只约束“怎么做”,也要约束“做完后留下什么证据”。
39
+ - 有证据,才有回放、复核、审计和交接。
40
+
41
+ ## 设计原则
42
+
43
+ - `packages/spec/` 是唯一规则真值,不能再平行维护第二套治理规范。
44
+ - 优先定义 workflow contract,再决定命令名、skill 名或工具适配细节。
45
+ - 协同能力要能落盘成工件,而不是只存在于会话上下文。
46
+ - 审查优先看规范与门禁是否满足,再看代码质量与实现技巧。
47
+ - 破坏性动作必须经过显式确认,治理系统不应鼓励“自动越权执行”。
48
+
49
+ ## 与 superpowers、协同运行时的关系
50
+
51
+ ### 吸收什么
52
+
53
+ - 吸收 `superpowers` 的 workflow-first 思路。
54
+ - 吸收 `superpowers` 用 skill 承载流程约束的做法。
55
+ - 吸收协同模式中的角色分工、委托回传、双审查与交接意识。
56
+
57
+ ### 不吸收什么
58
+
59
+ - 不把 `aiws` 做成 `claude_code_bridge` 风格的 pane / daemon / runtime orchestration。
60
+ - 不直接 vendoring 整套 `superpowers` hooks、skill 文案和运行时假设。
61
+ - 不让某个单一厂商或单一 agent 形态成为治理内核的前提条件。
62
+
63
+ ## 对外表达
64
+
65
+ 对内和对外都应把 `aiws` 表述为:
66
+
67
+ “一个以 `packages/spec/` 为真值、通过 workflow contracts 在多 AI 工具中实施约束、门禁、协同与证据管理的治理内核。”
68
+
69
+ 这一定义允许 `aiws` 保持多工具适配能力,同时避免退化成“仅做文件分发”的工具集合。
@@ -33,7 +33,11 @@
33
33
  语义:
34
34
  - 在目标仓库根目录写入/补齐模板(默认 `workspace`)。
35
35
  - 默认生成 required + optional 文件/目录。
36
- - 写入/更新 tool-native 文件(默认覆盖 Claude/OpenCode/Codex/iFlow;Codex 为 repo skills:`.agents/skills/`)。
36
+ - 写入/更新 tool-native 文件(默认覆盖 Claude/OpenCode/Codex/iFlow):
37
+ - Codex repo skills:`.agents/skills/`
38
+ - Claude Code native skills + compatibility commands:`.claude/skills/` + `.claude/commands/`
39
+ - OpenCode native skills + native commands + legacy compatibility commands:`.opencode/skills/` + `.opencode/commands/` + `.opencode/command/`
40
+ - iFlow commands:`.iflow/commands/`
37
41
  - 写入/更新 `.gitignore` 的 aiws 托管块(其余内容保留)。
38
42
  - 生成并写入 `.aiws/manifest.json`:
39
43
  - 记录 `template_id/spec_version/aiws_version`
@@ -99,8 +103,8 @@
99
103
 
100
104
  语义:
101
105
  - 将模板内的 skills(`templates/<template_id>/.agents/skills/*/SKILL.md`)安装到 Codex 的全局 skills 目录:
102
- - 默认:`~/.codex/skills/`
103
- - 若设置了 `CODEX_HOME`:`$CODEX_HOME/skills/`
106
+ - 默认:`~/.agents/skills/`
107
+ - 若设置了 `CODEX_HOME`:`$CODEX_HOME/.agents/skills/`(仅作为 compatibility/test override)
104
108
  - 幂等:重复执行应只更新 AIWS 托管块,不破坏用户在文件托管块外追加的说明。
105
109
  - 若目标文件已存在但不含 AIWS 托管块:默认失败(退出码 `2`);需用户显式 `--force` 才允许覆盖(覆盖前应备份)。
106
110
  - 支持预演:`--dry-run` 仅输出将创建/更新/覆盖的 skills 清单,不写入任何文件。
@@ -199,6 +203,47 @@
199
203
  接口(仅定义):
200
204
  - `aiws hooks status [path]`
201
205
 
206
+ ## `aiws dashboard`
207
+
208
+ 语义:
209
+ - 启动本地 Dashboard(不依赖外部服务),聚合 change 状态、质量门结果、证据路径、协同摘要与下一步建议。
210
+ - 数据源:
211
+ - 当前工作区 `changes/<id>/`
212
+ - `.agentdocs/tmp/...`
213
+ - `@aipper/aiws-spec/docs/workflow-stage-contracts.json`(阶段契约真值)
214
+ - `@aipper/aiws-spec/docs/workflow-governance-rules.json`(阶段推断规则真值)
215
+ - `@aipper/aiws-spec/docs/workflow-review-gates.json`(dual review / finish gate 真值)
216
+ - 阶段推断约束:
217
+ - `currentStage/recommendedStage` 必须来自共享 change 状态,而不是 dashboard 单独猜测
218
+ - 若存在独立 `change/<id>` worktree,优先读取该 worktree 的 `git status`
219
+ - 若 worktree 元数据已 stale,不应导致 API/UI 失败;应返回 warning 并回退到当前 worktree
220
+ - 至少区分 `ws-review` / `ws-commit` / `ws-deliver` / `ws-finish` / `ws-handoff`
221
+ - 页面应至少展示:
222
+ - change 列表、tasks 进度、truth drift、strict blockers
223
+ - collaboration 摘要(analysis / patches / review / evidence)
224
+ - review gate 摘要(`spec_review` / `quality_review` / `validate_stamp` / `verify_before_complete`)
225
+ - next advice(进入 `$ws-dev` / `$ws-deliver` 等)
226
+ - 当前阶段与推荐下一阶段的契约摘要
227
+
228
+ 接口(仅定义):
229
+ - `aiws dashboard serve [--host 127.0.0.1] [--port 3456]`
230
+
231
+ Dashboard API(本地只读):
232
+ - `GET /api/changes`
233
+ - 返回 change 状态汇总,包含 `phase`、`collaboration`、`reviewGates`、`nextAdvice`、`governance`
234
+ - `governance` 至少包含:
235
+ - `phase`
236
+ - `currentStage`
237
+ - `recommendedStage`
238
+ - `rationale`
239
+ - `ruleId`
240
+ - `source`
241
+ - `warning`(可选;例如 stale worktree metadata)
242
+ - `GET /api/workflow-stages`
243
+ - 返回从 spec 真值读取的 workflow stage contracts
244
+ - `GET /api/change/<id>/validate?strict=1`
245
+ - 返回 strict validate 的 JSON 结果(`ok/errors/warnings/groups`)
246
+
202
247
  ## `aiws change`
203
248
 
204
249
  背景:
@@ -217,6 +262,7 @@
217
262
  - `tasks.md`
218
263
  - `design.md`(可选;`--no-design` 可跳过)
219
264
  - `.ws-change.json`(记录 `created_at` 与 `base_truth_files` 作为基线)
265
+ - `analysis/` / `patches/` / `review/` / `evidence/`(协同工件目录;默认预创建)
220
266
  - 模板来源优先级:
221
267
  1) `changes/templates/`
222
268
  2) `workflow/changes/templates/`(兼容旧布局)
@@ -252,7 +298,17 @@
252
298
  - 若当前分支不是 `change/<change-id>`:默认合并到当前分支。
253
299
  - 若当前分支是 `change/<change-id>`:尝试读取 `changes/<change-id>/.ws-change.json` 的 `base_branch` 作为目标分支;若缺失则要求显式指定 `--into/--base`。
254
300
  - 约束:要求工作区 clean(无未提交改动)。
301
+ - 硬门禁:finish 前必须满足完整 review gate:
302
+ - `changes/<id>/review/spec-review.md`
303
+ - `changes/<id>/review/quality-review.md`
304
+ - `.agentdocs/tmp/aiws-validate/*.json`
305
+ - `changes/<id>/evidence/verify-before-complete.md`
255
306
  - worktree 场景:若目标分支正在其它 worktree 被 checkout,会提示到对应 worktree 执行。
307
+ - 生命周期语义:
308
+ - 本地 merge 成功但 push / cleanup 未完成时,只记为“finish 已开始”,治理阶段仍停留在 `ws-finish`
309
+ - 若 `--push` 后只完成了 push、但 cleanup 仍未完成,命令应返回非 0,并记录 `finish_cleanup_pending` 以提示修复后重跑
310
+ - 旧版错误写入的 `finish_done`(例如 `push: false` 或 `cleanup: not_requested`)不得视为真正完成;CLI 应降级为未完成状态,允许重试
311
+ - 只有完整 finish 成功(兼容旧事件 `finish`,新事件 `finish_done`)后,治理阶段才可进入 `ws-handoff`
256
312
 
257
313
  接口(仅定义):
258
314
  - `aiws change finish [<change-id>] [--into <branch> | --base <branch>]`
@@ -275,13 +331,14 @@
275
331
  - `--strict`:强门禁(例如 WS:TODO、占位符、缺归因、truth drift 等都失败)。
276
332
  - `--allow-truth-drift`:仅用于紧急场景跳过 truth drift gating(仍会输出 warnings;不建议常用)。
277
333
  - `--check-evidence`:证据存在性门禁(可选):校验 `Evidence_Path` 声明的路径必须是工作区相对路径且文件存在;并要求至少包含 1 条持久证据路径(`changes/<id>/evidence/...` 或 `changes/<id>/review/...`)。
278
- - `--check-scope`:scope 门禁(可选,best-effort):要求 proposal/plan 中包含 “In Scope” “Out of Scope” 标记(用于减少 scope creep)。
334
+ - 当启用 `--check-evidence` 时,还必须检查 finish gate:`spec_review` / `quality_review` / `validate_stamp` / `verify_before_complete`。
335
+ - `--check-scope`:scope 门禁(可选):读取 `proposal.md -> Plan_File` 指向计划中的 `## Scope` / `## 影响范围(Scope)`,优先消费 `### In Scope` 下的文件/目录模式(支持 glob);超出范围的文件在 `--strict` 下失败、否则警告。
279
336
 
280
337
  接口(仅定义):
281
338
  - `aiws change validate [<change-id>] [--strict] [--allow-truth-drift] [--check-evidence] [--check-scope]`
282
339
 
283
340
  说明:
284
- - `--check-evidence/--check-scope` 默认不启用,避免对历史 change 造成行为破坏;交付阶段建议启用 `--check-evidence`。
341
+ - `--check-evidence/--check-scope` 默认不启用,避免对历史 change 造成行为破坏;交付阶段建议启用 `--check-evidence`,开发/交付前建议显式补跑一次 `--check-scope`。
285
342
 
286
343
  ### `aiws change evidence`
287
344
 
@@ -292,6 +349,12 @@
292
349
  - `changes/<change-id>/proposal.md` 的 `Evidence_Path`
293
350
  - `Plan_File` 指向的计划文件中的 `Evidence_Path`(若存在)
294
351
  - 若存在 `.agentdocs/tmp/review/codex-review.md` 且 `changes/<id>/review/codex-review.md` 不存在:复制为持久 review 证据。
352
+ - 协同收敛:
353
+ - 若 `analysis/` / `patches/` / `review/` / `evidence/` 目录缺失,会在执行时自动补齐。
354
+ - 若仅存在 `.agentdocs/tmp/review/codex-review.md` 且 `changes/<id>/review/codex-review.md` 不存在,可先作为有效 review 信号参与阶段推断;执行 evidence 时应复制为持久 review 证据。
355
+ - 若存在 `.agentdocs/tmp/review/spec-review.md`、`.agentdocs/tmp/review/quality-review.md`、`.agentdocs/tmp/review/verify-before-complete.md` 且对应持久路径不存在,执行 evidence 时应同步收敛为持久 gate 证据。
356
+ - 收集 `review/` 下全部 `.md` 文件(支持多 reviewer),并生成 `changes/<id>/evidence/collaboration-summary-<timestamp>.json`。
357
+ - 生成 `changes/<id>/evidence/delivery-summary-<timestamp>.md`,概述协同工件数量、绑定信息、质量门结果与下一步建议。
295
358
 
296
359
  接口(仅定义):
297
360
  - `aiws change evidence [<change-id>] [--no-validate] [--allow-fail]`
@@ -310,6 +373,11 @@
310
373
  - `archived_to`
311
374
  - `archived_truth_files`
312
375
  - 写入 stamp(不含 secrets):`.agentdocs/tmp/change-archive/<timestamp>-<change-id>.json`
376
+ - 生成 `changes/archive/<YYYY-MM-DD>-<id>/handoff.md`,其中应包含:
377
+ - `本次完成`
378
+ - `关键决策`
379
+ - `协同记录`(analysis / patches / review / evidence 摘要)
380
+ - `下一步建议`
313
381
 
314
382
  接口(仅定义):
315
383
  - `aiws change archive [<change-id>] [--date YYYY-MM-DD] [--force]`
@@ -318,6 +386,20 @@
318
386
 
319
387
  语义:
320
388
  - 信息性命令:列出当前 changes 进度与下一步建议(不修改任何文件)。
389
+ - `status`:
390
+ - 输出阶段、blockers、evidence 统计与 collaboration 统计。
391
+ - collaboration 统计至少包含 `analysis` / `patches` / `review` / `evidence_dir`。
392
+ - 若 review 仅来自 tmp fallback,应额外输出有效 review signal(如 `review_signal: effective=1 source=tmp_fallback`)。
393
+ - 应显式输出 review gate 状态,至少覆盖:`spec_review` / `quality_review` / `validate_stamp` / `verify_before_complete`。
394
+ - 若 change worktree metadata 已 stale,应输出 warning 并提示 `git worktree prune`。
395
+ - `next`:
396
+ - 基于 blockers / 未完成任务 / collaboration 工件给出下一步建议。
397
+ - 若存在委托 patch 草案,应提示“先人工审查,不要视为已自动应用”。
398
+ - 若存在委托分析但尚未形成 review 汇总,应提示先收敛再交付。
399
+ - 若 dual review 未完成,应显式引导到 `ws-spec-review` / `ws-quality-review`。
400
+ - 若交付证据已存在但 finish gate 未齐,应显式引导到 `aiws validate . --stamp` / `ws-verify-before-complete`。
401
+ - 若 `finish_local` / `finish_failed` / `finish_cleanup_pending` 已出现,不应直接建议 handoff;应提示先补完 finish。
402
+ - `list`:按 change 汇总显示阶段与协同/证据概况;供 dashboard/API 复用同一状态模型。
321
403
 
322
404
  接口(仅定义):
323
405
  - `aiws change list`
@@ -0,0 +1,62 @@
1
+ # collaboration-artifacts
2
+
3
+ ## 目的
4
+
5
+ 这份文档定义 `aiws` 在 change 生命周期中的协同工件约定,让“委托分析 / patch 草案 / 多 reviewer 审查 / 交接”都有稳定落盘路径,而不是只存在于会话里。
6
+
7
+ ## 标准目录
8
+
9
+ 每个 active change 建议使用以下目录:
10
+
11
+ ```text
12
+ changes/<change-id>/
13
+ analysis/
14
+ patches/
15
+ review/
16
+ evidence/
17
+ ```
18
+
19
+ 含义:
20
+ - `analysis/`:外部或子 agent 的分析报告、调研结论、备选方案。默认视为只读输入。
21
+ - `patches/`:外部或子 agent 生成的 patch / diff 草案。默认视为未应用草案。
22
+ - `review/`:多 reviewer 的审查结果。允许并行存在多个文件。
23
+ - `evidence/`:交付前收敛出的持久证据,例如 validate summary、delivery summary、collaboration summary。
24
+
25
+ ## 规则
26
+
27
+ - 外部分析不等于实现完成。主 agent 必须把采用与否的结论写入 `review/` 或最终 handoff。
28
+ - patch 草案不自动应用。主 agent 或人工必须先审查,再决定是否将其转换成真实代码改动。
29
+ - `review/` 允许多人并行,例如:
30
+ - `codex-review.md`
31
+ - `spec-review.md`
32
+ - `quality-review.md`
33
+ - `reviewer-a.md`
34
+ - `security-review.md`
35
+ - 若启用了 dual review / finish gate,优先使用固定文件名:
36
+ - `changes/<change-id>/review/spec-review.md`
37
+ - `changes/<change-id>/review/quality-review.md`
38
+ - `changes/<change-id>/evidence/verify-before-complete.md`
39
+ - `aiws change evidence <change-id>` 应把 review / validate / collaboration summary 收敛到 `evidence/`,并在目标文件缺失时收敛以下 tmp fallback:
40
+ - `.agentdocs/tmp/review/codex-review.md`
41
+ - `.agentdocs/tmp/review/spec-review.md`
42
+ - `.agentdocs/tmp/review/quality-review.md`
43
+ - `.agentdocs/tmp/review/verify-before-complete.md`
44
+ - `aiws change archive <change-id>` 生成的 `handoff.md` 应概述协同工件,帮助下一次会话快速接手。
45
+
46
+ ## 生命周期映射
47
+
48
+ | 阶段 | 协同工件 |
49
+ | --- | --- |
50
+ | `ws-dev` | 生成或更新 `analysis/`、`patches/` |
51
+ | `ws-review` | 审查委托结果,并把最终结论写入 `review/` |
52
+ | `aiws change evidence` | 收敛 review / validate / collaboration summary 到 `evidence/` |
53
+ | `ws-handoff` / archive | 在 `handoff.md` 中概述协同工件与最终结论 |
54
+
55
+ ## 判断标准
56
+
57
+ 只有在满足以下条件时,协同才算真正进入 `aiws` workflow:
58
+
59
+ - 有稳定目录承载,而不是散落在聊天记录或临时文件里。
60
+ - patch 草案和最终代码改动被清楚区分。
61
+ - 多 review 可以并行存在,并能在交付前被收敛。
62
+ - handoff 能让下一位协作者知道“看哪些文件、哪些结论已经确认、哪些仍待处理”。
@@ -0,0 +1,135 @@
1
+ # OpenCode + oMo Adapter
2
+
3
+ 目标:当项目在 OpenCode 中启用了 `oh-my-opencode`(oMo)时,`aiws` 不替换它,而是在 `ws-*` skill 里优先借用 oMo 的现有 agent。
4
+
5
+ 边界:
6
+ - `aiws` 继续负责 workflow contract、artifact convention、review gate 与 fallback discipline。
7
+ - oMo 继续负责 OpenCode 里的 agent harness、hooks、session 管理与运行时编排。
8
+ - 不新增第二套 orchestrator;也不复制一套与 oMo 冲突的 agent 体系。
9
+
10
+ ## 检测约定
11
+
12
+ 以下任一条件成立时,可认为当前项目“优先按 oMo 方式适配”:
13
+
14
+ - 项目根存在 `.opencode/oh-my-opencode.json`
15
+ - 用户明确说明已安装并启用了 oMo
16
+ - 当前 OpenCode 会话可用 agent 中出现 `planner-sisyphus`、`librarian`、`explore`、`oracle`
17
+
18
+ 若无法确认:
19
+ - 不要假设 oMo 一定可用
20
+ - 进入 fallback:普通 OpenCode agent / 单 agent + AIWS 协同工件模式
21
+
22
+ CLI 辅助探测:
23
+ - 可在项目根运行 `aiws opencode status .`
24
+ - 该命令只做探测与提示,不接管 OpenCode / oMo 的运行时编排
25
+
26
+ ## 推荐项目级配置
27
+
28
+ 若你希望按项目把 oMo agent 集合与 AIWS workflow 对齐,建议只做最小 `agents` override,不接管 hooks / MCP / LSP。
29
+
30
+ 模板建议文件:
31
+ - `packages/spec/templates/workspace/.opencode/oh-my-opencode.json.example`
32
+
33
+ 建议内容:
34
+
35
+ ```json
36
+ {
37
+ "agents": {
38
+ "planner-sisyphus": {
39
+ "enabled": true,
40
+ "replace_plan": false
41
+ },
42
+ "librarian": {
43
+ "enabled": true
44
+ },
45
+ "explore": {
46
+ "enabled": true
47
+ },
48
+ "oracle": {
49
+ "enabled": true
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ 说明:
56
+ - `replace_plan=false` 是保守默认,避免项目级配置直接替换掉 OpenCode 默认 `plan` 行为。
57
+ - 这份示例的目的只是让 `ws-plan` / `ws-review` / `ws-spec-review` / `ws-quality-review` / `ws-delegate` 有稳定的优先 agent 可用。
58
+ - 若你已经在用户级配置里启用了这些 agent,项目级配置可以不写。
59
+
60
+ ## 角色映射
61
+
62
+ `aiws` 的治理角色与 oMo agent 的推荐映射如下:
63
+
64
+ | AIWS Role | 优先 oMo Agent | 用途 | 回退 |
65
+ | --- | --- | --- | --- |
66
+ | `planner` | `planner-sisyphus` | 计划、拆解、执行路径设计 | OpenCode `plan` / 当前 agent 本地规划 |
67
+ | `explorer` | `explore` | 代码导航、依赖关系、模式发现 | 当前 agent 只读探索 |
68
+ | `explorer` | `librarian` | 文档、规范、代码知识检索 | 当前 agent 只读探索 |
69
+ | `reviewer` | `oracle` | 独立审查、解释、问答式风险验证 | 当前 agent 本地 review |
70
+ | `integrator` | 当前主 agent | 汇总结论、落盘、最终验证、进入下一阶段 | 无;始终由主 agent 收敛 |
71
+
72
+ 说明:
73
+ - `planner-sisyphus` 是 oMo 的默认 agent;官方文档说明它与 OpenCode 的 `plan` agent 是同一能力,只是因为 SDK 限制做了重命名。
74
+ - `librarian` 和 `explore` 都偏探索,但前者更偏文档/知识管理,后者更偏代码导航与结构理解。
75
+ - `oracle` 适合做 questions / explanations / independent review,不应直接承担大范围写盘实现。
76
+
77
+ ## 各 skill 的优先委托策略
78
+
79
+ ### `ws-plan`
80
+
81
+ - 若检测到 oMo:
82
+ - 优先用 `planner-sisyphus` 生成计划框架
83
+ - 需要仓库结构探索时,再委托 `@explore`
84
+ - 需要文档/规范/依赖查证时,再委托 `@librarian`
85
+ - 主 agent 负责把结果收敛为 `plan/...` 与 `changes/<id>/proposal.md`
86
+
87
+ ### `ws-review`
88
+
89
+ - 若检测到 oMo:
90
+ - 优先让 `@oracle` 做独立审查
91
+ - 必要时用 `@explore` 补 diff 影响面
92
+ - 必要时用 `@librarian` 补 requirements / docs / 依赖上下文
93
+ - 主 agent 负责把 findings 收敛到 `changes/<id>/review/...`
94
+
95
+ ### `ws-spec-review`
96
+
97
+ - 若检测到 oMo:
98
+ - 优先让 `@oracle` 审 requirements / plan / gate / evidence 完整性
99
+ - 必要时让 `@librarian` 读取规范与文档真值
100
+ - 主 agent 负责输出 blocker / warning / next
101
+
102
+ ### `ws-quality-review`
103
+
104
+ - 若检测到 oMo:
105
+ - 优先让 `@oracle` 审行为正确性、回归与测试缺口
106
+ - 必要时让 `@explore` 做代码路径补充探索
107
+ - 主 agent 负责输出 findings / gaps / next
108
+
109
+ ### `ws-delegate`
110
+
111
+ - `ws-delegate` 自己不编排 runtime
112
+ - 它只负责声明:
113
+ - 该委托应该优先调用哪个 oMo agent
114
+ - `readScope` / `writeScope`
115
+ - `artifactTargets`
116
+ - fallback
117
+
118
+ ## 执行规则
119
+
120
+ - skill 里写的是“优先委托策略”,不是保证当前会话一定能直接切换到某个 agent。
121
+ - 若当前 OpenCode 会话无法直接切换到某个 primary agent:
122
+ - 不要卡住
123
+ - 回退为当前 agent + `@subagent` 可用的能力
124
+ - 再不行就回退为单 agent 执行
125
+ - 任何 oMo agent 的输出都必须回收到 AIWS 约定路径:
126
+ - `changes/<id>/analysis/`
127
+ - `changes/<id>/patches/`
128
+ - `changes/<id>/review/`
129
+ - `changes/<id>/evidence/`
130
+
131
+ ## 非目标
132
+
133
+ - 不由 `aiws` 接管 `.opencode/oh-my-opencode.json` 的完整配置。
134
+ - 不由 `aiws` 覆盖 oMo 的 hooks、session recovery、compaction 或 agent harness。
135
+ - 不要求 skill 一定“自动调起” oMo 的全部 agent;只要求写清优先顺序与回退策略。