@khoavu882/doflow 2.0.0-beta.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +12 -11
  2. package/bin/doflow.js +21 -11
  3. package/core/.antigravity-plugin/plugin.json +1 -3
  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 +7 -17
  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-bash-guard.sh +7 -17
  15. package/core/harnesses/claude/hooks/pre-compact.sh +23 -27
  16. package/core/harnesses/claude/hooks/pre-implement-gate.sh +7 -18
  17. package/core/harnesses/claude/hooks/session-end.sh +23 -10
  18. package/core/harnesses/claude/hooks/session-start.sh +5 -3
  19. package/core/harnesses/claude/hooks/skill-config-audit.sh +3 -0
  20. package/core/harnesses/claude/hooks/stop-check.sh +5 -3
  21. package/core/harnesses/claude/hooks/subagent-audit.sh +5 -5
  22. package/core/harnesses/claude/hooks/user-prompt-submit.sh +5 -3
  23. package/core/harnesses/claude/settings/settings.json +18 -0
  24. package/core/harnesses/claude/statusline/doflow-statusline.sh +1 -0
  25. package/core/harnesses/codex/agents/core-implementer.toml +1 -0
  26. package/core/harnesses/codex/agents/delivery-lead.toml +10 -0
  27. package/core/harnesses/codex/agents/quality-guardian.toml +1 -1
  28. package/core/harnesses/codex/agents/research-writer.toml +1 -1
  29. package/core/harnesses/codex/agents/reviewer.toml +10 -0
  30. package/core/harnesses/codex/agents/spec-analyst.toml +1 -1
  31. package/core/harnesses/codex/agents/system-architect.toml +1 -1
  32. package/core/harnesses/codex/hooks/lib.sh +44 -25
  33. package/core/harnesses/codex/hooks/mcp-tool-guard.sh +7 -15
  34. package/core/harnesses/codex/hooks/post-edit-lint.impl.sh +3 -1
  35. package/core/harnesses/codex/hooks/pre-bash-guard.sh +7 -15
  36. package/core/harnesses/codex/hooks/pre-compact.impl.sh +29 -26
  37. package/core/harnesses/codex/hooks/pre-implement-gate.sh +7 -16
  38. package/core/harnesses/codex/hooks/session-end.impl.sh +23 -10
  39. package/core/harnesses/codex/hooks/session-start.sh +5 -3
  40. package/core/harnesses/codex/hooks/stop-check.sh +6 -5
  41. package/core/harnesses/codex/hooks/subagent-audit.sh +18 -6
  42. package/core/harnesses/codex/hooks/user-prompt-submit.sh +5 -4
  43. package/core/harnesses/copilot/hooks/doflow-lib.sh +93 -0
  44. package/core/harnesses/copilot/hooks/doflow-mcp-tool-guard.sh +9 -0
  45. package/core/harnesses/copilot/hooks/doflow-pre-bash-guard.sh +9 -0
  46. package/core/harnesses/copilot/hooks/doflow-pre-implement-gate.sh +9 -0
  47. package/core/harnesses/copilot/hooks/doflow-session-start.sh +9 -0
  48. package/core/harnesses/copilot/hooks/doflow-stop-check.sh +9 -0
  49. package/core/harnesses/copilot/hooks/doflow-subagent-start.sh +9 -0
  50. package/core/harnesses/copilot/hooks/doflow-subagent-stop.sh +9 -0
  51. package/core/harnesses/copilot/hooks/doflow.json +57 -0
  52. package/core/harnesses/kiro/agents/doflow.json +1 -1
  53. package/core/harnesses/kiro/hooks/lib.sh +26 -6
  54. package/core/harnesses/kiro/hooks/mcp-tool-guard.sh +21 -5
  55. package/core/harnesses/kiro/hooks/pre-bash-guard.sh +21 -5
  56. package/core/harnesses/kiro/hooks/pre-implement-gate.sh +21 -5
  57. package/core/harnesses/kiro/hooks/session-start.sh +12 -5
  58. package/core/harnesses/kiro/hooks/stop-check.sh +22 -30
  59. package/core/harnesses/pi/extensions/doflow-guard.js +167 -0
  60. package/core/harnesses/shared/hooks/ENVELOPE_MIGRATION.md +27 -12
  61. package/core/harnesses/shared/hooks/adapters/antigravity.js +14 -57
  62. package/core/harnesses/shared/hooks/bridge/bridge.sh +277 -0
  63. package/core/harnesses/shared/hooks/bridge/envelope.jq +129 -0
  64. package/core/harnesses/shared/hooks/bridge/observe-model.sh +75 -0
  65. package/core/harnesses/shared/hooks/bridge/respond.sh +70 -0
  66. package/core/harnesses/shared/hooks/policies/blocked-patterns.conf +28 -14
  67. package/core/harnesses/shared/hooks/policies/capture-failure.sh +51 -16
  68. package/core/harnesses/shared/hooks/policies/compact-text.sh +46 -0
  69. package/core/harnesses/shared/hooks/policies/contract.sh +78 -0
  70. package/core/harnesses/shared/hooks/policies/deny-json.sh +35 -9
  71. package/core/harnesses/shared/hooks/policies/emission-rules.sh +37 -0
  72. package/core/harnesses/shared/hooks/policies/emission.jq +209 -0
  73. package/core/harnesses/shared/hooks/policies/emission.sh +383 -0
  74. package/core/harnesses/shared/hooks/policies/identity.sh +177 -0
  75. package/core/harnesses/shared/hooks/policies/lib.sh +65 -40
  76. package/core/harnesses/shared/hooks/policies/mcp-tool-guard.sh +48 -35
  77. package/core/harnesses/shared/hooks/policies/pre-bash-guard.sh +284 -33
  78. package/core/harnesses/shared/hooks/policies/pre-implementation-gate.sh +180 -110
  79. package/core/harnesses/shared/hooks/policies/session-context.sh +66 -7
  80. package/core/harnesses/shared/hooks/policies/stop-check.sh +61 -23
  81. package/core/harnesses/shared/hooks/policies/subagent-audit.sh +39 -6
  82. package/core/harnesses/shared/hooks/policies/summary-store.sh +347 -0
  83. package/core/harnesses/shared/hooks/policies/user-prompt-submit.sh +97 -159
  84. package/core/harnesses/shared/hooks/stream-hook-runner.js +114 -187
  85. package/core/harnesses/shared/locator/doflow-run +2 -3
  86. package/core/registry/advice.json +3 -3
  87. package/core/registry/assets.json +72 -80
  88. package/core/registry/capabilities.json +12 -0
  89. package/core/registry/contracts.json +60 -33
  90. package/core/registry/contribution-points.json +32 -0
  91. package/core/registry/gates.json +32 -0
  92. package/core/registry/guidance-caps.json +40 -0
  93. package/core/registry/harnesses.json +1542 -277
  94. package/core/registry/lifecycle.json +2837 -37
  95. package/core/registry/mcp.json +5 -1
  96. package/core/registry/models.json +7 -1
  97. package/core/registry/package-templates/README.md +19 -0
  98. package/core/registry/package-templates/agent/files/agent.md +9 -0
  99. package/core/registry/package-templates/agent/template.json +4 -0
  100. package/core/registry/package-templates/capability-provider/files/provider.json +9 -0
  101. package/core/registry/package-templates/capability-provider/template.json +11 -0
  102. package/core/registry/package-templates/debate-preset/files/preset.json +26 -0
  103. package/core/registry/package-templates/debate-preset/template.json +4 -0
  104. package/core/registry/package-templates/review-preset/files/preset.json +30 -0
  105. package/core/registry/package-templates/review-preset/template.json +4 -0
  106. package/core/registry/package-templates/skill/files/SKILL.md +8 -0
  107. package/core/registry/package-templates/skill/template.json +4 -0
  108. package/core/registry/package-templates/worker/files/worker.json +92 -0
  109. package/core/registry/package-templates/worker/template.json +11 -0
  110. package/core/registry/packages/doflow/doflow-package.json +15 -0
  111. package/core/registry/packages/doflow/presets/debate-3.json +26 -0
  112. package/core/registry/protocols.json +61 -0
  113. package/core/registry/routes.json +17 -0
  114. package/core/registry/rules.json +431 -0
  115. package/core/registry/settings.json +276 -0
  116. package/core/registry/storage.json +701 -30
  117. package/core/registry/telemetry.json +236 -0
  118. package/core/registry/transcripts.json +142 -0
  119. package/core/registry/verification.json +76 -1
  120. package/core/registry/workflows.json +55 -0
  121. package/core/shared/agent-specs/core-implementer.md +3 -0
  122. package/core/shared/agent-specs/delivery-lead.md +68 -0
  123. package/core/shared/agent-specs/quality-guardian.md +5 -1
  124. package/core/shared/agent-specs/research-writer.md +10 -3
  125. package/core/shared/agent-specs/reviewer.md +53 -0
  126. package/core/shared/agent-specs/spec-analyst.md +5 -6
  127. package/core/shared/agent-specs/system-architect.md +5 -1
  128. package/core/shared/guidance/DOFLOW_CORE.md +1 -5
  129. package/core/shared/guidance/modes/MODE_DeepResearch.md +1 -1
  130. package/core/shared/guidance/modes/MODE_Orchestration.md +4 -3
  131. package/core/shared/guidance/modes/MODE_Task_Management.md +14 -14
  132. package/core/shared/guidance/pointers/codex.md +1 -4
  133. package/core/shared/guidance/references/ARTIFACT_FORMAT.md +30 -16
  134. package/core/shared/guidance/references/ARTIFACT_VOICE.md +3 -2
  135. package/core/shared/guidance/references/CONSTITUTION_BASE.md +17 -15
  136. package/core/shared/guidance/references/DIAGRAM_GUIDE.md +1 -1
  137. package/core/shared/guidance/references/DOFLOW_CHAIN.md +17 -19
  138. package/core/shared/guidance/references/EVIDENCE_LEDGER.md +7 -8
  139. package/core/shared/guidance/references/MODEL_SELECTION.md +5 -3
  140. package/core/shared/guidance/references/ORCHESTRATION.md +1 -2
  141. package/core/shared/guidance/rules/RULES.md +45 -0
  142. package/core/shared/scripts/doflow/bash/do-args.sh +37 -0
  143. package/core/shared/scripts/doflow/bash/do-exec-paths.sh +4 -0
  144. package/core/shared/scripts/doflow/bash/do-git-state.sh +15 -4
  145. package/core/shared/scripts/doflow/bash/do-parallel-check.sh +4 -0
  146. package/core/shared/scripts/doflow/bash/do-paths.sh +40 -2
  147. package/core/shared/scripts/doflow/bash/do-prereqs.sh +2 -1
  148. package/core/shared/scripts/doflow/bash/do-review-package.sh +4 -0
  149. package/core/shared/scripts/doflow/bash/do-task-brief.sh +58 -16
  150. package/core/shared/scripts/doflow/bash/render-audit.sh +26 -2
  151. package/core/shared/scripts/doflow/bash/render-diagrams.sh +1 -0
  152. package/core/shared/scripts/doflow/bash/render-puml.sh +2 -1
  153. package/core/shared/scripts/doflow/bash/validate-artifacts.sh +48 -4
  154. package/core/shared/scripts/doflow/bin/doflow-run +154 -35
  155. package/core/shared/skills/do/SKILL.md +12 -10
  156. package/core/shared/skills/do/references/advice_calls.md +26 -0
  157. package/core/shared/skills/do/references/pm_routing.md +1 -2
  158. package/core/shared/skills/do/references/program_mode.md +31 -0
  159. package/core/shared/skills/do-brainstorm/SKILL.md +20 -74
  160. package/core/shared/skills/do-brainstorm/references/handoff_branches.md +35 -0
  161. package/core/shared/skills/do-brainstorm/references/intent_seed.md +21 -0
  162. package/core/shared/skills/do-brainstorm/references/round_log.md +17 -0
  163. package/core/shared/skills/do-code-review/SKILL.md +41 -144
  164. package/core/shared/skills/do-code-review/content-types/markdown.md +24 -2
  165. package/core/shared/skills/do-code-review/references/tools.md +90 -0
  166. package/core/shared/skills/do-code-review/scripts/doc_quality_checker.py +549 -7
  167. package/core/shared/skills/do-design/SKILL.md +24 -23
  168. package/core/shared/skills/do-diagnose/SKILL.md +14 -4
  169. package/core/shared/skills/do-document/SKILL.md +11 -1
  170. package/core/shared/skills/do-document/references/deep_research.md +1 -2
  171. package/core/shared/skills/do-document/references/embedded-research.md +18 -6
  172. package/core/shared/skills/do-document/references/implementation-flow.md +5 -6
  173. package/core/shared/skills/do-execute-plan/SKILL.md +17 -59
  174. package/core/shared/skills/do-execute-plan/references/handoff_record.md +7 -2
  175. package/core/shared/skills/do-execute-plan/references/parallel_dispatch.md +13 -0
  176. package/core/shared/skills/do-execute-plan/references/readiness_gate.md +28 -1
  177. package/core/shared/skills/do-execute-plan/references/run_position.md +13 -1
  178. package/core/shared/skills/do-execute-plan/references/scaffold.md +17 -9
  179. package/core/shared/skills/do-execute-plan/references/state_checkpoint.md +11 -0
  180. package/core/shared/skills/do-execute-plan/references/task_attempts.md +78 -24
  181. package/core/shared/skills/do-flow/SKILL.md +8 -9
  182. package/core/shared/skills/do-flow/references/task_classes.md +2 -2
  183. package/core/shared/skills/do-git/SKILL.md +4 -0
  184. package/core/shared/skills/do-implement/SKILL.md +7 -9
  185. package/core/shared/skills/do-plan/SKILL.md +29 -19
  186. package/core/shared/skills/do-test/SKILL.md +7 -4
  187. package/core/shared/templates/doflow/constitution-template.md +9 -3
  188. package/core/shared/templates/doflow/data-model-template.md +1 -1
  189. package/core/shared/templates/doflow/design-template.md +113 -16
  190. package/core/shared/templates/doflow/plan-template.md +11 -10
  191. package/core/shared/templates/doflow/question-log-template.md +14 -2
  192. package/core/shared/templates/doflow/requirement-template.md +1 -1
  193. package/core/worker-evidence/antigravity/checks.json +14 -0
  194. package/core/worker-evidence/codex/2026-10-18-cli-check.json +107 -0
  195. package/core/worker-evidence/codex/2026-10-18-live-run-edit.json +73 -0
  196. package/core/worker-evidence/codex/2026-10-18-live-run-read-only.json +62 -0
  197. package/core/worker-evidence/codex/2026-10-24-cli-check.json +126 -0
  198. package/core/worker-evidence/codex/checks.json +38 -0
  199. package/package.json +10 -6
  200. package/src/adapters/antigravity/index.js +226 -113
  201. package/src/adapters/claude/index.js +39 -5
  202. package/src/adapters/codex/agents.js +25 -15
  203. package/src/adapters/codex/hooks.js +40 -5
  204. package/src/adapters/codex/index.js +100 -22
  205. package/src/adapters/codex/native-projection.js +6 -2
  206. package/src/adapters/copilot/index.js +58 -23
  207. package/src/adapters/copy-tree.js +294 -48
  208. package/src/adapters/guidance-manifest.js +71 -0
  209. package/src/adapters/guidance-pointer.js +19 -0
  210. package/src/adapters/hook-commands.js +6 -10
  211. package/src/adapters/index.js +1 -0
  212. package/src/adapters/kiro/index.js +38 -13
  213. package/src/adapters/opencode/index.js +8 -8
  214. package/src/adapters/pi/hooks.js +120 -0
  215. package/src/adapters/pi/index.js +48 -16
  216. package/src/adapters/resolve-source.js +26 -2
  217. package/src/cli/commands/install.js +3 -2
  218. package/src/cli/commands/reconcile.js +53 -9
  219. package/src/cli/commands/remove.js +2 -2
  220. package/src/cli/commands/rollback.js +6 -3
  221. package/src/cli/commands/self-update.js +18 -9
  222. package/src/cli/commands/status.js +21 -2
  223. package/src/cli/commands/ui.js +99 -0
  224. package/src/cli/commands/update.js +3 -2
  225. package/src/cli/index.js +338 -33
  226. package/src/cli/runtime-commands.js +243 -52
  227. package/src/cli/shared.js +0 -2
  228. package/src/helper/git.js +1 -1
  229. package/src/helper/guardrails.js +1 -1
  230. package/src/helper/marker-merge.js +31 -13
  231. package/src/helper/package-ids.js +37 -0
  232. package/src/helper/semver.js +94 -0
  233. package/src/install/backup.js +105 -15
  234. package/src/install/context.js +1 -1
  235. package/src/install/targets.js +31 -16
  236. package/src/lifecycle/coverage.js +74 -0
  237. package/src/lifecycle/hook-step.js +61 -0
  238. package/src/lifecycle/hook-tier.js +160 -0
  239. package/src/lifecycle/index.js +434 -86
  240. package/src/lifecycle/retired-harnesses.js +318 -0
  241. package/src/lifecycle/view.js +35 -15
  242. package/src/registry/index.js +686 -32
  243. package/src/registry/worker-ids.js +45 -0
  244. package/src/release/build-package.js +0 -3
  245. package/src/release/docs-blocks.js +492 -0
  246. package/src/release/preflight.js +425 -0
  247. package/src/release/rehearse.js +401 -0
  248. package/src/release/release-workflow.js +733 -0
  249. package/src/release/sync-plugin-versions.js +43 -7
  250. package/src/runtime/advice/bench-gate.js +25 -0
  251. package/src/runtime/advice/cli.js +59 -16
  252. package/src/runtime/advice/client.js +32 -9
  253. package/src/runtime/advice/config.js +98 -133
  254. package/src/runtime/advice/doctor.js +1 -1
  255. package/src/runtime/advice/elevation.js +97 -0
  256. package/src/runtime/advice/endpoint-guard.js +9 -3
  257. package/src/runtime/advice/mode.js +37 -0
  258. package/src/runtime/advice/record.js +18 -5
  259. package/src/runtime/advice/registry.js +4 -1
  260. package/src/runtime/advice/shadow-config.js +229 -0
  261. package/src/runtime/advice/shadow-dispatcher.js +276 -0
  262. package/src/runtime/brief-rules.js +81 -0
  263. package/src/runtime/brief-tools.js +111 -34
  264. package/src/runtime/candidate.js +514 -0
  265. package/src/runtime/capabilities/executor.js +450 -0
  266. package/src/runtime/capabilities/loopback.js +41 -0
  267. package/src/runtime/capabilities/sanitizer.js +88 -0
  268. package/src/runtime/capability-router.js +135 -3
  269. package/src/runtime/checkouts.js +73 -11
  270. package/src/runtime/claims.js +27 -12
  271. package/src/runtime/cli-result.js +11 -4
  272. package/src/runtime/cli.js +221 -277
  273. package/src/runtime/config-home.js +42 -0
  274. package/src/runtime/context/arbitrate.js +767 -0
  275. package/src/runtime/context/budget.js +203 -0
  276. package/src/runtime/context/compose.js +1367 -0
  277. package/src/runtime/context/delivery-store.js +100 -0
  278. package/src/runtime/context/emission-rules.js +118 -0
  279. package/src/runtime/context/identity.js +227 -0
  280. package/src/runtime/context/mandatory.js +594 -0
  281. package/src/runtime/context/pointer.js +142 -0
  282. package/src/runtime/context/primary-command.js +117 -0
  283. package/src/runtime/context/primary.js +344 -0
  284. package/src/runtime/context/summary-store.js +655 -0
  285. package/src/runtime/context-pack.js +1106 -245
  286. package/src/runtime/decision-register.js +13 -4
  287. package/src/runtime/dispatch/admission.js +392 -0
  288. package/src/runtime/dispatch/attempt-end.js +274 -0
  289. package/src/runtime/dispatch/command.js +628 -0
  290. package/src/runtime/dispatch/controls.js +904 -0
  291. package/src/runtime/dispatch/envelope.js +276 -0
  292. package/src/runtime/dispatch/grants.js +310 -0
  293. package/src/runtime/dispatch/integrate.js +617 -0
  294. package/src/runtime/dispatch/loop.js +1835 -0
  295. package/src/runtime/dispatch/store.js +352 -0
  296. package/src/runtime/dispatch/verify-run.js +201 -0
  297. package/src/runtime/evidence-fields.js +39 -0
  298. package/src/runtime/evidence-ledger.js +41 -7
  299. package/src/runtime/failure/capture.js +3 -1
  300. package/src/runtime/failure/cli.js +25 -9
  301. package/src/runtime/failure/home.js +57 -30
  302. package/src/runtime/failure/store.js +7 -2
  303. package/src/runtime/feature-pointer.js +174 -0
  304. package/src/runtime/feature-resolve.js +13 -2
  305. package/src/runtime/fleet/command.js +77 -0
  306. package/src/runtime/fleet/projects.js +178 -0
  307. package/src/runtime/fleet/tree.js +383 -0
  308. package/src/runtime/freshness.js +77 -10
  309. package/src/runtime/git-memo.js +46 -0
  310. package/src/runtime/guidance/ablation.js +427 -0
  311. package/src/runtime/health.js +565 -17
  312. package/src/runtime/history-compactor.js +13 -3
  313. package/src/runtime/implementation-gate.js +277 -22
  314. package/src/runtime/inventory/coverage.js +1 -1
  315. package/src/runtime/inventory/index.js +1 -1
  316. package/src/runtime/inventory/precedence.js +2 -2
  317. package/src/runtime/inventory/siblings.js +6 -4
  318. package/src/runtime/knowledge/code-corpus.js +277 -0
  319. package/src/runtime/knowledge/code-lexical.js +130 -0
  320. package/src/runtime/knowledge/code-retrieval.js +307 -0
  321. package/src/runtime/knowledge/code-validation.js +106 -0
  322. package/src/runtime/knowledge/gp3-gate.js +74 -0
  323. package/src/runtime/knowledge/graph-adapter.js +288 -0
  324. package/src/runtime/knowledge/graph-fallback.js +394 -0
  325. package/src/runtime/knowledge/hybrid.js +136 -8
  326. package/src/runtime/knowledge/retrieval.js +34 -1
  327. package/src/runtime/knowledge/rtk-compress.js +77 -0
  328. package/src/runtime/knowledge/semble-bridge.py +106 -0
  329. package/src/runtime/knowledge/semble-lifecycle.js +114 -0
  330. package/src/runtime/knowledge/semble-provider.js +365 -0
  331. package/src/runtime/lifecycle/cli.js +16 -6
  332. package/src/runtime/lifecycle/event-store.js +8 -6
  333. package/src/runtime/lifecycle/followup.js +6 -1
  334. package/src/runtime/lifecycle/overview.js +24 -1
  335. package/src/runtime/lifecycle/report-store.js +8 -10
  336. package/src/runtime/lifecycle/retention.js +95 -31
  337. package/src/runtime/lifecycle/root.js +9 -1
  338. package/src/runtime/lifecycle/status.js +34 -17
  339. package/src/runtime/lifecycle/store-upkeep.js +56 -7
  340. package/src/runtime/mask.js +134 -7
  341. package/src/runtime/mcp-consultations.js +40 -6
  342. package/src/runtime/model-router.js +79 -7
  343. package/src/runtime/models/catalogue.js +191 -0
  344. package/src/runtime/models/command.js +153 -0
  345. package/src/runtime/off-words.js +12 -0
  346. package/src/runtime/outcome.js +3 -3
  347. package/src/runtime/packages/command.js +1009 -0
  348. package/src/runtime/packages/contributions.js +116 -0
  349. package/src/runtime/packages/digest.js +132 -0
  350. package/src/runtime/packages/fetch.js +182 -0
  351. package/src/runtime/packages/grants.js +192 -0
  352. package/src/runtime/packages/index-file.js +134 -0
  353. package/src/runtime/packages/instruction.js +90 -0
  354. package/src/runtime/packages/manifest.js +331 -0
  355. package/src/runtime/packages/points.js +477 -0
  356. package/src/runtime/packages/programs.js +216 -0
  357. package/src/runtime/packages/scaffold.js +277 -0
  358. package/src/runtime/packages/source.js +90 -0
  359. package/src/runtime/packages/state.js +164 -0
  360. package/src/runtime/packages/store.js +449 -0
  361. package/src/runtime/packages/tar.js +106 -0
  362. package/src/runtime/packages/view.js +406 -0
  363. package/src/runtime/plan-check.js +59 -0
  364. package/src/runtime/plan-content.js +324 -0
  365. package/src/runtime/policy-init.js +118 -0
  366. package/src/runtime/profiles/doctor.js +96 -0
  367. package/src/runtime/profiles/resolve.js +244 -0
  368. package/src/runtime/profiles/rollback.js +254 -0
  369. package/src/runtime/profiles/sampler.js +41 -0
  370. package/src/runtime/readiness-record.js +16 -11
  371. package/src/runtime/readiness.js +127 -16
  372. package/src/runtime/research-request.js +50 -25
  373. package/src/runtime/retrieval-plan.js +402 -73
  374. package/src/runtime/retrieval-record.js +293 -0
  375. package/src/runtime/review/command.js +246 -0
  376. package/src/runtime/review/dominance.js +68 -0
  377. package/src/runtime/review/findings.js +434 -0
  378. package/src/runtime/review/identity.js +255 -0
  379. package/src/runtime/review/protocol-command.js +109 -0
  380. package/src/runtime/review/protocols.js +405 -0
  381. package/src/runtime/review/resolve-protocol.js +302 -0
  382. package/src/runtime/review/start.js +530 -0
  383. package/src/runtime/roadmap/facts.js +479 -0
  384. package/src/runtime/roadmap/gates.js +270 -0
  385. package/src/runtime/roadmap/loop.js +1636 -0
  386. package/src/runtime/roadmap/merge.js +381 -0
  387. package/src/runtime/roadmap/rows.js +1113 -0
  388. package/src/runtime/roadmap/seed.js +951 -0
  389. package/src/runtime/rules-report.js +336 -0
  390. package/src/runtime/scaffold/artifacts.js +63 -9
  391. package/src/runtime/scaffold/generate.js +21 -9
  392. package/src/runtime/settings/autopilot.js +106 -0
  393. package/src/runtime/settings/cli.js +280 -0
  394. package/src/runtime/settings/config-write.js +314 -0
  395. package/src/runtime/settings/files.js +271 -0
  396. package/src/runtime/settings/legacy.js +154 -0
  397. package/src/runtime/settings/lexical.js +56 -0
  398. package/src/runtime/settings/prepared-run.js +269 -0
  399. package/src/runtime/settings/project-layers.js +118 -0
  400. package/src/runtime/settings/refs.js +288 -0
  401. package/src/runtime/settings/registry.js +553 -0
  402. package/src/runtime/settings/resolve.js +713 -0
  403. package/src/runtime/settings/shared.js +37 -0
  404. package/src/runtime/settings/worker-billing.js +107 -0
  405. package/src/runtime/settings/write.js +269 -0
  406. package/src/runtime/slot-command.js +78 -0
  407. package/src/runtime/slots.js +671 -0
  408. package/src/runtime/source-version.js +290 -0
  409. package/src/runtime/state-root.js +217 -0
  410. package/src/runtime/storage/cli.js +12 -5
  411. package/src/runtime/storage/engine.js +9 -2
  412. package/src/runtime/storage/registry.js +14 -1
  413. package/src/runtime/storage/roots.js +66 -16
  414. package/src/runtime/storage/rules.js +82 -10
  415. package/src/runtime/storage/upkeep.js +10 -2
  416. package/src/runtime/storage/work-status.js +245 -26
  417. package/src/runtime/task-attempts.js +589 -69
  418. package/src/runtime/task-classifier.js +47 -11
  419. package/src/runtime/task-graph.js +373 -0
  420. package/src/runtime/task-run.js +778 -0
  421. package/src/runtime/task-scope.js +202 -56
  422. package/src/runtime/task-sources.js +147 -0
  423. package/src/runtime/task-state.js +440 -65
  424. package/src/runtime/team/admission.js +301 -0
  425. package/src/runtime/team/envelope.js +324 -0
  426. package/src/runtime/team/review-guard.js +156 -0
  427. package/src/runtime/trace/analyze.js +427 -0
  428. package/src/runtime/trace/baseline.js +770 -0
  429. package/src/runtime/trace/ledger.js +63 -140
  430. package/src/runtime/trace/otlp-export.js +568 -0
  431. package/src/runtime/trace/otlp-map.js +481 -0
  432. package/src/runtime/trace/spans.js +745 -0
  433. package/src/runtime/trace/telemetry.js +225 -0
  434. package/src/runtime/trace/views.js +1 -0
  435. package/src/runtime/transcripts/command.js +98 -0
  436. package/src/runtime/transcripts/cursor.js +326 -0
  437. package/src/runtime/transcripts/read.js +126 -0
  438. package/src/runtime/transcripts/readers/claude-jsonl.js +74 -0
  439. package/src/runtime/transcripts/readers/codex-rollout.js +70 -0
  440. package/src/runtime/transcripts/readers/copilot-events.js +90 -0
  441. package/src/runtime/transcripts/readers/kiro-jsonl.js +77 -0
  442. package/src/runtime/transcripts/readers/pi-jsonl.js +59 -0
  443. package/src/runtime/transcripts/registry.js +161 -0
  444. package/src/runtime/transcripts/stats.js +161 -0
  445. package/src/runtime/verification/check-key.js +628 -0
  446. package/src/runtime/verification/contract-runner.js +546 -11
  447. package/src/runtime/verification/engine.js +499 -9
  448. package/src/runtime/verification/impact.js +617 -0
  449. package/src/runtime/verification/inflight.js +205 -0
  450. package/src/runtime/verification/registry.js +176 -0
  451. package/src/runtime/verification/reuse.js +184 -0
  452. package/src/runtime/verification/telemetry-emit.js +254 -0
  453. package/src/runtime/verification/test-selection.js +67 -7
  454. package/src/runtime/worker/active.js +90 -0
  455. package/src/runtime/worker/cancel.js +222 -0
  456. package/src/runtime/worker/catalogue.js +122 -0
  457. package/src/runtime/worker/command.js +677 -0
  458. package/src/runtime/worker/evidence.js +288 -0
  459. package/src/runtime/worker/launch.js +288 -0
  460. package/src/runtime/worker/models.js +137 -0
  461. package/src/runtime/worker/parsers.js +218 -0
  462. package/src/runtime/worker/probes/index.js +706 -0
  463. package/src/runtime/worker/process-tree.js +415 -0
  464. package/src/runtime/worker/quota.js +43 -0
  465. package/src/runtime/worker/readiness.js +713 -0
  466. package/src/runtime/worker/run-store.js +166 -0
  467. package/src/runtime/worker/supervisor.js +541 -0
  468. package/src/runtime/worker/worktree-check.js +252 -0
  469. package/src/runtime/workflow-engine.js +5 -1
  470. package/src/runtime/workflow-orchestrator.js +578 -63
  471. package/src/runtime/worktree.js +149 -22
  472. package/src/state/index.js +1 -1
  473. package/src/state/lockfile.js +64 -10
  474. package/src/state/run-lock.js +1 -1
  475. package/types/node-commonjs.d.ts +106 -7
  476. package/core/.antigravity-plugin/hooks.json +0 -39
  477. package/core/harnesses/gemini/hooks/hooks.json +0 -77
  478. package/core/harnesses/gemini/hooks/lib.sh +0 -302
  479. package/core/harnesses/gemini/hooks/mcp-tool-guard.sh +0 -21
  480. package/core/harnesses/gemini/hooks/post-edit-lint.sh +0 -39
  481. package/core/harnesses/gemini/hooks/pre-bash-guard.sh +0 -21
  482. package/core/harnesses/gemini/hooks/pre-compact.sh +0 -38
  483. package/core/harnesses/gemini/hooks/pre-implement-gate.sh +0 -22
  484. package/core/harnesses/gemini/hooks/session-end.impl.sh +0 -89
  485. package/core/harnesses/gemini/hooks/session-end.sh +0 -5
  486. package/core/harnesses/gemini/hooks/session-start.sh +0 -5
  487. package/core/harnesses/gemini/settings/adapter-defaults.json +0 -4
  488. package/core/harnesses/shared/hooks/adapters/arg-fields.js +0 -19
  489. package/core/harnesses/shared/hooks/adapters/gemini.js +0 -114
  490. package/core/harnesses/shared/hooks/hooks.json +0 -47
  491. package/core/shared/guidance/FLAGS.md +0 -25
  492. package/core/shared/guidance/rules/RULE_01_SAFETY.md +0 -25
  493. package/core/shared/guidance/rules/RULE_02_WORKFLOW.md +0 -23
  494. package/core/shared/guidance/rules/RULE_03_QUALITY.md +0 -14
  495. package/core/shared/guidance/rules/RULE_04_QUESTIONS.md +0 -46
  496. package/src/adapters/gemini/hooks.js +0 -210
  497. package/src/adapters/gemini/index.js +0 -390
@@ -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,16 +726,18 @@
753
726
  "appliesTo": [
754
727
  "claude",
755
728
  "codex",
756
- "gemini",
729
+ "pi",
757
730
  "kiro",
731
+ "copilot",
758
732
  "antigravity"
759
733
  ],
760
734
  "ownership": "managed-tree",
761
735
  "nativeDir": {
762
736
  "claude": "../.doflow/shared/hooks",
763
737
  "codex": "../.doflow/shared/hooks",
764
- "gemini": "../.doflow/shared/hooks",
738
+ "pi": "../.doflow/shared/hooks",
765
739
  "kiro": "../.doflow/shared/hooks",
740
+ "copilot": "../.doflow/shared/hooks",
766
741
  "antigravity": "../.doflow/shared/hooks"
767
742
  },
768
743
  "projection": {
@@ -774,7 +749,7 @@
774
749
  "renderer": "copy-tree",
775
750
  "capability": "hooks"
776
751
  },
777
- "gemini": {
752
+ "pi": {
778
753
  "renderer": "copy-tree",
779
754
  "capability": "hooks"
780
755
  },
@@ -782,11 +757,28 @@
782
757
  "renderer": "copy-tree",
783
758
  "capability": "hooks"
784
759
  },
760
+ "copilot": {
761
+ "renderer": "copy-tree",
762
+ "capability": "hooks"
763
+ },
785
764
  "antigravity": {
786
765
  "renderer": "copy-tree",
787
766
  "capability": "hooks"
788
767
  }
789
768
  }
769
+ },
770
+ {
771
+ "id": "pi.guard-extension",
772
+ "kind": "hooks",
773
+ "source": "core/harnesses/pi/extensions/doflow-guard.js",
774
+ "appliesTo": ["pi"],
775
+ "projection": {
776
+ "pi": {
777
+ "renderer": "pi-guard-extension",
778
+ "capability": "hooks"
779
+ }
780
+ },
781
+ "ownership": "ledger-owned-file"
790
782
  }
791
783
  ]
792
784
  }
@@ -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
  }
@@ -1,5 +1,11 @@
1
1
  {
2
2
  "version": 1,
3
+ "agentSkillsSpec": {
4
+ "skillFields": ["name", "description", "license", "compatibility", "metadata", "allowed-tools"],
5
+ "source": "https://agentskills.io/specification",
6
+ "verifiedOn": "2026-10-27",
7
+ "note": "The Agent Skills standard's SKILL.md keys; metadata is a map of string keys to string values. A projected SKILL.md keeps these and its harness's skillFields at the top level and carries every other key under metadata (src/adapters/copy-tree.js, skill-frontmatter-<harness>; G22). unknownSkillFields records what the vendor page says the harness does with a key it does not define."
8
+ },
3
9
  "contracts": [
4
10
  {
5
11
  "harness": "claude",
@@ -22,8 +28,14 @@
22
28
  "background",
23
29
  "hooks",
24
30
  "paths",
25
- "shell"
31
+ "shell",
32
+ "metadata",
33
+ "license",
34
+ "compatibility"
26
35
  ],
36
+ "skillFieldsSource": "https://code.claude.com/docs/en/skills",
37
+ "skillFieldsVerifiedOn": "2026-10-27",
38
+ "unknownSkillFields": "ignored",
27
39
  "agentFields": [
28
40
  "name",
29
41
  "description",
@@ -40,7 +52,10 @@
40
52
  "effort",
41
53
  "isolation",
42
54
  "color",
43
- "initialPrompt"
55
+ "initialPrompt",
56
+ "autoCompactWindow",
57
+ "omitClaudeMd",
58
+ "experimental"
44
59
  ],
45
60
  "hookEvents": [
46
61
  "SessionStart",
@@ -73,7 +88,9 @@
73
88
  "Notification",
74
89
  "MessageDisplay",
75
90
  "Elicitation",
76
- "ElicitationResult"
91
+ "ElicitationResult",
92
+ "PreModelSwitch",
93
+ "PostModelSwitch"
77
94
  ],
78
95
  "evidence": [
79
96
  "https://code.claude.com/docs/en/skills",
@@ -85,7 +102,11 @@
85
102
  {
86
103
  "harness": "codex",
87
104
  "completeness": "lower-bound",
88
- "note": "Frontmatter field lists are deliberately absent: shared skills and agent specs are byte-identical across harnesses, so a per-harness list could only restate a subset of claude's and would change no guard outcome \u2014 an inert declaration of exactly the kind these guards exist to remove. hookEvents IS per-harness and lists the events DoFlow actually wires; widen it only with an added evidence URL.",
105
+ "note": "skillFields lists the SKILL.md keys Codex documents; the projected SKILL.md keeps only those and the Agent Skills spec keys at the top level (row 131). agentFields is deliberately absent: shared agent specs are byte-identical across harnesses, so a per-harness list could only restate a subset of claude's and would change no guard outcome \u2014 an inert declaration of exactly the kind these guards exist to remove. hookEvents IS per-harness and lists the events DoFlow actually wires; widen it only with an added evidence URL.",
106
+ "skillFields": ["name", "description"],
107
+ "skillFieldsSource": "https://learn.chatgpt.com/docs/build-skills",
108
+ "skillFieldsVerifiedOn": "2026-10-27",
109
+ "unknownSkillFields": "not-documented",
89
110
  "hookEvents": [
90
111
  "SessionStart",
91
112
  "SessionEnd",
@@ -103,27 +124,14 @@
103
124
  "https://learn.chatgpt.com/docs/agent-configuration/subagents"
104
125
  ]
105
126
  },
106
- {
107
- "harness": "gemini",
108
- "completeness": "lower-bound",
109
- "note": "Frontmatter field lists are deliberately absent: shared skills and agent specs are byte-identical across harnesses, so a per-harness list could only restate a subset of claude's and would change no guard outcome \u2014 an inert declaration of exactly the kind these guards exist to remove. hookEvents IS per-harness and lists the events DoFlow actually wires; widen it only with an added evidence URL.",
110
- "hookEvents": [
111
- "SessionStart",
112
- "SessionEnd",
113
- "BeforeTool",
114
- "AfterTool",
115
- "PreCompress"
116
- ],
117
- "evidence": [
118
- "https://geminicli.com/docs/cli/skills/",
119
- "https://geminicli.com/docs/hooks/",
120
- "https://geminicli.com/docs/cli/settings/"
121
- ]
122
- },
123
127
  {
124
128
  "harness": "opencode",
125
129
  "completeness": "lower-bound",
126
130
  "note": "hookEvents is empty by design, not by omission: OpenCode implements lifecycle handlers as JavaScript/TypeScript plugin modules exporting named hooks such as tool.execute.before, while DoFlow ships shell scripts invoked by a command string. The events exist natively and are recorded under capabilities.hooks.events with status \"different\"; wiring them would mean shipping executable code into the user's agent, which is a distribution decision rather than a projection. Widen this list only alongside that decision and an added evidence URL. See https://opencode.ai/docs/plugins.",
131
+ "skillFields": ["name", "description", "license", "compatibility", "metadata"],
132
+ "skillFieldsSource": "https://opencode.ai/docs/skills",
133
+ "skillFieldsVerifiedOn": "2026-10-27",
134
+ "unknownSkillFields": "ignored",
127
135
  "hookEvents": [],
128
136
  "evidence": [
129
137
  "https://opencode.ai/docs/plugins",
@@ -134,8 +142,12 @@
134
142
  {
135
143
  "harness": "pi",
136
144
  "completeness": "lower-bound",
137
- "note": "hookEvents is empty by design, not by omission: Pi implements lifecycle handlers as TypeScript extension modules registering handlers through pi.on(), executing with full system permissions, while DoFlow ships shell scripts invoked by a command string. The events exist natively and are recorded under capabilities.hooks.events with status \"different\"; wiring them would mean shipping executable code into the user's agent, which is a distribution decision rather than a projection. Widen this list only alongside that decision and an added evidence URL. See https://pi.dev/docs/latest/extensions.",
138
- "hookEvents": [],
145
+ "note": "DoFlow installs a user- or project-scope extension that registers tool_call through pi.on() and invokes the shared lifecycle bridge. Project scope requires project trust. The handler can block before tools execute; tool_execution_start remains observation-only. See https://pi.dev/docs/latest/extensions.",
146
+ "skillFields": ["name", "description", "license", "compatibility", "metadata", "allowed-tools", "disable-model-invocation"],
147
+ "skillFieldsSource": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/docs/skills.md",
148
+ "skillFieldsVerifiedOn": "2026-10-27",
149
+ "unknownSkillFields": "warned",
150
+ "hookEvents": ["tool_call"],
139
151
  "evidence": [
140
152
  "https://pi.dev/docs/latest/extensions",
141
153
  "https://pi.dev/docs/latest/settings",
@@ -145,8 +157,18 @@
145
157
  {
146
158
  "harness": "copilot",
147
159
  "completeness": "lower-bound",
148
- "note": "Copilot CLI now documents a full hook surface (use-hooks / hooks-reference, 2026): .github/hooks/*.json and ~/.copilot/hooks/, shape {version:1,hooks:{camelCaseEvent:[entries]}}. DoFlow wires none of it: the shipped scripts are Claude-payload-coupled (tool names, .session_id/.transcript_path stdin fields, CLAUDE_* envs) and Copilot's payload schemas are unverified here. hookEvents stays empty until that verification lands; widen only alongside it and an added evidence URL.",
149
- "hookEvents": [],
160
+ "note": "hookEvents lists the events DoFlow wires through .github/hooks/doflow.json, under the PascalCase names the lifecycle registry uses: SessionStart (native sessionStart), PreToolUse (preToolUse), Stop (agentStop), SubagentStart (subagentStart) and SubagentStop (subagentStop). Event surface, payloads and the deny shape were read from https://docs.github.com/en/copilot/reference/hooks-reference and checked against a live Copilot CLI 1.0.103 capture on 2026-10-27 (verified_on 2026-10-27); where they disagree the capture wins (toolArgs is a JSON object, or a raw string for apply_patch, not the documented JSON string). Widen only alongside an added evidence URL.",
161
+ "skillFields": ["name", "description", "license", "allowed-tools"],
162
+ "skillFieldsSource": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-skills",
163
+ "skillFieldsVerifiedOn": "2026-10-27",
164
+ "unknownSkillFields": "not-documented",
165
+ "hookEvents": [
166
+ "SessionStart",
167
+ "PreToolUse",
168
+ "Stop",
169
+ "SubagentStart",
170
+ "SubagentStop"
171
+ ],
150
172
  "evidence": [
151
173
  "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-skills",
152
174
  "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli",
@@ -157,32 +179,37 @@
157
179
  {
158
180
  "harness": "kiro",
159
181
  "completeness": "lower-bound",
160
- "note": "hookEvents lists only the events DoFlow actually installs a doflow.json entry for (session-context on SessionStart, pre-implementation-gate, pre-bash-guard and mcp-tool-guard all on PreToolUse \u2014 hence PreToolUse appearing once, not twice \u2014 and stop-check on Stop), not the full set of trigger names Kiro's docs confirm (SessionStart, Stop, PreToolUse, PostToolUse, UserPromptSubmit, PreTaskExec, PostTaskExec, PostFileSave, PostFileCreate, PostFileDelete \u2014 see kiro.dev/docs/hooks/actions/). Widen this list only when DoFlow wires a hook to one of the unused confirmed events, alongside an added evidence URL.",
182
+ "note": "hookEvents lists only the events DoFlow actually installs a doflow.json entry for (session-context on SessionStart, pre-implementation-gate, pre-bash-guard and mcp-tool-guard all on PreToolUse \u2014 hence PreToolUse appearing once, not twice \u2014 and stop-check on Stop), not the full set of trigger names Kiro's docs confirm (SessionStart, Stop, PreToolUse, PostToolUse, UserPromptSubmit, PreTaskExec, PostTaskExec, PostFileSave, PostFileCreate, PostFileDelete, plus SessionEnd on CLI V3 only \u2014 see kiro.dev/docs/hooks/types/). Widen this list only when DoFlow wires a hook to one of the unused confirmed events, alongside an added evidence URL.",
183
+ "skillFields": ["name", "description", "license", "compatibility", "metadata"],
184
+ "skillFieldsSource": "https://kiro.dev/docs/skills/",
185
+ "skillFieldsVerifiedOn": "2026-10-27",
186
+ "unknownSkillFields": "not-documented",
161
187
  "hookEvents": [
162
188
  "SessionStart",
163
189
  "PreToolUse",
164
190
  "Stop"
165
191
  ],
166
192
  "evidence": [
167
- "https://kiro.dev/docs/steering/",
168
- "https://kiro.dev/docs/mcp/configuration/",
169
193
  "https://kiro.dev/docs/hooks/",
170
- "https://kiro.dev/docs/hooks/actions/"
194
+ "https://kiro.dev/docs/hooks/actions/",
195
+ "https://kiro.dev/docs/hooks/types/"
171
196
  ]
172
197
  },
173
198
  {
174
199
  "harness": "antigravity",
175
200
  "completeness": "lower-bound",
176
- "note": "hookEvents lists what DoFlow wires; widen only with added evidence. Antigravity documents five hook events; DoFlow wires PreToolUse (pre-implementation gate) and Stop (stop check) today.",
201
+ "note": "hookEvents lists what DoFlow wires; widen only with added evidence. Antigravity documents six hook events (SessionStart added); DoFlow wires PreToolUse (pre-implementation gate) and Stop (stop check) today.",
202
+ "skillFields": ["name", "description"],
203
+ "skillFieldsSource": "https://www.antigravity.google/docs/skills",
204
+ "skillFieldsVerifiedOn": "2026-10-27",
205
+ "unknownSkillFields": "not-documented",
177
206
  "hookEvents": [
178
207
  "PreToolUse",
179
208
  "Stop"
180
209
  ],
181
210
  "evidence": [
182
- "https://antigravity.google/docs/cli/gcli-migration",
183
211
  "https://antigravity.google/docs/hooks",
184
- "https://antigravity.google/docs/cli/mcp",
185
- "https://antigravity.google/docs/hooks/"
212
+ "https://antigravity.google/docs/mcp?tab=cli"
186
213
  ]
187
214
  }
188
215
  ]