@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
@@ -21,11 +21,10 @@ const antigravityAdapter = require('./adapters/antigravity');
21
21
 
22
22
  // Tool-name classification for PreToolUse, generalized to the union every Phase A canonical
23
23
  // script's own case statement already recognizes (session-context.sh/pre-implementation-gate.sh/
24
- // mcp-tool-guard.sh/pre-bash-guard.sh headers) rather than only the two harnesses this runner
24
+ // mcp-tool-guard.sh headers) rather than only the two harnesses this runner
25
25
  // drives — kept in sync with those scripts, not redefined independently of them.
26
26
  const MCP_TOOL_PATTERN = /^mcp_/i;
27
27
  const EDIT_TOOL_PATTERN = /^(replace_file_content|write_to_file|multi_replace_file_content|edit_file|write_file|create_file|replace_file|replace|Edit|Write|MultiEdit|apply_patch)$/i;
28
- const COMMAND_TOOL_PATTERN = /^(run_command|run_shell_command|Bash|bash)$/i;
29
28
 
30
29
  // ── Failure capture (feature 046: IC-010, IC-011, IC-014, IC-015, IC-018) ─────────────────────────
31
30
  //
@@ -70,19 +69,58 @@ function isProgrammingError(error) {
70
69
  }
71
70
  }
72
71
 
73
- /** IC-011: `$XDG_CONFIG_HOME/doflow/failures` when absolute, else `$HOME/.config/doflow/failures` when HOME is absolute, else null. */
74
- function failureHome(env) {
72
+ // The config home and the lexical failure.capture rule, copied from src/runtime/config-home.js and
73
+ // src/runtime/settings/lexical.js (086 IC-003, IC-004); the marked text is the same in every reader.
74
+ // BEGIN doflow-config-home v1 (rule: src/runtime/config-home.js; checked by test/guards/settings.test.js)
75
+ function doflowConfigHome(env) {
75
76
  const xdg = env.XDG_CONFIG_HOME;
76
- if (typeof xdg === 'string' && xdg !== '') return path.isAbsolute(xdg) ? path.join(xdg, 'doflow', 'failures') : null;
77
+ if (typeof xdg === 'string' && xdg !== '' && path.isAbsolute(xdg)) return path.join(xdg, 'doflow');
77
78
  const home = env.HOME;
78
- return typeof home === 'string' && path.isAbsolute(home) ? path.join(home, '.config', 'doflow', 'failures') : null;
79
+ if (typeof home === 'string' && home !== '' && path.isAbsolute(home)) return path.join(home, '.config', 'doflow');
80
+ return null;
81
+ }
82
+ // END doflow-config-home v1
83
+
84
+ // BEGIN doflow-settings-lexical v1 (rule: src/runtime/settings/lexical.js; checked by test/guards/settings.test.js)
85
+ const WS = '[ \\t\\n\\v\\f\\r]';
86
+ const CAPTURE_RE = new RegExp(`"failure\\.capture"${WS}*:${WS}*("[^"]*"|[^,}" \\t\\n\\v\\f\\r]*)`, 'g');
87
+ function lexicalCapture(text) {
88
+ let out = null;
89
+ for (const m of text.split('\0', 1)[0].matchAll(CAPTURE_RE)) out = m[1] === '"on"' ? (out ?? 'on') : 'off';
90
+ return out;
91
+ }
92
+ function readLexicalCapture(file) {
93
+ try {
94
+ if (!fs.statSync(file).isFile()) return 'off';
95
+ } catch (error) {
96
+ const code = error && error.code;
97
+ if (code === 'ENOENT' || code === 'ELOOP' || code === 'ENOTDIR') return null;
98
+ if (code === 'EACCES') {
99
+ try {
100
+ const parent = path.dirname(file);
101
+ if (!fs.statSync(parent).isDirectory()) return null;
102
+ try { fs.accessSync(parent, fs.constants.X_OK); return null; }
103
+ catch (accessError) { return accessError && accessError.code === 'EACCES' ? 'off' : null; }
104
+ } catch { return null; }
105
+ }
106
+ return 'off';
107
+ }
108
+ try { return lexicalCapture(fs.readFileSync(file, 'latin1')); } catch { return 'off'; }
79
109
  }
110
+ // END doflow-settings-lexical v1
80
111
 
81
- /** IC-014: the environment first, then one stat of the sentinel file. */
112
+ /** IC-011: `<config home>/failures`, or null with no config home. */
113
+ function failureHome(env) {
114
+ const dir = doflowConfigHome(env);
115
+ return dir === null ? null : path.join(dir, 'failures');
116
+ }
117
+
118
+ /** IC-014, IC-005: the environment first, then one stat of the sentinel file, then settings.json beside the failure home. */
82
119
  function captureIsOff(home, env) {
83
120
  const setting = env.DOFLOW_FAILURE_CAPTURE;
84
121
  if (typeof setting === 'string' && CAPTURE_OFF_VALUES.includes(setting.trim().toLowerCase())) return true;
85
- try { return fs.statSync(path.join(home, 'off')).isFile(); } catch { return false; }
122
+ try { if (fs.statSync(path.join(home, 'off')).isFile()) return true; } catch { /* no sentinel */ }
123
+ return readLexicalCapture(path.join(path.dirname(home), 'settings.json')) === 'off';
86
124
  }
87
125
 
88
126
  /** The first stack frame inside this hooks folder as `<path relative to it>:<function>`, no line number. */
@@ -324,21 +362,22 @@ function resolveProjectRoot(workspacePaths) {
324
362
  */
325
363
  function delegateToPolicy(projectRoot, agent, event, policyId, nativeRaw) {
326
364
  const bridgeSh = path.join(__dirname, 'bridge', 'bridge.sh');
365
+ const profile = process.env.DOFLOW_FAULT_PROFILE || 'compat-1';
366
+ const effectiveProfile = profile === 'compat-1' || profile === 'strict-1' ? profile : 'compat-1';
367
+ if (profile !== effectiveProfile) captureHookFailure({ command: policyId, kind: 'fault-profile-unknown' });
368
+ const blockingPolicy = ['pre-implementation-gate', 'mcp-tool-guard', 'stop-check'].includes(policyId);
369
+ const faultEffect = effectiveProfile === 'strict-1' && blockingPolicy ? 'block' : 'proceed';
327
370
  if (!fs.existsSync(bridgeSh)) {
328
371
  captureHookFailure({ command: policyId, kind: 'bridge-missing' });
329
- if (policyId === 'stop-check') {
330
- return { v: 1, harness: agent, event, policy: policyId, policyVersion: 0, outcome: 'unsupported', code: 'bridge-missing', effect: 'proceed' };
372
+ // D1: a missing bridge allows with a recorded warning; only strict-1, a person's opt-in, blocks a tool call.
373
+ if (policyId === 'stop-check' || faultEffect === 'proceed') {
374
+ return { v: 1, harness: agent, event, policy: policyId, policyVersion: 0, outcome: 'unsupported', code: 'bridge-missing', faultProfile: effectiveProfile, effect: 'proceed' };
331
375
  }
332
376
  return {
333
377
  v: 1, harness: agent, event, policy: policyId, policyVersion: 0,
334
- outcome: 'deny', code: 'bridge-missing', reason: '[doflow] shared hooks lack the bridge; run: doflow update -t antigravity', effect: 'block',
378
+ outcome: 'deny', code: 'bridge-missing', reason: '[doflow] shared hooks lack the bridge; run: doflow update -t antigravity', faultProfile: effectiveProfile, effect: 'block',
335
379
  };
336
380
  }
337
- const profile = process.env.DOFLOW_FAULT_PROFILE || 'compat-1';
338
- const effectiveProfile = profile === 'compat-1' || profile === 'strict-1' ? profile : 'compat-1';
339
- if (profile !== effectiveProfile) captureHookFailure({ command: policyId, kind: 'fault-profile-unknown' });
340
- const blockingPolicy = ['pre-implementation-gate', 'pre-bash-guard', 'mcp-tool-guard', 'stop-check'].includes(policyId);
341
- const faultEffect = effectiveProfile === 'strict-1' && blockingPolicy ? 'block' : 'proceed';
342
381
  const faultDecision = (code) => ({
343
382
  v: 1, harness: agent, event, policy: policyId, policyVersion: 0,
344
383
  outcome: 'error', code, reason: code, faultProfile: effectiveProfile, effect: faultEffect,
@@ -356,9 +395,9 @@ function delegateToPolicy(projectRoot, agent, event, policyId, nativeRaw) {
356
395
  captureHookFailure({ command: policyId, kind: 'bridge-timeout' });
357
396
  return faultDecision('bridge-timeout');
358
397
  }
359
- // A bridge that exits before spawnSync finishes writing its stdin reports EPIPE although it ran to
398
+ // A bridge that exits before spawnSync finishes writing its stdin reports EPIPE (EOF on Windows) although it ran to
360
399
  // completion; its exit status and answer are judged below, like any other run.
361
- const completed = result.error && result.error.code === 'EPIPE' && result.status !== null;
400
+ const completed = result.error && (result.error.code === 'EPIPE' || result.error.code === 'EOF') && result.status !== null;
362
401
  if ((result.error && !completed) || result.status === null) {
363
402
  if (result.signal && !['SIGTERM', 'SIGINT', 'SIGPIPE'].includes(result.signal)) {
364
403
  captureHookFailure({ command: policyId, kind: `bridge-exec-fault:${result.signal}` });
@@ -376,7 +415,6 @@ function delegateToPolicy(projectRoot, agent, event, policyId, nativeRaw) {
376
415
  function classifyPreToolUsePolicy(toolName) {
377
416
  if (MCP_TOOL_PATTERN.test(toolName)) return 'mcp-tool-guard.sh';
378
417
  if (EDIT_TOOL_PATTERN.test(toolName)) return 'pre-implementation-gate.sh';
379
- if (COMMAND_TOOL_PATTERN.test(toolName)) return 'pre-bash-guard.sh';
380
418
  return null;
381
419
  }
382
420
 
@@ -392,7 +430,7 @@ function evaluatePreToolUsePolicy(payload, nativeRaw, projectRoot, agent) {
392
430
  * decision. Every event this runner drives maps to at most one Phase A script:
393
431
  * SessionStart -> session-context.sh (side-effect only; the script's own contract says it never
394
432
  * denies, so its exit code is not propagated as a decision)
395
- * PreToolUse -> mcp-tool-guard.sh | pre-implementation-gate.sh | pre-bash-guard.sh, chosen by
433
+ * PreToolUse -> mcp-tool-guard.sh | pre-implementation-gate.sh, chosen by
396
434
  * the tool-name classification above
397
435
  * Stop -> stop-check.sh
398
436
  * PostToolUse, PreInvocation -> no Phase A policy owns these yet (post-edit-lint.sh's collector
@@ -1,5 +1,5 @@
1
1
  #!/bin/sh
2
- # DoFlow locator shim — projected to all eight harnesses by the `locator.doflow` asset in
2
+ # DoFlow locator shim — projected to every harness by the `locator.doflow` asset in
3
3
  # core/registry/assets.json (design.md §3 C2, §4.1).
4
4
  #
5
5
  # Its ONLY job is to find the single dispatcher (at $REL below, under the config dir) and exec it
@@ -40,8 +40,7 @@
40
40
 
41
41
  # The dispatcher ships inside the `scripts.doflow` asset (`core/shared/scripts`), so it sits at
42
42
  # `scripts/doflow/bin/doflow-run` under the shared tree. Every harness projects that tree to its
43
- # scope root (`<project>/.doflow` or `$HOME/.doflow`), so this one path holds for all eight,
44
- # Antigravity at global scope excepted (it projects no runtime there).
43
+ # scope root (`<project>/.doflow` or `$HOME/.doflow`), so this one path holds for every harness.
45
44
  REL='scripts/doflow/bin/doflow-run'
46
45
  dispatcher=''
47
46
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "timeoutMs": 5000,
3
+ "timeoutMs": 15000,
4
4
  "probeTimeoutMs": 1500,
5
5
  "doctorBudgetMs": 6000,
6
6
  "limits": {
@@ -72,8 +72,8 @@
72
72
  "single": "One frontier reviewer, different from the author",
73
73
  "deep": "Two independent frontier reviewers with different lenses"
74
74
  },
75
- "staticFrom": "single",
76
- "askedBy": []
75
+ "staticFrom": "the IC-002 rule: single only for a light-path change at a singleRisks risk, else deep; the gate-b floor can raise seats",
76
+ "askedBy": ["review"]
77
77
  },
78
78
  {
79
79
  "id": "mcp-need",
@@ -6,17 +6,12 @@
6
6
  "kind": "guidance",
7
7
  "source": "core/shared/guidance/pointers/claude-gemini.md",
8
8
  "appliesTo": [
9
- "claude",
10
- "gemini"
9
+ "claude"
11
10
  ],
12
11
  "projection": {
13
12
  "claude": {
14
13
  "renderer": "claude-instructions",
15
14
  "capability": "instructions"
16
- },
17
- "gemini": {
18
- "renderer": "gemini-instructions",
19
- "capability": "instructions"
20
15
  }
21
16
  },
22
17
  "ownership": "managed-file-section"
@@ -63,7 +58,6 @@
63
58
  "appliesTo": [
64
59
  "claude",
65
60
  "codex",
66
- "gemini",
67
61
  "kiro",
68
62
  "antigravity",
69
63
  "opencode",
@@ -79,13 +73,10 @@
79
73
  "renderer": "copy-tree",
80
74
  "capability": "instructions"
81
75
  },
82
- "gemini": {
83
- "renderer": "copy-tree",
84
- "capability": "instructions"
85
- },
86
76
  "kiro": {
87
77
  "renderer": "copy-tree",
88
- "capability": "instructions"
78
+ "capability": "instructions",
79
+ "select": "guidance-manifest"
89
80
  },
90
81
  "antigravity": {
91
82
  "renderer": "copy-tree",
@@ -108,7 +99,6 @@
108
99
  "nativeDir": {
109
100
  "claude": "../.doflow/guidance",
110
101
  "codex": "../.doflow/guidance",
111
- "gemini": "../.doflow/guidance",
112
102
  "kiro": "steering",
113
103
  "antigravity": "../.doflow/guidance",
114
104
  "opencode": "../.doflow/guidance",
@@ -141,7 +131,6 @@
141
131
  "appliesTo": [
142
132
  "claude",
143
133
  "codex",
144
- "gemini",
145
134
  "opencode",
146
135
  "pi",
147
136
  "copilot",
@@ -155,38 +144,39 @@
155
144
  },
156
145
  "codex": {
157
146
  "renderer": "copy-tree",
158
- "capability": "skills"
159
- },
160
- "gemini": {
161
- "renderer": "copy-tree",
162
- "capability": "skills"
147
+ "capability": "skills",
148
+ "transform": "skill-frontmatter-codex"
163
149
  },
164
150
  "opencode": {
165
151
  "renderer": "copy-tree",
166
- "capability": "skills"
152
+ "capability": "skills",
153
+ "transform": "skill-frontmatter-opencode"
167
154
  },
168
155
  "pi": {
169
156
  "renderer": "copy-tree",
170
- "capability": "skills"
157
+ "capability": "skills",
158
+ "transform": "skill-frontmatter-pi"
171
159
  },
172
160
  "copilot": {
173
161
  "renderer": "copy-tree",
174
- "capability": "skills"
162
+ "capability": "skills",
163
+ "transform": "skill-frontmatter-copilot"
175
164
  },
176
165
  "kiro": {
177
166
  "renderer": "copy-tree",
178
- "capability": "skills"
167
+ "capability": "skills",
168
+ "transform": "skill-frontmatter-kiro"
179
169
  },
180
170
  "antigravity": {
181
171
  "renderer": "copy-tree",
182
- "capability": "skills"
172
+ "capability": "skills",
173
+ "transform": "skill-frontmatter-antigravity"
183
174
  }
184
175
  },
185
176
  "ownership": "managed-tree",
186
177
  "nativeDir": {
187
178
  "claude": "skills",
188
179
  "codex": "../.agents/skills",
189
- "gemini": "skills",
190
180
  "opencode": "skills",
191
181
  "pi": "skills",
192
182
  "copilot": "skills",
@@ -201,7 +191,6 @@
201
191
  "appliesTo": [
202
192
  "claude",
203
193
  "codex",
204
- "gemini",
205
194
  "copilot",
206
195
  "kiro",
207
196
  "antigravity",
@@ -210,20 +199,18 @@
210
199
  "projection": {
211
200
  "claude": {
212
201
  "renderer": "copy-tree",
213
- "capability": "agents"
202
+ "capability": "agents",
203
+ "transform": "claude-agents"
214
204
  },
215
205
  "codex": {
216
- "renderer": "copy-tree",
217
- "capability": "agents"
218
- },
219
- "gemini": {
220
206
  "renderer": "copy-tree",
221
207
  "capability": "agents",
222
- "transform": "gemini-agents"
208
+ "transform": "codex-agents"
223
209
  },
224
210
  "copilot": {
225
211
  "renderer": "copilot-agents",
226
- "capability": "agents"
212
+ "capability": "agents",
213
+ "transform": "copilot-agents"
227
214
  },
228
215
  "kiro": {
229
216
  "renderer": "kiro-agents",
@@ -234,7 +221,8 @@
234
221
  "antigravity": {
235
222
  "renderer": "copy-tree",
236
223
  "capability": "agents",
237
- "layout": "dir-per-file:agent.md"
224
+ "layout": "dir-per-file:agent.md",
225
+ "transform": "antigravity-agents"
238
226
  },
239
227
  "opencode": {
240
228
  "renderer": "opencode-agents",
@@ -246,7 +234,6 @@
246
234
  "nativeDir": {
247
235
  "claude": "agents",
248
236
  "codex": "agents",
249
- "gemini": "../.gemini/agents",
250
237
  "copilot": "agents",
251
238
  "kiro": "agents",
252
239
  "antigravity": ".agents/agents",
@@ -259,8 +246,7 @@
259
246
  "source": "core/shared/templates",
260
247
  "appliesTo": [
261
248
  "claude",
262
- "codex",
263
- "gemini"
249
+ "codex"
264
250
  ],
265
251
  "projection": {
266
252
  "claude": {
@@ -270,17 +256,12 @@
270
256
  "codex": {
271
257
  "renderer": "copy-tree",
272
258
  "capability": "templates"
273
- },
274
- "gemini": {
275
- "renderer": "copy-tree",
276
- "capability": "templates"
277
259
  }
278
260
  },
279
261
  "ownership": "managed-tree",
280
262
  "nativeDir": {
281
263
  "claude": "../.doflow/templates",
282
- "codex": "../.doflow/templates",
283
- "gemini": "../.doflow/templates"
264
+ "codex": "../.doflow/templates"
284
265
  }
285
266
  },
286
267
  {
@@ -290,7 +271,6 @@
290
271
  "appliesTo": [
291
272
  "claude",
292
273
  "codex",
293
- "gemini",
294
274
  "opencode",
295
275
  "pi",
296
276
  "copilot",
@@ -306,10 +286,6 @@
306
286
  "renderer": "copy-tree",
307
287
  "capability": "scripts"
308
288
  },
309
- "gemini": {
310
- "renderer": "copy-tree",
311
- "capability": "scripts"
312
- },
313
289
  "opencode": {
314
290
  "renderer": "copy-tree",
315
291
  "capability": "scripts"
@@ -335,7 +311,6 @@
335
311
  "nativeDir": {
336
312
  "claude": "../.doflow/scripts",
337
313
  "codex": "../.doflow/scripts",
338
- "gemini": "../.doflow/scripts",
339
314
  "opencode": "../.doflow/scripts",
340
315
  "pi": "../.doflow/scripts",
341
316
  "copilot": "../.doflow/scripts",
@@ -350,7 +325,6 @@
350
325
  "appliesTo": [
351
326
  "claude",
352
327
  "codex",
353
- "gemini",
354
328
  "opencode",
355
329
  "pi",
356
330
  "copilot",
@@ -366,10 +340,6 @@
366
340
  "renderer": "copy-tree",
367
341
  "capability": "scripts"
368
342
  },
369
- "gemini": {
370
- "renderer": "copy-tree",
371
- "capability": "scripts"
372
- },
373
343
  "opencode": {
374
344
  "renderer": "copy-tree",
375
345
  "capability": "scripts"
@@ -395,7 +365,6 @@
395
365
  "nativeDir": {
396
366
  "claude": "../.doflow/runtime/bin",
397
367
  "codex": "../.doflow/runtime/bin",
398
- "gemini": "../.doflow/runtime/bin",
399
368
  "opencode": "../.doflow/runtime/bin",
400
369
  "pi": "../.doflow/runtime/bin",
401
370
  "copilot": "../.doflow/runtime/bin",
@@ -410,7 +379,6 @@
410
379
  "appliesTo": [
411
380
  "claude",
412
381
  "codex",
413
- "gemini",
414
382
  "opencode",
415
383
  "pi",
416
384
  "copilot",
@@ -426,10 +394,6 @@
426
394
  "renderer": "copy-tree",
427
395
  "capability": "scripts"
428
396
  },
429
- "gemini": {
430
- "renderer": "copy-tree",
431
- "capability": "scripts"
432
- },
433
397
  "opencode": {
434
398
  "renderer": "copy-tree",
435
399
  "capability": "scripts"
@@ -455,7 +419,6 @@
455
419
  "nativeDir": {
456
420
  "claude": "../.doflow/runtime/src",
457
421
  "codex": "../.doflow/runtime/src",
458
- "gemini": "../.doflow/runtime/src",
459
422
  "opencode": "../.doflow/runtime/src",
460
423
  "pi": "../.doflow/runtime/src",
461
424
  "copilot": "../.doflow/runtime/src",
@@ -470,7 +433,6 @@
470
433
  "appliesTo": [
471
434
  "claude",
472
435
  "codex",
473
- "gemini",
474
436
  "opencode",
475
437
  "pi",
476
438
  "copilot",
@@ -486,10 +448,6 @@
486
448
  "renderer": "copy-tree",
487
449
  "capability": "scripts"
488
450
  },
489
- "gemini": {
490
- "renderer": "copy-tree",
491
- "capability": "scripts"
492
- },
493
451
  "opencode": {
494
452
  "renderer": "copy-tree",
495
453
  "capability": "scripts"
@@ -515,7 +473,6 @@
515
473
  "nativeDir": {
516
474
  "claude": "../.doflow/runtime/core/registry",
517
475
  "codex": "../.doflow/runtime/core/registry",
518
- "gemini": "../.doflow/runtime/core/registry",
519
476
  "opencode": "../.doflow/runtime/core/registry",
520
477
  "pi": "../.doflow/runtime/core/registry",
521
478
  "copilot": "../.doflow/runtime/core/registry",
@@ -530,7 +487,6 @@
530
487
  "appliesTo": [
531
488
  "claude",
532
489
  "codex",
533
- "gemini",
534
490
  "opencode",
535
491
  "pi",
536
492
  "copilot",
@@ -546,10 +502,6 @@
546
502
  "renderer": "copy-tree",
547
503
  "capability": "scripts"
548
504
  },
549
- "gemini": {
550
- "renderer": "copy-tree",
551
- "capability": "scripts"
552
- },
553
505
  "opencode": {
554
506
  "renderer": "copy-tree",
555
507
  "capability": "scripts"
@@ -575,7 +527,6 @@
575
527
  "nativeDir": {
576
528
  "claude": "bin",
577
529
  "codex": "bin",
578
- "gemini": "bin",
579
530
  "opencode": "bin",
580
531
  "pi": "bin",
581
532
  "copilot": "bin",
@@ -637,6 +588,24 @@
637
588
  "kiro": "hooks"
638
589
  }
639
590
  },
591
+ {
592
+ "id": "copilot.hooks-scripts",
593
+ "kind": "hooks",
594
+ "source": "core/harnesses/copilot/hooks",
595
+ "appliesTo": [
596
+ "copilot"
597
+ ],
598
+ "projection": {
599
+ "copilot": {
600
+ "renderer": "copilot-hooks",
601
+ "capability": "hooks"
602
+ }
603
+ },
604
+ "ownership": "managed-tree",
605
+ "nativeDir": {
606
+ "copilot": "hooks"
607
+ }
608
+ },
640
609
  {
641
610
  "id": "claude.settings",
642
611
  "kind": "settings",
@@ -655,7 +624,7 @@
655
624
  {
656
625
  "id": "instructions.copilot",
657
626
  "kind": "instructions",
658
- "source": "core/shared/guidance/rules",
627
+ "source": "core/shared/guidance",
659
628
  "appliesTo": [
660
629
  "copilot"
661
630
  ],
@@ -668,7 +637,8 @@
668
637
  "renderer": "copilot-rule-instructions",
669
638
  "capability": "instructions",
670
639
  "transform": "copilot-rule-instructions",
671
- "layout": "instructions-md"
640
+ "layout": "instructions-md",
641
+ "select": "guidance-manifest"
672
642
  }
673
643
  }
674
644
  },
@@ -695,7 +665,7 @@
695
665
  {
696
666
  "id": "rules.antigravity",
697
667
  "kind": "guidance",
698
- "source": "core/shared/guidance/rules",
668
+ "source": "core/shared/guidance",
699
669
  "appliesTo": [
700
670
  "antigravity"
701
671
  ],
@@ -706,7 +676,10 @@
706
676
  "projection": {
707
677
  "antigravity": {
708
678
  "renderer": "copy-tree",
709
- "capability": "instructions"
679
+ "capability": "instructions",
680
+ "transform": "antigravity-always-on-rules",
681
+ "layout": "flat",
682
+ "select": "guidance-manifest"
710
683
  }
711
684
  }
712
685
  },
@@ -753,18 +726,18 @@
753
726
  "appliesTo": [
754
727
  "claude",
755
728
  "codex",
756
- "gemini",
757
729
  "pi",
758
730
  "kiro",
731
+ "copilot",
759
732
  "antigravity"
760
733
  ],
761
734
  "ownership": "managed-tree",
762
735
  "nativeDir": {
763
736
  "claude": "../.doflow/shared/hooks",
764
737
  "codex": "../.doflow/shared/hooks",
765
- "gemini": "../.doflow/shared/hooks",
766
738
  "pi": "../.doflow/shared/hooks",
767
739
  "kiro": "../.doflow/shared/hooks",
740
+ "copilot": "../.doflow/shared/hooks",
768
741
  "antigravity": "../.doflow/shared/hooks"
769
742
  },
770
743
  "projection": {
@@ -776,15 +749,15 @@
776
749
  "renderer": "copy-tree",
777
750
  "capability": "hooks"
778
751
  },
779
- "gemini": {
752
+ "pi": {
780
753
  "renderer": "copy-tree",
781
754
  "capability": "hooks"
782
755
  },
783
- "pi": {
756
+ "kiro": {
784
757
  "renderer": "copy-tree",
785
758
  "capability": "hooks"
786
759
  },
787
- "kiro": {
760
+ "copilot": {
788
761
  "renderer": "copy-tree",
789
762
  "capability": "hooks"
790
763
  },
@@ -115,6 +115,18 @@
115
115
  "sourceMode": "live"
116
116
  }
117
117
  ]
118
+ },
119
+ "document.extract": {
120
+ "description": "Extract plain text or structured key-value data from documents or images.",
121
+ "providers": []
122
+ },
123
+ "media.transcribe": {
124
+ "description": "Convert audio/media recording into text transcription with optional timestamps.",
125
+ "providers": []
126
+ },
127
+ "text.compress": {
128
+ "description": "Perform context-preserving semantic text compression.",
129
+ "providers": []
118
130
  }
119
131
  }
120
132
  }