@voybio/ace-swarm 0.1.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 (334) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/LICENSE +186 -0
  3. package/README.md +229 -0
  4. package/assets/.agents/ACE/ACE-Init/AGENTS.md +210 -0
  5. package/assets/.agents/ACE/ACE-Init/instructions.md +118 -0
  6. package/assets/.agents/ACE/ACE_coders/AGENTS.md +154 -0
  7. package/assets/.agents/ACE/ACE_coders/INSTRUCTIONS.md +216 -0
  8. package/assets/.agents/ACE/AGENT_REGISTRY.md +70 -0
  9. package/assets/.agents/ACE/AGENT_REGISTRY_7.md +9 -0
  10. package/assets/.agents/ACE/DIRECTIVE_KERNEL.md +234 -0
  11. package/assets/.agents/ACE/UI/AGENTS.md +115 -0
  12. package/assets/.agents/ACE/UI/instructions.md +178 -0
  13. package/assets/.agents/ACE/VOS/ACE_VOS_MISSING_INFO_MATRIX.md +42 -0
  14. package/assets/.agents/ACE/VOS/AGENTS.md +72 -0
  15. package/assets/.agents/ACE/VOS/instructions.md +211 -0
  16. package/assets/.agents/ACE/agent-astgrep/AGENTS.md +123 -0
  17. package/assets/.agents/ACE/agent-astgrep/instructions.md +91 -0
  18. package/assets/.agents/ACE/agent-builder/AGENTS.md +172 -0
  19. package/assets/.agents/ACE/agent-builder/instructions.md +137 -0
  20. package/assets/.agents/ACE/agent-docs/AGENTS.md +159 -0
  21. package/assets/.agents/ACE/agent-docs/instructions.md +133 -0
  22. package/assets/.agents/ACE/agent-eval/AGENTS.md +46 -0
  23. package/assets/.agents/ACE/agent-eval/instructions.md +56 -0
  24. package/assets/.agents/ACE/agent-memory/AGENTS.md +49 -0
  25. package/assets/.agents/ACE/agent-memory/instructions.md +50 -0
  26. package/assets/.agents/ACE/agent-observability/AGENTS.md +46 -0
  27. package/assets/.agents/ACE/agent-observability/instructions.md +50 -0
  28. package/assets/.agents/ACE/agent-ops/AGENTS.md +201 -0
  29. package/assets/.agents/ACE/agent-ops/instructions.md +136 -0
  30. package/assets/.agents/ACE/agent-qa/AGENTS.md +189 -0
  31. package/assets/.agents/ACE/agent-qa/instructions.md +121 -0
  32. package/assets/.agents/ACE/agent-release/AGENTS.md +48 -0
  33. package/assets/.agents/ACE/agent-release/instructions.md +49 -0
  34. package/assets/.agents/ACE/agent-research/AGENTS.md +160 -0
  35. package/assets/.agents/ACE/agent-research/instructions.md +118 -0
  36. package/assets/.agents/ACE/agent-security/AGENTS.md +48 -0
  37. package/assets/.agents/ACE/agent-security/instructions.md +50 -0
  38. package/assets/.agents/ACE/agent-skeptic/AGENTS.md +178 -0
  39. package/assets/.agents/ACE/agent-skeptic/instructions.md +196 -0
  40. package/assets/.agents/ACE/agent-spec/AGENTS.md +169 -0
  41. package/assets/.agents/ACE/agent-spec/instructions.md +116 -0
  42. package/assets/.agents/ACE/orchestrator/AGENTS.md +365 -0
  43. package/assets/.agents/ACE/orchestrator/instructions.md +231 -0
  44. package/assets/.agents/skills/ace-orchestrator/SKILL.md +63 -0
  45. package/assets/.agents/skills/ace-orchestrator/references/engineering-bootstrap-playbook.md +360 -0
  46. package/assets/.agents/skills/astgrep-index/SKILL.md +58 -0
  47. package/assets/.agents/skills/codemunch/SKILL.md +65 -0
  48. package/assets/.agents/skills/codemunch/references/ast-driven-protocol.md +543 -0
  49. package/assets/.agents/skills/codesnipe/SKILL.md +64 -0
  50. package/assets/.agents/skills/codesnipe/references/dual-codebase-playbook.md +671 -0
  51. package/assets/.agents/skills/eval-harness/SKILL.md +203 -0
  52. package/assets/.agents/skills/handoff-lint/SKILL.md +164 -0
  53. package/assets/.agents/skills/incident-commander/SKILL.md +174 -0
  54. package/assets/.agents/skills/landing-review-watcher/SKILL.md +68 -0
  55. package/assets/.agents/skills/memory-curator/SKILL.md +179 -0
  56. package/assets/.agents/skills/problem-triage/SKILL.md +57 -0
  57. package/assets/.agents/skills/problem-triage/agents/openai.yaml +3 -0
  58. package/assets/.agents/skills/release-sentry/SKILL.md +189 -0
  59. package/assets/.agents/skills/risk-quant/SKILL.md +190 -0
  60. package/assets/.agents/skills/schema-forge/SKILL.md +174 -0
  61. package/assets/.agents/skills/skill-auditor/SKILL.md +52 -0
  62. package/assets/.agents/skills/state-auditor/SKILL.md +182 -0
  63. package/assets/.github/hooks/ace-copilot.json +68 -0
  64. package/assets/agent-state/ACE_WORKFLOW.md +131 -0
  65. package/assets/agent-state/ARTIFACT_MANIFEST.json +5 -0
  66. package/assets/agent-state/AST_GREP_COMMANDS.md +121 -0
  67. package/assets/agent-state/AST_GREP_INDEX.json +13 -0
  68. package/assets/agent-state/AST_GREP_INDEX.md +15 -0
  69. package/assets/agent-state/DECISIONS.md +7 -0
  70. package/assets/agent-state/EVIDENCE_LOG.md +7 -0
  71. package/assets/agent-state/HANDOFF.json +24 -0
  72. package/assets/agent-state/INTERFACE_REGISTRY.md +75 -0
  73. package/assets/agent-state/MODULES/gates/gate-autonomy.json +7 -0
  74. package/assets/agent-state/MODULES/gates/gate-completeness.json +7 -0
  75. package/assets/agent-state/MODULES/gates/gate-correctness.json +7 -0
  76. package/assets/agent-state/MODULES/gates/gate-evaluation.json +7 -0
  77. package/assets/agent-state/MODULES/gates/gate-operability.json +7 -0
  78. package/assets/agent-state/MODULES/gates/gate-security.json +7 -0
  79. package/assets/agent-state/MODULES/gates/gate-typescript-public-surface.json +7 -0
  80. package/assets/agent-state/MODULES/registry.json +41 -0
  81. package/assets/agent-state/MODULES/roles/capability-astgrep.json +49 -0
  82. package/assets/agent-state/MODULES/roles/capability-build.json +39 -0
  83. package/assets/agent-state/MODULES/roles/capability-docs.json +38 -0
  84. package/assets/agent-state/MODULES/roles/capability-eval.json +20 -0
  85. package/assets/agent-state/MODULES/roles/capability-memory.json +20 -0
  86. package/assets/agent-state/MODULES/roles/capability-observability.json +20 -0
  87. package/assets/agent-state/MODULES/roles/capability-ops.json +45 -0
  88. package/assets/agent-state/MODULES/roles/capability-qa.json +40 -0
  89. package/assets/agent-state/MODULES/roles/capability-release.json +21 -0
  90. package/assets/agent-state/MODULES/roles/capability-research.json +44 -0
  91. package/assets/agent-state/MODULES/roles/capability-security.json +21 -0
  92. package/assets/agent-state/MODULES/roles/capability-skeptic.json +48 -0
  93. package/assets/agent-state/MODULES/roles/capability-spec.json +42 -0
  94. package/assets/agent-state/MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json +289 -0
  95. package/assets/agent-state/MODULES/schemas/ARTIFACT_MANIFEST.schema.json +185 -0
  96. package/assets/agent-state/MODULES/schemas/HANDOFF.agent-state.schema.json +124 -0
  97. package/assets/agent-state/MODULES/schemas/HANDOFF.schema.json +55 -0
  98. package/assets/agent-state/MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json +290 -0
  99. package/assets/agent-state/MODULES/schemas/RUNTIME_TOOL_SPEC_REGISTRY.schema.json +144 -0
  100. package/assets/agent-state/MODULES/schemas/STATUS_EVENT.schema.json +84 -0
  101. package/assets/agent-state/MODULES/schemas/SWARM_HANDOFF.schema.json +138 -0
  102. package/assets/agent-state/MODULES/schemas/TRACKER_SNAPSHOT.schema.json +134 -0
  103. package/assets/agent-state/MODULES/schemas/VERICIFY_BRIDGE_SNAPSHOT.schema.json +157 -0
  104. package/assets/agent-state/MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json +93 -0
  105. package/assets/agent-state/MODULES/schemas/WORKSPACE_SESSION_REGISTRY.schema.json +133 -0
  106. package/assets/agent-state/PROVENANCE_LOG.md +28 -0
  107. package/assets/agent-state/QUALITY_GATES.md +15 -0
  108. package/assets/agent-state/RISKS.md +8 -0
  109. package/assets/agent-state/SCOPE.md +20 -0
  110. package/assets/agent-state/SKILL_CATALOG.md +48 -0
  111. package/assets/agent-state/STATUS.md +8 -0
  112. package/assets/agent-state/STATUS_EVENTS.ndjson +1 -0
  113. package/assets/agent-state/TASK.md +18 -0
  114. package/assets/agent-state/TEAL_CONFIG.md +117 -0
  115. package/assets/agent-state/handoff-registry.json +5 -0
  116. package/assets/agent-state/index-fingerprints.json +7 -0
  117. package/assets/agent-state/index.json +32 -0
  118. package/assets/agent-state/run-ledger.json +5 -0
  119. package/assets/agent-state/runtime-executor-sessions.json +5 -0
  120. package/assets/agent-state/runtime-tool-specs.json +5 -0
  121. package/assets/agent-state/runtime-workspaces.json +5 -0
  122. package/assets/agent-state/todo-state.json +7 -0
  123. package/assets/agent-state/tracker-snapshot.json +7 -0
  124. package/assets/agent-state/vericify/ace-bridge.json +60 -0
  125. package/assets/agent-state/vericify/process-posts.json +5 -0
  126. package/assets/instructions/ACE.instructions.md +187 -0
  127. package/assets/instructions/ACE_Coder.instructions.md +146 -0
  128. package/assets/instructions/ACE_UI.instructions.md +178 -0
  129. package/assets/instructions/ACE_VOS.instructions.md +211 -0
  130. package/assets/scripts/ace-hook-dispatch.mjs +538 -0
  131. package/assets/scripts/bootstrap-workspace.sh +27 -0
  132. package/assets/scripts/copilot-hook-dispatch.mjs +3 -0
  133. package/assets/scripts/eval-harness.sh +68 -0
  134. package/assets/scripts/render-mcp-configs.sh +396 -0
  135. package/assets/tasks/README.md +48 -0
  136. package/assets/tasks/SWARM_HANDOFF.example.json +53 -0
  137. package/assets/tasks/SWARM_HANDOFF.example_ui_to_coders.json +55 -0
  138. package/assets/tasks/SWARM_HANDOFF.example_vos_to_ui.json +55 -0
  139. package/assets/tasks/SWARM_HANDOFF.template.json +52 -0
  140. package/assets/tasks/cli_work_split.md +22 -0
  141. package/assets/tasks/lessons.md +17 -0
  142. package/assets/tasks/role_tasks.md +206 -0
  143. package/assets/tasks/todo.md +23 -0
  144. package/dist/ace-autonomy.d.ts +137 -0
  145. package/dist/ace-autonomy.js +472 -0
  146. package/dist/ace-context.d.ts +29 -0
  147. package/dist/ace-context.js +240 -0
  148. package/dist/ace-internal-tools.d.ts +8 -0
  149. package/dist/ace-internal-tools.js +76 -0
  150. package/dist/ace-server-instructions.d.ts +12 -0
  151. package/dist/ace-server-instructions.js +324 -0
  152. package/dist/agent-runtime/role-adapters.d.ts +29 -0
  153. package/dist/agent-runtime/role-adapters.js +573 -0
  154. package/dist/astgrep-index.d.ts +24 -0
  155. package/dist/astgrep-index.js +476 -0
  156. package/dist/cli.d.ts +3 -0
  157. package/dist/cli.js +591 -0
  158. package/dist/git-ops.d.ts +53 -0
  159. package/dist/git-ops.js +238 -0
  160. package/dist/handoff-registry.d.ts +71 -0
  161. package/dist/handoff-registry.js +422 -0
  162. package/dist/helpers.d.ts +126 -0
  163. package/dist/helpers.js +1687 -0
  164. package/dist/index-store.d.ts +51 -0
  165. package/dist/index-store.js +328 -0
  166. package/dist/index.d.ts +3 -0
  167. package/dist/index.js +7 -0
  168. package/dist/internal-tool-runtime.d.ts +21 -0
  169. package/dist/internal-tool-runtime.js +136 -0
  170. package/dist/job-scheduler.d.ts +175 -0
  171. package/dist/job-scheduler.js +1217 -0
  172. package/dist/kanban.d.ts +27 -0
  173. package/dist/kanban.js +339 -0
  174. package/dist/local-model-runtime.d.ts +40 -0
  175. package/dist/local-model-runtime.js +174 -0
  176. package/dist/model-bridge.d.ts +54 -0
  177. package/dist/model-bridge.js +587 -0
  178. package/dist/orchestrator-supervisor.d.ts +100 -0
  179. package/dist/orchestrator-supervisor.js +399 -0
  180. package/dist/problem-triage.d.ts +23 -0
  181. package/dist/problem-triage.js +448 -0
  182. package/dist/prompts.d.ts +7 -0
  183. package/dist/prompts.js +628 -0
  184. package/dist/public-surface.d.ts +30 -0
  185. package/dist/public-surface.js +316 -0
  186. package/dist/resources.d.ts +7 -0
  187. package/dist/resources.js +545 -0
  188. package/dist/run-ledger.d.ts +36 -0
  189. package/dist/run-ledger.js +257 -0
  190. package/dist/runtime-command.d.ts +18 -0
  191. package/dist/runtime-command.js +76 -0
  192. package/dist/runtime-executor.d.ts +104 -0
  193. package/dist/runtime-executor.js +985 -0
  194. package/dist/runtime-profile.d.ts +116 -0
  195. package/dist/runtime-profile.js +532 -0
  196. package/dist/runtime-tool-specs.d.ts +68 -0
  197. package/dist/runtime-tool-specs.js +527 -0
  198. package/dist/safe-edit.d.ts +52 -0
  199. package/dist/safe-edit.js +255 -0
  200. package/dist/schemas.d.ts +44 -0
  201. package/dist/schemas.js +830 -0
  202. package/dist/semantic-cache.d.ts +147 -0
  203. package/dist/semantic-cache.js +552 -0
  204. package/dist/semantic-hash.d.ts +83 -0
  205. package/dist/semantic-hash.js +346 -0
  206. package/dist/server.d.ts +10 -0
  207. package/dist/server.js +46 -0
  208. package/dist/shared.d.ts +136 -0
  209. package/dist/shared.js +269 -0
  210. package/dist/skill-auditor.d.ts +26 -0
  211. package/dist/skill-auditor.js +184 -0
  212. package/dist/skill-catalog.d.ts +60 -0
  213. package/dist/skill-catalog.js +305 -0
  214. package/dist/status-events.d.ts +40 -0
  215. package/dist/status-events.js +269 -0
  216. package/dist/store/ace-packed-store.d.ts +69 -0
  217. package/dist/store/ace-packed-store.js +434 -0
  218. package/dist/store/bootstrap-store.d.ts +46 -0
  219. package/dist/store/bootstrap-store.js +242 -0
  220. package/dist/store/catalog-builder.d.ts +21 -0
  221. package/dist/store/catalog-builder.js +68 -0
  222. package/dist/store/importer.d.ts +19 -0
  223. package/dist/store/importer.js +157 -0
  224. package/dist/store/knowledge-bake.d.ts +59 -0
  225. package/dist/store/knowledge-bake.js +339 -0
  226. package/dist/store/materializers/hook-context-materializer.d.ts +25 -0
  227. package/dist/store/materializers/hook-context-materializer.js +100 -0
  228. package/dist/store/materializers/host-file-materializer.d.ts +37 -0
  229. package/dist/store/materializers/host-file-materializer.js +271 -0
  230. package/dist/store/materializers/todo-syncer.d.ts +30 -0
  231. package/dist/store/materializers/todo-syncer.js +140 -0
  232. package/dist/store/materializers/vericify-projector.d.ts +38 -0
  233. package/dist/store/materializers/vericify-projector.js +239 -0
  234. package/dist/store/repositories/discovery-repository.d.ts +24 -0
  235. package/dist/store/repositories/discovery-repository.js +58 -0
  236. package/dist/store/repositories/handoff-repository.d.ts +31 -0
  237. package/dist/store/repositories/handoff-repository.js +67 -0
  238. package/dist/store/repositories/ledger-repository.d.ts +26 -0
  239. package/dist/store/repositories/ledger-repository.js +49 -0
  240. package/dist/store/repositories/runtime-kv-repository.d.ts +16 -0
  241. package/dist/store/repositories/runtime-kv-repository.js +36 -0
  242. package/dist/store/repositories/scheduler-repository.d.ts +50 -0
  243. package/dist/store/repositories/scheduler-repository.js +123 -0
  244. package/dist/store/repositories/session-repository.d.ts +33 -0
  245. package/dist/store/repositories/session-repository.js +82 -0
  246. package/dist/store/repositories/todo-repository.d.ts +31 -0
  247. package/dist/store/repositories/todo-repository.js +77 -0
  248. package/dist/store/repositories/tracker-repository.d.ts +25 -0
  249. package/dist/store/repositories/tracker-repository.js +43 -0
  250. package/dist/store/repositories/vericify-repository.d.ts +32 -0
  251. package/dist/store/repositories/vericify-repository.js +58 -0
  252. package/dist/store/skills-install.d.ts +28 -0
  253. package/dist/store/skills-install.js +86 -0
  254. package/dist/store/state-reader.d.ts +49 -0
  255. package/dist/store/state-reader.js +111 -0
  256. package/dist/store/store-artifacts.d.ts +12 -0
  257. package/dist/store/store-artifacts.js +138 -0
  258. package/dist/store/store-snapshot.d.ts +19 -0
  259. package/dist/store/store-snapshot.js +140 -0
  260. package/dist/store/topology-bake.d.ts +15 -0
  261. package/dist/store/topology-bake.js +215 -0
  262. package/dist/store/types.d.ts +155 -0
  263. package/dist/store/types.js +35 -0
  264. package/dist/store/workspace-snapshot.d.ts +26 -0
  265. package/dist/store/workspace-snapshot.js +107 -0
  266. package/dist/store/write-queue.d.ts +7 -0
  267. package/dist/store/write-queue.js +26 -0
  268. package/dist/todo-state.d.ts +41 -0
  269. package/dist/todo-state.js +399 -0
  270. package/dist/tools-agent.d.ts +7 -0
  271. package/dist/tools-agent.js +1542 -0
  272. package/dist/tools-discovery.d.ts +6 -0
  273. package/dist/tools-discovery.js +178 -0
  274. package/dist/tools-drift.d.ts +13 -0
  275. package/dist/tools-drift.js +357 -0
  276. package/dist/tools-files.d.ts +6 -0
  277. package/dist/tools-files.js +679 -0
  278. package/dist/tools-framework.d.ts +7 -0
  279. package/dist/tools-framework.js +1414 -0
  280. package/dist/tools-git.d.ts +6 -0
  281. package/dist/tools-git.js +183 -0
  282. package/dist/tools-handoff.d.ts +32 -0
  283. package/dist/tools-handoff.js +489 -0
  284. package/dist/tools-lifecycle.d.ts +6 -0
  285. package/dist/tools-lifecycle.js +205 -0
  286. package/dist/tools-memory.d.ts +6 -0
  287. package/dist/tools-memory.js +260 -0
  288. package/dist/tools-scheduler.d.ts +6 -0
  289. package/dist/tools-scheduler.js +228 -0
  290. package/dist/tools-skills.d.ts +3 -0
  291. package/dist/tools-skills.js +104 -0
  292. package/dist/tools-todo.d.ts +6 -0
  293. package/dist/tools-todo.js +154 -0
  294. package/dist/tools.d.ts +9 -0
  295. package/dist/tools.js +33 -0
  296. package/dist/tracker-adapters.d.ts +74 -0
  297. package/dist/tracker-adapters.js +776 -0
  298. package/dist/tracker-sync.d.ts +10 -0
  299. package/dist/tracker-sync.js +84 -0
  300. package/dist/tui/agent-runner.d.ts +137 -0
  301. package/dist/tui/agent-runner.js +466 -0
  302. package/dist/tui/agent-worker.d.ts +10 -0
  303. package/dist/tui/agent-worker.js +347 -0
  304. package/dist/tui/chat.d.ts +84 -0
  305. package/dist/tui/chat.js +368 -0
  306. package/dist/tui/commands.d.ts +57 -0
  307. package/dist/tui/commands.js +432 -0
  308. package/dist/tui/dashboard.d.ts +24 -0
  309. package/dist/tui/dashboard.js +110 -0
  310. package/dist/tui/index.d.ts +114 -0
  311. package/dist/tui/index.js +1059 -0
  312. package/dist/tui/input.d.ts +49 -0
  313. package/dist/tui/input.js +336 -0
  314. package/dist/tui/layout.d.ts +116 -0
  315. package/dist/tui/layout.js +367 -0
  316. package/dist/tui/ollama.d.ts +116 -0
  317. package/dist/tui/ollama.js +192 -0
  318. package/dist/tui/openai-compatible.d.ts +63 -0
  319. package/dist/tui/openai-compatible.js +370 -0
  320. package/dist/tui/provider-discovery.d.ts +59 -0
  321. package/dist/tui/provider-discovery.js +530 -0
  322. package/dist/tui/renderer.d.ts +166 -0
  323. package/dist/tui/renderer.js +304 -0
  324. package/dist/tui/tabs.d.ts +70 -0
  325. package/dist/tui/tabs.js +208 -0
  326. package/dist/tui/telemetry.d.ts +56 -0
  327. package/dist/tui/telemetry.js +106 -0
  328. package/dist/vericify-bridge.d.ts +146 -0
  329. package/dist/vericify-bridge.js +571 -0
  330. package/dist/vericify-context.d.ts +10 -0
  331. package/dist/vericify-context.js +72 -0
  332. package/dist/workspace-manager.d.ts +107 -0
  333. package/dist/workspace-manager.js +636 -0
  334. package/package.json +83 -0
@@ -0,0 +1,396 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
5
+ WORKSPACE_ROOT="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
6
+
7
+ ACE_ROOT=".agents/ACE"
8
+ MCP_CONFIG_DIR="${ACE_ROOT}/.mcp-config"
9
+ GITHUB_DIR="${ACE_ROOT}/.github"
10
+ CLAUDE_DIR="${ACE_ROOT}/.claude"
11
+ CURSOR_DIR="${ACE_ROOT}/.cursor"
12
+ VSCODE_DIR="${ACE_ROOT}/.vscode"
13
+ HOOK_COMMAND="node ./.agents/ACE/scripts/ace/ace-hook-dispatch.mjs"
14
+ HOOK_COMMAND_WINDOWS="node .\\\\.agents\\\\ACE\\\\scripts\\\\ace\\\\ace-hook-dispatch.mjs"
15
+
16
+ mkdir -p "${MCP_CONFIG_DIR}"
17
+ mkdir -p "${GITHUB_DIR}/hooks"
18
+ mkdir -p "${CLAUDE_DIR}"
19
+ mkdir -p "${CURSOR_DIR}"
20
+ mkdir -p "${VSCODE_DIR}"
21
+
22
+ cat > "${MCP_CONFIG_DIR}/vscode.mcp.json" <<JSON
23
+ {
24
+ "servers": {
25
+ "ace-swarm": {
26
+ "type": "stdio",
27
+ "command": "/bin/zsh",
28
+ "args": ["-lc", "cd \"${WORKSPACE_ROOT}\" && ACE_WORKSPACE_ROOT=\"${WORKSPACE_ROOT}\" npx -y ace-swarm mcp"]
29
+ }
30
+ }
31
+ }
32
+ JSON
33
+
34
+ cat > "${MCP_CONFIG_DIR}/cursor.mcp.json" <<JSON
35
+ {
36
+ "mcpServers": {
37
+ "ace-swarm": {
38
+ "command": "/bin/zsh",
39
+ "args": ["-lc", "cd \"${WORKSPACE_ROOT}\" && ACE_WORKSPACE_ROOT=\"${WORKSPACE_ROOT}\" npx -y ace-swarm mcp"]
40
+ }
41
+ }
42
+ }
43
+ JSON
44
+
45
+ cat > "${MCP_CONFIG_DIR}/claude_desktop_config.json" <<JSON
46
+ {
47
+ "mcpServers": {
48
+ "ace-swarm": {
49
+ "command": "/bin/zsh",
50
+ "args": ["-lc", "cd \"${WORKSPACE_ROOT}\" && ACE_WORKSPACE_ROOT=\"${WORKSPACE_ROOT}\" npx -y ace-swarm mcp"]
51
+ }
52
+ }
53
+ }
54
+ JSON
55
+
56
+ cat > "${MCP_CONFIG_DIR}/antigravity.mcp.json" <<JSON
57
+ {
58
+ "mcpServers": {
59
+ "ace-swarm": {
60
+ "command": "/bin/zsh",
61
+ "args": ["-lc", "cd \"${WORKSPACE_ROOT}\" && ACE_WORKSPACE_ROOT=\"${WORKSPACE_ROOT}\" npx -y ace-swarm mcp"]
62
+ }
63
+ }
64
+ }
65
+ JSON
66
+
67
+ cat > "${MCP_CONFIG_DIR}/codex.config.toml" <<TOML
68
+ # ACE instructions are scaffolded into .agents/ACE/AGENTS.md during bootstrap.
69
+ [mcp_servers.ace-swarm]
70
+ command = "/bin/zsh"
71
+ args = ["-lc", "cd \"${WORKSPACE_ROOT}\" && ACE_WORKSPACE_ROOT=\"${WORKSPACE_ROOT}\" npx -y ace-swarm mcp"]
72
+ TOML
73
+
74
+ cat > "${ACE_ROOT}/CLAUDE.md" <<MD
75
+ # ACE Instructions For Claude Code
76
+
77
+ This workspace is ACE-governed. Ground truth lives in `.agents/ACE/agent-state/TASK.md`,
78
+ `.agents/ACE/agent-state/STATUS.md`, `.agents/ACE/agent-state/SCOPE.md`, and `.agents/ACE/agent-state/EVIDENCE_LOG.md`.
79
+
80
+ Before significant work, call `recall_context`. Use `route_task` and
81
+ `get_agent_instructions` for role guidance. After meaningful edits or state
82
+ changes, call `execute_gates` and persist evidence/handoffs in ACE artifacts.
83
+ MD
84
+
85
+ cat > "${GITHUB_DIR}/copilot-instructions.md" <<MD
86
+ # ACE Instructions For GitHub Copilot
87
+
88
+ This workspace is ACE-governed. Read file-backed ACE state before acting:
89
+ `.agents/ACE/agent-state/TASK.md`, `.agents/ACE/agent-state/STATUS.md`, `.agents/ACE/agent-state/SCOPE.md`, and
90
+ `.agents/ACE/agent-state/EVIDENCE_LOG.md`.
91
+
92
+ Before significant work, call `recall_context`. Route with `route_task`.
93
+ After material changes, call `execute_gates` and update durable ACE artifacts.
94
+ MD
95
+
96
+ cat > "${ACE_ROOT}/.cursorrules" <<MD
97
+ # ACE Instructions For Cursor
98
+
99
+ This workspace is ACE-governed. Do not rely on chat history for state. Use
100
+ `recall_context` to load task, scope, and status from `.agents/ACE/agent-state/*`.
101
+
102
+ Use `route_task` and `get_agent_instructions` for role guidance. After edits,
103
+ run `execute_gates` and persist evidence/handoffs in ACE artifacts.
104
+ MD
105
+
106
+ cat > "${ACE_ROOT}/AGENTS.md" <<MD
107
+ # ACE Instructions For Codex
108
+
109
+ This workspace is ACE-governed. File-backed ACE state is authoritative:
110
+ `.agents/ACE/agent-state/TASK.md`, `.agents/ACE/agent-state/STATUS.md`, `.agents/ACE/agent-state/SCOPE.md`, and
111
+ `.agents/ACE/agent-state/EVIDENCE_LOG.md`.
112
+
113
+ Before significant work, call `recall_context`. Use `route_task` and
114
+ `get_agent_instructions` for role guidance. After meaningful edits or state
115
+ changes, call `execute_gates` and persist evidence or handoffs.
116
+ MD
117
+
118
+ cat > "${GITHUB_DIR}/hooks/ace-copilot.json" <<JSON
119
+ {
120
+ "hooks": {
121
+ "SessionStart": [
122
+ {
123
+ "type": "command",
124
+ "command": "${HOOK_COMMAND}",
125
+ "windows": "${HOOK_COMMAND_WINDOWS}",
126
+ "timeout": 10
127
+ }
128
+ ],
129
+ "UserPromptSubmit": [
130
+ {
131
+ "type": "command",
132
+ "command": "${HOOK_COMMAND}",
133
+ "windows": "${HOOK_COMMAND_WINDOWS}",
134
+ "timeout": 10
135
+ }
136
+ ],
137
+ "PreToolUse": [
138
+ {
139
+ "type": "command",
140
+ "command": "${HOOK_COMMAND}",
141
+ "windows": "${HOOK_COMMAND_WINDOWS}",
142
+ "timeout": 10
143
+ }
144
+ ],
145
+ "PostToolUse": [
146
+ {
147
+ "type": "command",
148
+ "command": "${HOOK_COMMAND}",
149
+ "windows": "${HOOK_COMMAND_WINDOWS}",
150
+ "timeout": 10
151
+ }
152
+ ],
153
+ "PreCompact": [
154
+ {
155
+ "type": "command",
156
+ "command": "${HOOK_COMMAND}",
157
+ "windows": "${HOOK_COMMAND_WINDOWS}",
158
+ "timeout": 10
159
+ }
160
+ ],
161
+ "SubagentStart": [
162
+ {
163
+ "type": "command",
164
+ "command": "${HOOK_COMMAND}",
165
+ "windows": "${HOOK_COMMAND_WINDOWS}",
166
+ "timeout": 10
167
+ }
168
+ ],
169
+ "SubagentStop": [
170
+ {
171
+ "type": "command",
172
+ "command": "${HOOK_COMMAND}",
173
+ "windows": "${HOOK_COMMAND_WINDOWS}",
174
+ "timeout": 10
175
+ }
176
+ ],
177
+ "Stop": [
178
+ {
179
+ "type": "command",
180
+ "command": "${HOOK_COMMAND}",
181
+ "windows": "${HOOK_COMMAND_WINDOWS}",
182
+ "timeout": 10
183
+ }
184
+ ]
185
+ }
186
+ }
187
+ JSON
188
+
189
+ cat > "${CLAUDE_DIR}/settings.json" <<JSON
190
+ {
191
+ "hooks": {
192
+ "SessionStart": [
193
+ {
194
+ "matcher": "",
195
+ "hooks": [
196
+ {
197
+ "type": "command",
198
+ "command": "${HOOK_COMMAND}"
199
+ }
200
+ ]
201
+ }
202
+ ],
203
+ "UserPromptSubmit": [
204
+ {
205
+ "matcher": "",
206
+ "hooks": [
207
+ {
208
+ "type": "command",
209
+ "command": "${HOOK_COMMAND}"
210
+ }
211
+ ]
212
+ }
213
+ ],
214
+ "PreToolUse": [
215
+ {
216
+ "matcher": "",
217
+ "hooks": [
218
+ {
219
+ "type": "command",
220
+ "command": "${HOOK_COMMAND}"
221
+ }
222
+ ]
223
+ }
224
+ ],
225
+ "PostToolUse": [
226
+ {
227
+ "matcher": "",
228
+ "hooks": [
229
+ {
230
+ "type": "command",
231
+ "command": "${HOOK_COMMAND}"
232
+ }
233
+ ]
234
+ }
235
+ ],
236
+ "PreCompact": [
237
+ {
238
+ "matcher": "",
239
+ "hooks": [
240
+ {
241
+ "type": "command",
242
+ "command": "${HOOK_COMMAND}"
243
+ }
244
+ ]
245
+ }
246
+ ],
247
+ "SubagentStart": [
248
+ {
249
+ "matcher": "",
250
+ "hooks": [
251
+ {
252
+ "type": "command",
253
+ "command": "${HOOK_COMMAND}"
254
+ }
255
+ ]
256
+ }
257
+ ],
258
+ "SubagentStop": [
259
+ {
260
+ "matcher": "",
261
+ "hooks": [
262
+ {
263
+ "type": "command",
264
+ "command": "${HOOK_COMMAND}"
265
+ }
266
+ ]
267
+ }
268
+ ],
269
+ "Stop": [
270
+ {
271
+ "matcher": "",
272
+ "hooks": [
273
+ {
274
+ "type": "command",
275
+ "command": "${HOOK_COMMAND}"
276
+ }
277
+ ]
278
+ }
279
+ ]
280
+ }
281
+ }
282
+ JSON
283
+
284
+ cat > "${VSCODE_DIR}/ace-hooks.json" <<JSON
285
+ {
286
+ "hooks": {
287
+ "SessionStart": [
288
+ {
289
+ "type": "command",
290
+ "command": "${HOOK_COMMAND}",
291
+ "windows": "${HOOK_COMMAND_WINDOWS}",
292
+ "timeout": 10
293
+ }
294
+ ],
295
+ "UserPromptSubmit": [
296
+ {
297
+ "type": "command",
298
+ "command": "${HOOK_COMMAND}",
299
+ "windows": "${HOOK_COMMAND_WINDOWS}",
300
+ "timeout": 10
301
+ }
302
+ ],
303
+ "PreToolUse": [
304
+ {
305
+ "type": "command",
306
+ "command": "${HOOK_COMMAND}",
307
+ "windows": "${HOOK_COMMAND_WINDOWS}",
308
+ "timeout": 10
309
+ }
310
+ ],
311
+ "PostToolUse": [
312
+ {
313
+ "type": "command",
314
+ "command": "${HOOK_COMMAND}",
315
+ "windows": "${HOOK_COMMAND_WINDOWS}",
316
+ "timeout": 10
317
+ }
318
+ ],
319
+ "PreCompact": [
320
+ {
321
+ "type": "command",
322
+ "command": "${HOOK_COMMAND}",
323
+ "windows": "${HOOK_COMMAND_WINDOWS}",
324
+ "timeout": 10
325
+ }
326
+ ],
327
+ "SubagentStart": [
328
+ {
329
+ "type": "command",
330
+ "command": "${HOOK_COMMAND}",
331
+ "windows": "${HOOK_COMMAND_WINDOWS}",
332
+ "timeout": 10
333
+ }
334
+ ],
335
+ "SubagentStop": [
336
+ {
337
+ "type": "command",
338
+ "command": "${HOOK_COMMAND}",
339
+ "windows": "${HOOK_COMMAND_WINDOWS}",
340
+ "timeout": 10
341
+ }
342
+ ],
343
+ "Stop": [
344
+ {
345
+ "type": "command",
346
+ "command": "${HOOK_COMMAND}",
347
+ "windows": "${HOOK_COMMAND_WINDOWS}",
348
+ "timeout": 10
349
+ }
350
+ ]
351
+ }
352
+ }
353
+ JSON
354
+
355
+ cp "${VSCODE_DIR}/ace-hooks.json" "${CURSOR_DIR}/hooks.json"
356
+ cp "${VSCODE_DIR}/ace-hooks.json" "${MCP_CONFIG_DIR}/gemini.hooks.json"
357
+ cp "${VSCODE_DIR}/ace-hooks.json" "${MCP_CONFIG_DIR}/antigravity.hooks.json"
358
+
359
+ cat > "${MCP_CONFIG_DIR}/codex.hooks.toml" <<TOML
360
+ # ACE lifecycle hook scaffold for Codex-compatible runtimes.
361
+ # Merge these entries into the host hook config that supports SessionStart/SubagentStart hooks.
362
+
363
+ [[hooks]]
364
+ event = "SessionStart"
365
+ command = "${HOOK_COMMAND}"
366
+
367
+ [[hooks]]
368
+ event = "UserPromptSubmit"
369
+ command = "${HOOK_COMMAND}"
370
+
371
+ [[hooks]]
372
+ event = "PreToolUse"
373
+ command = "${HOOK_COMMAND}"
374
+
375
+ [[hooks]]
376
+ event = "PostToolUse"
377
+ command = "${HOOK_COMMAND}"
378
+
379
+ [[hooks]]
380
+ event = "PreCompact"
381
+ command = "${HOOK_COMMAND}"
382
+
383
+ [[hooks]]
384
+ event = "SubagentStart"
385
+ command = "${HOOK_COMMAND}"
386
+
387
+ [[hooks]]
388
+ event = "SubagentStop"
389
+ command = "${HOOK_COMMAND}"
390
+
391
+ [[hooks]]
392
+ event = "Stop"
393
+ command = "${HOOK_COMMAND}"
394
+ TOML
395
+
396
+ echo "Wrote ACE MCP configs, host instruction files, and hook configs under ${ACE_ROOT}"
@@ -0,0 +1,48 @@
1
+ # ACE Tasks Control Plane
2
+
3
+ This directory contains shared execution artifacts consumed by ACE prompts, tools, and resources.
4
+
5
+ ## Files
6
+
7
+ - `todo.md`: active execution board and verification checklist.
8
+ - `lessons.md`: durable guardrails captured after failures/corrections.
9
+ - `role_tasks.md`: bounded task packs for each ACE role.
10
+ - `cli_work_split.md`: Codex CLI vs Gemini CLI routing contract.
11
+ - `SWARM_HANDOFF.template.json`: canonical inter-agent handoff schema.
12
+ - `SWARM_HANDOFF.example*.json`: concrete routing examples.
13
+ - `agent-state/job-queue.json`: scheduler job queue for deferred/gated dispatch.
14
+ - `agent-state/job-locks.json`: collision-free scheduler locks.
15
+ - `agent-state/scheduler-lease.json`: active scheduler lease ownership.
16
+
17
+ ## When To Read This Directory
18
+
19
+ - Before starting non-trivial work that needs explicit task, role, or handoff structure.
20
+ - Before issuing or consuming a `SWARM_HANDOFF`.
21
+ - When recovering blocked or deferred work through the scheduler and TODO surfaces.
22
+ - When a repeated failure should become a durable lesson or guardrail.
23
+
24
+ ## Common Workflows
25
+
26
+ 1. Start work: check `todo.md`, then use `role_tasks.md` to confirm the bounded contract for the active role.
27
+ 2. Route work: begin from `SWARM_HANDOFF.template.json`, then compare with the example payloads before publishing.
28
+ 3. Recover work: inspect `agent-state/job-queue.json`, `agent-state/job-locks.json`, and `agent-state/scheduler-lease.json` together instead of in isolation.
29
+ 4. Harden work: write repeatable failures to `lessons.md` so the same mistake does not re-enter the loop.
30
+
31
+ ## Operating Rules
32
+
33
+ 1. Update `todo.md` before non-trivial work and after verification.
34
+ 2. Log every repeatable correction pattern in `lessons.md`.
35
+ 3. Use `SWARM_HANDOFF.template.json` as the base for all routing payloads.
36
+ 4. Keep acceptance criteria measurable and tied to file-based evidence.
37
+
38
+ ## Validation Rules
39
+
40
+ - Handoffs must reference real artifacts, owners, and acceptance criteria.
41
+ - Scheduler state is advisory unless it matches current task and status artifacts.
42
+ - Lessons should capture a failure pattern, a guardrail, and a verification check, not just an anecdote.
43
+
44
+ ## Common Failure Modes
45
+
46
+ - `todo.md` is stale while work has already moved; refresh it before trusting downstream routing.
47
+ - A handoff exists without evidence or acceptance criteria; treat it as incomplete, not merely “draft.”
48
+ - Scheduler files disagree with task or status truth; route the contradiction through ops instead of guessing which surface won.
@@ -0,0 +1,53 @@
1
+ {
2
+ "handoff_id": "HND-20260302-014",
3
+ "timestamp_utc": "2026-03-02T20:15:00.000Z",
4
+ "router": {
5
+ "from": "ACE-Orchestrator",
6
+ "via": "ACE-Orchestrator",
7
+ "to": "ACE-VOS"
8
+ },
9
+ "task": {
10
+ "title": "Stress test venture thesis for pricing model",
11
+ "type": "venture",
12
+ "priority": "P1",
13
+ "owner": "ACE-VOS",
14
+ "depends_on": [],
15
+ "scope": "Validate pricing and monetization thesis against ICP"
16
+ },
17
+ "context": {
18
+ "business_requirement": "venture-state/THESIS.md#pricing",
19
+ "design_constraint": "brand-state/BRAND_VOICE.md#positioning",
20
+ "engineering_constraint": "engineering-state/ARCHITECTURE.md#current-billing-surface",
21
+ "directive": "Produce a revised pricing thesis with pass/fail assumptions and a go/no-go recommendation."
22
+ },
23
+ "acceptance_criteria": [
24
+ "Includes explicit ICP, willingness-to-pay assumption, and monetization mechanism",
25
+ "Defines testable kill criteria for invalidation"
26
+ ],
27
+ "deliverables": [
28
+ "venture-state/THESIS.md",
29
+ "venture-state/RISKS.md"
30
+ ],
31
+ "verification": {
32
+ "required_evidence": [
33
+ "artifact_pointers",
34
+ "verification_evidence"
35
+ ],
36
+ "review_check": "Would a staff engineer approve this?",
37
+ "status": "pending"
38
+ },
39
+ "risks": [],
40
+ "open_questions": [],
41
+ "lessons_hook": {
42
+ "on_correction_update": "tasks/lessons.md",
43
+ "rule_format": "Never <bad pattern>; always <guardrail>."
44
+ },
45
+ "return_payload_contract": {
46
+ "must_include": [
47
+ "updated_artifact_pointers",
48
+ "verification_evidence",
49
+ "residual_risks",
50
+ "explicit_blockers_or_done_state"
51
+ ]
52
+ }
53
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "handoff_id": "HND-20260302-033",
3
+ "timestamp_utc": "2026-03-02T20:50:00.000Z",
4
+ "router": {
5
+ "from": "ACE-UI",
6
+ "via": "ACE-Orchestrator",
7
+ "to": "ACE-Coders"
8
+ },
9
+ "task": {
10
+ "title": "Implement updated onboarding copy and flow",
11
+ "type": "engineering",
12
+ "priority": "P0",
13
+ "owner": "ACE-CODERS",
14
+ "depends_on": [
15
+ "brand-state/COPY_DECK.md#onboarding"
16
+ ],
17
+ "scope": "Apply approved UX copy and flow updates with tests"
18
+ },
19
+ "context": {
20
+ "business_requirement": "venture-state/MVP_SPEC.md#activation",
21
+ "design_constraint": "brand-state/COPY_DECK.md#onboarding",
22
+ "engineering_constraint": "engineering-state/src/onboarding/",
23
+ "directive": "Implement string/key updates and flow behavior, then provide test evidence."
24
+ },
25
+ "acceptance_criteria": [
26
+ "All onboarding copy keys updated to approved values",
27
+ "Behavioral tests pass for new flow and edge cases"
28
+ ],
29
+ "deliverables": [
30
+ "engineering-state/src/onboarding/",
31
+ "engineering-state/TEST_LOG.md"
32
+ ],
33
+ "verification": {
34
+ "required_evidence": [
35
+ "artifact_pointers",
36
+ "verification_evidence"
37
+ ],
38
+ "review_check": "Would a staff engineer approve this?",
39
+ "status": "pending"
40
+ },
41
+ "risks": [],
42
+ "open_questions": [],
43
+ "lessons_hook": {
44
+ "on_correction_update": "tasks/lessons.md",
45
+ "rule_format": "Never <bad pattern>; always <guardrail>."
46
+ },
47
+ "return_payload_contract": {
48
+ "must_include": [
49
+ "updated_artifact_pointers",
50
+ "verification_evidence",
51
+ "residual_risks",
52
+ "explicit_blockers_or_done_state"
53
+ ]
54
+ }
55
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "handoff_id": "HND-20260302-021",
3
+ "timestamp_utc": "2026-03-02T20:35:00.000Z",
4
+ "router": {
5
+ "from": "ACE-VOS",
6
+ "via": "ACE-Orchestrator",
7
+ "to": "ACE-UI"
8
+ },
9
+ "task": {
10
+ "title": "Translate thesis into onboarding UX narrative",
11
+ "type": "ux",
12
+ "priority": "P1",
13
+ "owner": "ACE-UI",
14
+ "depends_on": [
15
+ "venture-state/THESIS.md#core-loop"
16
+ ],
17
+ "scope": "Rewrite first-run onboarding and trust messaging"
18
+ },
19
+ "context": {
20
+ "business_requirement": "venture-state/THESIS.md#core-loop",
21
+ "design_constraint": "brand-state/BRAND_VOICE.md#tone",
22
+ "engineering_constraint": "engineering-state/src/onboarding/",
23
+ "directive": "Produce a copy deck and string map that reduces first-session drop-off."
24
+ },
25
+ "acceptance_criteria": [
26
+ "Copy deck includes before/after rationale for each screen",
27
+ "String map is component-keyed and developer-ready"
28
+ ],
29
+ "deliverables": [
30
+ "brand-state/COPY_DECK.md",
31
+ "brand-state/ASSETS/strings.json"
32
+ ],
33
+ "verification": {
34
+ "required_evidence": [
35
+ "artifact_pointers",
36
+ "verification_evidence"
37
+ ],
38
+ "review_check": "Would a staff engineer approve this?",
39
+ "status": "pending"
40
+ },
41
+ "risks": [],
42
+ "open_questions": [],
43
+ "lessons_hook": {
44
+ "on_correction_update": "tasks/lessons.md",
45
+ "rule_format": "Never <bad pattern>; always <guardrail>."
46
+ },
47
+ "return_payload_contract": {
48
+ "must_include": [
49
+ "updated_artifact_pointers",
50
+ "verification_evidence",
51
+ "residual_risks",
52
+ "explicit_blockers_or_done_state"
53
+ ]
54
+ }
55
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "handoff_id": "HND-YYYYMMDD-001",
3
+ "timestamp_utc": "2026-01-01T00:00:00.000Z",
4
+ "router": {
5
+ "from": "ACE-Orchestrator",
6
+ "via": "ACE-Orchestrator",
7
+ "to": "ACE-Coders"
8
+ },
9
+ "task": {
10
+ "title": "Short task title",
11
+ "type": "engineering",
12
+ "priority": "P1",
13
+ "owner": "ACE-CODERS",
14
+ "depends_on": [],
15
+ "scope": "Bounded scope statement"
16
+ },
17
+ "context": {
18
+ "business_requirement": "path/to/file.md#line",
19
+ "design_constraint": "path/to/file.md#line",
20
+ "engineering_constraint": "path/to/file.md#line",
21
+ "directive": "Precise action directive"
22
+ },
23
+ "acceptance_criteria": [
24
+ "Criterion 1 with measurable condition",
25
+ "Criterion 2 with measurable condition"
26
+ ],
27
+ "deliverables": [
28
+ "path/to/updated/artifact"
29
+ ],
30
+ "verification": {
31
+ "required_evidence": [
32
+ "artifact_pointers",
33
+ "verification_evidence"
34
+ ],
35
+ "review_check": "Would a staff engineer approve this?",
36
+ "status": "pending"
37
+ },
38
+ "risks": [],
39
+ "open_questions": [],
40
+ "lessons_hook": {
41
+ "on_correction_update": "tasks/lessons.md",
42
+ "rule_format": "Never <bad pattern>; always <guardrail>."
43
+ },
44
+ "return_payload_contract": {
45
+ "must_include": [
46
+ "updated_artifact_pointers",
47
+ "verification_evidence",
48
+ "residual_risks",
49
+ "explicit_blockers_or_done_state"
50
+ ]
51
+ }
52
+ }
@@ -0,0 +1,22 @@
1
+ # CLI Work Split Contract
2
+
3
+ ## Codex CLI (Primary)
4
+
5
+ Use Codex CLI for:
6
+
7
+ - File edits, refactors, implementation changes.
8
+ - Running tests, linters, builds, and local verification.
9
+ - Updating authoritative project artifacts and state files.
10
+
11
+ ## Gemini CLI (Optional Secondary)
12
+
13
+ Use Gemini CLI for:
14
+
15
+ - Variant ideation, alternative framing, and style exploration.
16
+ - Comparative brainstorming where direct repo mutation is not required.
17
+
18
+ ## Guardrails
19
+
20
+ 1. Final source-of-truth edits happen via Codex CLI.
21
+ 2. Any external suggestion must be validated against local artifacts before adoption.
22
+ 3. Verification evidence must be produced from local project commands.