@khoavu882/doflow 2.0.0-beta.5 → 2.0.1

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 (494) hide show
  1. package/README.md +16 -16
  2. package/bin/doflow.js +22 -12
  3. package/core/.antigravity-plugin/plugin.json +1 -2
  4. package/core/.claude-plugin/plugin.json +1 -1
  5. package/core/.codex-plugin/plugin.json +1 -1
  6. package/core/.plugin/plugin.json +1 -1
  7. package/core/harnesses/claude/hooks/lib.sh +43 -24
  8. package/core/harnesses/claude/hooks/mcp-tool-guard.sh +4 -1
  9. package/core/harnesses/claude/hooks/permission-audit.sh +3 -0
  10. package/core/harnesses/claude/hooks/post-compact.sh +35 -32
  11. package/core/harnesses/claude/hooks/post-edit-lint.sh +2 -0
  12. package/core/harnesses/claude/hooks/post-shell-observe.sh +48 -0
  13. package/core/harnesses/claude/hooks/post-tool-failure.sh +3 -0
  14. package/core/harnesses/claude/hooks/pre-compact.sh +23 -27
  15. package/core/harnesses/claude/hooks/pre-implement-gate.sh +4 -1
  16. package/core/harnesses/claude/hooks/session-end.sh +23 -10
  17. package/core/harnesses/claude/hooks/skill-config-audit.sh +3 -0
  18. package/core/harnesses/claude/settings/settings.json +26 -9
  19. package/core/harnesses/claude/statusline/doflow-statusline.sh +1 -0
  20. package/core/harnesses/codex/agents/core-implementer.toml +1 -0
  21. package/core/harnesses/codex/agents/delivery-lead.toml +10 -0
  22. package/core/harnesses/codex/agents/quality-guardian.toml +1 -1
  23. package/core/harnesses/codex/agents/research-writer.toml +1 -1
  24. package/core/harnesses/codex/agents/reviewer.toml +10 -0
  25. package/core/harnesses/codex/agents/spec-analyst.toml +1 -1
  26. package/core/harnesses/codex/agents/system-architect.toml +1 -1
  27. package/core/harnesses/codex/hooks/hooks.json +0 -10
  28. package/core/harnesses/codex/hooks/lib.sh +44 -25
  29. package/core/harnesses/codex/hooks/mcp-tool-guard.sh +4 -1
  30. package/core/harnesses/codex/hooks/post-edit-lint.impl.sh +3 -1
  31. package/core/harnesses/codex/hooks/pre-compact.impl.sh +29 -26
  32. package/core/harnesses/codex/hooks/pre-implement-gate.sh +4 -1
  33. package/core/harnesses/codex/hooks/session-end.impl.sh +23 -10
  34. package/core/harnesses/codex/hooks/subagent-audit.sh +1 -0
  35. package/core/harnesses/copilot/hooks/doflow-lib.sh +94 -0
  36. package/core/harnesses/copilot/hooks/doflow-mcp-tool-guard.sh +9 -0
  37. package/core/harnesses/copilot/hooks/doflow-pre-implement-gate.sh +9 -0
  38. package/core/harnesses/copilot/hooks/doflow-session-start.sh +9 -0
  39. package/core/harnesses/copilot/hooks/doflow-stop-check.sh +9 -0
  40. package/core/harnesses/copilot/hooks/doflow-subagent-start.sh +9 -0
  41. package/core/harnesses/copilot/hooks/doflow-subagent-stop.sh +9 -0
  42. package/core/harnesses/copilot/hooks/doflow.json +51 -0
  43. package/core/harnesses/kiro/agents/doflow.json +1 -11
  44. package/core/harnesses/kiro/hooks/doflow.json +0 -10
  45. package/core/harnesses/kiro/hooks/lib.sh +26 -6
  46. package/core/harnesses/kiro/hooks/mcp-tool-guard.sh +8 -3
  47. package/core/harnesses/kiro/hooks/pre-implement-gate.sh +8 -3
  48. package/core/harnesses/kiro/hooks/session-start.sh +1 -0
  49. package/core/harnesses/kiro/hooks/stop-check.sh +1 -0
  50. package/core/harnesses/pi/extensions/doflow-guard.js +11 -2
  51. package/core/harnesses/shared/hooks/ENVELOPE_MIGRATION.md +1 -2
  52. package/core/harnesses/shared/hooks/adapters/antigravity.js +1 -1
  53. package/core/harnesses/shared/hooks/bridge/bridge.sh +126 -23
  54. package/core/harnesses/shared/hooks/bridge/envelope.jq +87 -18
  55. package/core/harnesses/shared/hooks/bridge/observe-model.sh +75 -0
  56. package/core/harnesses/shared/hooks/bridge/respond.sh +16 -2
  57. package/core/harnesses/shared/hooks/policies/capture-failure.sh +49 -16
  58. package/core/harnesses/shared/hooks/policies/compact-text.sh +46 -0
  59. package/core/harnesses/shared/hooks/policies/contract.sh +3 -0
  60. package/core/harnesses/shared/hooks/policies/deny-json.sh +20 -7
  61. package/core/harnesses/shared/hooks/policies/emission-rules.sh +37 -0
  62. package/core/harnesses/shared/hooks/policies/emission.jq +209 -0
  63. package/core/harnesses/shared/hooks/policies/emission.sh +383 -0
  64. package/core/harnesses/shared/hooks/policies/identity.sh +177 -0
  65. package/core/harnesses/shared/hooks/policies/lib.sh +63 -40
  66. package/core/harnesses/shared/hooks/policies/mcp-policy.conf +1 -1
  67. package/core/harnesses/shared/hooks/policies/mcp-tool-guard.sh +7 -8
  68. package/core/harnesses/shared/hooks/policies/pre-implementation-gate.sh +132 -57
  69. package/core/harnesses/shared/hooks/policies/session-context.sh +30 -1
  70. package/core/harnesses/shared/hooks/policies/stop-check.sh +27 -15
  71. package/core/harnesses/shared/hooks/policies/subagent-audit.sh +6 -3
  72. package/core/harnesses/shared/hooks/policies/summary-store.sh +347 -0
  73. package/core/harnesses/shared/hooks/policies/user-prompt-submit.sh +60 -155
  74. package/core/harnesses/shared/hooks/stream-hook-runner.js +58 -20
  75. package/core/harnesses/shared/locator/doflow-run +2 -3
  76. package/core/registry/advice.json +3 -3
  77. package/core/registry/assets.json +55 -82
  78. package/core/registry/capabilities.json +12 -0
  79. package/core/registry/contracts.json +58 -31
  80. package/core/registry/contribution-points.json +35 -0
  81. package/core/registry/gates.json +32 -0
  82. package/core/registry/guidance-caps.json +40 -0
  83. package/core/registry/harnesses.json +1445 -366
  84. package/core/registry/intake.json +53 -0
  85. package/core/registry/lifecycle.json +599 -996
  86. package/core/registry/mcp.json +5 -1
  87. package/core/registry/models.json +7 -1
  88. package/core/registry/package-templates/README.md +19 -0
  89. package/core/registry/package-templates/agent/files/agent.md +9 -0
  90. package/core/registry/package-templates/agent/template.json +4 -0
  91. package/core/registry/package-templates/capability-provider/files/provider.json +9 -0
  92. package/core/registry/package-templates/capability-provider/template.json +11 -0
  93. package/core/registry/package-templates/debate-preset/files/preset.json +26 -0
  94. package/core/registry/package-templates/debate-preset/template.json +4 -0
  95. package/core/registry/package-templates/intake-category/files/category.json +8 -0
  96. package/core/registry/package-templates/intake-category/template.json +4 -0
  97. package/core/registry/package-templates/review-preset/files/preset.json +30 -0
  98. package/core/registry/package-templates/review-preset/template.json +4 -0
  99. package/core/registry/package-templates/skill/files/SKILL.md +8 -0
  100. package/core/registry/package-templates/skill/template.json +4 -0
  101. package/core/registry/package-templates/worker/files/worker.json +92 -0
  102. package/core/registry/package-templates/worker/template.json +11 -0
  103. package/core/registry/packages/doflow/doflow-package.json +15 -0
  104. package/core/registry/packages/doflow/presets/debate-3.json +26 -0
  105. package/core/registry/protocols.json +61 -0
  106. package/core/registry/routes.json +17 -0
  107. package/core/registry/rules.json +431 -0
  108. package/core/registry/settings.json +272 -0
  109. package/core/registry/storage.json +687 -31
  110. package/core/registry/telemetry.json +236 -0
  111. package/core/registry/transcripts.json +142 -0
  112. package/core/registry/verification.json +76 -6
  113. package/core/registry/workflows.json +55 -0
  114. package/core/shared/agent-specs/core-implementer.md +3 -0
  115. package/core/shared/agent-specs/delivery-lead.md +68 -0
  116. package/core/shared/agent-specs/quality-guardian.md +5 -1
  117. package/core/shared/agent-specs/research-writer.md +10 -3
  118. package/core/shared/agent-specs/reviewer.md +53 -0
  119. package/core/shared/agent-specs/spec-analyst.md +5 -6
  120. package/core/shared/agent-specs/system-architect.md +5 -1
  121. package/core/shared/guidance/DOFLOW_CORE.md +1 -5
  122. package/core/shared/guidance/modes/MODE_DeepResearch.md +1 -1
  123. package/core/shared/guidance/modes/MODE_Orchestration.md +4 -3
  124. package/core/shared/guidance/modes/MODE_Task_Management.md +14 -14
  125. package/core/shared/guidance/pointers/codex.md +1 -4
  126. package/core/shared/guidance/references/ARTIFACT_FORMAT.md +30 -16
  127. package/core/shared/guidance/references/ARTIFACT_VOICE.md +3 -2
  128. package/core/shared/guidance/references/CONSTITUTION_BASE.md +17 -15
  129. package/core/shared/guidance/references/DIAGRAM_GUIDE.md +1 -1
  130. package/core/shared/guidance/references/DOFLOW_CHAIN.md +17 -19
  131. package/core/shared/guidance/references/EVIDENCE_LEDGER.md +7 -8
  132. package/core/shared/guidance/references/MODEL_SELECTION.md +5 -3
  133. package/core/shared/guidance/references/ORCHESTRATION.md +3 -2
  134. package/core/shared/guidance/references/WORKFLOW_HANDOFF.md +19 -1
  135. package/core/shared/guidance/rules/RULES.md +45 -0
  136. package/core/shared/scripts/doflow/bash/do-args.sh +37 -0
  137. package/core/shared/scripts/doflow/bash/do-exec-paths.sh +4 -0
  138. package/core/shared/scripts/doflow/bash/do-git-state.sh +15 -4
  139. package/core/shared/scripts/doflow/bash/do-parallel-check.sh +4 -0
  140. package/core/shared/scripts/doflow/bash/do-paths.sh +40 -2
  141. package/core/shared/scripts/doflow/bash/do-prereqs.sh +2 -1
  142. package/core/shared/scripts/doflow/bash/do-review-package.sh +4 -0
  143. package/core/shared/scripts/doflow/bash/do-task-brief.sh +58 -16
  144. package/core/shared/scripts/doflow/bash/render-audit.sh +26 -2
  145. package/core/shared/scripts/doflow/bash/render-diagrams.sh +1 -0
  146. package/core/shared/scripts/doflow/bash/render-puml.sh +2 -1
  147. package/core/shared/scripts/doflow/bash/validate-artifacts.sh +49 -5
  148. package/core/shared/scripts/doflow/bin/doflow-run +152 -34
  149. package/core/shared/skills/do/SKILL.md +14 -12
  150. package/core/shared/skills/do/references/advice_calls.md +26 -0
  151. package/core/shared/skills/do/references/pm_routing.md +1 -2
  152. package/core/shared/skills/do/references/program_mode.md +31 -0
  153. package/core/shared/skills/do-brainstorm/SKILL.md +45 -97
  154. package/core/shared/skills/do-brainstorm/references/handoff_branches.md +36 -0
  155. package/core/shared/skills/do-brainstorm/references/intent_seed.md +21 -0
  156. package/core/shared/skills/do-brainstorm/references/round_log.md +17 -0
  157. package/core/shared/skills/do-code-review/SKILL.md +48 -148
  158. package/core/shared/skills/do-code-review/content-types/markdown.md +24 -2
  159. package/core/shared/skills/do-code-review/references/tools.md +90 -0
  160. package/core/shared/skills/do-code-review/scripts/doc_quality_checker.py +549 -7
  161. package/core/shared/skills/do-design/SKILL.md +23 -20
  162. package/core/shared/skills/do-diagnose/SKILL.md +18 -6
  163. package/core/shared/skills/do-document/SKILL.md +12 -1
  164. package/core/shared/skills/do-document/references/deep_research.md +1 -2
  165. package/core/shared/skills/do-document/references/embedded-research.md +19 -7
  166. package/core/shared/skills/do-document/references/implementation-flow.md +5 -6
  167. package/core/shared/skills/do-execute-plan/SKILL.md +19 -60
  168. package/core/shared/skills/do-execute-plan/references/handoff_record.md +7 -2
  169. package/core/shared/skills/do-execute-plan/references/parallel_dispatch.md +13 -0
  170. package/core/shared/skills/do-execute-plan/references/readiness_gate.md +26 -1
  171. package/core/shared/skills/do-execute-plan/references/run_position.md +16 -2
  172. package/core/shared/skills/do-execute-plan/references/scaffold.md +17 -9
  173. package/core/shared/skills/do-execute-plan/references/state_checkpoint.md +11 -0
  174. package/core/shared/skills/do-execute-plan/references/task_attempts.md +78 -24
  175. package/core/shared/skills/do-flow/SKILL.md +10 -11
  176. package/core/shared/skills/do-flow/references/task_classes.md +5 -5
  177. package/core/shared/skills/do-git/SKILL.md +4 -0
  178. package/core/shared/skills/do-implement/SKILL.md +13 -14
  179. package/core/shared/skills/do-plan/SKILL.md +34 -20
  180. package/core/shared/skills/do-test/SKILL.md +7 -4
  181. package/core/shared/templates/doflow/constitution-template.md +9 -3
  182. package/core/shared/templates/doflow/data-model-template.md +1 -1
  183. package/core/shared/templates/doflow/design-template.md +113 -16
  184. package/core/shared/templates/doflow/plan-template.md +11 -10
  185. package/core/shared/templates/doflow/question-log-template.md +14 -2
  186. package/core/shared/templates/doflow/requirement-template.md +1 -1
  187. package/core/shared/workflows/do-flow-chain.md +2 -0
  188. package/core/worker-evidence/antigravity/checks.json +14 -0
  189. package/core/worker-evidence/codex/2026-10-18-cli-check.json +107 -0
  190. package/core/worker-evidence/codex/2026-10-18-live-run-edit.json +73 -0
  191. package/core/worker-evidence/codex/2026-10-18-live-run-read-only.json +62 -0
  192. package/core/worker-evidence/codex/2026-10-24-cli-check.json +126 -0
  193. package/core/worker-evidence/codex/checks.json +38 -0
  194. package/package.json +10 -6
  195. package/src/adapters/antigravity/index.js +143 -66
  196. package/src/adapters/claude/index.js +46 -5
  197. package/src/adapters/codex/agents.js +25 -15
  198. package/src/adapters/codex/hooks.js +39 -3
  199. package/src/adapters/codex/index.js +61 -13
  200. package/src/adapters/codex/native-projection.js +6 -2
  201. package/src/adapters/copilot/index.js +58 -23
  202. package/src/adapters/copy-tree.js +291 -46
  203. package/src/adapters/guidance-manifest.js +71 -0
  204. package/src/adapters/guidance-pointer.js +19 -0
  205. package/src/adapters/hook-commands.js +6 -10
  206. package/src/adapters/index.js +1 -0
  207. package/src/adapters/kiro/index.js +23 -12
  208. package/src/adapters/opencode/index.js +8 -8
  209. package/src/adapters/pi/hooks.js +2 -1
  210. package/src/adapters/pi/index.js +14 -7
  211. package/src/adapters/resolve-source.js +26 -2
  212. package/src/cli/commands/install.js +2 -1
  213. package/src/cli/commands/reconcile.js +53 -9
  214. package/src/cli/commands/remove.js +2 -2
  215. package/src/cli/commands/rollback.js +6 -3
  216. package/src/cli/commands/self-update.js +18 -9
  217. package/src/cli/commands/status.js +22 -3
  218. package/src/cli/commands/ui.js +99 -0
  219. package/src/cli/commands/update.js +2 -1
  220. package/src/cli/index.js +337 -32
  221. package/src/cli/runtime-commands.js +220 -60
  222. package/src/cli/shared.js +0 -2
  223. package/src/helper/git.js +1 -1
  224. package/src/helper/guardrails.js +1 -1
  225. package/src/helper/marker-merge.js +31 -13
  226. package/src/helper/package-ids.js +37 -0
  227. package/src/helper/semver.js +94 -0
  228. package/src/install/backup.js +105 -15
  229. package/src/install/context.js +1 -1
  230. package/src/install/targets.js +31 -16
  231. package/src/lifecycle/coverage.js +4 -16
  232. package/src/lifecycle/hook-tier.js +160 -0
  233. package/src/lifecycle/index.js +412 -78
  234. package/src/lifecycle/retired-harnesses.js +318 -0
  235. package/src/lifecycle/view.js +35 -15
  236. package/src/registry/index.js +551 -26
  237. package/src/registry/worker-ids.js +45 -0
  238. package/src/release/build-package.js +0 -3
  239. package/src/release/docs-blocks.js +472 -0
  240. package/src/release/preflight.js +425 -0
  241. package/src/release/rehearse.js +401 -0
  242. package/src/release/release-workflow.js +733 -0
  243. package/src/release/sync-plugin-versions.js +43 -7
  244. package/src/runtime/advice/bench-gate.js +25 -0
  245. package/src/runtime/advice/cli.js +59 -16
  246. package/src/runtime/advice/client.js +32 -9
  247. package/src/runtime/advice/config.js +98 -133
  248. package/src/runtime/advice/doctor.js +1 -1
  249. package/src/runtime/advice/elevation.js +97 -0
  250. package/src/runtime/advice/endpoint-guard.js +9 -3
  251. package/src/runtime/advice/mode.js +37 -0
  252. package/src/runtime/advice/record.js +18 -5
  253. package/src/runtime/advice/registry.js +4 -1
  254. package/src/runtime/advice/shadow-config.js +229 -0
  255. package/src/runtime/advice/shadow-dispatcher.js +276 -0
  256. package/src/runtime/brief-rules.js +81 -0
  257. package/src/runtime/brief-tools.js +111 -34
  258. package/src/runtime/candidate.js +20 -11
  259. package/src/runtime/capabilities/executor.js +450 -0
  260. package/src/runtime/capabilities/loopback.js +41 -0
  261. package/src/runtime/capabilities/sanitizer.js +88 -0
  262. package/src/runtime/capability-router.js +135 -3
  263. package/src/runtime/checkouts.js +73 -11
  264. package/src/runtime/claims.js +13 -7
  265. package/src/runtime/cli.js +196 -19
  266. package/src/runtime/config-home.js +42 -0
  267. package/src/runtime/context/arbitrate.js +767 -0
  268. package/src/runtime/context/delivery-store.js +4 -6
  269. package/src/runtime/context/emission-rules.js +118 -0
  270. package/src/runtime/context/identity.js +227 -0
  271. package/src/runtime/context/pointer.js +67 -12
  272. package/src/runtime/context/primary-command.js +117 -0
  273. package/src/runtime/context/primary.js +344 -0
  274. package/src/runtime/context/summary-store.js +655 -0
  275. package/src/runtime/context-pack.js +158 -79
  276. package/src/runtime/decision-register.js +13 -4
  277. package/src/runtime/dispatch/admission.js +392 -0
  278. package/src/runtime/dispatch/attempt-end.js +274 -0
  279. package/src/runtime/dispatch/command.js +628 -0
  280. package/src/runtime/dispatch/controls.js +904 -0
  281. package/src/runtime/dispatch/envelope.js +276 -0
  282. package/src/runtime/dispatch/grants.js +310 -0
  283. package/src/runtime/dispatch/integrate.js +617 -0
  284. package/src/runtime/dispatch/loop.js +1835 -0
  285. package/src/runtime/dispatch/store.js +352 -0
  286. package/src/runtime/dispatch/verify-run.js +201 -0
  287. package/src/runtime/evidence-ledger.js +52 -7
  288. package/src/runtime/failure/capture.js +3 -1
  289. package/src/runtime/failure/cli.js +25 -9
  290. package/src/runtime/failure/home.js +57 -30
  291. package/src/runtime/failure/store.js +7 -2
  292. package/src/runtime/feature-pointer.js +174 -0
  293. package/src/runtime/feature-resolve.js +13 -2
  294. package/src/runtime/fleet/command.js +77 -0
  295. package/src/runtime/fleet/projects.js +178 -0
  296. package/src/runtime/fleet/tree.js +383 -0
  297. package/src/runtime/freshness.js +33 -3
  298. package/src/runtime/git-memo.js +46 -0
  299. package/src/runtime/guidance/ablation.js +427 -0
  300. package/src/runtime/health.js +624 -18
  301. package/src/runtime/history-compactor.js +13 -3
  302. package/src/runtime/implementation-gate.js +281 -26
  303. package/src/runtime/intake/engine.js +677 -0
  304. package/src/runtime/intake/index.js +136 -0
  305. package/src/runtime/intake/manifest.js +140 -0
  306. package/src/runtime/intake/taxonomy.js +206 -0
  307. package/src/runtime/inventory/coverage.js +1 -1
  308. package/src/runtime/inventory/index.js +1 -1
  309. package/src/runtime/inventory/precedence.js +2 -2
  310. package/src/runtime/inventory/siblings.js +6 -4
  311. package/src/runtime/knowledge/code-corpus.js +277 -0
  312. package/src/runtime/knowledge/code-lexical.js +130 -0
  313. package/src/runtime/knowledge/code-retrieval.js +307 -0
  314. package/src/runtime/knowledge/code-validation.js +106 -0
  315. package/src/runtime/knowledge/gp3-gate.js +74 -0
  316. package/src/runtime/knowledge/graph-adapter.js +288 -0
  317. package/src/runtime/knowledge/graph-fallback.js +394 -0
  318. package/src/runtime/knowledge/hybrid.js +136 -8
  319. package/src/runtime/knowledge/retrieval.js +34 -1
  320. package/src/runtime/knowledge/rtk-compress.js +77 -0
  321. package/src/runtime/knowledge/semble-bridge.py +106 -0
  322. package/src/runtime/knowledge/semble-lifecycle.js +114 -0
  323. package/src/runtime/knowledge/semble-provider.js +365 -0
  324. package/src/runtime/lifecycle/cli.js +88 -10
  325. package/src/runtime/lifecycle/event-store.js +8 -6
  326. package/src/runtime/lifecycle/followup.js +38 -7
  327. package/src/runtime/lifecycle/overview.js +26 -2
  328. package/src/runtime/lifecycle/report-store.js +8 -10
  329. package/src/runtime/lifecycle/retention.js +95 -31
  330. package/src/runtime/lifecycle/root.js +9 -1
  331. package/src/runtime/lifecycle/status.js +34 -17
  332. package/src/runtime/lifecycle/store-upkeep.js +56 -7
  333. package/src/runtime/mask.js +134 -7
  334. package/src/runtime/mcp-consultations.js +40 -6
  335. package/src/runtime/model-router.js +79 -7
  336. package/src/runtime/models/catalogue.js +191 -0
  337. package/src/runtime/models/command.js +153 -0
  338. package/src/runtime/off-words.js +12 -0
  339. package/src/runtime/outcome.js +2 -2
  340. package/src/runtime/packages/command.js +1009 -0
  341. package/src/runtime/packages/contributions.js +116 -0
  342. package/src/runtime/packages/digest.js +132 -0
  343. package/src/runtime/packages/fetch.js +182 -0
  344. package/src/runtime/packages/grants.js +192 -0
  345. package/src/runtime/packages/index-file.js +134 -0
  346. package/src/runtime/packages/instruction.js +90 -0
  347. package/src/runtime/packages/manifest.js +331 -0
  348. package/src/runtime/packages/points.js +487 -0
  349. package/src/runtime/packages/programs.js +216 -0
  350. package/src/runtime/packages/scaffold.js +277 -0
  351. package/src/runtime/packages/source.js +90 -0
  352. package/src/runtime/packages/state.js +164 -0
  353. package/src/runtime/packages/store.js +449 -0
  354. package/src/runtime/packages/tar.js +106 -0
  355. package/src/runtime/packages/view.js +406 -0
  356. package/src/runtime/plan-check.js +59 -0
  357. package/src/runtime/plan-content.js +324 -0
  358. package/src/runtime/policy-init.js +118 -0
  359. package/src/runtime/profiles/doctor.js +96 -0
  360. package/src/runtime/profiles/resolve.js +244 -0
  361. package/src/runtime/profiles/rollback.js +254 -0
  362. package/src/runtime/profiles/sampler.js +41 -0
  363. package/src/runtime/readiness-record.js +16 -11
  364. package/src/runtime/readiness.js +46 -5
  365. package/src/runtime/research-request.js +50 -25
  366. package/src/runtime/retrieval-plan.js +10 -30
  367. package/src/runtime/retrieval-record.js +75 -5
  368. package/src/runtime/review/command.js +246 -0
  369. package/src/runtime/review/dominance.js +68 -0
  370. package/src/runtime/review/findings.js +434 -0
  371. package/src/runtime/review/identity.js +255 -0
  372. package/src/runtime/review/protocol-command.js +109 -0
  373. package/src/runtime/review/protocols.js +405 -0
  374. package/src/runtime/review/resolve-protocol.js +302 -0
  375. package/src/runtime/review/start.js +530 -0
  376. package/src/runtime/roadmap/attendance.js +137 -0
  377. package/src/runtime/roadmap/facts.js +479 -0
  378. package/src/runtime/roadmap/gates.js +273 -0
  379. package/src/runtime/roadmap/loop.js +1719 -0
  380. package/src/runtime/roadmap/merge.js +390 -0
  381. package/src/runtime/roadmap/rows.js +1122 -0
  382. package/src/runtime/roadmap/seed.js +1063 -0
  383. package/src/runtime/roadmap/worktree-cleanup.js +147 -0
  384. package/src/runtime/rules-report.js +336 -0
  385. package/src/runtime/scaffold/artifacts.js +60 -9
  386. package/src/runtime/scaffold/generate.js +21 -9
  387. package/src/runtime/settings/autopilot.js +106 -0
  388. package/src/runtime/settings/cli.js +280 -0
  389. package/src/runtime/settings/config-write.js +314 -0
  390. package/src/runtime/settings/files.js +271 -0
  391. package/src/runtime/settings/legacy.js +154 -0
  392. package/src/runtime/settings/lexical.js +56 -0
  393. package/src/runtime/settings/prepared-run.js +269 -0
  394. package/src/runtime/settings/project-layers.js +118 -0
  395. package/src/runtime/settings/refs.js +288 -0
  396. package/src/runtime/settings/registry.js +553 -0
  397. package/src/runtime/settings/resolve.js +713 -0
  398. package/src/runtime/settings/shared.js +37 -0
  399. package/src/runtime/settings/worker-billing.js +107 -0
  400. package/src/runtime/settings/write.js +269 -0
  401. package/src/runtime/slot-command.js +78 -0
  402. package/src/runtime/slots.js +671 -0
  403. package/src/runtime/source-version.js +1 -0
  404. package/src/runtime/state-root.js +217 -0
  405. package/src/runtime/storage/cli.js +12 -5
  406. package/src/runtime/storage/engine.js +9 -2
  407. package/src/runtime/storage/registry.js +14 -1
  408. package/src/runtime/storage/roots.js +66 -16
  409. package/src/runtime/storage/rules.js +82 -10
  410. package/src/runtime/storage/upkeep.js +10 -2
  411. package/src/runtime/storage/work-status.js +245 -26
  412. package/src/runtime/task-attempts.js +589 -69
  413. package/src/runtime/task-classifier.js +85 -14
  414. package/src/runtime/task-graph.js +373 -0
  415. package/src/runtime/task-run.js +778 -0
  416. package/src/runtime/task-scope.js +176 -55
  417. package/src/runtime/task-sources.js +147 -0
  418. package/src/runtime/task-state.js +373 -64
  419. package/src/runtime/team/admission.js +301 -0
  420. package/src/runtime/team/envelope.js +324 -0
  421. package/src/runtime/team/review-guard.js +156 -0
  422. package/src/runtime/trace/analyze.js +427 -0
  423. package/src/runtime/trace/baseline.js +770 -0
  424. package/src/runtime/trace/ledger.js +63 -140
  425. package/src/runtime/trace/otlp-export.js +568 -0
  426. package/src/runtime/trace/otlp-map.js +481 -0
  427. package/src/runtime/trace/spans.js +745 -0
  428. package/src/runtime/trace/telemetry.js +225 -0
  429. package/src/runtime/trace/views.js +1 -0
  430. package/src/runtime/transcripts/command.js +98 -0
  431. package/src/runtime/transcripts/cursor.js +326 -0
  432. package/src/runtime/transcripts/read.js +126 -0
  433. package/src/runtime/transcripts/readers/claude-jsonl.js +74 -0
  434. package/src/runtime/transcripts/readers/codex-rollout.js +70 -0
  435. package/src/runtime/transcripts/readers/copilot-events.js +90 -0
  436. package/src/runtime/transcripts/readers/kiro-jsonl.js +77 -0
  437. package/src/runtime/transcripts/readers/pi-jsonl.js +59 -0
  438. package/src/runtime/transcripts/registry.js +161 -0
  439. package/src/runtime/transcripts/stats.js +161 -0
  440. package/src/runtime/verb-view.js +267 -0
  441. package/src/runtime/verification/check-key.js +628 -0
  442. package/src/runtime/verification/contract-runner.js +546 -11
  443. package/src/runtime/verification/engine.js +499 -54
  444. package/src/runtime/verification/impact.js +617 -0
  445. package/src/runtime/verification/inflight.js +205 -0
  446. package/src/runtime/verification/registry.js +176 -0
  447. package/src/runtime/verification/reuse.js +184 -0
  448. package/src/runtime/verification/telemetry-emit.js +254 -0
  449. package/src/runtime/verification/test-selection.js +67 -7
  450. package/src/runtime/worker/active.js +90 -0
  451. package/src/runtime/worker/cancel.js +222 -0
  452. package/src/runtime/worker/catalogue.js +122 -0
  453. package/src/runtime/worker/command.js +677 -0
  454. package/src/runtime/worker/evidence.js +288 -0
  455. package/src/runtime/worker/launch.js +256 -0
  456. package/src/runtime/worker/models.js +137 -0
  457. package/src/runtime/worker/parsers.js +218 -0
  458. package/src/runtime/worker/probes/index.js +706 -0
  459. package/src/runtime/worker/process-tree.js +415 -0
  460. package/src/runtime/worker/quota.js +43 -0
  461. package/src/runtime/worker/readiness.js +713 -0
  462. package/src/runtime/worker/run-store.js +166 -0
  463. package/src/runtime/worker/supervisor.js +541 -0
  464. package/src/runtime/worker/worktree-check.js +252 -0
  465. package/src/runtime/workflow-engine.js +5 -1
  466. package/src/runtime/workflow-orchestrator.js +610 -67
  467. package/src/runtime/worktree.js +149 -22
  468. package/src/state/index.js +1 -1
  469. package/src/state/lockfile.js +64 -10
  470. package/src/state/run-lock.js +1 -1
  471. package/types/node-commonjs.d.ts +106 -7
  472. package/core/harnesses/claude/hooks/pre-bash-guard.sh +0 -10
  473. package/core/harnesses/codex/hooks/pre-bash-guard.sh +0 -10
  474. package/core/harnesses/gemini/hooks/hooks.json +0 -77
  475. package/core/harnesses/gemini/hooks/lib.sh +0 -302
  476. package/core/harnesses/gemini/hooks/mcp-tool-guard.sh +0 -10
  477. package/core/harnesses/gemini/hooks/post-edit-lint.sh +0 -39
  478. package/core/harnesses/gemini/hooks/pre-bash-guard.sh +0 -10
  479. package/core/harnesses/gemini/hooks/pre-compact.sh +0 -38
  480. package/core/harnesses/gemini/hooks/pre-implement-gate.sh +0 -10
  481. package/core/harnesses/gemini/hooks/session-end.impl.sh +0 -89
  482. package/core/harnesses/gemini/hooks/session-end.sh +0 -5
  483. package/core/harnesses/gemini/hooks/session-start.sh +0 -7
  484. package/core/harnesses/gemini/settings/adapter-defaults.json +0 -4
  485. package/core/harnesses/kiro/hooks/pre-bash-guard.sh +0 -24
  486. package/core/harnesses/shared/hooks/policies/blocked-patterns.conf +0 -91
  487. package/core/harnesses/shared/hooks/policies/pre-bash-guard.sh +0 -378
  488. package/core/shared/guidance/FLAGS.md +0 -25
  489. package/core/shared/guidance/rules/RULE_01_SAFETY.md +0 -25
  490. package/core/shared/guidance/rules/RULE_02_WORKFLOW.md +0 -23
  491. package/core/shared/guidance/rules/RULE_03_QUALITY.md +0 -14
  492. package/core/shared/guidance/rules/RULE_04_QUESTIONS.md +0 -46
  493. package/src/adapters/gemini/hooks.js +0 -251
  494. package/src/adapters/gemini/index.js +0 -429
@@ -2,12 +2,15 @@
2
2
 
3
3
  **Feature:** [NNN-slug] · **Requirement:** [REQUIREMENT_PATH] · **Maturity:** Draft · **Created:** [DATE]
4
4
 
5
- > System shape — architecture, APIs, data/interface contracts. Reads [REQUIREMENT_PATH].
5
+ > System shape — architecture, journeys, APIs, data/interface contracts. Reads [REQUIREMENT_PATH].
6
6
  > Distinct from plan.md's HOW-to-implement; this is HOW-it's-shaped.
7
7
  >
8
+ > Journey-first: business and engineering read the front half (Architecture Approach through
9
+ > Journeys) on one page, in plain nouns. The component-level sections follow it.
10
+ >
8
11
  > Structure follows `references/ARTIFACT_FORMAT.md`: indexed sections carry a table above full
9
12
  > `**Detail**`, the document-level `Maturity` is `Draft`, `In review` or `Approved`, the item-level
10
- > `Status` is only `Live` or `Superseded → <ref>`, and superseded prose moves to §9.
13
+ > `Status` is only `Live` or `Superseded → <ref>`, and superseded prose moves to the History section.
11
14
 
12
15
  ## 1. Architecture Approach
13
16
 
@@ -27,19 +30,26 @@
27
30
  | [what is being settled] | [the shape this design gives it] | [person or role accountable] | no |
28
31
  | [what is being settled] | [the shape this design gives it] | [person or role accountable] | yes: [what must happen first] |
29
32
 
30
- [Component boundaries, where this fits in the existing system, 2–4 sentences.]
33
+ <!-- Acts as the summary. In 2–4 sentences or bullets, in plain nouns with no component IDs or code
34
+ names: who gains what and why, the goal of this phase, and where it plugs into the existing
35
+ system. Leave out implementation detail: that belongs in Components & Boundaries. -->
36
+
37
+ [Who this is for and why, the goal of this phase, and where it fits in the existing system.]
31
38
 
32
39
  ## 2. System Overview (C4)
33
40
 
34
- <!-- The visual complement to §1 — lets a reader unfamiliar with this feature see the shape before
35
- reading prose. C4 is kept as the conceptual zoom model (Context → Container → Component) and
36
- rendered with Mermaid `flowchart` + `subgraph`. Each level heading is written
37
- "C4 Level N: ...", so no level label collides with a §3 component ID such as C3.
41
+ <!-- The visual complement to Architecture Approach — lets a reader unfamiliar with this feature see
42
+ the shape before reading prose. C4 is kept as the conceptual zoom model (Context → Container →
43
+ Component) and rendered with Mermaid `flowchart` + `subgraph`. Each level heading is written
44
+ "C4 Level N: ...", so no level label collides with a component ID such as C3.
38
45
 
39
46
  Do NOT use the C4Context / C4Container diagram types. They are experimental in Mermaid: no
40
47
  direction control, relationship labels collide with arrowheads, and rendering varies across
41
48
  viewers. `flowchart` is the most widely supported type and puts labels legibly on the arrow.
42
49
 
50
+ EVERY edge carries a label saying what flows over it (a request, a record, money, a file),
51
+ never a bare arrow.
52
+
43
53
  Skip a level with "N/A: [why]". For a trivial single-file change with no new external
44
54
  interaction, write "N/A: [why]" for the whole section. -->
45
55
 
@@ -100,8 +110,8 @@ flowchart LR
100
110
  ### C4 Level 3: Component
101
111
 
102
112
  <!-- Required when this feature touches 3+ components within a single container; otherwise write
103
- "N/A: covered by §3 Components & Boundaries". On a small change this diagram restates the §3
104
- table verbatim, and a diagram that adds nothing trains authors to tick boxes. -->
113
+ "N/A: covered by Components & Boundaries". On a small change this diagram restates the
114
+ Components & Boundaries table verbatim, and a diagram that adds nothing trains authors to tick boxes. -->
105
115
 
106
116
  [Internals of the container this feature changes — handlers, services, ports, adapters.]
107
117
 
@@ -117,7 +127,85 @@ flowchart TB
117
127
  C_B -->|"[persists]"| STORE
118
128
  ```
119
129
 
120
- ## 3. Components & Boundaries
130
+ [One closing sentence: what this feature decides versus where the data or money moves.]
131
+
132
+ ## 3. Concepts
133
+
134
+ <!-- Write the handful of nouns a reader must hold to follow the Journeys, in plain words: no
135
+ component IDs, no code names. One `flowchart` of how they relate (every edge labelled with the
136
+ relationship), then a glossary table. Leave out anything a journey does not use. Write
137
+ "N/A: [why]" for a design with no domain vocabulary worth defining. -->
138
+
139
+ ```mermaid
140
+ flowchart LR
141
+ TERM_A["[Concept A]"]
142
+ TERM_B["[Concept B]"]
143
+ TERM_C["[Concept C]"]
144
+
145
+ TERM_A -->|"[relationship, e.g. has many]"| TERM_B
146
+ TERM_B -->|"[relationship, e.g. is checked against]"| TERM_C
147
+ ```
148
+
149
+ | Term | Meaning |
150
+ |---|---|
151
+ | [Concept A] | [one plain sentence] |
152
+ | [Concept B] | [one plain sentence] |
153
+
154
+ ## 4. Journeys
155
+
156
+ <!-- One `### Journey N — <name>` per user or system journey, in the order a reader meets them. Each
157
+ carries one picture (a `flowchart` or a `sequenceDiagram`), a `stateDiagram-v2` for EVERY
158
+ stateful thing the journey creates, and a small rules table. Write in plain nouns: no component
159
+ IDs, no code names. Leave out internal calls that no actor sees. Write "N/A: [why]" for the
160
+ whole section when the design has no user or system journey (a pure library or refactor). -->
161
+
162
+ ### Journey 1 — [journey name]
163
+
164
+ [One sentence: who starts this journey and what it ends with.]
165
+
166
+ ```mermaid
167
+ flowchart LR
168
+ START["[trigger]"] -->|"[what flows]"| CHECK{"[decision]"}
169
+ CHECK -->|"[pass: what flows]"| DONE["[outcome]"]
170
+ CHECK -->|"[fail: what flows]"| STOP["[alternate outcome]"]
171
+ ```
172
+
173
+ ```mermaid
174
+ stateDiagram-v2
175
+ [*] --> Created
176
+ Created --> Active: [guarded transition]
177
+ Active --> Ended: [guarded transition]
178
+ Ended --> [*]
179
+ ```
180
+
181
+ | Rule | Why it holds |
182
+ |---|---|
183
+ | [a rule this journey enforces] | [the reason, or what breaks without it] |
184
+
185
+ ### Worked example
186
+
187
+ <!-- Real numbers that make the rules checkable: one case that passes and one that does not, then the
188
+ result. Close with one caveat sentence saying what is not guaranteed. Leave out hypothetical
189
+ values you cannot compute. -->
190
+
191
+ | Candidate | Eligible? | Why | Result |
192
+ |---|---|---|---|
193
+ | [case that passes, with a real figure] | yes | [which rule it meets] | [computed outcome] |
194
+ | [case that fails, with a real figure] | no | [which rule it breaks] | [computed outcome] |
195
+
196
+ [Caveat: what is shown but not guaranteed, and where it is re-checked.]
197
+
198
+ ### Eligibility / decision inputs
199
+
200
+ <!-- A TABLE, never a mindmap: DIAGRAM_GUIDE.md excludes `mindmap`. One row per group of inputs the
201
+ decision reads; say what the first version reads and what comes later. -->
202
+
203
+ | Input group | What is read | Read in this version? |
204
+ |---|---|---|
205
+ | [group, e.g. the user] | [the facts checked] | yes |
206
+ | [group, e.g. the limits] | [the facts checked] | later: [why] |
207
+
208
+ ## 5. Components & Boundaries
121
209
 
122
210
  | ID | Component | Kind | Serves | Status |
123
211
  |---|---|---|---|---|
@@ -134,7 +222,7 @@ flowchart TB
134
222
  - **Does not own:** [what a reader could expect it to hold but another component does].
135
223
  - **Contracts:** [the FR-### and IC-### identifiers it serves].
136
224
 
137
- ## 4. API / Interface Contracts
225
+ ## 6. API / Interface Contracts
138
226
 
139
227
  <!-- Endpoints, CLI verb signatures, and repository/service interfaces that anchor implementation
140
228
  live in ./specs.md §1 Interface Contracts, not here — each as one ID-bearing IC-### entry so
@@ -142,7 +230,7 @@ flowchart TB
142
230
  this feature genuinely introduces no interface contracts; otherwise leave a one-line pointer,
143
231
  e.g. "See ./specs.md §1." -->
144
232
 
145
- ## 5. Data Model
233
+ ## 7. Data Model
146
234
 
147
235
  The data-model shape is governed by `./data-model.md` §1.
148
236
 
@@ -150,7 +238,7 @@ The data-model shape is governed by `./data-model.md` §1.
150
238
  ./data-model.md §1 Data Model, not here. Write `N/A: [why]` if this feature introduces no data
151
239
  model or UX changes; otherwise leave a one-line pointer, e.g. "See ./data-model.md §1." -->
152
240
 
153
- ## 6. Sequence / Data Flow
241
+ ## 8. Sequence / Data Flow
154
242
 
155
243
  The data-flow shape is governed by `./data-model.md` §2.
156
244
 
@@ -159,7 +247,7 @@ The data-flow shape is governed by `./data-model.md` §2.
159
247
  no non-trivial interaction sequence; otherwise leave a one-line pointer, e.g.
160
248
  "See ./data-model.md §2." -->
161
249
 
162
- ## 7. Design Risks & Alternatives Considered
250
+ ## 9. Design Risks & Alternatives Considered
163
251
 
164
252
  | ID | Risk / Alternative | Disposition | Status |
165
253
  |---|---|---|---|
@@ -169,7 +257,16 @@ The data-flow shape is governed by `./data-model.md` §2.
169
257
 
170
258
  - **R1** → [why this shape was chosen, or why the risk is accepted and what it costs if it lands].
171
259
 
172
- ## 8. Assumptions
260
+ ## 10. Open Points for Review
261
+
262
+ <!-- The questions this design could not answer, ending the design instead of a bare risk list. One
263
+ bold-led question per bullet, followed by the reasoning already known (a figure, a trade-off, the
264
+ option you lean to). Lead each with the question in bold; do not number them with an ID. Write
265
+ "None — no open points." when every question was settled. -->
266
+
267
+ - **[A question a reviewer must answer?]** [The reasoning already known and the option leaned to.]
268
+
269
+ ## 11. Assumptions
173
270
 
174
271
  <!-- With a decision register, a row from a "Decide for me" pick cites its DEC-### in Basis: see ARTIFACT_FORMAT.md §12. -->
175
272
 
@@ -185,7 +282,7 @@ The data-flow shape is governed by `./data-model.md` §2.
185
282
  and detail if every design-level ambiguity was resolved by a direct answer rather than the
186
283
  defer escape hatch during /do-design's clarification loop. -->
187
284
 
188
- ## 9. History
285
+ ## 12. History
189
286
 
190
287
  <!-- Superseded design decisions move here; the index row above stays as a tombstone with
191
288
  `Superseded → <ref>`. -->
@@ -15,14 +15,15 @@
15
15
 
16
16
  ## 2. Constitution Check (GATE)
17
17
 
18
- > Verify against both constitution tiers, tier-2 taking precedence — you reconcile them yourself;
19
- > nothing merges them for you. Any violation = STOP and revise the approach before continuing.
20
- > (Advisory by default; not the hard hook gate.)
18
+ > One row per principle of both constitution tiers; a tier-2 ID replaces the base one. `Tier` is the
19
+ > constitution's (MUST unless it says SHOULD), `Result` is PASS or FAIL. A MUST marked FAIL, or a MUST
20
+ > principle with no row, refuses the planning stage's exit; a SHOULD FAIL is advisory. Revise the
21
+ > plan, or a person amends the constitution with `/do-constitution`; there is no waiver.
21
22
 
22
- - [ ] Complies with [PRINCIPLE]: [how]
23
- - [ ] No violation of [PRINCIPLE]: [how]
24
-
25
- **Result:** PASS / FAIL — [note]
23
+ | Principle | Tier | Result | How |
24
+ |---|---|---|---|
25
+ | P1 | MUST | PASS | [how the plan complies] |
26
+ | [ID] | [MUST/SHOULD] | [PASS/FAIL] | [how] |
26
27
 
27
28
  ## 3. Research & Decisions
28
29
 
@@ -126,12 +127,12 @@ flowchart LR
126
127
 
127
128
  ### Phase A — [name]
128
129
 
129
- - [ ] A.1 [P] [US1] [task] — owner: [agent]; files: [paths]; depends-on: [service, optional]; external-contract: [doc path, optional]
130
- - [ ] A.2 [US1] [task, depends A.1] — owner: [agent]; files: [paths]; depends-on: [service, optional]; external-contract: [doc path, optional]
130
+ - [ ] A.1 [P] [US1] [task] — acceptance: [FR-/NFR-/IC- ids, comma-separated]; owner: [agent]; files: [paths]; depends-on: [service, optional]; external-contract: [doc path, optional]
131
+ - [ ] A.2 [US1] [task, depends A.1] — acceptance: [FR-/NFR-/IC- ids, comma-separated]; owner: [agent]; files: [paths]; depends-on: [service, optional]; external-contract: [doc path, optional]
131
132
 
132
133
  ### Phase B — [name]
133
134
 
134
- - [ ] B.1 [P] [US2] [task] — owner: [agent]; files: [paths]; depends-on: [service, optional]; external-contract: [doc path, optional]
135
+ - [ ] B.1 [P] [US2] [task] — acceptance: [FR-/NFR-/IC- ids, comma-separated]; owner: [agent]; files: [paths]; depends-on: [service, optional]; external-contract: [doc path, optional]
135
136
 
136
137
  ### Checkpoints
137
138
 
@@ -4,12 +4,12 @@
4
4
 
5
5
  > The one recurring shape every `intention/*-question.md`, `design/*-question.md` and
6
6
  > `plan/*-question.md` file uses: the Socratic dialogue transcript for a single round of a chain
7
- > stage's `AskUserQuestion` loop. This is a dialogue transcript, not an ID-bearing normative
7
+ > stage's question-tool loop. This is a dialogue transcript, not an ID-bearing normative
8
8
  > artifact — out of `references/ARTIFACT_FORMAT.md`'s index/detail scope, the same way that
9
9
  > reference's own intro already carves out `state.md`.
10
10
  >
11
11
  > Not to be confused with the differently-named `{stage}-questions.md` convention in
12
- > `rules/RULE_04_QUESTIONS.md`: that file is a *request for input*, written for a
12
+ > RULE_04 of `rules/RULES.md`: that file is a *request for input*, written for a
13
13
  > non-interactive harness and awaiting a `[Answer]:` tag before the run can continue. This one is
14
14
  > the opposite direction — a completed *record* of a round that already happened, filed after the
15
15
  > user answered, never awaiting anything.
@@ -40,6 +40,18 @@
40
40
 
41
41
  **Answer:** [verbatim]
42
42
 
43
+ ## Coverage
44
+
45
+ <!-- One line per requirement area as it stands after this round, each Clear, Partial, Missing or
46
+ Deferred (spec-kit clarify's coverage map). Missing or Partial areas are the next round's
47
+ questions, or the stated gaps when the loop stops; Deferred names who deferred it. -->
48
+ - Problem and outcome: [Clear|Partial|Missing|Deferred]
49
+ - Users and stories: [Clear|Partial|Missing|Deferred]
50
+ - Functional scope: [Clear|Partial|Missing|Deferred]
51
+ - Non-functional: [Clear|Partial|Missing|Deferred]
52
+ - Out of scope: [Clear|Partial|Missing|Deferred]
53
+ - Acceptance: [Clear|Partial|Missing|Deferred]
54
+
43
55
  <!-- Repeat one "## Question N" block per question actually asked this round — omit blocks for
44
56
  questions that were not asked rather than leaving placeholders behind.
45
57
 
@@ -5,7 +5,7 @@
5
5
  **Intent:** [agent-docs/intent/<name>.md, or "none"]
6
6
 
7
7
  > WHAT and WHY only — no tech or implementation detail. Zero unresolved clarification markers at
8
- > hand-off — every ambiguity is resolved via `AskUserQuestion` before this file is written;
8
+ > hand-off — every ambiguity is resolved via the question tool before this file is written;
9
9
  > deferred answers become assumptions in §8.
10
10
  >
11
11
  > Structure follows `references/ARTIFACT_FORMAT.md`: indexed sections carry a table above full
@@ -13,5 +13,7 @@ delivery sequence, pausing where human judgment matters:
13
13
  5. Execute `/do-execute-plan --scope next` repeatedly until the plan's checklist is complete.
14
14
  6. Run `/do-test`, then `/do-code-review`, and report both results before proposing any commit.
15
15
 
16
+ Unattended (no person watching), stop at each pause above and report; silence is never approval.
17
+
16
18
  If the user comments directly inside any specification file, re-read it, apply the requested
17
19
  changes, and ask for approval again before moving on.
@@ -0,0 +1,14 @@
1
+ {
2
+ "schema": "doflow-worker-checks-v1",
3
+ "harness": "antigravity",
4
+ "binary": "agy",
5
+ "version": { "argv": ["--version"], "expect": "^\\d+\\.\\d+\\.\\d+" },
6
+ "checks": [
7
+ {
8
+ "id": "help-model",
9
+ "argv": ["--help"],
10
+ "expect": ["^\\s+--model\\s"],
11
+ "establishes": ["model"]
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "binary": "codex",
3
+ "checks": [
4
+ {
5
+ "argv": [
6
+ "exec",
7
+ "--help"
8
+ ],
9
+ "establishes": [
10
+ "runnableProbe",
11
+ "oneShot"
12
+ ],
13
+ "exit": 0,
14
+ "expect": [
15
+ "^Usage: codex exec \\[OPTIONS\\] \\[PROMPT\\]",
16
+ "instructions are read from stdin"
17
+ ],
18
+ "id": "exec-one-shot",
19
+ "matched": [
20
+ "Usage: codex exec [OPTIONS] [PROMPT]",
21
+ " instructions are read from stdin. If stdin is piped and a prompt is also provided, stdin"
22
+ ],
23
+ "result": "pass"
24
+ },
25
+ {
26
+ "argv": [
27
+ "exec",
28
+ "--help"
29
+ ],
30
+ "establishes": [
31
+ "structuredOutput"
32
+ ],
33
+ "exit": 0,
34
+ "expect": [
35
+ "^\\s+--json$",
36
+ "Print events to stdout as JSONL",
37
+ "-o, --output-last-message"
38
+ ],
39
+ "id": "exec-json",
40
+ "matched": [
41
+ " --json",
42
+ " Print events to stdout as JSONL",
43
+ " -o, --output-last-message <FILE>"
44
+ ],
45
+ "result": "pass"
46
+ },
47
+ {
48
+ "argv": [
49
+ "exec",
50
+ "--help"
51
+ ],
52
+ "establishes": [
53
+ "readOnly",
54
+ "isolatedEdit"
55
+ ],
56
+ "exit": 0,
57
+ "expect": [
58
+ "-s, --sandbox <SANDBOX_MODE>",
59
+ "read-only, workspace-write"
60
+ ],
61
+ "id": "exec-sandbox",
62
+ "matched": [
63
+ " -s, --sandbox <SANDBOX_MODE>",
64
+ " [possible values: read-only, workspace-write, danger-full-access]"
65
+ ],
66
+ "result": "pass"
67
+ },
68
+ {
69
+ "argv": [
70
+ "features",
71
+ "list",
72
+ "--disable",
73
+ "multi_agent",
74
+ "--disable",
75
+ "multi_agent_v2"
76
+ ],
77
+ "establishes": [
78
+ "spawnDenial"
79
+ ],
80
+ "exit": 0,
81
+ "expect": [
82
+ "^multi_agent\\s+\\S+\\s+false$",
83
+ "^multi_agent_v2\\s+\\S+\\s+false$"
84
+ ],
85
+ "id": "spawn-denial",
86
+ "matched": [
87
+ "multi_agent stable false",
88
+ "multi_agent_v2 stable false"
89
+ ],
90
+ "result": "pass"
91
+ }
92
+ ],
93
+ "cliVersion": "codex-cli 0.163.0",
94
+ "establishes": [
95
+ "isolatedEdit",
96
+ "oneShot",
97
+ "readOnly",
98
+ "runnableProbe",
99
+ "spawnDenial",
100
+ "structuredOutput"
101
+ ],
102
+ "harness": "codex",
103
+ "kind": "cli-check",
104
+ "recordedAt": "2026-10-18T01:08:16.330Z",
105
+ "run": null,
106
+ "schema": "doflow-worker-evidence-v1"
107
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "binary": "codex",
3
+ "checks": [],
4
+ "cliVersion": "codex-cli 0.163.0",
5
+ "establishes": [
6
+ "oneShot",
7
+ "structuredOutput",
8
+ "spawnDenial",
9
+ "isolatedEdit"
10
+ ],
11
+ "harness": "codex",
12
+ "kind": "live-run",
13
+ "recordedAt": "2026-10-18T03:36:27.965Z",
14
+ "run": {
15
+ "argvShape": [
16
+ "exec",
17
+ "-s",
18
+ "workspace-write",
19
+ "--disable",
20
+ "multi_agent",
21
+ "--disable",
22
+ "multi_agent_v2",
23
+ "--json",
24
+ "-o",
25
+ "<last-message-file>",
26
+ "--ephemeral",
27
+ "-"
28
+ ],
29
+ "edit": true,
30
+ "exit": 0,
31
+ "isolation": {
32
+ "attemptHead": {
33
+ "after": {
34
+ "object": "28bffdd57fb3d737fea5e478dfdc6a40b5d7ad6a",
35
+ "ref": "refs/heads/doflow-attempt/109-d1-edit/d-009378735f3b"
36
+ },
37
+ "before": {
38
+ "object": "28bffdd57fb3d737fea5e478dfdc6a40b5d7ad6a",
39
+ "ref": "refs/heads/doflow-attempt/109-d1-edit/d-009378735f3b"
40
+ }
41
+ },
42
+ "callerHead": {
43
+ "after": {
44
+ "object": "28bffdd57fb3d737fea5e478dfdc6a40b5d7ad6a",
45
+ "ref": "refs/heads/main"
46
+ },
47
+ "before": {
48
+ "object": "28bffdd57fb3d737fea5e478dfdc6a40b5d7ad6a",
49
+ "ref": "refs/heads/main"
50
+ }
51
+ },
52
+ "changes": [],
53
+ "reason": null,
54
+ "refsChanged": false,
55
+ "status": "clean"
56
+ },
57
+ "parser": "codex-exec-json-v1",
58
+ "readOnly": null,
59
+ "report": {
60
+ "deniedCount": 0,
61
+ "reason": null,
62
+ "status": "success",
63
+ "usage": {
64
+ "tokens": 181978
65
+ }
66
+ },
67
+ "resultOffered": true,
68
+ "runId": "w-821933d703be",
69
+ "stdoutBytes": 5891,
70
+ "withheld": []
71
+ },
72
+ "schema": "doflow-worker-evidence-v1"
73
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "binary": "codex",
3
+ "checks": [],
4
+ "cliVersion": "codex-cli 0.163.0",
5
+ "establishes": [
6
+ "oneShot",
7
+ "structuredOutput",
8
+ "spawnDenial",
9
+ "readOnly"
10
+ ],
11
+ "harness": "codex",
12
+ "kind": "live-run",
13
+ "recordedAt": "2026-10-18T03:35:53.729Z",
14
+ "run": {
15
+ "argvShape": [
16
+ "exec",
17
+ "-s",
18
+ "read-only",
19
+ "--disable",
20
+ "multi_agent",
21
+ "--disable",
22
+ "multi_agent_v2",
23
+ "--json",
24
+ "-o",
25
+ "<last-message-file>",
26
+ "--ephemeral",
27
+ "-"
28
+ ],
29
+ "edit": false,
30
+ "exit": 0,
31
+ "isolation": null,
32
+ "parser": "codex-exec-json-v1",
33
+ "readOnly": {
34
+ "changes": [],
35
+ "head": {
36
+ "after": {
37
+ "object": "28bffdd57fb3d737fea5e478dfdc6a40b5d7ad6a",
38
+ "ref": "refs/heads/d1-read-only"
39
+ },
40
+ "before": {
41
+ "object": "28bffdd57fb3d737fea5e478dfdc6a40b5d7ad6a",
42
+ "ref": "refs/heads/d1-read-only"
43
+ }
44
+ },
45
+ "refsChanged": false,
46
+ "status": "clean"
47
+ },
48
+ "report": {
49
+ "deniedCount": 0,
50
+ "reason": null,
51
+ "status": "success",
52
+ "usage": {
53
+ "tokens": 63066
54
+ }
55
+ },
56
+ "resultOffered": true,
57
+ "runId": "w-067a85a5cc2d",
58
+ "stdoutBytes": 2203,
59
+ "withheld": []
60
+ },
61
+ "schema": "doflow-worker-evidence-v1"
62
+ }