create-agdf 0.14.5 → 0.20.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 (1331) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +496 -19
  3. package/bin/create-agdf.js +2 -1
  4. package/generated/.agdf/control/README.md +29 -2
  5. package/generated/.agdf/control/templates/MASTER_BACKLOG.md +4 -2
  6. package/generated/.agdf/control/templates/RUN_STATE.md +1 -0
  7. package/generated/.agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +31 -0
  8. package/generated/.agdf/control/templates/artefacts/PRD.md +44 -5
  9. package/generated/.agdf/control/templates/artefacts/QA_REPORT.md +6 -0
  10. package/generated/.agdf/control/templates/artefacts/SD.md +31 -3
  11. package/generated/.agdf/control/templates/artefacts/TP.md +43 -8
  12. package/generated/.agdf/control/templates/artefacts/UR.md +17 -0
  13. package/generated/.agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +10 -0
  14. package/generated/.opencode/AGDF.md +17 -121
  15. package/generated/.opencode/README.md +7 -2
  16. package/generated/.opencode/agdf-agent-router.md +174 -0
  17. package/generated/.opencode/agdf-interaction-locales.json +2682 -495
  18. package/generated/.opencode/agdf-runtime-contract.md +17 -9
  19. package/generated/.opencode/contracts/closeout.md +7 -3
  20. package/generated/.opencode/contracts/control-scaffold.md +19 -6
  21. package/generated/.opencode/contracts/gate-artifact-preparation.md +132 -0
  22. package/generated/.opencode/contracts/gate-transition.md +56 -12
  23. package/generated/.opencode/contracts/interaction.md +331 -41
  24. package/generated/.opencode/contracts/modes.md +23 -11
  25. package/generated/.opencode/contracts/prd-definition.md +130 -0
  26. package/generated/.opencode/contracts/quality.md +85 -14
  27. package/generated/.opencode/contracts/request-activation.md +252 -0
  28. package/generated/.opencode/contracts/sd-definition.md +69 -0
  29. package/generated/.opencode/contracts/task-target-resolution.md +63 -9
  30. package/generated/.opencode/contracts/tp-definition.md +81 -0
  31. package/generated/.opencode/contracts/ur-definition.md +94 -0
  32. package/generated/.opencode/skills/agdf-brownfield-analysis/SKILL.md +70 -8
  33. package/generated/.opencode/skills/agdf-clean-implementation-review/SKILL.md +35 -3
  34. package/generated/.opencode/skills/agdf-code-review/SKILL.md +36 -2
  35. package/generated/.opencode/skills/agdf-delivery-closeout/SKILL.md +36 -4
  36. package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +36 -4
  37. package/generated/.opencode/skills/agdf-gate-check/SKILL.md +68 -222
  38. package/generated/.opencode/skills/agdf-prd-definition/SKILL.md +51 -0
  39. package/generated/.opencode/skills/agdf-qa-gate/SKILL.md +78 -10
  40. package/generated/.opencode/skills/agdf-release-or/SKILL.md +44 -11
  41. package/generated/.opencode/skills/agdf-sd-definition/SKILL.md +51 -0
  42. package/generated/.opencode/skills/agdf-task-plan-review/SKILL.md +35 -3
  43. package/generated/.opencode/skills/agdf-tp-definition/SKILL.md +51 -0
  44. package/generated/.opencode/skills/agdf-ur-definition/SKILL.md +54 -0
  45. package/generated/.opencode/skills/agdf-ux-intent-definition/SKILL.md +100 -6
  46. package/generated/plugins/agdf/.claude-plugin/plugin.json +3 -2
  47. package/generated/plugins/agdf/.codex-plugin/plugin.json +3 -1
  48. package/generated/plugins/agdf/control/README.md +29 -2
  49. package/generated/plugins/agdf/control/templates/MASTER_BACKLOG.md +4 -2
  50. package/generated/plugins/agdf/control/templates/RUN_STATE.md +1 -0
  51. package/generated/plugins/agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +31 -0
  52. package/generated/plugins/agdf/control/templates/artefacts/PRD.md +44 -5
  53. package/generated/plugins/agdf/control/templates/artefacts/QA_REPORT.md +6 -0
  54. package/generated/plugins/agdf/control/templates/artefacts/SD.md +31 -3
  55. package/generated/plugins/agdf/control/templates/artefacts/TP.md +43 -8
  56. package/generated/plugins/agdf/control/templates/artefacts/UR.md +17 -0
  57. package/generated/plugins/agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +10 -0
  58. package/generated/plugins/agdf/hooks/hooks.json +2 -2
  59. package/generated/plugins/agdf/hooks/session-start.sh +5 -70
  60. package/generated/plugins/agdf/mcp/agdf-mcp-launch.js +7 -0
  61. package/generated/plugins/agdf/mcp/claude.mcp.json +11 -0
  62. package/generated/plugins/agdf/mcp/sdk/expected-sdk.json +21 -0
  63. package/generated/plugins/agdf/mcp/sdk/package-lock.json +47 -0
  64. package/generated/plugins/agdf/mcp/sdk/package.json +7 -0
  65. package/generated/plugins/agdf/mcp/server/NOTICE +10 -0
  66. package/generated/plugins/agdf/mcp/server/README.md +136 -0
  67. package/generated/plugins/agdf/mcp/server/bin/agdf-mcp.js +24 -0
  68. package/generated/plugins/agdf/mcp/server/package.json +59 -0
  69. package/generated/plugins/agdf/mcp/server/src/cockpit-resource.js +20 -0
  70. package/generated/plugins/agdf/mcp/server/src/generation-entry.js +86 -0
  71. package/generated/plugins/agdf/mcp/server/src/generation-protocol.js +44 -0
  72. package/generated/plugins/agdf/mcp/server/src/generation.js +211 -0
  73. package/generated/plugins/agdf/mcp/server/src/main.js +56 -0
  74. package/generated/plugins/agdf/mcp/server/src/server.js +187 -0
  75. package/generated/plugins/agdf/mcp/server/src/ui-capability.js +17 -0
  76. package/generated/plugins/agdf/mcp/server/src/worker-entry.js +39 -0
  77. package/generated/plugins/agdf/mcp/server/src/worker.js +134 -0
  78. package/generated/plugins/agdf/mcp/server/ui/cockpit.html +109 -0
  79. package/generated/plugins/agdf/mcp/server/ui/decision-manifest.json +8 -0
  80. package/generated/plugins/agdf/mcp/server/ui/decision.html +108 -0
  81. package/generated/plugins/agdf/mcp/server/ui/manifest.json +8 -0
  82. package/generated/plugins/agdf/mcp.json +28 -0
  83. package/generated/plugins/agdf/meta/agdf-agent-router.md +50 -8
  84. package/generated/plugins/agdf/meta/agdf-interaction-locales.json +2682 -495
  85. package/generated/plugins/agdf/meta/agdf-mcp-capability.json +158 -0
  86. package/generated/plugins/agdf/meta/agdf-plugin.definition.json +354 -17
  87. package/generated/plugins/agdf/meta/agdf-runtime-contract.md +17 -9
  88. package/generated/plugins/agdf/meta/contracts/closeout.md +6 -2
  89. package/generated/plugins/agdf/meta/contracts/control-scaffold.md +17 -4
  90. package/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
  91. package/generated/plugins/agdf/meta/contracts/gate-transition.md +48 -4
  92. package/generated/plugins/agdf/meta/contracts/interaction.md +328 -38
  93. package/generated/plugins/agdf/meta/contracts/modes.md +23 -11
  94. package/generated/plugins/agdf/meta/contracts/prd-definition.md +130 -0
  95. package/generated/plugins/agdf/meta/contracts/quality.md +77 -6
  96. package/generated/plugins/agdf/meta/contracts/request-activation.md +252 -0
  97. package/generated/plugins/agdf/meta/contracts/sd-definition.md +69 -0
  98. package/generated/plugins/agdf/meta/contracts/task-target-resolution.md +63 -9
  99. package/generated/plugins/agdf/meta/contracts/tp-definition.md +81 -0
  100. package/generated/plugins/agdf/meta/contracts/ur-definition.md +94 -0
  101. package/generated/plugins/agdf/meta/copilot-payload-baseline.json +3 -3
  102. package/generated/plugins/agdf/meta/distribution-profile-history.json +14 -0
  103. package/generated/plugins/agdf/meta/schemas/agent-plugins/1.0.0/mcp.schema.json +120 -0
  104. package/generated/plugins/agdf/meta/schemas/agent-plugins/1.0.0/plugin.schema.json +65 -0
  105. package/generated/plugins/agdf/meta/schemas/agent-plugins/1.0.0/provenance.json +19 -0
  106. package/generated/plugins/agdf/runtime/agdf-local.js +5 -4
  107. package/generated/plugins/agdf/runtime/agdf-session-check.js +127 -50
  108. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2682 -495
  109. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +354 -17
  110. package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/closeout.md +7 -3
  111. package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/control-scaffold.md +19 -6
  112. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
  113. package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/gate-transition.md +56 -12
  114. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +777 -0
  115. package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/modes.md +23 -11
  116. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +130 -0
  117. package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/quality.md +85 -14
  118. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +252 -0
  119. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +69 -0
  120. package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/task-target-resolution.md +63 -9
  121. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +81 -0
  122. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +94 -0
  123. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/command-registry.js +251 -16
  124. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/contract-command.js +24 -0
  125. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +44 -0
  126. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/delivery-path-search-command.js +11 -11
  127. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/parse-args.js +254 -5
  128. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/runtime-context.js +14 -37
  129. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +205 -7
  130. package/generated/plugins/agdf/runtime/create-agdf/lib/control-command.js +4 -0
  131. package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +22 -0
  132. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +28 -0
  133. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +4 -0
  134. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/service.js +3 -0
  135. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +25 -0
  136. package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +5 -0
  137. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/claude.js +3 -3
  138. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/codex.js +3 -3
  139. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/opencode.js +4 -4
  140. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/protocol.js +1 -1
  141. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/claude.js +3 -3
  142. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/codex.js +3 -3
  143. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/protocol.js +1 -1
  144. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/surfaces/capabilities.js +1 -1
  145. package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/transports/read-only-guard.js +2 -1
  146. package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/claude/session-command.js +2 -0
  147. package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/codex/session-command.js +7 -0
  148. package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/copilot/session-command.js +1 -0
  149. package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/opencode/session-command.js +1 -0
  150. package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/session-command.js +11 -0
  151. package/generated/plugins/agdf/runtime/create-agdf/lib/host-command.js +112 -0
  152. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +360 -0
  153. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +26 -0
  154. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +34 -0
  155. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +527 -0
  156. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +420 -0
  157. package/generated/plugins/agdf/runtime/create-agdf/lib/npm-invocation.js +27 -0
  158. package/generated/plugins/agdf/runtime/create-agdf/lib/repository-context.js +87 -0
  159. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +12 -0
  160. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-context.js +11 -0
  161. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/git-history.js +7 -0
  162. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/git-originals.js +36 -0
  163. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/local-validator.js +39 -5
  164. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/plugin-provenance.js +1 -298
  165. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/runtime-probe.js +61 -0
  166. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/validator-application.js +3 -3
  167. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime-check-consent/contract.js +9 -8
  168. package/generated/plugins/agdf/runtime/create-agdf/lib/skill-dispatch/binding.js +9 -0
  169. package/generated/plugins/agdf/runtime/create-agdf/package.json +6 -2
  170. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/acceptance-criteria.js +61 -0
  171. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.d.ts +3 -0
  172. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.js +15 -0
  173. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +103 -0
  174. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +131 -0
  175. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +46 -0
  176. package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/delivery-map.js +31 -37
  177. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-relationships.js +21 -0
  178. package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/doctor.js +85 -17
  179. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +827 -0
  180. package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-evaluation/gate-policy.js +141 -10
  181. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/markdown-table.js +40 -0
  182. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +32 -0
  183. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/normalized-gaps.js +105 -0
  184. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/prd-readiness.js +51 -0
  185. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +83 -0
  186. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/report-decision.js +237 -0
  187. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +51 -0
  188. package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/run-state.js +108 -74
  189. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +20 -0
  190. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +109 -0
  191. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/sd-readiness.js +56 -0
  192. package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-evaluation/shared.js +5 -2
  193. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +118 -0
  194. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/traceability-readiness.js +212 -0
  195. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +47 -0
  196. package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/verified-change.js +10 -30
  197. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +122 -0
  198. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-backlog.js +135 -0
  199. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-context.js +97 -0
  200. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-contract.js +86 -0
  201. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.d.ts +17 -0
  202. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.js +45 -0
  203. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-session.js +217 -0
  204. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit.js +388 -0
  205. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +299 -0
  206. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/decision-session.js +243 -0
  207. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +35 -0
  208. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +319 -0
  209. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +149 -0
  210. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +41 -0
  211. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +57 -0
  212. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +85 -0
  213. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +122 -0
  214. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +226 -0
  215. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +38 -0
  216. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +105 -0
  217. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-worker.js +33 -0
  218. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/control-changes.js +33 -0
  219. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +55 -0
  220. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +378 -0
  221. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read-boundary.js +22 -0
  222. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command-contract.js +73 -0
  223. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +137 -0
  224. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +95 -0
  225. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +90 -0
  226. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +94 -0
  227. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +4 -0
  228. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.js +40 -0
  229. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +67 -0
  230. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/contained-file.js +56 -0
  231. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-configuration.js +19 -0
  232. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-contract.js +32 -0
  233. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-service.js +55 -0
  234. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +12 -0
  235. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +132 -0
  236. package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/index.js +2 -0
  237. package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-state/legacy-migration.js +5 -31
  238. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +38 -0
  239. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +138 -0
  240. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +130 -0
  241. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +136 -0
  242. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +108 -0
  243. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/qa-deviation-acceptance.js +82 -0
  244. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +29 -0
  245. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +81 -0
  246. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +80 -0
  247. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +90 -0
  248. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +143 -0
  249. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +174 -0
  250. package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-state/run-identity.js +1 -0
  251. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +31 -0
  252. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +103 -0
  253. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +59 -0
  254. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +80 -0
  255. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +59 -0
  256. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +36 -0
  257. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +443 -0
  258. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +348 -0
  259. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +273 -0
  260. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +296 -0
  261. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +74 -0
  262. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +44 -0
  263. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +184 -0
  264. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +458 -0
  265. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +141 -0
  266. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +26 -0
  267. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +221 -0
  268. package/generated/plugins/{copilot/agdf/runtime/create-agdf/lib/control-state/run-state-parser.js → agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js} +17 -47
  269. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +170 -0
  270. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +106 -0
  271. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +57 -0
  272. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +201 -0
  273. package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-state/run-state-resolver.js +1 -1
  274. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +484 -0
  275. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +15 -0
  276. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +359 -0
  277. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +571 -0
  278. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +65 -0
  279. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-text.js +8 -0
  280. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +67 -0
  281. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -0
  282. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +26 -0
  283. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.d.ts +2 -0
  284. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +98 -0
  285. package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/interaction-presentation.js +437 -33
  286. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +4 -0
  287. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +176 -0
  288. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/repository-context-reader.js +87 -0
  289. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/artefact-templates.js +72 -0
  290. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/binding.js +26 -0
  291. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +70 -0
  292. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/contracts.js +23 -0
  293. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/host-installation.js +200 -0
  294. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +496 -0
  295. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/binding.js +66 -0
  296. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +76 -0
  297. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +430 -0
  298. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +80 -0
  299. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +74 -0
  300. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +39 -0
  301. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +39 -0
  302. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +833 -0
  303. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +41 -0
  304. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/task-target-resolution.js +202 -0
  305. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/LICENSE +11 -0
  306. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/decode.js +3 -0
  307. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  308. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode.js +511 -0
  309. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/encode.js +73 -0
  310. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/escape.js +121 -0
  311. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
  312. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
  313. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
  314. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/index.js +131 -0
  315. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/package.json +3 -0
  316. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
  317. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode.js +497 -0
  318. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/encode.js +69 -0
  319. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/escape.js +117 -0
  320. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
  321. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
  322. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
  323. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/index.js +107 -0
  324. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/package.json +3 -0
  325. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/escape.js +3 -0
  326. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/package.json +118 -0
  327. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/src/generated/.eslintrc.json +10 -0
  328. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/LICENSE +20 -0
  329. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.cjs +43 -0
  330. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.js +43 -0
  331. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.cjs +47 -0
  332. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.js +47 -0
  333. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.native.js +38 -0
  334. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/package.json +12 -0
  335. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/bin/nanoid.cjs +55 -0
  336. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.cjs +45 -0
  337. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.js +45 -0
  338. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.cjs +63 -0
  339. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.js +63 -0
  340. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/nanoid.js +1 -0
  341. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.cjs +24 -0
  342. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.js +24 -0
  343. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/package.json +6 -0
  344. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/package.json +89 -0
  345. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.cjs +4 -0
  346. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.js +4 -0
  347. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/package.json +6 -0
  348. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/LICENSE +19 -0
  349. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
  350. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
  351. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
  352. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/html.js +528 -0
  353. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/token.js +24 -0
  354. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
  355. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/index.js +54 -0
  356. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/package.json +1 -0
  357. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
  358. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
  359. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
  360. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
  361. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
  362. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
  363. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
  364. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
  365. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/doctype.js +114 -0
  366. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/error-codes.js +63 -0
  367. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/foreign-content.js +228 -0
  368. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/html.js +523 -0
  369. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/token.js +20 -0
  370. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/unicode.js +62 -0
  371. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/index.js +42 -0
  372. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
  373. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/index.js +3245 -0
  374. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
  375. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/serializer/index.js +168 -0
  376. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/index.js +2710 -0
  377. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
  378. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/default.js +173 -0
  379. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
  380. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/package.json +50 -0
  381. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/LICENSE +15 -0
  382. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/package.json +25 -0
  383. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.browser.js +4 -0
  384. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.js +75 -0
  385. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/LICENSE +20 -0
  386. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/at-rule.js +25 -0
  387. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/comment.js +13 -0
  388. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/container.js +494 -0
  389. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/css-syntax-error.js +133 -0
  390. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/declaration.js +24 -0
  391. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/document.js +33 -0
  392. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/fromJSON.js +107 -0
  393. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/input.js +282 -0
  394. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/lazy-result.js +626 -0
  395. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/list.js +79 -0
  396. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/map-generator.js +383 -0
  397. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/no-work-result.js +137 -0
  398. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/node.js +494 -0
  399. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parse.js +42 -0
  400. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parser.js +626 -0
  401. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.js +101 -0
  402. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.mjs +30 -0
  403. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/previous-map.js +176 -0
  404. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/processor.js +67 -0
  405. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/result.js +42 -0
  406. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/root.js +76 -0
  407. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/rule.js +27 -0
  408. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringifier.js +457 -0
  409. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringify.js +69 -0
  410. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/symbols.js +5 -0
  411. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/terminal-highlight.js +70 -0
  412. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/tokenize.js +270 -0
  413. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warn-once.js +13 -0
  414. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warning.js +47 -0
  415. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/package.json +88 -0
  416. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/LICENSE +28 -0
  417. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/array-set.js +121 -0
  418. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  419. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64.js +67 -0
  420. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/binary-search.js +111 -0
  421. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/mapping-list.js +79 -0
  422. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/quick-sort.js +141 -0
  423. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-consumer.js +1236 -0
  424. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-generator.js +446 -0
  425. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-node.js +420 -0
  426. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/util.js +594 -0
  427. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/package.json +71 -0
  428. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/source-map.js +8 -0
  429. package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
  430. package/generated/plugins/agdf/scripts/agent-skills-conformance.mjs +9 -5
  431. package/generated/plugins/agdf/scripts/check-runtime-integrity.mjs +1123 -182
  432. package/generated/plugins/agdf/scripts/instruction-footprint.mjs +945 -0
  433. package/generated/plugins/agdf/skills/brownfield-analysis/SKILL.md +67 -5
  434. package/generated/plugins/agdf/skills/clean-implementation-review/SKILL.md +34 -2
  435. package/generated/plugins/agdf/skills/code-review/SKILL.md +36 -2
  436. package/generated/plugins/agdf/skills/delivery-closeout/SKILL.md +34 -2
  437. package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +34 -2
  438. package/generated/plugins/agdf/skills/gate-check/SKILL.md +68 -222
  439. package/generated/plugins/agdf/skills/prd-definition/SKILL.md +51 -0
  440. package/generated/plugins/agdf/skills/prd-definition/help.md +23 -0
  441. package/generated/plugins/agdf/skills/qa-gate/SKILL.md +73 -5
  442. package/generated/plugins/agdf/skills/release-or/SKILL.md +36 -3
  443. package/generated/plugins/agdf/skills/sd-definition/SKILL.md +51 -0
  444. package/generated/plugins/agdf/skills/sd-definition/help.md +17 -0
  445. package/generated/plugins/agdf/skills/task-plan-review/SKILL.md +34 -2
  446. package/generated/plugins/agdf/skills/tp-definition/SKILL.md +51 -0
  447. package/generated/plugins/agdf/skills/tp-definition/help.md +17 -0
  448. package/generated/plugins/agdf/skills/ur-definition/SKILL.md +54 -0
  449. package/generated/plugins/agdf/skills/ur-definition/help.md +19 -0
  450. package/generated/plugins/agdf/skills/ux-intent-definition/SKILL.md +100 -6
  451. package/generated/plugins/agdf/skills/ux-intent-definition/help.md +3 -0
  452. package/generated/plugins/agdf/submission/openai/availability.md +1 -1
  453. package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
  454. package/generated/plugins/agdf/submission/openai/release-notes.md +1 -1
  455. package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
  456. package/generated/plugins/copilot/agdf/.agdf-payload-inventory.json +3314 -409
  457. package/generated/plugins/copilot/agdf/control/README.md +125 -0
  458. package/generated/plugins/copilot/agdf/control/templates/AGDF_RUN.md +139 -0
  459. package/generated/plugins/copilot/agdf/control/templates/AGENT_QUALITY_CONTRACTS.json +126 -0
  460. package/generated/plugins/copilot/agdf/control/templates/CONTEXT_GRAPH.md +51 -0
  461. package/generated/plugins/copilot/agdf/control/templates/MASTER_BACKLOG.md +39 -0
  462. package/generated/plugins/copilot/agdf/control/templates/RUN_STATE.md +93 -0
  463. package/generated/plugins/copilot/agdf/control/templates/SOT_REGISTRY.md +25 -0
  464. package/generated/plugins/copilot/agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +135 -0
  465. package/generated/plugins/copilot/agdf/control/templates/artefacts/OR.md +125 -0
  466. package/generated/plugins/copilot/agdf/control/templates/artefacts/PRD.md +113 -0
  467. package/generated/plugins/copilot/agdf/control/templates/artefacts/QA_REPORT.md +44 -0
  468. package/generated/plugins/copilot/agdf/control/templates/artefacts/SD.md +70 -0
  469. package/generated/plugins/copilot/agdf/control/templates/artefacts/TP.md +71 -0
  470. package/generated/plugins/copilot/agdf/control/templates/artefacts/UR.md +58 -0
  471. package/generated/plugins/copilot/agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +61 -0
  472. package/generated/plugins/copilot/agdf/control/templates/artefacts/VERIFIED_CHANGE.md +58 -0
  473. package/generated/plugins/copilot/agdf/mcp/agdf-mcp-launch.js +7 -0
  474. package/generated/plugins/copilot/agdf/mcp/sdk/expected-sdk.json +21 -0
  475. package/generated/plugins/copilot/agdf/mcp/sdk/package-lock.json +47 -0
  476. package/generated/plugins/copilot/agdf/mcp/sdk/package.json +7 -0
  477. package/generated/plugins/copilot/agdf/mcp/server/NOTICE +10 -0
  478. package/generated/plugins/copilot/agdf/mcp/server/README.md +136 -0
  479. package/generated/plugins/copilot/agdf/mcp/server/bin/agdf-mcp.js +24 -0
  480. package/generated/plugins/copilot/agdf/mcp/server/package.json +59 -0
  481. package/generated/plugins/copilot/agdf/mcp/server/src/cockpit-resource.js +20 -0
  482. package/generated/plugins/copilot/agdf/mcp/server/src/generation-entry.js +86 -0
  483. package/generated/plugins/copilot/agdf/mcp/server/src/generation-protocol.js +44 -0
  484. package/generated/plugins/copilot/agdf/mcp/server/src/generation.js +211 -0
  485. package/generated/plugins/copilot/agdf/mcp/server/src/main.js +56 -0
  486. package/generated/plugins/copilot/agdf/mcp/server/src/server.js +187 -0
  487. package/generated/plugins/copilot/agdf/mcp/server/src/ui-capability.js +17 -0
  488. package/generated/plugins/copilot/agdf/mcp/server/src/worker-entry.js +39 -0
  489. package/generated/plugins/copilot/agdf/mcp/server/src/worker.js +134 -0
  490. package/generated/plugins/copilot/agdf/mcp.json +16 -0
  491. package/generated/plugins/copilot/agdf/meta/agdf-agent-router.md +50 -8
  492. package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +354 -17
  493. package/generated/plugins/copilot/agdf/meta/agdf-runtime-contract.md +17 -9
  494. package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +14 -0
  495. package/generated/plugins/copilot/agdf/plugin.json +3 -5
  496. package/generated/plugins/copilot/agdf/runtime/agdf-local.js +5 -4
  497. package/generated/plugins/copilot/agdf/runtime/agdf-session-check.js +110 -47
  498. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2682 -495
  499. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +354 -17
  500. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +82 -0
  501. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/context-graph.md +48 -0
  502. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +145 -0
  503. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
  504. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +209 -0
  505. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +777 -0
  506. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +195 -0
  507. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +130 -0
  508. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +228 -0
  509. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +252 -0
  510. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +69 -0
  511. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +156 -0
  512. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +81 -0
  513. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +94 -0
  514. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/command-registry.js +251 -16
  515. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/contract-command.js +24 -0
  516. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +44 -0
  517. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/delivery-path-search-command.js +11 -11
  518. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/parse-args.js +254 -5
  519. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/runtime-context.js +14 -37
  520. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +205 -7
  521. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-command.js +4 -0
  522. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +22 -0
  523. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +28 -0
  524. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +4 -0
  525. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/service.js +3 -0
  526. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +25 -0
  527. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +5 -0
  528. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/claude.js +3 -3
  529. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/codex.js +3 -3
  530. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/opencode.js +4 -4
  531. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/protocol.js +1 -1
  532. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/generators/claude.js +3 -3
  533. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/generators/codex.js +3 -3
  534. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/generators/protocol.js +1 -1
  535. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/surfaces/capabilities.js +1 -1
  536. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/transports/read-only-guard.js +2 -1
  537. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/claude/session-command.js +2 -0
  538. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/codex/session-command.js +7 -0
  539. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/copilot/session-command.js +1 -0
  540. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/opencode/session-command.js +1 -0
  541. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/session-command.js +11 -0
  542. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-command.js +112 -0
  543. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +360 -0
  544. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +26 -0
  545. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +34 -0
  546. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +527 -0
  547. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +420 -0
  548. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/npm-invocation.js +27 -0
  549. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/repository-context.js +87 -0
  550. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +12 -0
  551. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-context.js +11 -0
  552. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/git-history.js +7 -0
  553. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/git-originals.js +36 -0
  554. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/local-validator.js +39 -5
  555. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/plugin-provenance.js +1 -298
  556. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/runtime-probe.js +61 -0
  557. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/validator-application.js +3 -3
  558. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime-check-consent/contract.js +9 -8
  559. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/skill-dispatch/binding.js +9 -0
  560. package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +6 -2
  561. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/acceptance-criteria.js +61 -0
  562. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.d.ts +3 -0
  563. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.js +15 -0
  564. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +103 -0
  565. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +131 -0
  566. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +46 -0
  567. package/{lib → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/delivery-map.js +31 -37
  568. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-relationships.js +21 -0
  569. package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-evaluation/doctor.js +85 -17
  570. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +827 -0
  571. package/{lib → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/gate-policy.js +141 -10
  572. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/markdown-table.js +40 -0
  573. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +32 -0
  574. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/normalized-gaps.js +105 -0
  575. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/prd-readiness.js +51 -0
  576. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +83 -0
  577. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/report-decision.js +237 -0
  578. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +51 -0
  579. package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/run-state.js +108 -74
  580. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +20 -0
  581. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +109 -0
  582. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/sd-readiness.js +56 -0
  583. package/{lib → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/shared.js +5 -2
  584. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +118 -0
  585. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/traceability-readiness.js +212 -0
  586. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +47 -0
  587. package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/verified-change.js +10 -30
  588. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +122 -0
  589. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +299 -0
  590. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +35 -0
  591. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +319 -0
  592. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +149 -0
  593. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +41 -0
  594. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +57 -0
  595. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +85 -0
  596. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +122 -0
  597. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +226 -0
  598. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +38 -0
  599. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +55 -0
  600. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +378 -0
  601. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read-boundary.js +22 -0
  602. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command-contract.js +73 -0
  603. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +137 -0
  604. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +95 -0
  605. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +90 -0
  606. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +94 -0
  607. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +4 -0
  608. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.js +40 -0
  609. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +67 -0
  610. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/contained-file.js +56 -0
  611. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-configuration.js +19 -0
  612. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +12 -0
  613. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +132 -0
  614. package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/index.js +2 -0
  615. package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-state/legacy-migration.js +5 -31
  616. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +38 -0
  617. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +138 -0
  618. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +130 -0
  619. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +136 -0
  620. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +108 -0
  621. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/qa-deviation-acceptance.js +82 -0
  622. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +29 -0
  623. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +81 -0
  624. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +80 -0
  625. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +90 -0
  626. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +143 -0
  627. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +174 -0
  628. package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-state/run-identity.js +1 -0
  629. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +31 -0
  630. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +103 -0
  631. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +59 -0
  632. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +80 -0
  633. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +59 -0
  634. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +36 -0
  635. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +443 -0
  636. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +348 -0
  637. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +273 -0
  638. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +296 -0
  639. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +74 -0
  640. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +44 -0
  641. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +184 -0
  642. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +458 -0
  643. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +141 -0
  644. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +26 -0
  645. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +221 -0
  646. package/{lib/control-state/run-state-parser.js → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js} +17 -47
  647. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +170 -0
  648. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +106 -0
  649. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +57 -0
  650. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +201 -0
  651. package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-state/run-state-resolver.js +1 -1
  652. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +484 -0
  653. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +15 -0
  654. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +359 -0
  655. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +571 -0
  656. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +65 -0
  657. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-text.js +8 -0
  658. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +67 -0
  659. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/fs-swap.js +26 -0
  660. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -0
  661. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +26 -0
  662. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +98 -0
  663. package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/interaction-presentation.js +437 -33
  664. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +4 -0
  665. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +176 -0
  666. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/repository-context-reader.js +87 -0
  667. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/artefact-templates.js +72 -0
  668. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/binding.js +27 -0
  669. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +70 -0
  670. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/contracts.js +23 -0
  671. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/distribution-profile-history.js +173 -0
  672. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +496 -0
  673. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/binding.js +66 -0
  674. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +76 -0
  675. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +430 -0
  676. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +80 -0
  677. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +74 -0
  678. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +39 -0
  679. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +39 -0
  680. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +833 -0
  681. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +41 -0
  682. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/task-target-resolution.js +202 -0
  683. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/LICENSE +11 -0
  684. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/decode.js +3 -0
  685. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  686. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode.js +511 -0
  687. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/encode.js +73 -0
  688. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/escape.js +121 -0
  689. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
  690. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
  691. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
  692. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/index.js +131 -0
  693. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/package.json +3 -0
  694. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
  695. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode.js +497 -0
  696. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/encode.js +69 -0
  697. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/escape.js +117 -0
  698. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
  699. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
  700. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
  701. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/index.js +107 -0
  702. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/package.json +3 -0
  703. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/escape.js +3 -0
  704. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/package.json +118 -0
  705. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/src/generated/.eslintrc.json +10 -0
  706. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/LICENSE +20 -0
  707. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.cjs +43 -0
  708. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.js +43 -0
  709. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.cjs +47 -0
  710. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.js +47 -0
  711. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.native.js +38 -0
  712. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/package.json +12 -0
  713. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/bin/nanoid.cjs +55 -0
  714. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.cjs +45 -0
  715. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.js +45 -0
  716. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.cjs +63 -0
  717. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.js +63 -0
  718. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/nanoid.js +1 -0
  719. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.cjs +24 -0
  720. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.js +24 -0
  721. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/package.json +6 -0
  722. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/package.json +89 -0
  723. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.cjs +4 -0
  724. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.js +4 -0
  725. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/package.json +6 -0
  726. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/LICENSE +19 -0
  727. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
  728. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
  729. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
  730. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/html.js +528 -0
  731. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/token.js +24 -0
  732. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
  733. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/index.js +54 -0
  734. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/package.json +1 -0
  735. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
  736. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
  737. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
  738. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
  739. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
  740. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
  741. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
  742. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
  743. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/doctype.js +114 -0
  744. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/error-codes.js +63 -0
  745. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/foreign-content.js +228 -0
  746. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/html.js +523 -0
  747. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/token.js +20 -0
  748. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/unicode.js +62 -0
  749. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/index.js +42 -0
  750. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
  751. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/index.js +3245 -0
  752. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
  753. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/serializer/index.js +168 -0
  754. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/index.js +2710 -0
  755. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
  756. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/default.js +173 -0
  757. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
  758. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/package.json +50 -0
  759. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/LICENSE +15 -0
  760. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/package.json +25 -0
  761. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.browser.js +4 -0
  762. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.js +75 -0
  763. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/LICENSE +20 -0
  764. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/at-rule.js +25 -0
  765. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/comment.js +13 -0
  766. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/container.js +494 -0
  767. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/css-syntax-error.js +133 -0
  768. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/declaration.js +24 -0
  769. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/document.js +33 -0
  770. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/fromJSON.js +107 -0
  771. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/input.js +282 -0
  772. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/lazy-result.js +626 -0
  773. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/list.js +79 -0
  774. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/map-generator.js +383 -0
  775. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/no-work-result.js +137 -0
  776. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/node.js +494 -0
  777. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parse.js +42 -0
  778. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parser.js +626 -0
  779. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.js +101 -0
  780. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.mjs +30 -0
  781. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/previous-map.js +176 -0
  782. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/processor.js +67 -0
  783. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/result.js +42 -0
  784. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/root.js +76 -0
  785. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/rule.js +27 -0
  786. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringifier.js +457 -0
  787. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringify.js +69 -0
  788. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/symbols.js +5 -0
  789. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/terminal-highlight.js +70 -0
  790. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/tokenize.js +270 -0
  791. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warn-once.js +13 -0
  792. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warning.js +47 -0
  793. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/package.json +88 -0
  794. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/LICENSE +28 -0
  795. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/array-set.js +121 -0
  796. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  797. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64.js +67 -0
  798. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/binary-search.js +111 -0
  799. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/mapping-list.js +79 -0
  800. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/quick-sort.js +141 -0
  801. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-consumer.js +1236 -0
  802. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-generator.js +446 -0
  803. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-node.js +420 -0
  804. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/util.js +594 -0
  805. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/package.json +71 -0
  806. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/source-map.js +8 -0
  807. package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
  808. package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-brownfield-analysis/SKILL.md +70 -8
  809. package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-clean-implementation-review/SKILL.md +35 -3
  810. package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-code-review/SKILL.md +36 -2
  811. package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-delivery-closeout/SKILL.md +36 -4
  812. package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-delivery-path-search/SKILL.md +36 -4
  813. package/generated/plugins/copilot/agdf/skills/agdf-gate-check/SKILL.md +86 -0
  814. package/generated/plugins/copilot/agdf/skills/agdf-interaction-locales.json +1 -0
  815. package/generated/plugins/copilot/agdf/skills/agdf-prd-definition/SKILL.md +51 -0
  816. package/generated/plugins/copilot/agdf/skills/agdf-qa-gate/SKILL.md +205 -0
  817. package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-release-or/SKILL.md +44 -11
  818. package/generated/plugins/copilot/agdf/skills/agdf-runtime-contract.md +24 -0
  819. package/generated/plugins/copilot/agdf/skills/agdf-sd-definition/SKILL.md +51 -0
  820. package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-task-plan-review/SKILL.md +35 -3
  821. package/generated/plugins/copilot/agdf/skills/agdf-tp-definition/SKILL.md +51 -0
  822. package/generated/plugins/copilot/agdf/skills/agdf-ur-definition/SKILL.md +54 -0
  823. package/generated/plugins/copilot/agdf/skills/agdf-ux-intent-definition/SKILL.md +188 -0
  824. package/generated/plugins/copilot/agdf/skills/contracts/closeout.md +82 -0
  825. package/generated/plugins/copilot/agdf/skills/contracts/context-graph.md +48 -0
  826. package/generated/plugins/copilot/agdf/skills/contracts/control-scaffold.md +145 -0
  827. package/generated/plugins/copilot/agdf/skills/contracts/gate-artifact-preparation.md +132 -0
  828. package/generated/plugins/copilot/agdf/skills/contracts/gate-transition.md +209 -0
  829. package/generated/plugins/copilot/agdf/skills/contracts/interaction.md +777 -0
  830. package/generated/plugins/copilot/agdf/skills/contracts/modes.md +195 -0
  831. package/generated/plugins/copilot/agdf/skills/contracts/prd-definition.md +130 -0
  832. package/generated/plugins/copilot/agdf/skills/contracts/quality.md +228 -0
  833. package/generated/plugins/copilot/agdf/skills/contracts/request-activation.md +252 -0
  834. package/generated/plugins/copilot/agdf/skills/contracts/sd-definition.md +69 -0
  835. package/generated/plugins/copilot/agdf/skills/contracts/task-target-resolution.md +156 -0
  836. package/generated/plugins/copilot/agdf/skills/contracts/tp-definition.md +81 -0
  837. package/generated/plugins/copilot/agdf/skills/contracts/ur-definition.md +94 -0
  838. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  839. package/generated/submissions/openai/agdf/meta/agdf-agent-router.md +50 -8
  840. package/generated/submissions/openai/agdf/meta/agdf-interaction-locales.json +2682 -495
  841. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +354 -17
  842. package/generated/submissions/openai/agdf/meta/agdf-runtime-contract.md +17 -9
  843. package/generated/submissions/openai/agdf/meta/contracts/closeout.md +6 -2
  844. package/generated/submissions/openai/agdf/meta/contracts/control-scaffold.md +17 -4
  845. package/generated/submissions/openai/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
  846. package/generated/submissions/openai/agdf/meta/contracts/gate-transition.md +48 -4
  847. package/generated/submissions/openai/agdf/meta/contracts/interaction.md +328 -38
  848. package/generated/submissions/openai/agdf/meta/contracts/modes.md +23 -11
  849. package/generated/submissions/openai/agdf/meta/contracts/prd-definition.md +130 -0
  850. package/generated/submissions/openai/agdf/meta/contracts/quality.md +77 -6
  851. package/generated/submissions/openai/agdf/meta/contracts/request-activation.md +252 -0
  852. package/generated/submissions/openai/agdf/meta/contracts/sd-definition.md +69 -0
  853. package/generated/submissions/openai/agdf/meta/contracts/task-target-resolution.md +63 -9
  854. package/generated/submissions/openai/agdf/meta/contracts/tp-definition.md +81 -0
  855. package/generated/submissions/openai/agdf/meta/contracts/ur-definition.md +94 -0
  856. package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +3 -3
  857. package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +14 -0
  858. package/generated/submissions/openai/agdf/meta/schemas/agent-plugins/1.0.0/mcp.schema.json +120 -0
  859. package/generated/submissions/openai/agdf/meta/schemas/agent-plugins/1.0.0/plugin.schema.json +65 -0
  860. package/generated/submissions/openai/agdf/meta/schemas/agent-plugins/1.0.0/provenance.json +19 -0
  861. package/generated/submissions/openai/agdf/plugin.json +47 -0
  862. package/generated/submissions/openai/agdf/skills/brownfield-analysis/SKILL.md +67 -5
  863. package/generated/submissions/openai/agdf/skills/clean-implementation-review/SKILL.md +34 -2
  864. package/generated/submissions/openai/agdf/skills/code-review/SKILL.md +36 -2
  865. package/generated/submissions/openai/agdf/skills/delivery-closeout/SKILL.md +34 -2
  866. package/generated/submissions/openai/agdf/skills/delivery-path-search/SKILL.md +34 -2
  867. package/generated/submissions/openai/agdf/skills/gate-check/SKILL.md +68 -222
  868. package/generated/submissions/openai/agdf/skills/prd-definition/SKILL.md +51 -0
  869. package/generated/submissions/openai/agdf/skills/prd-definition/help.md +23 -0
  870. package/generated/submissions/openai/agdf/skills/qa-gate/SKILL.md +73 -5
  871. package/generated/submissions/openai/agdf/skills/release-or/SKILL.md +36 -3
  872. package/generated/submissions/openai/agdf/skills/sd-definition/SKILL.md +51 -0
  873. package/generated/submissions/openai/agdf/skills/sd-definition/help.md +17 -0
  874. package/generated/submissions/openai/agdf/skills/task-plan-review/SKILL.md +34 -2
  875. package/generated/submissions/openai/agdf/skills/tp-definition/SKILL.md +51 -0
  876. package/generated/submissions/openai/agdf/skills/tp-definition/help.md +17 -0
  877. package/generated/submissions/openai/agdf/skills/ur-definition/SKILL.md +54 -0
  878. package/generated/submissions/openai/agdf/skills/ur-definition/help.md +19 -0
  879. package/generated/submissions/openai/agdf/skills/ux-intent-definition/SKILL.md +100 -6
  880. package/generated/submissions/openai/agdf/skills/ux-intent-definition/help.md +3 -0
  881. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  882. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  883. package/generated/submissions/openai/agdf/submission/openai/inventory.json +104 -32
  884. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  885. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  886. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  887. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +1 -1
  888. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  889. package/lib/cli/application.js +726 -271
  890. package/lib/cli/command-registry.js +251 -16
  891. package/lib/cli/contract-command.js +24 -0
  892. package/lib/cli/control-maintenance-command.js +44 -0
  893. package/lib/cli/delivery-path-search-command.js +11 -11
  894. package/lib/cli/parse-args.js +254 -5
  895. package/lib/cli/runtime-context.js +14 -37
  896. package/lib/cli/validation-handlers.js +205 -7
  897. package/lib/control-command.js +4 -0
  898. package/lib/control-evaluation/git-observation.js +22 -0
  899. package/lib/control-maintenance/interaction.js +28 -0
  900. package/lib/control-maintenance/repair.js +4 -0
  901. package/lib/control-maintenance/service.js +3 -0
  902. package/lib/control-maintenance/startup.js +25 -0
  903. package/lib/control-state/run-recovery.js +5 -0
  904. package/lib/delivery-path-search/evaluators/claude.js +3 -3
  905. package/lib/delivery-path-search/evaluators/codex.js +3 -3
  906. package/lib/delivery-path-search/evaluators/opencode.js +4 -4
  907. package/lib/delivery-path-search/evaluators/protocol.js +1 -1
  908. package/lib/delivery-path-search/generators/claude.js +3 -3
  909. package/lib/delivery-path-search/generators/codex.js +3 -3
  910. package/lib/delivery-path-search/generators/protocol.js +1 -1
  911. package/lib/delivery-path-search/surfaces/capabilities.js +1 -1
  912. package/lib/delivery-path-search/transports/read-only-guard.js +2 -1
  913. package/lib/host-adapters/claude/loaded-sessions.js +45 -0
  914. package/lib/host-adapters/claude/marketplace.js +2 -0
  915. package/lib/host-adapters/claude/permission-rules.js +20 -0
  916. package/lib/host-adapters/claude/plugin-mcp.js +40 -0
  917. package/lib/host-adapters/claude/plugin.js +285 -0
  918. package/lib/host-adapters/claude/runtime-check.js +39 -0
  919. package/lib/host-adapters/claude/session-command.js +2 -0
  920. package/lib/host-adapters/claude/uninstall.js +80 -0
  921. package/lib/host-adapters/codex/config-source.js +48 -0
  922. package/lib/host-adapters/codex/identity.js +19 -0
  923. package/lib/host-adapters/codex/mcp-startup.js +14 -0
  924. package/lib/host-adapters/codex/plugin-mcp.js +39 -0
  925. package/lib/host-adapters/codex/plugin.js +243 -0
  926. package/lib/host-adapters/codex/runtime-check.js +27 -0
  927. package/lib/host-adapters/codex/session-command.js +7 -0
  928. package/lib/host-adapters/copilot/plugin.js +220 -0
  929. package/lib/host-adapters/copilot/session-command.js +1 -0
  930. package/lib/host-adapters/opencode/runtime-check.js +39 -0
  931. package/lib/host-adapters/opencode/session-command.js +1 -0
  932. package/lib/host-adapters/opencode/status.js +43 -0
  933. package/lib/host-adapters/session-command.js +11 -0
  934. package/lib/host-command.js +112 -0
  935. package/lib/install-setup/contract.js +319 -0
  936. package/lib/install-setup/control-migration.js +10 -0
  937. package/lib/install-setup/control-repair.js +1 -0
  938. package/lib/install-setup/interaction.js +157 -0
  939. package/lib/install-setup/presentation.js +337 -0
  940. package/lib/install-setup/service.js +441 -0
  941. package/lib/installers/copilot-marketplace-transport.js +74 -0
  942. package/lib/installers/copilot-settings.js +34 -3
  943. package/lib/installers/copilot-skill-discovery.js +27 -0
  944. package/lib/installers/local-development.js +107 -11
  945. package/lib/installers/local-marketplace.js +313 -37
  946. package/lib/installers/npm-invocation.js +2 -0
  947. package/lib/installers/opencode-activation.js +5 -31
  948. package/lib/installers/opencode.js +286 -89
  949. package/lib/installers/packaged-app-marketplace.js +67 -0
  950. package/lib/installers/plugin-command.js +115 -0
  951. package/lib/installers/plugin-installers.js +21 -521
  952. package/lib/lifecycle/operations.js +78 -137
  953. package/lib/lifecycle/owned-mutation.js +64 -0
  954. package/lib/lifecycle/presentation.js +47 -4
  955. package/lib/lifecycle/result.js +183 -2
  956. package/lib/lifecycle/status.js +150 -66
  957. package/lib/mcp-dispatch-runtime.js +360 -0
  958. package/lib/mcp-lifecycle/adapter-contract.js +54 -0
  959. package/lib/mcp-lifecycle/adapters/claude.js +123 -0
  960. package/lib/mcp-lifecycle/adapters/codex-origin-probe.js +87 -0
  961. package/lib/mcp-lifecycle/adapters/codex.js +513 -0
  962. package/lib/mcp-lifecycle/adapters/copilot.js +106 -0
  963. package/lib/mcp-lifecycle/adapters/file-utils.js +90 -0
  964. package/lib/mcp-lifecycle/adapters/opencode.js +148 -0
  965. package/lib/mcp-lifecycle/evidence.js +122 -0
  966. package/lib/mcp-lifecycle/facade-entry.js +26 -0
  967. package/lib/mcp-lifecycle/facade-owner-entry.js +34 -0
  968. package/lib/mcp-lifecycle/host-config.js +60 -0
  969. package/lib/mcp-lifecycle/package.js +527 -0
  970. package/lib/mcp-lifecycle/plugin-runtime.js +420 -0
  971. package/lib/mcp-lifecycle/presentation.js +61 -0
  972. package/lib/mcp-lifecycle/profile-context.js +11 -0
  973. package/lib/mcp-lifecycle/profile.js +63 -0
  974. package/lib/mcp-lifecycle/result.js +92 -0
  975. package/lib/mcp-lifecycle/service.js +533 -0
  976. package/lib/npm-invocation.js +27 -0
  977. package/lib/repository-context.js +87 -0
  978. package/lib/runtime/control-command-service.js +12 -0
  979. package/lib/runtime/control-context.js +11 -0
  980. package/lib/runtime/git-history.js +7 -0
  981. package/lib/runtime/git-originals.js +36 -0
  982. package/lib/runtime/local-validator.js +39 -5
  983. package/lib/runtime/plugin-provenance.js +1 -298
  984. package/lib/runtime/runtime-probe.js +61 -0
  985. package/lib/runtime/validator-application.js +3 -3
  986. package/lib/runtime-check-consent/adapters.js +3 -42
  987. package/lib/runtime-check-consent/claude-settings.js +2 -23
  988. package/lib/runtime-check-consent/codex-hooks.js +96 -0
  989. package/lib/runtime-check-consent/codex-plugin-consent.js +118 -0
  990. package/lib/runtime-check-consent/contract.js +9 -8
  991. package/lib/runtime-check-consent/coordinator.js +3 -3
  992. package/lib/runtime-check-consent/service.js +29 -53
  993. package/lib/runtime-check-consent/state.js +1 -1
  994. package/lib/scaffold/canonical-init.js +691 -0
  995. package/lib/scaffold/plan.js +8 -14
  996. package/lib/scaffold/presentation.js +53 -3
  997. package/lib/skill-dispatch/binding.js +9 -0
  998. package/opencode-plugin.js +99 -26
  999. package/package.json +22 -51
  1000. package/runtime/core/lib/control-evaluation/acceptance-criteria.js +61 -0
  1001. package/runtime/core/lib/control-evaluation/backlog-vocabulary.d.ts +3 -0
  1002. package/runtime/core/lib/control-evaluation/backlog-vocabulary.js +15 -0
  1003. package/runtime/core/lib/control-evaluation/closeout-readiness.js +103 -0
  1004. package/runtime/core/lib/control-evaluation/decision-content-readiness.js +131 -0
  1005. package/runtime/core/lib/control-evaluation/definition-sources.js +46 -0
  1006. package/{generated/plugins/copilot/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/delivery-map.js +31 -37
  1007. package/runtime/core/lib/control-evaluation/delivery-relationships.js +21 -0
  1008. package/{generated/plugins/copilot/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/doctor.js +85 -17
  1009. package/runtime/core/lib/control-evaluation/gate-check.js +827 -0
  1010. package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/gate-policy.js +141 -10
  1011. package/runtime/core/lib/control-evaluation/markdown-table.js +40 -0
  1012. package/runtime/core/lib/control-evaluation/next-action.js +32 -0
  1013. package/runtime/core/lib/control-evaluation/normalized-gaps.js +105 -0
  1014. package/runtime/core/lib/control-evaluation/prd-readiness.js +51 -0
  1015. package/runtime/core/lib/control-evaluation/qa-follow-up.js +83 -0
  1016. package/runtime/core/lib/control-evaluation/report-decision.js +237 -0
  1017. package/runtime/core/lib/control-evaluation/run-state-policy.js +51 -0
  1018. package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/run-state.js +108 -74
  1019. package/runtime/core/lib/control-evaluation/run-step-policy.js +20 -0
  1020. package/runtime/core/lib/control-evaluation/run-work-summary.js +109 -0
  1021. package/runtime/core/lib/control-evaluation/sd-readiness.js +56 -0
  1022. package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/shared.js +5 -2
  1023. package/runtime/core/lib/control-evaluation/tp-planning.js +118 -0
  1024. package/runtime/core/lib/control-evaluation/traceability-readiness.js +212 -0
  1025. package/runtime/core/lib/control-evaluation/ur-readiness.js +47 -0
  1026. package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/verified-change.js +10 -30
  1027. package/runtime/core/lib/control-inspect/artifact-readiness.js +122 -0
  1028. package/runtime/core/lib/control-inspect/cockpit-backlog.js +135 -0
  1029. package/runtime/core/lib/control-inspect/cockpit-context.js +97 -0
  1030. package/runtime/core/lib/control-inspect/cockpit-contract.js +86 -0
  1031. package/runtime/core/lib/control-inspect/cockpit-list.d.ts +17 -0
  1032. package/runtime/core/lib/control-inspect/cockpit-list.js +45 -0
  1033. package/runtime/core/lib/control-inspect/cockpit-session.js +217 -0
  1034. package/runtime/core/lib/control-inspect/cockpit.js +388 -0
  1035. package/runtime/core/lib/control-inspect/contract.js +299 -0
  1036. package/runtime/core/lib/control-inspect/decision-session.js +243 -0
  1037. package/runtime/core/lib/control-inspect/selection.js +35 -0
  1038. package/runtime/core/lib/control-inspect/service.js +319 -0
  1039. package/runtime/core/lib/control-maintenance/compatibility.js +149 -0
  1040. package/runtime/core/lib/control-maintenance/contract.js +41 -0
  1041. package/runtime/core/lib/control-maintenance/interaction.js +57 -0
  1042. package/runtime/core/lib/control-maintenance/migration.js +85 -0
  1043. package/runtime/core/lib/control-maintenance/presentation.js +122 -0
  1044. package/runtime/core/lib/control-maintenance/repair.js +226 -0
  1045. package/runtime/core/lib/control-maintenance/service.js +38 -0
  1046. package/runtime/core/lib/control-read/cockpit-pool.js +105 -0
  1047. package/runtime/core/lib/control-read/cockpit-worker.js +33 -0
  1048. package/runtime/core/lib/control-read/control-changes.js +33 -0
  1049. package/runtime/core/lib/control-read/fs.js +55 -0
  1050. package/runtime/core/lib/control-read/snapshot.js +378 -0
  1051. package/runtime/core/lib/control-read-boundary.js +22 -0
  1052. package/runtime/core/lib/control-state/approval-command-contract.js +73 -0
  1053. package/runtime/core/lib/control-state/approval-command.js +137 -0
  1054. package/runtime/core/lib/control-state/approval-operations.js +95 -0
  1055. package/runtime/core/lib/control-state/artefact-binding-proof.js +90 -0
  1056. package/runtime/core/lib/control-state/artefact-bindings.js +94 -0
  1057. package/runtime/core/lib/control-state/backlog-summary-shape.d.ts +4 -0
  1058. package/runtime/core/lib/control-state/backlog-summary-shape.js +40 -0
  1059. package/runtime/core/lib/control-state/backlog-summary.js +67 -0
  1060. package/runtime/core/lib/control-state/contained-file.js +56 -0
  1061. package/runtime/core/lib/control-state/control-configuration.js +19 -0
  1062. package/runtime/core/lib/control-state/decision-action-contract.js +32 -0
  1063. package/runtime/core/lib/control-state/decision-action-service.js +55 -0
  1064. package/runtime/core/lib/control-state/decision-material-contract.js +12 -0
  1065. package/runtime/core/lib/control-state/evidence-bindings.js +132 -0
  1066. package/{lib → runtime/core/lib}/control-state/index.js +2 -0
  1067. package/{lib → runtime/core/lib}/control-state/legacy-migration.js +5 -31
  1068. package/runtime/core/lib/control-state/legacy-projection-reader.js +38 -0
  1069. package/runtime/core/lib/control-state/presentation-decision.js +138 -0
  1070. package/runtime/core/lib/control-state/preview-render.js +130 -0
  1071. package/runtime/core/lib/control-state/preview-review.js +136 -0
  1072. package/runtime/core/lib/control-state/preview-snapshot.js +108 -0
  1073. package/runtime/core/lib/control-state/qa-deviation-acceptance.js +82 -0
  1074. package/runtime/core/lib/control-state/recording-formats.js +29 -0
  1075. package/runtime/core/lib/control-state/run-artefact-recording.js +81 -0
  1076. package/runtime/core/lib/control-state/run-backlog-writer.js +80 -0
  1077. package/runtime/core/lib/control-state/run-backlog.js +90 -0
  1078. package/runtime/core/lib/control-state/run-command-contract.js +143 -0
  1079. package/runtime/core/lib/control-state/run-command-service.js +174 -0
  1080. package/{generated/plugins/copilot/agdf/runtime/create-agdf → runtime/core}/lib/control-state/run-identity.js +1 -0
  1081. package/runtime/core/lib/control-state/run-operation-identity.js +31 -0
  1082. package/runtime/core/lib/control-state/run-operation-proof.js +103 -0
  1083. package/runtime/core/lib/control-state/run-operation-status.js +59 -0
  1084. package/runtime/core/lib/control-state/run-operations.js +80 -0
  1085. package/runtime/core/lib/control-state/run-owned-outputs.js +59 -0
  1086. package/runtime/core/lib/control-state/run-presentation-envelope.js +36 -0
  1087. package/runtime/core/lib/control-state/run-presentation-render.js +443 -0
  1088. package/runtime/core/lib/control-state/run-presentation.js +348 -0
  1089. package/runtime/core/lib/control-state/run-recording.js +273 -0
  1090. package/runtime/core/lib/control-state/run-recovery.js +296 -0
  1091. package/runtime/core/lib/control-state/run-relationship-correction.js +74 -0
  1092. package/runtime/core/lib/control-state/run-revision-boundary.js +44 -0
  1093. package/runtime/core/lib/control-state/run-revision-history.js +184 -0
  1094. package/runtime/core/lib/control-state/run-revision.js +458 -0
  1095. package/runtime/core/lib/control-state/run-seal-compute.js +141 -0
  1096. package/runtime/core/lib/control-state/run-seal.js +26 -0
  1097. package/runtime/core/lib/control-state/run-source-revisions.js +221 -0
  1098. package/{generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-parser.js → runtime/core/lib/control-state/run-state-document.js} +17 -47
  1099. package/runtime/core/lib/control-state/run-state-edits.js +170 -0
  1100. package/runtime/core/lib/control-state/run-state-parser.js +106 -0
  1101. package/runtime/core/lib/control-state/run-state-reader.js +57 -0
  1102. package/runtime/core/lib/control-state/run-state-repository.js +201 -0
  1103. package/{lib → runtime/core/lib}/control-state/run-state-resolver.js +1 -1
  1104. package/runtime/core/lib/control-state/run-state-writer.js +484 -0
  1105. package/runtime/core/lib/control-state/run-step-pending.js +15 -0
  1106. package/runtime/core/lib/control-state/run-step-transaction.js +359 -0
  1107. package/runtime/core/lib/control-state/run-steps.js +571 -0
  1108. package/runtime/core/lib/control-state/run-store-inspection.js +65 -0
  1109. package/runtime/core/lib/control-state/run-text.js +8 -0
  1110. package/runtime/core/lib/delivery-continuation/service.js +67 -0
  1111. package/runtime/core/lib/fs-swap.js +26 -0
  1112. package/runtime/core/lib/index.js +14 -0
  1113. package/runtime/core/lib/interaction-catalog-validation.js +26 -0
  1114. package/runtime/core/lib/interaction-catalog.d.ts +2 -0
  1115. package/runtime/core/lib/interaction-catalog.js +98 -0
  1116. package/{lib → runtime/core/lib}/interaction-presentation.js +437 -33
  1117. package/runtime/core/lib/mcp-resource-contract.js +4 -0
  1118. package/runtime/core/lib/mcp-tool-errors.js +176 -0
  1119. package/runtime/core/lib/repository-context-reader.js +87 -0
  1120. package/runtime/core/lib/resources/artefact-templates.js +72 -0
  1121. package/runtime/core/lib/resources/binding.js +26 -0
  1122. package/runtime/core/lib/resources/context.js +70 -0
  1123. package/runtime/core/lib/resources/contracts.js +23 -0
  1124. package/runtime/core/lib/runtime/distribution-profile-history.js +173 -0
  1125. package/runtime/core/lib/runtime/host-installation.js +200 -0
  1126. package/runtime/core/lib/runtime/plugin-provenance.js +496 -0
  1127. package/runtime/core/lib/skill-dispatch/binding.js +66 -0
  1128. package/runtime/core/lib/skill-dispatch/compact-continuation.js +76 -0
  1129. package/runtime/core/lib/skill-dispatch/contract.js +430 -0
  1130. package/runtime/core/lib/skill-dispatch/delivery-intake.js +80 -0
  1131. package/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +74 -0
  1132. package/runtime/core/lib/skill-dispatch/prd-definition.js +39 -0
  1133. package/runtime/core/lib/skill-dispatch/sd-definition.js +39 -0
  1134. package/runtime/core/lib/skill-dispatch/service.js +833 -0
  1135. package/runtime/core/lib/skill-dispatch/tp-definition.js +41 -0
  1136. package/runtime/core/lib/task-target-resolution.js +202 -0
  1137. package/runtime/core/node_modules/entities/LICENSE +11 -0
  1138. package/runtime/core/node_modules/entities/decode.js +3 -0
  1139. package/runtime/core/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  1140. package/runtime/core/node_modules/entities/dist/commonjs/decode.js +511 -0
  1141. package/runtime/core/node_modules/entities/dist/commonjs/encode.js +73 -0
  1142. package/runtime/core/node_modules/entities/dist/commonjs/escape.js +121 -0
  1143. package/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
  1144. package/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
  1145. package/runtime/core/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
  1146. package/runtime/core/node_modules/entities/dist/commonjs/index.js +131 -0
  1147. package/runtime/core/node_modules/entities/dist/commonjs/package.json +3 -0
  1148. package/runtime/core/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
  1149. package/runtime/core/node_modules/entities/dist/esm/decode.js +497 -0
  1150. package/runtime/core/node_modules/entities/dist/esm/encode.js +69 -0
  1151. package/runtime/core/node_modules/entities/dist/esm/escape.js +117 -0
  1152. package/runtime/core/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
  1153. package/runtime/core/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
  1154. package/runtime/core/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
  1155. package/runtime/core/node_modules/entities/dist/esm/index.js +107 -0
  1156. package/runtime/core/node_modules/entities/dist/esm/package.json +3 -0
  1157. package/runtime/core/node_modules/entities/escape.js +3 -0
  1158. package/runtime/core/node_modules/entities/package.json +118 -0
  1159. package/runtime/core/node_modules/entities/src/generated/.eslintrc.json +10 -0
  1160. package/runtime/core/node_modules/nanoid/LICENSE +20 -0
  1161. package/runtime/core/node_modules/nanoid/async/index.browser.cjs +43 -0
  1162. package/runtime/core/node_modules/nanoid/async/index.browser.js +43 -0
  1163. package/runtime/core/node_modules/nanoid/async/index.cjs +47 -0
  1164. package/runtime/core/node_modules/nanoid/async/index.js +47 -0
  1165. package/runtime/core/node_modules/nanoid/async/index.native.js +38 -0
  1166. package/runtime/core/node_modules/nanoid/async/package.json +12 -0
  1167. package/runtime/core/node_modules/nanoid/bin/nanoid.cjs +55 -0
  1168. package/runtime/core/node_modules/nanoid/index.browser.cjs +45 -0
  1169. package/runtime/core/node_modules/nanoid/index.browser.js +45 -0
  1170. package/runtime/core/node_modules/nanoid/index.cjs +63 -0
  1171. package/runtime/core/node_modules/nanoid/index.js +63 -0
  1172. package/runtime/core/node_modules/nanoid/nanoid.js +1 -0
  1173. package/runtime/core/node_modules/nanoid/non-secure/index.cjs +24 -0
  1174. package/runtime/core/node_modules/nanoid/non-secure/index.js +24 -0
  1175. package/runtime/core/node_modules/nanoid/non-secure/package.json +6 -0
  1176. package/runtime/core/node_modules/nanoid/package.json +89 -0
  1177. package/runtime/core/node_modules/nanoid/url-alphabet/index.cjs +4 -0
  1178. package/runtime/core/node_modules/nanoid/url-alphabet/index.js +4 -0
  1179. package/runtime/core/node_modules/nanoid/url-alphabet/package.json +6 -0
  1180. package/runtime/core/node_modules/parse5/LICENSE +19 -0
  1181. package/runtime/core/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
  1182. package/runtime/core/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
  1183. package/runtime/core/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
  1184. package/runtime/core/node_modules/parse5/dist/cjs/common/html.js +528 -0
  1185. package/runtime/core/node_modules/parse5/dist/cjs/common/token.js +24 -0
  1186. package/runtime/core/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
  1187. package/runtime/core/node_modules/parse5/dist/cjs/index.js +54 -0
  1188. package/runtime/core/node_modules/parse5/dist/cjs/package.json +1 -0
  1189. package/runtime/core/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
  1190. package/runtime/core/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
  1191. package/runtime/core/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
  1192. package/runtime/core/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
  1193. package/runtime/core/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
  1194. package/runtime/core/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
  1195. package/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
  1196. package/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
  1197. package/runtime/core/node_modules/parse5/dist/common/doctype.js +114 -0
  1198. package/runtime/core/node_modules/parse5/dist/common/error-codes.js +63 -0
  1199. package/runtime/core/node_modules/parse5/dist/common/foreign-content.js +228 -0
  1200. package/runtime/core/node_modules/parse5/dist/common/html.js +523 -0
  1201. package/runtime/core/node_modules/parse5/dist/common/token.js +20 -0
  1202. package/runtime/core/node_modules/parse5/dist/common/unicode.js +62 -0
  1203. package/runtime/core/node_modules/parse5/dist/index.js +42 -0
  1204. package/runtime/core/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
  1205. package/runtime/core/node_modules/parse5/dist/parser/index.js +3245 -0
  1206. package/runtime/core/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
  1207. package/runtime/core/node_modules/parse5/dist/serializer/index.js +168 -0
  1208. package/runtime/core/node_modules/parse5/dist/tokenizer/index.js +2710 -0
  1209. package/runtime/core/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
  1210. package/runtime/core/node_modules/parse5/dist/tree-adapters/default.js +173 -0
  1211. package/runtime/core/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
  1212. package/runtime/core/node_modules/parse5/package.json +50 -0
  1213. package/runtime/core/node_modules/picocolors/LICENSE +15 -0
  1214. package/runtime/core/node_modules/picocolors/package.json +25 -0
  1215. package/runtime/core/node_modules/picocolors/picocolors.browser.js +4 -0
  1216. package/runtime/core/node_modules/picocolors/picocolors.js +75 -0
  1217. package/runtime/core/node_modules/postcss/LICENSE +20 -0
  1218. package/runtime/core/node_modules/postcss/lib/at-rule.js +25 -0
  1219. package/runtime/core/node_modules/postcss/lib/comment.js +13 -0
  1220. package/runtime/core/node_modules/postcss/lib/container.js +494 -0
  1221. package/runtime/core/node_modules/postcss/lib/css-syntax-error.js +133 -0
  1222. package/runtime/core/node_modules/postcss/lib/declaration.js +24 -0
  1223. package/runtime/core/node_modules/postcss/lib/document.js +33 -0
  1224. package/runtime/core/node_modules/postcss/lib/fromJSON.js +107 -0
  1225. package/runtime/core/node_modules/postcss/lib/input.js +282 -0
  1226. package/runtime/core/node_modules/postcss/lib/lazy-result.js +626 -0
  1227. package/runtime/core/node_modules/postcss/lib/list.js +79 -0
  1228. package/runtime/core/node_modules/postcss/lib/map-generator.js +383 -0
  1229. package/runtime/core/node_modules/postcss/lib/no-work-result.js +137 -0
  1230. package/runtime/core/node_modules/postcss/lib/node.js +494 -0
  1231. package/runtime/core/node_modules/postcss/lib/parse.js +42 -0
  1232. package/runtime/core/node_modules/postcss/lib/parser.js +626 -0
  1233. package/runtime/core/node_modules/postcss/lib/postcss.js +101 -0
  1234. package/runtime/core/node_modules/postcss/lib/postcss.mjs +30 -0
  1235. package/runtime/core/node_modules/postcss/lib/previous-map.js +176 -0
  1236. package/runtime/core/node_modules/postcss/lib/processor.js +67 -0
  1237. package/runtime/core/node_modules/postcss/lib/result.js +42 -0
  1238. package/runtime/core/node_modules/postcss/lib/root.js +76 -0
  1239. package/runtime/core/node_modules/postcss/lib/rule.js +27 -0
  1240. package/runtime/core/node_modules/postcss/lib/stringifier.js +457 -0
  1241. package/runtime/core/node_modules/postcss/lib/stringify.js +69 -0
  1242. package/runtime/core/node_modules/postcss/lib/symbols.js +5 -0
  1243. package/runtime/core/node_modules/postcss/lib/terminal-highlight.js +70 -0
  1244. package/runtime/core/node_modules/postcss/lib/tokenize.js +270 -0
  1245. package/runtime/core/node_modules/postcss/lib/warn-once.js +13 -0
  1246. package/runtime/core/node_modules/postcss/lib/warning.js +47 -0
  1247. package/runtime/core/node_modules/postcss/package.json +88 -0
  1248. package/runtime/core/node_modules/source-map-js/LICENSE +28 -0
  1249. package/runtime/core/node_modules/source-map-js/lib/array-set.js +121 -0
  1250. package/runtime/core/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  1251. package/runtime/core/node_modules/source-map-js/lib/base64.js +67 -0
  1252. package/runtime/core/node_modules/source-map-js/lib/binary-search.js +111 -0
  1253. package/runtime/core/node_modules/source-map-js/lib/mapping-list.js +79 -0
  1254. package/runtime/core/node_modules/source-map-js/lib/quick-sort.js +141 -0
  1255. package/runtime/core/node_modules/source-map-js/lib/source-map-consumer.js +1236 -0
  1256. package/runtime/core/node_modules/source-map-js/lib/source-map-generator.js +446 -0
  1257. package/runtime/core/node_modules/source-map-js/lib/source-node.js +420 -0
  1258. package/runtime/core/node_modules/source-map-js/lib/util.js +594 -0
  1259. package/runtime/core/node_modules/source-map-js/package.json +71 -0
  1260. package/runtime/core/node_modules/source-map-js/source-map.js +8 -0
  1261. package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/gate-check.js +0 -506
  1262. package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-repository.js +0 -68
  1263. package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-writer.js +0 -97
  1264. package/generated/plugins/copilot/agdf/copilot-skills/agdf-gate-check/SKILL.md +0 -240
  1265. package/generated/plugins/copilot/agdf/copilot-skills/agdf-interaction-locales.json +0 -512
  1266. package/generated/plugins/copilot/agdf/copilot-skills/agdf-qa-gate/SKILL.md +0 -137
  1267. package/generated/plugins/copilot/agdf/copilot-skills/agdf-runtime-contract.md +0 -16
  1268. package/generated/plugins/copilot/agdf/copilot-skills/agdf-ux-intent-definition/SKILL.md +0 -94
  1269. package/generated/plugins/copilot/agdf/copilot-skills/contracts/interaction.md +0 -487
  1270. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/gate-check.js +0 -506
  1271. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-state-repository.js +0 -68
  1272. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-state-writer.js +0 -97
  1273. package/lib/control-evaluation/gate-check.js +0 -506
  1274. package/lib/control-state/run-state-repository.js +0 -68
  1275. package/lib/control-state/run-state-writer.js +0 -97
  1276. package/lib/proportionality-benchmark/blind-prompt.js +0 -38
  1277. package/lib/proportionality-benchmark/contracts.js +0 -129
  1278. package/lib/proportionality-benchmark/corpus-loader.js +0 -221
  1279. package/lib/proportionality-benchmark/evaluator.js +0 -260
  1280. package/lib/proportionality-benchmark/index.js +0 -8
  1281. package/lib/proportionality-benchmark/live-recorder.js +0 -122
  1282. package/lib/proportionality-benchmark/profiles.js +0 -102
  1283. package/lib/proportionality-benchmark/report.js +0 -60
  1284. package/lib/proportionality-benchmark/source-fingerprint.js +0 -34
  1285. package/lib/public-plugin/builder.js +0 -83
  1286. package/lib/public-plugin/contract.js +0 -102
  1287. package/lib/public-plugin/copilot-profile.js +0 -126
  1288. package/lib/public-plugin/manifest.js +0 -104
  1289. package/lib/public-plugin/report.js +0 -33
  1290. package/lib/public-plugin/validator.js +0 -101
  1291. package/lib/release/profile-history.js +0 -222
  1292. package/lib/release/version-bump.js +0 -549
  1293. package/lib/release/version-coherence.js +0 -137
  1294. package/lib/skill-evals/artefact-quality.js +0 -36
  1295. package/lib/skill-evals/index.js +0 -105
  1296. package/lib/skill-evals/live-recorder.js +0 -85
  1297. package/lib/skill-evals/workspace.js +0 -97
  1298. /package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/context-graph.md +0 -0
  1299. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/parent-reconciliation.js +0 -0
  1300. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/required-files.js +0 -0
  1301. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/aggregate.js +0 -0
  1302. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/gate-approval-validator.js +0 -0
  1303. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/candidate-policy.js +0 -0
  1304. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/contracts.js +0 -0
  1305. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/persistence.js +0 -0
  1306. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/scoring.js +0 -0
  1307. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/search-engine.js +0 -0
  1308. /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/state-adapter.js +0 -0
  1309. /package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/fs-swap.js +0 -0
  1310. /package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/runtime/distribution-profile-history.js +0 -0
  1311. /package/generated/plugins/copilot/agdf/{hooks/copilot-hooks.json → com.github.copilot/hooks/hooks.json} +0 -0
  1312. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/parent-reconciliation.js +0 -0
  1313. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/required-files.js +0 -0
  1314. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/aggregate.js +0 -0
  1315. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/gate-approval-validator.js +0 -0
  1316. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/candidate-policy.js +0 -0
  1317. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/contracts.js +0 -0
  1318. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/persistence.js +0 -0
  1319. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/scoring.js +0 -0
  1320. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/search-engine.js +0 -0
  1321. /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/state-adapter.js +0 -0
  1322. /package/{lib → runtime/core/lib}/control-evaluation/parent-reconciliation.js +0 -0
  1323. /package/{lib → runtime/core/lib}/control-evaluation/required-files.js +0 -0
  1324. /package/{lib → runtime/core/lib}/control-state/aggregate.js +0 -0
  1325. /package/{lib → runtime/core/lib}/control-state/gate-approval-validator.js +0 -0
  1326. /package/{lib → runtime/core/lib}/delivery-path-search/candidate-policy.js +0 -0
  1327. /package/{lib → runtime/core/lib}/delivery-path-search/contracts.js +0 -0
  1328. /package/{lib → runtime/core/lib}/delivery-path-search/persistence.js +0 -0
  1329. /package/{lib → runtime/core/lib}/delivery-path-search/scoring.js +0 -0
  1330. /package/{lib → runtime/core/lib}/delivery-path-search/search-engine.js +0 -0
  1331. /package/{lib → runtime/core/lib}/delivery-path-search/state-adapter.js +0 -0
@@ -1,7 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { readdirSync, readFileSync, realpathSync, statSync } from "node:fs";
3
3
  import { spawnSync } from "node:child_process";
4
- import { fileURLToPath } from "node:url";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
5
5
  import { dirname, join, relative, resolve } from "node:path";
6
6
 
7
7
  const scriptPluginRoot = resolve(fileURLToPath(new URL("..", import.meta.url)));
@@ -32,23 +32,23 @@ function samePath(left, right) {
32
32
  }
33
33
  }
34
34
 
35
- function hasPluginLayout(root) {
35
+ function hasPluginLayout(root, { source = false } = {}) {
36
36
  return [
37
37
  ".codex-plugin/plugin.json",
38
38
  ".claude-plugin/plugin.json",
39
39
  "meta/agdf-plugin.definition.json",
40
40
  "meta/agdf-runtime-contract.md",
41
- "hooks/hooks.json",
41
+ source ? "host-templates/shared/hooks/hooks.json" : "hooks/hooks.json",
42
42
  "scripts/check-runtime-integrity.mjs",
43
43
  ].every((path) => isFile(join(root, path)))
44
44
  && ["skills", "control"].every((path) => isDirectory(join(root, path)));
45
45
  }
46
46
 
47
47
  function hasSourceLayout(root) {
48
- return hasPluginLayout(join(root, "plugin"))
48
+ return hasPluginLayout(join(root, "plugins", "agdf"), { source: true })
49
49
  && [
50
- "agdf/package.json",
51
- "create-agdf/package.json",
50
+ "packages/cli/distribution/agdf/package.json",
51
+ "packages/cli/package.json",
52
52
  "pages/package.json",
53
53
  "LICENSE",
54
54
  ].every((path) => isFile(join(root, path)));
@@ -65,7 +65,7 @@ function classifyLayout(root) {
65
65
  const installed = hasPluginLayout(root);
66
66
  if (source === installed) invalidLayout(root);
67
67
  return source
68
- ? { mode: "source", repoRoot: root, pluginRoot: join(root, "plugin") }
68
+ ? { mode: "source", repoRoot: root, pluginRoot: join(root, "plugins", "agdf") }
69
69
  : { mode: "installed", repoRoot: null, pluginRoot: root };
70
70
  }
71
71
 
@@ -74,8 +74,8 @@ function resolveLayout() {
74
74
  return classifyLayout(resolve(process.env.AGDF_RUNTIME_INTEGRITY_ROOT));
75
75
  }
76
76
 
77
- const parentRoot = dirname(scriptPluginRoot);
78
- const sourceIntent = samePath(join(parentRoot, "plugin"), scriptPluginRoot)
77
+ const parentRoot = resolve(scriptPluginRoot, "../..");
78
+ const sourceIntent = samePath(join(parentRoot, "plugins", "agdf"), scriptPluginRoot)
79
79
  && (isFile(join(parentRoot, "package.json"))
80
80
  || isDirectory(join(parentRoot, "create-agdf"))
81
81
  || isDirectory(join(parentRoot, "agdf")));
@@ -92,46 +92,63 @@ try {
92
92
  console.error("- AGDF_AGENT_SKILLS_VALIDATOR_MISSING: scripts/agent-skills-conformance.mjs must be present and loadable");
93
93
  process.exit(1);
94
94
  }
95
+ let extractSerializedDescriptionScalar;
96
+ let requestActivationKernelFingerprint;
97
+ let validateInstructionFootprintProfile;
98
+ try {
99
+ ({
100
+ extractSerializedDescriptionScalar,
101
+ requestActivationKernelFingerprint,
102
+ validateInstructionFootprintProfile,
103
+ } = await import("./instruction-footprint.mjs"));
104
+ } catch {
105
+ console.error("[agdf-runtime-integrity] FAIL");
106
+ console.error("- AGDF_INSTRUCTION_FOOTPRINT_VALIDATOR_MISSING: scripts/instruction-footprint.mjs must be present and loadable");
107
+ process.exit(1);
108
+ }
95
109
  const codexSourceMarketplacePath = sourceMode ? join(repoRoot, ".agents", "plugins", "marketplace.json") : null;
96
110
  const claudeSourceMarketplacePath = sourceMode ? join(repoRoot, ".claude-plugin", "marketplace.json") : null;
97
111
  const codexPluginPath = join(pluginRoot, ".codex-plugin", "plugin.json");
98
112
  const claudePluginPath = join(pluginRoot, ".claude-plugin", "plugin.json");
99
113
  const copilotPluginPath = join(pluginRoot, "plugin.json");
100
- const copilotHooksPath = join(pluginRoot, "hooks", "copilot-hooks.json");
114
+ const copilotHooksPath = join(pluginRoot, "com.github.copilot", "hooks", "hooks.json");
101
115
  const installationProvenancePath = join(pluginRoot, ".agdf-installation.json");
102
116
  const legacyLocalInstallMarkerPath = join(pluginRoot, ".agdf-local-install.json");
103
117
  const pluginDefinitionPath = join(pluginRoot, "meta", "agdf-plugin.definition.json");
104
118
  const agentRouterPath = join(pluginRoot, "meta", "agdf-agent-router.md");
105
119
  const runtimeContractPath = join(pluginRoot, "meta", "agdf-runtime-contract.md");
106
120
  const contractsDir = join(pluginRoot, "meta", "contracts");
107
- const contractModules = [
108
- "task-target-resolution.md",
109
- "gate-transition.md",
110
- "interaction.md",
111
- "modes.md",
112
- "quality.md",
113
- "context-graph.md",
114
- "control-scaffold.md",
115
- "closeout.md",
116
- ];
121
+ const requestActivationContractPath = join(contractsDir, "request-activation.md");
122
+ const commandRegistryPath = sourceMode
123
+ ? join(repoRoot, "packages", "cli", "lib", "cli", "command-registry.js")
124
+ : join(pluginRoot, "runtime", "create-agdf", "lib", "cli", "command-registry.js");
125
+ const skillDispatchFunctionContractPath = sourceMode
126
+ ? join(repoRoot, "packages", "core", "lib", "skill-dispatch", "contract.js")
127
+ : join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "skill-dispatch", "contract.js");
128
+ const runtimeCheckContractPath = sourceMode
129
+ ? join(repoRoot, "packages", "cli", "lib", "runtime-check-consent", "contract.js")
130
+ : join(pluginRoot, "runtime", "create-agdf", "lib", "runtime-check-consent", "contract.js");
117
131
  const interactionLocalesPath = join(pluginRoot, "meta", "agdf-interaction-locales.json");
118
132
  const gateCheckSkillPath = join(pluginRoot, "skills", "gate-check", "SKILL.md");
119
133
  const brownfieldSkillPath = join(pluginRoot, "skills", "brownfield-analysis", "SKILL.md");
120
134
  const localRuntimeManifestPath = join(pluginRoot, "runtime", "runtime-manifest.json");
121
135
  const localRuntimeEntrypointPath = join(pluginRoot, "runtime", "agdf-local.js");
122
136
  const automaticRuntimeCheckPath = join(pluginRoot, "runtime", "agdf-session-check.js");
123
- const hooksConfigPath = join(pluginRoot, "hooks", "hooks.json");
124
- const sessionStartHookPath = join(pluginRoot, "hooks", "session-start.sh");
137
+ const sharedHookRoot = sourceMode ? join(pluginRoot, "host-templates", "shared", "hooks") : join(pluginRoot, "hooks");
138
+ const hooksConfigPath = join(sharedHookRoot, "hooks.json");
139
+ const sessionStartHookPath = join(sharedHookRoot, "session-start.sh");
125
140
  const codexComposerIconPath = join(pluginRoot, "assets", "agdf-icon.svg");
126
141
  const codexLogoPath = join(pluginRoot, "assets", "agdf-logo.svg");
127
- const agdfPackagePath = sourceMode ? join(repoRoot, "agdf", "package.json") : null;
128
- const createAgdfPackagePath = sourceMode ? join(repoRoot, "create-agdf", "package.json") : null;
142
+ const agdfPackagePath = sourceMode ? join(repoRoot, "packages", "cli", "distribution", "agdf", "package.json") : null;
143
+ const createAgdfPackagePath = sourceMode ? join(repoRoot, "packages", "cli", "package.json") : null;
129
144
  const pagesPackagePath = sourceMode ? join(repoRoot, "pages", "package.json") : null;
130
145
  const pagesSiteDataPath = sourceMode ? join(repoRoot, "pages", "src", "data", "site.ts") : null;
131
146
  const pagesSkillsPath = sourceMode ? join(repoRoot, "pages", "src", "data", "skills.ts") : null;
132
147
  const pagesIndexPath = sourceMode ? join(repoRoot, "pages", "src", "pages", "index.astro") : null;
133
- const syncPackageAssetsPath = sourceMode ? join(repoRoot, "create-agdf", "scripts", "sync-package-assets.js") : null;
134
- const createAgdfOpenCodeInstallerPath = sourceMode ? join(repoRoot, "create-agdf", "lib", "installers", "opencode.js") : null;
148
+ const syncPackageAssetsPath = sourceMode ? join(repoRoot, "scripts", "sync-package-assets.js") : null;
149
+ const syncPluginRuntimePath = sourceMode ? join(repoRoot, "scripts", "sync-plugin-runtime.js") : null;
150
+ const createAgdfOpenCodeInstallerPath = sourceMode ? join(repoRoot, "packages", "cli", "lib", "installers", "opencode.js") : null;
151
+ const openCodeNpmPluginPath = sourceMode ? join(repoRoot, "packages", "cli", "opencode-plugin.js") : null;
135
152
  const activeRunStatePath = sourceMode ? join(repoRoot, ".agdf", "control", "AGDF_RUN.md") : null;
136
153
  const rootLicensePath = sourceMode ? join(repoRoot, "LICENSE") : null;
137
154
  const pluginLicensePath = join(pluginRoot, "LICENSE");
@@ -186,6 +203,36 @@ const germanRuntimePatterns = [
186
203
  ];
187
204
 
188
205
  const failures = [];
206
+ let canonicalSkillDispatchProjection = "";
207
+ let canonicalSkillDispatchTerminalProjection = "";
208
+ let canonicalSkillDispatchQaCandidatesProjection = "";
209
+ let fixedRuntimeCheckCommand;
210
+ try {
211
+ const functionContract = await import(pathToFileURL(skillDispatchFunctionContractPath).href);
212
+ canonicalSkillDispatchProjection = functionContract.renderSkillDispatchSemanticProjection();
213
+ canonicalSkillDispatchTerminalProjection = functionContract.renderSkillDispatchTerminalProjection();
214
+ canonicalSkillDispatchQaCandidatesProjection = functionContract.renderSkillDispatchQaCandidatesProjection();
215
+ } catch {
216
+ failures.push("skill dispatch semantic function owner must be present and loadable");
217
+ }
218
+ try {
219
+ ({ fixedRuntimeCheckCommand } = await import(pathToFileURL(runtimeCheckContractPath).href));
220
+ } catch {
221
+ failures.push("automatic runtime-check command owner must be present and loadable");
222
+ }
223
+ const skillSlugPattern = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
224
+ const requestActivationMarkers = Object.freeze({
225
+ guardStart: "<!-- AGDF-REQUEST-ACTIVATION-GUARD:START -->",
226
+ guardEnd: "<!-- AGDF-REQUEST-ACTIVATION-GUARD:END -->",
227
+ discoveryStart: "<!-- AGDF-REQUEST-ACTIVATION-DISCOVERY-SUFFIX:START -->",
228
+ discoveryEnd: "<!-- AGDF-REQUEST-ACTIVATION-DISCOVERY-SUFFIX:END -->",
229
+ operationsStart: "<!-- AGDF-REQUEST-ACTIVATION-OPERATIONS:START -->",
230
+ operationsEnd: "<!-- AGDF-REQUEST-ACTIVATION-OPERATIONS:END -->",
231
+ runtimeModulesStart: "<!-- AGDF-RUNTIME-CONTRACT-MODULES:START -->",
232
+ runtimeModulesEnd: "<!-- AGDF-RUNTIME-CONTRACT-MODULES:END -->",
233
+ skillRoutingStart: "<!-- AGDF-SKILL-ROUTING:START -->",
234
+ skillRoutingEnd: "<!-- AGDF-SKILL-ROUTING:END -->",
235
+ });
189
236
 
190
237
  function read(path) {
191
238
  return readFileSync(path, "utf8");
@@ -209,14 +256,284 @@ function readJson(path, label) {
209
256
  }
210
257
  }
211
258
 
259
+ function normalizeLf(content) {
260
+ return content.replaceAll("\r\n", "\n").replaceAll("\r", "\n");
261
+ }
262
+
263
+ function normalizeProse(content) {
264
+ return normalizeLf(content).replace(/\s+/g, " ").trim();
265
+ }
266
+
267
+ function countOccurrences(content, needle) {
268
+ return needle ? content.split(needle).length - 1 : 0;
269
+ }
270
+
271
+ function ownedBlock(content, startMarker, endMarker, label) {
272
+ const startCount = countOccurrences(content, startMarker);
273
+ const endCount = countOccurrences(content, endMarker);
274
+ if (startCount !== 1 || endCount !== 1) {
275
+ failures.push(`${label} must contain exactly one complete marker-bounded projection`);
276
+ return "";
277
+ }
278
+ const start = content.indexOf(startMarker);
279
+ const end = content.indexOf(endMarker, start) + endMarker.length;
280
+ if (end <= start) {
281
+ failures.push(`${label} projection markers are out of order`);
282
+ return "";
283
+ }
284
+ return content.slice(start, end);
285
+ }
286
+
287
+ function requestActivationDiscoverySuffix(contractContent) {
288
+ const block = ownedBlock(
289
+ contractContent,
290
+ requestActivationMarkers.discoveryStart,
291
+ requestActivationMarkers.discoveryEnd,
292
+ "request activation discovery suffix",
293
+ );
294
+ if (!block) return "";
295
+ const suffix = block
296
+ .split(/\r?\n/)
297
+ .filter((line) => line !== requestActivationMarkers.discoveryStart
298
+ && line !== requestActivationMarkers.discoveryEnd)
299
+ .join("\n")
300
+ .trim();
301
+ if (!suffix || suffix.includes("\n")) {
302
+ failures.push("request activation discovery suffix must contain exactly one non-empty line");
303
+ return "";
304
+ }
305
+ return suffix;
306
+ }
307
+
308
+ function parseRequestActivationCatalog(contractContent) {
309
+ const block = ownedBlock(
310
+ contractContent,
311
+ requestActivationMarkers.operationsStart,
312
+ requestActivationMarkers.operationsEnd,
313
+ "request activation operation catalog",
314
+ );
315
+ if (!block) return null;
316
+ const match = block.match(/```json\r?\n([\s\S]*?)\r?\n```/);
317
+ if (!match || (block.match(/^```json$/gm) ?? []).length !== 1 || (block.match(/^```$/gm) ?? []).length !== 1) {
318
+ failures.push("request activation operation catalog must contain exactly one JSON block");
319
+ return null;
320
+ }
321
+ try {
322
+ return JSON.parse(match[1]);
323
+ } catch {
324
+ failures.push("request activation operation catalog must be valid JSON");
325
+ return null;
326
+ }
327
+ }
328
+
329
+ function javascriptTokens(content) {
330
+ const tokens = [];
331
+ let index = 0;
332
+ let lineStart = true;
333
+ const push = (type, value) => {
334
+ tokens.push({ type, value, lineStart });
335
+ lineStart = false;
336
+ };
337
+
338
+ while (index < content.length) {
339
+ const character = content[index];
340
+ const next = content[index + 1];
341
+ if (/\s/.test(character)) {
342
+ if (character === "\n" || character === "\r") lineStart = true;
343
+ index += 1;
344
+ continue;
345
+ }
346
+ if (character === "/" && next === "/") {
347
+ index += 2;
348
+ while (index < content.length && !["\n", "\r"].includes(content[index])) index += 1;
349
+ continue;
350
+ }
351
+ if (character === "/" && next === "*") {
352
+ index += 2;
353
+ while (index < content.length && !(content[index] === "*" && content[index + 1] === "/")) {
354
+ if (content[index] === "\n" || content[index] === "\r") lineStart = true;
355
+ index += 1;
356
+ }
357
+ index = Math.min(index + 2, content.length);
358
+ continue;
359
+ }
360
+ if (character === "`") {
361
+ index += 1;
362
+ while (index < content.length) {
363
+ if (content[index] === "\\") {
364
+ index += 2;
365
+ continue;
366
+ }
367
+ if (content[index] === "`") {
368
+ index += 1;
369
+ break;
370
+ }
371
+ index += 1;
372
+ }
373
+ push("template", "");
374
+ continue;
375
+ }
376
+ if (character === "\"" || character === "'") {
377
+ const quote = character;
378
+ let value = "";
379
+ let plain = true;
380
+ index += 1;
381
+ while (index < content.length) {
382
+ if (content[index] === "\\") {
383
+ plain = false;
384
+ index += 2;
385
+ continue;
386
+ }
387
+ if (content[index] === quote) {
388
+ index += 1;
389
+ break;
390
+ }
391
+ value += content[index];
392
+ index += 1;
393
+ }
394
+ push("string", plain ? value : "");
395
+ continue;
396
+ }
397
+ if (/[A-Za-z_$]/.test(character)) {
398
+ let end = index + 1;
399
+ while (end < content.length && /[A-Za-z0-9_$]/.test(content[end])) end += 1;
400
+ push("identifier", content.slice(index, end));
401
+ index = end;
402
+ continue;
403
+ }
404
+ push("punctuation", character);
405
+ index += 1;
406
+ }
407
+ return tokens;
408
+ }
409
+
410
+ function commandRegistryNames(content) {
411
+ const commands = new Set();
412
+ const tokens = javascriptTokens(content);
413
+ for (let index = 0; index < tokens.length - 2; index += 1) {
414
+ const [commandToken, openingToken, nameToken] = tokens.slice(index, index + 3);
415
+ if (commandToken.type === "identifier"
416
+ && commandToken.value === "command"
417
+ && commandToken.lineStart
418
+ && openingToken.type === "punctuation"
419
+ && openingToken.value === "("
420
+ && nameToken.type === "string"
421
+ && skillSlugPattern.test(nameToken.value)) {
422
+ commands.add(nameToken.value);
423
+ }
424
+ }
425
+ return commands;
426
+ }
427
+
428
+ function validateRequestActivationCatalog(catalog, definition, registryContent) {
429
+ if (catalog?.schema_version !== 1 || !Array.isArray(catalog?.operations) || !Array.isArray(catalog?.derived_operations)) {
430
+ failures.push("request activation operation catalog must use schema_version 1 with operations and derived_operations arrays");
431
+ return;
432
+ }
433
+ const skillSlugs = new Set((definition?.skillSet ?? []).map((skill) => skill.slug));
434
+ const commands = commandRegistryNames(registryContent);
435
+ if (commands.size === 0) failures.push("commandRegistry must expose operation-owner commands");
436
+ const operationIds = new Set();
437
+ const ownerKinds = new Set(["contract", "skill", "command", "function"]);
438
+ for (const operation of catalog.operations) {
439
+ const operationId = operation?.operation_id ?? "";
440
+ if (!/^[a-z][a-z0-9_]*(?:\.[a-z0-9_]+)+$/.test(operationId)) {
441
+ failures.push(`request activation catalog contains a missing or unknown operation ID: ${operationId || "<missing>"}`);
442
+ continue;
443
+ }
444
+ if (operationIds.has(operationId)) failures.push(`request activation catalog contains duplicate operation ID: ${operationId}`);
445
+ operationIds.add(operationId);
446
+ if (!operation.route_family || !operation.target_boundary || !operation.control_boundary) {
447
+ failures.push(`request activation operation ${operationId} has an incomplete route boundary`);
448
+ }
449
+ if (!ownerKinds.has(operation.owner_kind) || !operation.owner) {
450
+ failures.push(`request activation operation ${operationId} has an unknown owner declaration`);
451
+ } else if (operation.owner_kind === "command" && !commands.has(operation.owner)) {
452
+ failures.push(`request activation operation ${operationId} references unknown commandRegistry owner ${operation.owner}`);
453
+ } else if (operation.owner_kind === "skill" && !skillSlugs.has(operation.owner)) {
454
+ failures.push(`request activation operation ${operationId} references unknown skillSet owner ${operation.owner}`);
455
+ }
456
+ if (operationId.startsWith("skill.")) {
457
+ failures.push("request activation direct skill IDs must derive from pluginDefinition.skillSet");
458
+ }
459
+ }
460
+ const [derived] = catalog.derived_operations;
461
+ if (catalog.derived_operations.length !== 1
462
+ || derived?.operation_id_pattern !== "skill.<slug>"
463
+ || derived?.derive_from !== "pluginDefinition.skillSet"
464
+ || derived?.owner_kind !== "dispatcher"
465
+ || derived?.owner !== "skill-dispatch-v1"
466
+ || derived?.target_boundary !== "dispatcher_v1"
467
+ || derived?.control_boundary !== "dispatcher_v1") {
468
+ failures.push("request activation derived skill operation owner must be dispatcher v1 over pluginDefinition.skillSet");
469
+ }
470
+ }
471
+
472
+ function runtimeModuleIndex(modulePaths) {
473
+ const rows = [];
474
+ for (const modulePath of modulePaths) {
475
+ const path = join(pluginRoot, modulePath);
476
+ if (!isFile(path)) continue;
477
+ const title = read(path).match(/^# AGDF Runtime Contract (?:—|-) (.+)$/m)?.[1]?.trim();
478
+ if (!title) {
479
+ failures.push(`runtime contract module lacks its canonical title: ${modulePath}`);
480
+ continue;
481
+ }
482
+ rows.push(`| ${title} | \`${modulePath.replace(/^meta\//, "")}\` | Canonical focused module; follow the linked source for semantics. |`);
483
+ }
484
+ return [
485
+ requestActivationMarkers.runtimeModulesStart,
486
+ "| Module | Path | Coverage |",
487
+ "|---|---|---|",
488
+ ...rows,
489
+ requestActivationMarkers.runtimeModulesEnd,
490
+ ].join("\n");
491
+ }
492
+
493
+ function expectedSkillDescription(skill, suffix) {
494
+ return `Use this skill for this scope: ${skill.useFor}. Boundary: ${skill.boundary}. ${suffix}`;
495
+ }
496
+
497
+ // Mirrors packages/core/lib/runtime/plugin-provenance.js: the installer writes absolute paths into the
498
+ // Codex MCP declaration, and provenance digests the template for any config of the owned shape.
499
+ function codexMcpTemplate({ pluginRoot = "{{AGDF_PLUGIN_ROOT}}", dataRoot = "{{AGDF_MCP_DATA}}", portable = true, cockpit = false } = {}) {
500
+ return `${JSON.stringify({
501
+ ...(portable ? { $schema: "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json" } : {}),
502
+ mcpServers: { agdf: { ...(portable ? { type: "stdio" } : {}), command: "node",
503
+ args: [`${pluginRoot.replaceAll("\\", "/")}/mcp/agdf-mcp-launch.js`, "--surface", "codex", "--data", dataRoot.replaceAll("\\", "/")] },
504
+ ...(cockpit ? { 'agdf-cockpit': { ...(portable ? { type: 'stdio' } : {}), command: 'node',
505
+ args: [`${pluginRoot.replaceAll('\\', '/')}/mcp/agdf-mcp-launch.js`, '--surface', 'codex', '--data', dataRoot.replaceAll('\\', '/'), '--cockpit'] } } : {}) },
506
+ }, null, 2)}\n`;
507
+ }
508
+ function normalizeCodexPluginMcpConfig(content) {
509
+ try {
510
+ const config = JSON.parse(String(content));
511
+ const args = config.mcpServers?.agdf?.args;
512
+ if (Array.isArray(args) && args.length === 5 && typeof args[0] === "string"
513
+ && args[0].endsWith("/mcp/agdf-mcp-launch.js") && typeof args[4] === "string" && args[4]) {
514
+ const portable = Object.hasOwn(config, "$schema");
515
+ const cockpit = Object.hasOwn(config.mcpServers, 'agdf-cockpit');
516
+ const expected = codexMcpTemplate({ pluginRoot: args[0].slice(0, -"/mcp/agdf-mcp-launch.js".length), dataRoot: args[4], portable, cockpit });
517
+ if (JSON.stringify(config) === JSON.stringify(JSON.parse(expected))) return codexMcpTemplate({ portable, cockpit });
518
+ }
519
+ } catch {}
520
+ return content;
521
+ }
522
+ function codexMcpShape(content) {
523
+ const normalized = normalizeCodexPluginMcpConfig(content);
524
+ return normalized === codexMcpTemplate() || normalized === codexMcpTemplate({ cockpit: true });
525
+ }
526
+
212
527
  function digestPluginSource(root, canonicalVersion) {
213
528
  const files = [];
214
529
  function visit(directory) {
215
530
  for (const name of readdirSync(directory).sort()) {
216
531
  const path = join(directory, name);
217
532
  const stats = statSync(path);
218
- if (stats.isDirectory()) visit(path);
219
- else if (stats.isFile()) files.push(path);
533
+ if (stats.isDirectory()) {
534
+ // Host-owned liveness markers (Claude Code `.in_use/<pid>`) are not plugin payload.
535
+ if (!(directory === root && name === ".in_use")) visit(path);
536
+ } else if (stats.isFile()) files.push(path);
220
537
  }
221
538
  }
222
539
  visit(root);
@@ -224,9 +541,12 @@ function digestPluginSource(root, canonicalVersion) {
224
541
  for (const path of files) {
225
542
  const normalizedPath = relative(root, path).replaceAll("\\", "/");
226
543
  if ([".agdf-installation.json", ".agdf-local-install.json"].includes(normalizedPath)) continue;
227
- const content = normalizedPath === ".codex-plugin/plugin.json"
544
+ const content = (normalizedPath === ".codex-plugin/plugin.json"
545
+ || (normalizedPath === "plugin.json" && readJson(path, "Root plugin manifest").$schema === "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"))
228
546
  ? `${JSON.stringify({ ...readJson(path, "Codex plugin manifest"), version: canonicalVersion }, null, 2)}\n`
229
- : readFileSync(path);
547
+ : ["mcp.json", "mcp/codex.mcp.json"].includes(normalizedPath)
548
+ ? normalizeCodexPluginMcpConfig(readFileSync(path, "utf8"))
549
+ : readFileSync(path);
230
550
  hash.update(normalizedPath);
231
551
  hash.update("\0");
232
552
  hash.update(content);
@@ -309,18 +629,50 @@ function assertRouterMatchesDefinition(pathLabel, content, surface) {
309
629
  }
310
630
  }
311
631
 
312
- assertFile(runtimeContractPath, "runtime contract");
313
- for (const moduleName of contractModules) {
314
- assertFile(join(contractsDir, moduleName), `runtime contract module ${moduleName}`);
632
+ assertFile(pluginDefinitionPath, "canonical AGDF plugin definition");
633
+ const pluginDefinition = isFile(pluginDefinitionPath) ? readJson(pluginDefinitionPath, "canonical AGDF plugin definition") : null;
634
+ const runtimeContractDefinition = pluginDefinition?.runtimeContract;
635
+ let runtimeContractModulePaths = [];
636
+ if (runtimeContractDefinition?.schemaVersion !== 1
637
+ || runtimeContractDefinition?.manifestPath !== "meta/agdf-runtime-contract.md"
638
+ || !Array.isArray(runtimeContractDefinition?.modules)
639
+ || runtimeContractDefinition.modules.length === 0) {
640
+ failures.push("canonical AGDF plugin definition must declare runtimeContract schemaVersion 1, manifestPath and ordered modules");
641
+ } else {
642
+ runtimeContractModulePaths = [...runtimeContractDefinition.modules];
643
+ if (new Set(runtimeContractModulePaths).size !== runtimeContractModulePaths.length) {
644
+ failures.push("runtimeContract.modules must not contain duplicates");
645
+ }
646
+ for (const modulePath of runtimeContractModulePaths) {
647
+ if (!/^meta\/contracts\/[a-z0-9-]+\.md$/.test(modulePath)) {
648
+ failures.push(`runtimeContract.modules contains an unknown module path: ${modulePath}`);
649
+ }
650
+ }
651
+ if (runtimeContractModulePaths[0] !== "meta/contracts/request-activation.md"
652
+ || runtimeContractModulePaths[1] !== "meta/contracts/task-target-resolution.md") {
653
+ failures.push("runtimeContract.modules must order Request Activation before Task Target Resolution");
654
+ }
315
655
  }
656
+ const contractModules = runtimeContractModulePaths.map((modulePath) => modulePath.replace(/^meta\/contracts\//, ""));
657
+ assertFile(runtimeContractPath, "runtime contract");
658
+ for (const modulePath of runtimeContractModulePaths) {
659
+ assertFile(
660
+ join(pluginRoot, modulePath),
661
+ `runtime contract module ${modulePath.replace(/^meta\/contracts\//, "")}`,
662
+ );
663
+ }
664
+ assertFile(requestActivationContractPath, "request activation contract");
665
+ assertFile(commandRegistryPath, "commandRegistry operation owner");
666
+ assertFile(skillDispatchFunctionContractPath, "skill dispatch semantic function owner");
316
667
  assertFile(interactionLocalesPath, "interaction locale registry");
317
- assertFile(pluginDefinitionPath, "canonical AGDF plugin definition");
318
668
  if (sourceMode) {
319
669
  if (isDirectory(join(pluginRoot, "runtime"))) failures.push("source plugin must not contain generated runtime");
320
670
  } else {
321
671
  assertFile(localRuntimeManifestPath, "surface-local runtime manifest");
322
672
  assertFile(localRuntimeEntrypointPath, "surface-local runtime entrypoint");
323
673
  assertFile(automaticRuntimeCheckPath, "argument-free automatic runtime-check entrypoint");
674
+ assertFile(join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "skill-dispatch", "contract.js"), "skill dispatch contract");
675
+ assertFile(join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "skill-dispatch", "service.js"), "skill dispatch service");
324
676
  }
325
677
  assertFile(agentRouterPath, "canonical AGDF agent router");
326
678
  assertFile(codexPluginPath, "Codex plugin manifest");
@@ -341,14 +693,15 @@ if (sourceMode) {
341
693
  assertFile(pagesSiteDataPath, "Pages site data");
342
694
  assertFile(pagesIndexPath, "Pages index");
343
695
  assertFile(syncPackageAssetsPath, "create-agdf package asset sync");
696
+ assertFile(syncPluginRuntimePath, "create-agdf plugin runtime sync");
697
+ assertFile(openCodeNpmPluginPath, "OpenCode npm plugin source");
344
698
  assertFile(rootLicensePath, "root LICENSE");
345
699
 
346
700
  if (isFile(rootLicensePath) && isFile(pluginLicensePath) && read(rootLicensePath) !== read(pluginLicensePath)) {
347
- failures.push("plugin/LICENSE must be byte-identical to the root LICENSE");
701
+ failures.push("plugins/agdf/LICENSE must be byte-identical to the root LICENSE");
348
702
  }
349
703
  }
350
704
 
351
- const pluginDefinition = isFile(pluginDefinitionPath) ? readJson(pluginDefinitionPath, "canonical AGDF plugin definition") : null;
352
705
  const localRuntimeManifest = isFile(localRuntimeManifestPath) ? readJson(localRuntimeManifestPath, "surface-local runtime manifest") : null;
353
706
  if (pluginDefinition && localRuntimeManifest) {
354
707
  if (localRuntimeManifest.version !== pluginDefinition.version) failures.push("surface-local runtime version must match the plugin definition");
@@ -374,12 +727,119 @@ if (!sourceMode && isFile(localRuntimeEntrypointPath)) {
374
727
  }
375
728
  }
376
729
  const runtimeContract = readAllContracts();
730
+ const requestActivationContract = isFile(requestActivationContractPath) ? read(requestActivationContractPath) : "";
731
+ const canonicalRequestActivationGuard = requestActivationContract
732
+ ? ownedBlock(
733
+ requestActivationContract,
734
+ requestActivationMarkers.guardStart,
735
+ requestActivationMarkers.guardEnd,
736
+ "canonical request activation guard",
737
+ )
738
+ : "";
739
+ let canonicalGuardFingerprint = "";
740
+ if (canonicalRequestActivationGuard) {
741
+ try {
742
+ canonicalGuardFingerprint = requestActivationKernelFingerprint(canonicalRequestActivationGuard);
743
+ } catch (error) {
744
+ failures.push(`canonical request activation guard fingerprint is invalid: ${error.message}`);
745
+ }
746
+ }
747
+ if (canonicalRequestActivationGuard && canonicalGuardFingerprint
748
+ && !canonicalRequestActivationGuard.includes(`- \`guard_fingerprint\`: \`${canonicalGuardFingerprint}\``)) {
749
+ failures.push("canonical request activation guard fingerprint does not match its source block");
750
+ }
751
+ if (requestActivationContract) {
752
+ for (const required of [
753
+ "sole semantic owner",
754
+ "no raw prompt or derived request classification is written",
755
+ "no network request, remote classifier, repository read, tool call, or dispatcher call",
756
+ "requested_effect",
757
+ "invocation_provenance",
758
+ "selection_origin",
759
+ "persist: false",
760
+ ]) {
761
+ if (!requestActivationContract.includes(required)) {
762
+ failures.push(`request activation contract missing non-authorizing/privacy boundary: ${required}`);
763
+ }
764
+ }
765
+ const catalog = parseRequestActivationCatalog(requestActivationContract);
766
+ validateRequestActivationCatalog(
767
+ catalog,
768
+ pluginDefinition,
769
+ isFile(commandRegistryPath) ? read(commandRegistryPath) : "",
770
+ );
771
+ }
772
+ const activationDiscoverySuffix = requestActivationContract
773
+ ? requestActivationDiscoverySuffix(requestActivationContract)
774
+ : "";
775
+ if (isFile(runtimeContractPath) && runtimeContractModulePaths.length > 0) {
776
+ const manifestContent = read(runtimeContractPath);
777
+ const projectedIndex = ownedBlock(
778
+ manifestContent,
779
+ requestActivationMarkers.runtimeModulesStart,
780
+ requestActivationMarkers.runtimeModulesEnd,
781
+ "runtime contract module index",
782
+ );
783
+ const expectedIndex = runtimeModuleIndex(runtimeContractModulePaths);
784
+ if (projectedIndex && projectedIndex !== expectedIndex) {
785
+ failures.push("runtime contract module index is stale or out of definition order");
786
+ }
787
+ }
788
+ const taskTargetContract = isFile(join(contractsDir, "task-target-resolution.md")) ? read(join(contractsDir, "task-target-resolution.md")) : "";
789
+ const interactionContract = isFile(join(contractsDir, "interaction.md")) ? read(join(contractsDir, "interaction.md")) : "";
377
790
  const modesContract = isFile(join(contractsDir, "modes.md")) ? read(join(contractsDir, "modes.md")) : "";
378
791
  const gateTransitionContract = isFile(join(contractsDir, "gate-transition.md")) ? read(join(contractsDir, "gate-transition.md")) : "";
379
792
  const agentRouterContent = isFile(agentRouterPath) ? read(agentRouterPath) : "";
380
793
  const interactionLocales = isFile(interactionLocalesPath) ? readJson(interactionLocalesPath, "interaction locale registry") : null;
381
794
  const gateCheckSkill = isFile(gateCheckSkillPath) ? read(gateCheckSkillPath) : "";
382
795
  const brownfieldSkill = isFile(brownfieldSkillPath) ? read(brownfieldSkillPath) : "";
796
+ if (pluginDefinition && canonicalRequestActivationGuard && activationDiscoverySuffix && gateCheckSkill) {
797
+ const expectedDescriptions = Object.fromEntries(pluginDefinition.skillSet.map((skill) => [
798
+ skill.slug,
799
+ JSON.stringify(expectedSkillDescription(skill, activationDiscoverySuffix)),
800
+ ]));
801
+ const discoveryRecords = [];
802
+ for (const skill of pluginDefinition.skillSet) {
803
+ const path = join(skillRoot, skill.slug, "SKILL.md");
804
+ if (!isFile(path)) continue;
805
+ try {
806
+ discoveryRecords.push({
807
+ id: skill.slug,
808
+ slug: skill.slug,
809
+ content: extractSerializedDescriptionScalar(read(path)),
810
+ });
811
+ } catch (error) {
812
+ failures.push(`${skill.slug} discovery scalar is invalid: ${error.message}`);
813
+ }
814
+ }
815
+ const footprintReport = validateInstructionFootprintProfile({
816
+ definition: pluginDefinition.instructionFootprint,
817
+ canonicalKernel: canonicalRequestActivationGuard,
818
+ expectedDescriptions,
819
+ expectedVersion: pluginDefinition.version,
820
+ expectedInstanceIds: {
821
+ activationKernel: ["canonical"],
822
+ skillDiscoveryDescription: pluginDefinition.skillSet.map((skill) => skill.slug),
823
+ allSkillDiscoveryDescriptions: ["definition-order"],
824
+ selectedGateCheckSkill: ["canonical"],
825
+ },
826
+ surfaces: {
827
+ activationKernel: [{ id: "canonical", content: canonicalRequestActivationGuard }],
828
+ skillDiscoveryDescription: discoveryRecords,
829
+ allSkillDiscoveryDescriptions: [{ id: "definition-order", content: discoveryRecords.map((record) => record.content).join("") }],
830
+ selectedGateCheckSkill: [{ id: "canonical", variant: "canonical", content: gateCheckSkill }],
831
+ },
832
+ requiredSurfaceIds: [
833
+ "activationKernel",
834
+ "skillDiscoveryDescription",
835
+ "allSkillDiscoveryDescriptions",
836
+ "selectedGateCheckSkill",
837
+ ],
838
+ });
839
+ for (const finding of footprintReport.failures) {
840
+ failures.push(`${finding.code}: ${finding.message}`);
841
+ }
842
+ }
383
843
  if (!brownfieldSkill.includes("Persist the completed review and its decision, scope reason, evidence and required next gate in the same internal operation")) {
384
844
  failures.push("brownfield-analysis must own atomic post-UR review and routing persistence");
385
845
  }
@@ -434,6 +894,21 @@ for (const required of [
434
894
  ]) {
435
895
  if (!brownfieldSkill.includes(required)) failures.push(`brownfield-analysis structured-depth guidance missing: ${required}`);
436
896
  }
897
+ for (const required of [
898
+ "In the same `post_ur_review`, record architecture relevance",
899
+ "architecture-not-applicable",
900
+ "problem`, `trade-off` or `unresolved",
901
+ "rationale, accountable owner, mitigation and finite review date or exit condition",
902
+ "Until all four are present, leave it unresolved",
903
+ "Do not report `pass` while claiming that the debt",
904
+ "Use a focused diagram only when it answers a named ownership or dependency question",
905
+ "normalized owners in `quality.md`",
906
+ ]) {
907
+ if (!brownfieldSkill.includes(required)) failures.push(`brownfield-analysis architecture guidance missing: ${required}`);
908
+ }
909
+ if (!gateTransitionContract.includes("conditional Architecture Impact under `brownfield-analysis`")) {
910
+ failures.push("gate-transition must keep Architecture Impact inside Brownfield Review");
911
+ }
437
912
  const codexPlugin = isFile(codexPluginPath) ? readJson(codexPluginPath, "Codex plugin manifest") : null;
438
913
  const claudePlugin = isFile(claudePluginPath) ? readJson(claudePluginPath, "Claude plugin manifest") : null;
439
914
  const installationProvenance = isFile(installationProvenancePath) ? readJson(installationProvenancePath, "AGDF installation provenance") : null;
@@ -449,59 +924,73 @@ if (!runtimeContract.includes("`attempted_not_applied`") || !runtimeContract.inc
449
924
  failures.push("Runtime Contract must define visible fallback attempt outcomes");
450
925
  }
451
926
  if (!runtimeContract.includes("### Interaction Locale Contract")
452
- || !runtimeContract.includes("an unsupported requested locale must fail to English as a complete unit")
927
+ || !runtimeContract.includes("a valid unsupported requested locale must resolve to English as a complete unit")
928
+ || !runtimeContract.includes("invalid external dispatch input fails before presentation")
453
929
  || !runtimeContract.includes("an incomplete or invalid registry fails closed")) {
454
- failures.push("Runtime Contract must define deterministic chat-locale resolution with English fallback");
455
- }
456
-
457
- const gateCheckOperationalBoundaries = [
458
- "Resolve or revalidate the primary task target before selecting repository control state.",
459
- "Derive repository activation only from the resolved governance target",
460
- "Select exactly one run and evaluate its current gate.",
461
- "Confirm that the required durable artefact is present and ready.",
462
- "Consume the canonical `approval_presentation` verbatim",
463
- "obtain deliberate input through the contract-selected native or exact-text path",
464
- "Revalidate the same target, run, gate and revision immediately after the response and before persistence.",
465
- "Persist only a currently valid exact approval through the existing control-state workflow.",
466
- ];
467
- if (!gateCheckSkill.includes("../../meta/contracts/task-target-resolution.md")) {
468
- failures.push("gate-check must load the focused task-target-resolution contract");
469
- }
470
- if (!gateCheckSkill.includes("../../meta/contracts/interaction.md")) {
471
- failures.push("gate-check must load the focused interaction contract");
472
- }
473
- for (const required of gateCheckOperationalBoundaries) {
474
- if (!gateCheckSkill.includes(required)) failures.push(`gate-check operational boundary missing: ${required}`);
475
- }
476
- for (const duplicatedPolicy of ["Surface behavior:", "Make exactly one native-attempt", "Interaction Locale Contract", "decorated_label_only"]) {
477
- if (gateCheckSkill.includes(duplicatedPolicy)) failures.push(`gate-check must not duplicate normative interaction policy: ${duplicatedPolicy}`);
478
- }
479
- if (!gateCheckSkill.includes("`status_presentation.markdown` verbatim")) {
480
- failures.push("gate-check must consume the deterministic operational status presentation");
481
- }
482
- if (gateCheckSkill.includes("| Run status | Value |")) {
483
- failures.push("gate-check must not maintain a second operational status-card template");
484
- }
485
- if (!gateCheckSkill.includes("## Repository Activation Diagnosis")) {
486
- failures.push("gate-check must own the repository activation diagnosis section");
930
+ failures.push("Runtime Contract must distinguish valid unsupported, missing or invalid dispatch, and invalid registry locale handling");
931
+ }
932
+
933
+ const taskTargetContractProse = normalizeProse(taskTargetContract);
934
+ for (const targetBoundary of [
935
+ "## Direct Skill Invocation Preflight",
936
+ "before skill-specific input",
937
+ "`task_target_orientation.markdown` verbatim",
938
+ "request only the normalized `next_action`",
939
+ "terminal pre-decision outcome",
940
+ "do not\n inspect repository control state",
941
+ "use only its `governance_target`",
942
+ "subsequent skill-owned chat output must not mix locale packs",
943
+ "target-check --json --language <current-chat-language>",
944
+ "Do not install or resolve a remote",
945
+ ]) {
946
+ if (!taskTargetContractProse.includes(normalizeProse(targetBoundary))) failures.push(`shared direct skill target-preflight boundary missing: ${targetBoundary}`);
487
947
  }
488
- if (!gateCheckSkill.includes("`doctor --json` on the resolved surface-local validator is the sole canonical, code-owned, tool-shell-safe activation probe")) {
489
- failures.push("gate-check must name doctor --json as the sole canonical activation probe");
948
+ for (const activationBoundary of [
949
+ "After positive Request Activation, resolve the user's primary work target",
950
+ "Silent Request Activation abstention and targetless catalog routes do not invoke this contract.",
951
+ "After the already-loaded Request Activation guard has positively selected a direct, target-bound skill route",
952
+ "Automatic selection alone is not positive activation; on silent abstention this preflight is not run.",
953
+ ]) {
954
+ if (!taskTargetContractProse.includes(activationBoundary)) {
955
+ failures.push(`task-target-resolution must remain downstream of positive Request Activation: ${activationBoundary}`);
956
+ }
490
957
  }
491
- if (!gateCheckSkill.includes("must not be used as the only proof of activation")) {
492
- failures.push("gate-check must forbid AGDF_* env vars as sole activation proof");
958
+
959
+ const modesContractProse = normalizeProse(modesContract);
960
+ for (const activationBoundary of [
961
+ "Request Activation precedes Mode Selection.",
962
+ "read-only handling and are not Quick Tasks.",
963
+ "Quick Task is a downstream process choice for an actual delivery effect or explicit AGDF operation; it is never an activation fallback.",
964
+ "Read-only questions, reviews and diagnosis without a requested delivery effect remain outside AGDF.",
965
+ ]) {
966
+ if (!modesContractProse.includes(activationBoundary)) {
967
+ failures.push(`modes contract must keep ordinary read-only work outside Quick Task: ${activationBoundary}`);
968
+ }
493
969
  }
494
- if (!gateCheckSkill.includes("must not be used as proof of presence or absence of `.agdf/control/config.json`")) {
495
- failures.push("gate-check must forbid relative glob/grep as activation proof");
970
+ if (modesContractProse.includes("| Quick Task Mode | small questions, reviews, debugging")) {
971
+ failures.push("modes contract must not classify ordinary questions or reviews as Quick Task");
496
972
  }
497
- for (const antiPattern of [
498
- "AGDF_CONTROL_DIR` to confirm",
499
- "AGDF_CONTROL_DIR` to verify",
500
- "AGDF_CONTROL_DIR` to check",
501
- "relative glob to confirm",
502
- "relative glob to verify",
973
+
974
+ const interactionContractProse = normalizeProse(interactionContract);
975
+ for (const activationBoundary of [
976
+ "Silent Request Activation abstention for an ordinary read-only request renders no AGDF orientation, status or other AGDF-visible text.",
977
+ "Only after positive activation may a downstream AGDF owner use the localized `primary.readOnlyOrientationDescription` sentence",
978
+ "After positive Request Activation selects a target-bound route, render the target orientation",
503
979
  ]) {
504
- if (gateCheckSkill.includes(antiPattern)) failures.push(`gate-check must not instruct agents to use anti-pattern diagnosis: ${antiPattern}`);
980
+ if (!interactionContractProse.includes(activationBoundary)) {
981
+ failures.push(`interaction contract must keep ordinary read-only handling silent and pre-target: ${activationBoundary}`);
982
+ }
983
+ }
984
+ const controlSetupBoundary = interactionContract.indexOf("`control_setup` is a non-gate envelope");
985
+ const gateApprovalPresentationBoundary = interactionContract.indexOf("Before presenting `gate_approval`");
986
+ if (controlSetupBoundary < 0
987
+ || gateApprovalPresentationBoundary < 0
988
+ || controlSetupBoundary >= gateApprovalPresentationBoundary
989
+ || !interactionContractProse.includes("before automatic run creation, automatic UR persistence or any gate approval can occur.")
990
+ || !interactionContractProse.includes("After successful setup, the agent continues the same delivery intake by persisting the already reviewed canonical run and revision-stable UR without a second setup prompt.")
991
+ || !interactionContractProse.includes("For the explicit standalone `lifecycle.control.init` operation, setup remains scaffold-only and creates neither a run nor UR.")
992
+ || !interactionContractProse.includes("It renders no approval value, native gate control or synthetic selected run.")) {
993
+ failures.push("interaction contract must define non-authorizing control_setup before any gate approval presentation");
505
994
  }
506
995
  if (!runtimeContract.includes("### Repository Activation Diagnosis Boundary")) {
507
996
  failures.push("control-scaffold contract must own the repository activation diagnosis boundary");
@@ -522,20 +1011,14 @@ if (!agentRouterContent.includes("## Task Target Resolution")
522
1011
  || agentRouterContent.indexOf("## Task Target Resolution") > agentRouterContent.indexOf("## Mode Selection")) {
523
1012
  failures.push("agent router must resolve the task target before Mode Selection");
524
1013
  }
525
- if (!gateCheckSkill.includes("task_target_orientation.markdown` verbatim")) {
526
- failures.push("gate-check must consume the canonical task target orientation verbatim");
527
- }
528
1014
  if (gateCheckSkill.includes("## Task Target Orientation Template")
529
1015
  || gateCheckSkill.includes("| Primary target | Governance target | Evidence sources |")) {
530
1016
  failures.push("gate-check must not maintain a skill-local task target orientation template");
531
1017
  }
532
- if (!gateCheckSkill.includes("scope_classification.markdown` verbatim")) {
533
- failures.push("gate-check must consume the canonical scope classification projection verbatim");
534
- }
535
1018
  if (gateCheckSkill.includes("## Scope Classification Card Template") || gateCheckSkill.includes("| Classification | Mode | Boundary |")) {
536
1019
  failures.push("gate-check must not maintain a skill-local scope classification card template");
537
1020
  }
538
- const interactionPresentationPath = join(pluginRoot, "..", "create-agdf", "lib", "interaction-presentation.js");
1021
+ const interactionPresentationPath = sourceMode ? join(repoRoot, "packages", "core", "lib", "interaction-presentation.js") : join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "interaction-presentation.js");
539
1022
  if (sourceMode && isFile(interactionPresentationPath)) {
540
1023
  const interactionPresentation = read(interactionPresentationPath);
541
1024
  if (!interactionPresentation.includes("export function renderScopeClassificationCard")) {
@@ -561,6 +1044,7 @@ for (const locale of ["en", "de"]) {
561
1044
  if (!pack?.taskTargetResolution?.title
562
1045
  || !pack?.taskTargetResolution?.primaryTarget
563
1046
  || !pack?.taskTargetResolution?.reasonCodes?.target_content_mismatch
1047
+ || !pack?.taskTargetResolution?.nextActions?.no_reliable_target
564
1048
  || !pack?.taskTargetResolution?.nextAction) {
565
1049
  failures.push(`Interaction locale ${locale} missing taskTargetResolution section keys`);
566
1050
  }
@@ -636,8 +1120,8 @@ if (pluginDefinition) {
636
1120
  if (pluginDefinition.codex?.logo !== "./assets/agdf-logo.svg") failures.push("canonical AGDF plugin definition Codex logo must point to ./assets/agdf-logo.svg");
637
1121
  if (pluginDefinition.claude?.agentRouter !== "meta/agdf-agent-router.md") failures.push("canonical AGDF plugin definition Claude agent router must point to meta/agdf-agent-router.md");
638
1122
  if (pluginDefinition.copilot?.skillPrefix !== "agdf-") failures.push("canonical AGDF plugin definition Copilot skill prefix must be agdf-");
639
- if (pluginDefinition.copilot?.pluginManifest !== "plugin.json" || pluginDefinition.copilot?.skills !== "copilot-skills/" || pluginDefinition.copilot?.hooks !== "hooks/copilot-hooks.json") {
640
- failures.push("canonical AGDF plugin definition Copilot paths must point to the generated root manifest, prefixed skills and hook config");
1123
+ if (pluginDefinition.copilot?.pluginManifest !== "plugin.json" || pluginDefinition.copilot?.skills !== "skills/" || pluginDefinition.copilot?.hooks !== "com.github.copilot/hooks/hooks.json") {
1124
+ failures.push("canonical AGDF plugin definition Copilot paths must follow Agent Plugins 1.0 component discovery");
641
1125
  }
642
1126
  if (pluginDefinition.opencode?.skillPrefix !== "agdf-") failures.push("canonical AGDF plugin definition OpenCode skill prefix must be agdf-");
643
1127
  if (pluginDefinition.opencode?.globalSkillPrefix !== "agdf-global-") failures.push("canonical AGDF plugin definition OpenCode global skill prefix must be agdf-global-");
@@ -674,10 +1158,34 @@ if (pluginDefinition) {
674
1158
  if (!Array.isArray(pluginDefinition.skillSet) || pluginDefinition.skillSet.length === 0) {
675
1159
  failures.push("canonical AGDF plugin definition must declare the workflow skill set");
676
1160
  } else {
1161
+ const skillSlugs = new Set();
677
1162
  for (const skill of pluginDefinition.skillSet) {
678
- if (!skill?.slug) failures.push("canonical AGDF plugin definition skill set entries must declare slug");
679
- if (!skill?.useFor) failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare useFor`);
680
- if (!skill?.boundary) failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare boundary`);
1163
+ if (!skillSlugPattern.test(skill?.slug ?? "")) {
1164
+ failures.push(`canonical AGDF plugin definition contains invalid skill slug: ${skill?.slug ?? "<unknown>"}`);
1165
+ } else if (skillSlugs.has(skill.slug)) {
1166
+ failures.push(`canonical AGDF plugin definition contains duplicate skill slug: ${skill.slug}`);
1167
+ } else {
1168
+ skillSlugs.add(skill.slug);
1169
+ }
1170
+ if (typeof skill?.useFor !== "string" || !skill.useFor.trim() || skill.useFor.trim() !== skill.useFor || /[\r\n]/.test(skill.useFor)) {
1171
+ failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare single-line useFor`);
1172
+ }
1173
+ if (typeof skill?.boundary !== "string" || !skill.boundary.trim() || skill.boundary.trim() !== skill.boundary || /[\r\n]/.test(skill.boundary)) {
1174
+ failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare single-line boundary`);
1175
+ }
1176
+ if (typeof skill?.discovery !== "string" || !skill.discovery.trim() || skill.discovery.trim() !== skill.discovery || /[\r\n]/.test(skill.discovery)) {
1177
+ failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare single-line discovery`);
1178
+ }
1179
+ if (!["deterministic_control", "judgement_required"].includes(skill?.dispatch?.mode)) failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare a valid dispatch mode`);
1180
+ if (skill?.dispatch?.requiresControlSnapshot !== true) failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must require the canonical control snapshot`);
1181
+ if (skill?.slug === "gate-check"
1182
+ && (skill?.dispatch?.mode !== "deterministic_control" || skill?.dispatch?.deterministicCommand !== "gate-check")) {
1183
+ failures.push("gate-check must map deterministic_control to its existing deterministic command");
1184
+ }
1185
+ if (skill?.slug !== "gate-check"
1186
+ && (skill?.dispatch?.mode !== "judgement_required" || skill?.dispatch?.deterministicCommand)) {
1187
+ failures.push(`judgement skill ${skill?.slug ?? "<unknown>"} must use judgement_required without a deterministic command`);
1188
+ }
681
1189
  }
682
1190
  }
683
1191
  const expectedProfiles = {
@@ -694,6 +1202,7 @@ if (pluginDefinition) {
694
1202
  failures.push("canonical AGDF plugin definition distribution profiles must match the runtime integrity contract");
695
1203
  }
696
1204
  expectedSkills = (pluginDefinition.skillSet ?? [])
1205
+ .filter((skill) => skillSlugPattern.test(skill?.slug ?? ""))
697
1206
  .map((skill) => `${pluginDefinition.codex?.skillPrefix ?? ""}${skill?.slug ?? ""}`)
698
1207
  .sort();
699
1208
  }
@@ -752,7 +1261,7 @@ if (isFile(pagesSiteDataPath)) {
752
1261
  const pagesSiteData = read(pagesSiteDataPath);
753
1262
  for (const canonicalDestination of [
754
1263
  "docs/handbook",
755
- "plugin/meta/contracts",
1264
+ "plugins/agdf/meta/contracts",
756
1265
  "INSTALL.md",
757
1266
  ]) {
758
1267
  if (!pagesSiteData.includes(canonicalDestination)) {
@@ -764,6 +1273,11 @@ if (isFile(pagesSiteDataPath)) {
764
1273
  if (codexPlugin && pluginDefinition) {
765
1274
  if (codexPlugin.name !== pluginDefinition.id) failures.push("Codex plugin manifest name must match canonical AGDF plugin definition");
766
1275
  const expectedInstallVersion = installationProvenance?.codex_install_version ?? pluginDefinition.version;
1276
+ const portablePlugin = isFile(copilotPluginPath) ? readJson(copilotPluginPath, "Root plugin manifest") : null;
1277
+ if (portablePlugin?.$schema === "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"
1278
+ && portablePlugin.version !== expectedInstallVersion) {
1279
+ failures.push("Portable plugin manifest version must match the owned Codex installation version");
1280
+ }
767
1281
  const validInstalledProjection = !sourceMode
768
1282
  && installationProvenance?.schema_version === 1
769
1283
  && installationProvenance?.owner === "create-agdf"
@@ -785,6 +1299,20 @@ if (codexPlugin && pluginDefinition) {
785
1299
  if (JSON.stringify(codexPlugin.keywords) !== JSON.stringify(pluginDefinition.keywords)) failures.push("Codex plugin manifest keywords must match canonical AGDF plugin definition");
786
1300
  if (codexPlugin.author?.name !== pluginDefinition.author?.name || codexPlugin.author?.url !== pluginDefinition.author?.url) failures.push("Codex plugin manifest author must match canonical AGDF plugin definition");
787
1301
  if (codexPlugin.skills !== pluginDefinition.codex?.skills) failures.push("Codex plugin manifest must point skills to canonical AGDF skills path");
1302
+ // Claude auto-loads .mcp.json; portable Codex uses mcp.json, Claude its declared file under mcp/.
1303
+ if (isFile(join(pluginRoot, ".mcp.json"))) failures.push("plugin root must not contain .mcp.json; Codex uses mcp.json and Claude its declared file");
1304
+ if (sourceMode) {
1305
+ if (codexPlugin.mcpServers !== undefined) failures.push("source Codex plugin manifest must not declare MCP servers");
1306
+ } else {
1307
+ const codexMcpPath = join(pluginRoot, "mcp.json");
1308
+ if (codexPlugin.mcpServers !== "./mcp.json") failures.push("runtime Codex plugin manifest must declare the plugin-local MCP server file");
1309
+ if (!isFile(codexMcpPath) || !codexMcpShape(readFileSync(codexMcpPath, "utf8"))) {
1310
+ failures.push("runtime Codex MCP config must start only the plugin-local AGDF MCP launcher with an absolute data root");
1311
+ } else if (readJson(codexMcpPath, 'Codex MCP config').mcpServers?.['agdf-cockpit']
1312
+ && ['cockpit.html', 'manifest.json'].some(file => !isFile(join(pluginRoot, 'mcp/server/ui', file)))) {
1313
+ failures.push('runtime Codex Cockpit declaration requires its bundled UI');
1314
+ }
1315
+ }
788
1316
  if (codexPlugin.interface?.displayName !== pluginDefinition.displayName) failures.push("Codex plugin display name must match canonical AGDF plugin definition");
789
1317
  if (codexPlugin.interface?.shortDescription !== pluginDefinition.description) failures.push("Codex plugin short description must match canonical AGDF plugin description");
790
1318
  if (codexPlugin.interface?.longDescription !== pluginDefinition.longDescription) failures.push("Codex plugin long description must match canonical AGDF plugin definition");
@@ -799,7 +1327,7 @@ if (codexPlugin && pluginDefinition) {
799
1327
  if (codexPlugin.interface?.brandColor !== pluginDefinition.brandColor) failures.push("Codex plugin brand color must match canonical AGDF plugin definition");
800
1328
  if (JSON.stringify(codexPlugin.interface?.capabilities) !== JSON.stringify(pluginDefinition.codex?.capabilities)) failures.push("Codex plugin capabilities must match canonical AGDF plugin definition");
801
1329
  if (JSON.stringify(codexPlugin.interface?.defaultPrompt) !== JSON.stringify(pluginDefinition.codex?.defaultPrompt)) failures.push("Codex plugin default prompts must match canonical AGDF plugin definition");
802
- if (Object.hasOwn(codexPlugin, "hooks")) failures.push("Codex plugin manifest must rely on default hooks/hooks.json discovery");
1330
+ if (sourceMode ? Object.hasOwn(codexPlugin, "hooks") : codexPlugin.hooks !== "./hooks/hooks.json") failures.push("Codex hook declaration must match source/runtime profile");
803
1331
  }
804
1332
 
805
1333
  if (claudePlugin && pluginDefinition) {
@@ -811,6 +1339,23 @@ if (claudePlugin && pluginDefinition) {
811
1339
  if (claudePlugin.license !== pluginDefinition.license) failures.push("Claude plugin manifest license must match canonical AGDF plugin definition");
812
1340
  if (JSON.stringify(claudePlugin.keywords) !== JSON.stringify(pluginDefinition.keywords)) failures.push("Claude plugin manifest keywords must match canonical AGDF plugin definition");
813
1341
  if (claudePlugin.author?.name !== pluginDefinition.author?.name || claudePlugin.author?.url !== pluginDefinition.author?.url) failures.push("Claude plugin manifest author must match canonical AGDF plugin definition");
1342
+ // The runtime plugin owns the Claude MCP registration so `claude plugin uninstall` removes it; the
1343
+ // source plugin ships no runtime and therefore declares no server.
1344
+ if (sourceMode) {
1345
+ if (claudePlugin.mcpServers !== undefined) failures.push("source Claude plugin manifest must not declare MCP servers");
1346
+ } else {
1347
+ const mcpConfigPath = join(pluginRoot, "mcp", "claude.mcp.json");
1348
+ const expectedMcpConfig = { mcpServers: { agdf: { type: "stdio", command: "node", args: ["${CLAUDE_PLUGIN_ROOT}/mcp/agdf-mcp-launch.js"] } } };
1349
+ if (claudePlugin.mcpServers !== pluginDefinition.claude?.mcpServers || pluginDefinition.claude?.mcpServers !== "./mcp/claude.mcp.json") {
1350
+ failures.push("runtime Claude plugin manifest must declare the canonical plugin-local MCP server file");
1351
+ }
1352
+ if (!isFile(mcpConfigPath) || JSON.stringify(readJson(mcpConfigPath, "Claude MCP config")) !== JSON.stringify(expectedMcpConfig)) {
1353
+ failures.push("runtime Claude MCP config must start only the plugin-local AGDF MCP launcher");
1354
+ }
1355
+ for (const required of ["mcp/agdf-mcp-launch.js", "mcp/sdk/package.json", "mcp/sdk/package-lock.json", "mcp/sdk/expected-sdk.json", "mcp/server/package.json", "mcp/server/bin/agdf-mcp.js", "runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js"]) {
1356
+ assertFile(join(pluginRoot, required), `plugin-local Claude MCP runtime file ${required}`);
1357
+ }
1358
+ }
814
1359
  }
815
1360
 
816
1361
  if (createAgdfPackage && pluginDefinition && createAgdfPackage.version !== pluginDefinition.version) {
@@ -843,25 +1388,211 @@ if (isFile(syncPackageAssetsPath)) {
843
1388
  if (!syncPackageAssets.includes("toOpenCodeInstructionsRouter")) {
844
1389
  failures.push("OpenCode instructions must be rendered from the canonical AGDF router");
845
1390
  }
1391
+ if (!syncPackageAssets.includes("getRuntimeContractModulePaths(pluginDefinition)")
1392
+ || /const contractModules\s*=\s*\[/.test(syncPackageAssets)) {
1393
+ failures.push("create-agdf package asset sync must consume the definition-owned runtimeContract inventory");
1394
+ }
1395
+ const packageSyncEntry = syncPackageAssets.indexOf("export function syncPackageAssets");
1396
+ const projectionCheck = syncPackageAssets.indexOf("syncRequestActivationProjections({ repoRoot, mode: \"check\" })", packageSyncEntry);
1397
+ const firstPackageMutation = [
1398
+ syncPackageAssets.indexOf("write(join(sourcePluginRoot", packageSyncEntry),
1399
+ syncPackageAssets.indexOf("rmSync(", packageSyncEntry),
1400
+ syncPackageAssets.indexOf("syncDirectory(", packageSyncEntry),
1401
+ ].filter((position) => position >= 0).sort((left, right) => left - right)[0] ?? -1;
1402
+ if (packageSyncEntry < 0 || projectionCheck < packageSyncEntry
1403
+ || (firstPackageMutation >= 0 && projectionCheck > firstPackageMutation)) {
1404
+ failures.push("create-agdf package asset sync must pass request-activation projection check before every mutation");
1405
+ }
1406
+ if (!syncPackageAssets.includes('"## Surface Convention",\n REQUEST_ACTIVATION_MARKERS.guardStart')
1407
+ || syncPackageAssets.includes('replaceUniqueRouterSection(\n transformed,\n "## Surface Convention",\n "## Request Activation"')
1408
+ || syncPackageAssets.includes("(?=## Mode Selection)")) {
1409
+ failures.push("OpenCode router transform must end Surface Convention replacement before the exact Request Activation guard marker");
1410
+ }
1411
+ if (!syncPackageAssets.includes("hooks: {\n sessionStart: [{")) {
1412
+ failures.push("Copilot package projection must generate the sessionStart-only hook surface");
1413
+ }
846
1414
  }
847
1415
 
848
1416
  if (isFile(createAgdfOpenCodeInstallerPath)) {
849
1417
  const createAgdfOpenCodeInstaller = read(createAgdfOpenCodeInstallerPath);
850
- if (!createAgdfOpenCodeInstaller.includes("globalOpenCodeBoundary") || !createAgdfOpenCodeInstaller.includes("globalOpenCodeSkillOwnershipMarker")) {
1418
+ if (!createAgdfOpenCodeInstaller.includes("globalOpenCodeInstructionsOwnershipMarker")
1419
+ || !createAgdfOpenCodeInstaller.includes("globalOpenCodeSkillOwnershipMarker")
1420
+ || !createAgdfOpenCodeInstaller.includes("toGlobalOpenCodeInstructionsBootstrap")
1421
+ || !createAgdfOpenCodeInstaller.includes("insertRepositoryActivationGuard")) {
851
1422
  failures.push("OpenCode global native-surface ownership and fail-closed boundary must remain in the canonical installer path");
852
1423
  }
1424
+ if (createAgdfOpenCodeInstaller.includes("tool.execute.before")) {
1425
+ failures.push("OpenCode installer must not require a pre-tool request-classifier hook");
1426
+ }
1427
+ }
1428
+
1429
+ if (isFile(syncPluginRuntimePath)) {
1430
+ const syncPluginRuntime = read(syncPluginRuntimePath);
1431
+ for (const required of [
1432
+ "const activationKernel = requestActivationKernel()",
1433
+ "requestActivation: ${JSON.stringify({",
1434
+ "owner: activationKernel.identity.owner",
1435
+ "policy_version: activationKernel.identity.policy_version",
1436
+ "guard_fingerprint: activationKernel.identity.guard_fingerprint",
1437
+ "routeSource:",
1438
+ "../meta/contracts/request-activation.md",
1439
+ "../skills/contracts/request-activation.md",
1440
+ "const bindingContext =",
1441
+ "AGDF dispatcher binding:",
1442
+ "const baseContext = [activationKernel, bindingContext].join",
1443
+ "const additionalContext = [baseContext",
1444
+ "AGDF runtime facts:",
1445
+ "createDispatchBinding",
1446
+ ]) {
1447
+ if (!syncPluginRuntime.includes(required)) {
1448
+ failures.push(`plugin runtime sync missing compact kernel/binding/runtime-facts structure: ${required}`);
1449
+ }
1450
+ }
1451
+ if (syncPluginRuntime.includes("activation_trigger") || syncPluginRuntime.includes("raw_prompt")) {
1452
+ failures.push("plugin runtime sync must not retain the broad activation trigger or raw request transport");
1453
+ }
853
1454
  }
854
1455
 
855
- const openCodeNpmPluginPath = sourceMode ? join(repoRoot, "create-agdf", "opencode-plugin.js") : null;
856
1456
  if (sourceMode && isFile(openCodeNpmPluginPath)) {
857
1457
  const openCodeNpmPlugin = read(openCodeNpmPluginPath);
858
1458
  if (!openCodeNpmPlugin.includes("experimental.session.compacting") || !openCodeNpmPlugin.includes("AGDF_CONTROL_DIR")) {
859
1459
  failures.push("OpenCode npm plugin must preserve AGDF runtime context hooks");
860
1460
  }
1461
+ for (const required of [
1462
+ 'identity?.owner !== "request_activation_contract"',
1463
+ 'identity?.path !== "meta/contracts/request-activation.md"',
1464
+ "identity?.policy_version !== 1",
1465
+ "fingerprint mismatch",
1466
+ "const activeContext = () =>",
1467
+ "requestActivation: {",
1468
+ "owner: activationIdentity.owner",
1469
+ "policy_version: activationIdentity.policy_version",
1470
+ "guard_fingerprint: activationIdentity.guard_fingerprint",
1471
+ "createDispatchBinding",
1472
+ "if (!activation().active) return",
1473
+ ]) {
1474
+ if (!openCodeNpmPlugin.includes(required)) {
1475
+ failures.push(`OpenCode npm plugin missing compact active-context boundary: ${required}`);
1476
+ }
1477
+ }
1478
+ if (openCodeNpmPlugin.includes("activation_trigger")
1479
+ || openCodeNpmPlugin.includes("raw_prompt")
1480
+ || openCodeNpmPlugin.includes("tool.execute.before")) {
1481
+ failures.push("OpenCode npm plugin must not retain a broad activation trigger, raw request transport or pre-tool classifier hook");
1482
+ }
1483
+ if (!openCodeNpmPlugin.includes("if (validatorVersion && validatorVersion !== packageJson.version)")
1484
+ || countOccurrences(openCodeNpmPlugin, "await safeToast(") !== 1) {
1485
+ failures.push("OpenCode npm plugin must reserve its only session-created toast for version drift");
1486
+ }
1487
+
1488
+ try {
1489
+ const expectedIdentity = {
1490
+ owner: "request_activation_contract",
1491
+ path: "meta/contracts/request-activation.md",
1492
+ policy_version: 1,
1493
+ guard_fingerprint: canonicalGuardFingerprint,
1494
+ };
1495
+ const { AGDFPlugin } = await import(pathToFileURL(openCodeNpmPluginPath).href);
1496
+ const observedToasts = [];
1497
+ const hooks = await AGDFPlugin({
1498
+ directory: join(repoRoot, ".agdf-runtime-integrity-inactive"),
1499
+ client: {
1500
+ app: { async log() { return {}; } },
1501
+ tui: { async showToast({ body }) { observedToasts.push(body); } },
1502
+ },
1503
+ }, {
1504
+ requestActivationIdentity: expectedIdentity,
1505
+ executeAutomaticRuntimeCheck: () => ({ effective: false, reason: "integrity_fixture", ran: false, output: "" }),
1506
+ validatorPath: join(repoRoot, "packages", "cli", "bin", "agdf-validator.js"),
1507
+ });
1508
+ const expectedHookKeys = [
1509
+ "event",
1510
+ "experimental.chat.system.transform",
1511
+ "experimental.session.compacting",
1512
+ "shell.env",
1513
+ ];
1514
+ if (JSON.stringify(Object.keys(hooks).sort()) !== JSON.stringify(expectedHookKeys.sort())) {
1515
+ failures.push("OpenCode npm plugin hook inventory must remain exact and exclude tool.execute.before");
1516
+ }
1517
+ await hooks.event({ event: { type: "session.created" } });
1518
+ if (observedToasts.length !== 0) {
1519
+ failures.push("inactive OpenCode session creation must remain log-only and emit no toast");
1520
+ }
1521
+ const inactiveSystemOutput = { system: [] };
1522
+ await hooks["experimental.chat.system.transform"]({}, inactiveSystemOutput);
1523
+ if (inactiveSystemOutput.system.length !== 0) {
1524
+ failures.push("inactive OpenCode system transform must emit zero bytes");
1525
+ }
1526
+ const inactiveCompactionOutput = { context: [] };
1527
+ await hooks["experimental.session.compacting"]({}, inactiveCompactionOutput);
1528
+ if (inactiveCompactionOutput.context.length !== 0) {
1529
+ failures.push("inactive OpenCode compaction must emit zero bytes");
1530
+ }
1531
+
1532
+ const activeHooks = await AGDFPlugin({
1533
+ directory: repoRoot,
1534
+ client: {
1535
+ app: { async log() { return {}; } },
1536
+ tui: { async showToast() { return {}; } },
1537
+ },
1538
+ }, {
1539
+ requestActivationIdentity: expectedIdentity,
1540
+ executeAutomaticRuntimeCheck: () => ({ effective: false, reason: "integrity_fixture", ran: false, output: "" }),
1541
+ validatorPath: join(repoRoot, "packages", "cli", "bin", "agdf-validator.js"),
1542
+ });
1543
+ const activeSystemOutput = { system: [] };
1544
+ await activeHooks["experimental.chat.system.transform"]({}, activeSystemOutput);
1545
+ await activeHooks["experimental.chat.system.transform"]({}, activeSystemOutput);
1546
+ const activeCompactionOutput = { context: [] };
1547
+ await activeHooks["experimental.session.compacting"]({}, activeCompactionOutput);
1548
+ await activeHooks["experimental.session.compacting"]({}, activeCompactionOutput);
1549
+ const eagerPath = join(repoRoot, "packages", "cli", "generated", ".opencode", pluginDefinition.opencode.instructionsFileName);
1550
+ if (activeSystemOutput.system.length !== 1 || activeCompactionOutput.context.length !== 1 || !isFile(eagerPath)) {
1551
+ failures.push("active OpenCode hooks must expose one idempotent dynamic context and one kernel-only compaction block");
1552
+ } else {
1553
+ const activeContext = activeSystemOutput.system[0];
1554
+ const bindingLine = activeContext.split("\n").find((line) => line.startsWith("AGDF dispatcher binding: "));
1555
+ const binding = JSON.parse(bindingLine.slice("AGDF dispatcher binding: ".length));
1556
+ const eager = read(eagerPath);
1557
+ const dynamicValues = { executable: binding.executable, validator: binding.argv_prefix[0] };
1558
+ const report = validateInstructionFootprintProfile({
1559
+ definition: pluginDefinition.instructionFootprint,
1560
+ canonicalKernel: canonicalRequestActivationGuard,
1561
+ expectedVersion: pluginDefinition.version,
1562
+ expectedInstanceIds: {
1563
+ openCodeEagerInstructions: ["repository"],
1564
+ openCodeActiveDynamicContext: ["active"],
1565
+ openCodeInactiveDynamicContext: ["inactive"],
1566
+ openCodeComposedStaticAndActiveDynamic: ["repository"],
1567
+ openCodeCompactionAddition: ["active"],
1568
+ },
1569
+ surfaces: {
1570
+ openCodeEagerInstructions: [{ id: "repository", content: eager }],
1571
+ openCodeActiveDynamicContext: [{ id: "active", content: activeContext, dynamicValues }],
1572
+ openCodeInactiveDynamicContext: [{ id: "inactive", content: "" }],
1573
+ openCodeComposedStaticAndActiveDynamic: [{ id: "repository", content: `${eager}\n${activeContext}`, dynamicValues }],
1574
+ openCodeCompactionAddition: [{ id: "active", content: activeCompactionOutput.context[0] }],
1575
+ },
1576
+ requiredSurfaceIds: [
1577
+ "openCodeEagerInstructions",
1578
+ "openCodeActiveDynamicContext",
1579
+ "openCodeInactiveDynamicContext",
1580
+ "openCodeComposedStaticAndActiveDynamic",
1581
+ "openCodeCompactionAddition",
1582
+ ],
1583
+ });
1584
+ for (const finding of report.failures) failures.push(`${finding.code}: ${finding.message}`);
1585
+ }
1586
+ } catch (error) {
1587
+ failures.push(`OpenCode npm plugin Request Activation integrity probe failed: ${error.message}`);
1588
+ }
861
1589
  }
862
1590
 
863
1591
  const hooksConfig = isFile(hooksConfigPath) ? readJson(hooksConfigPath, "Codex plugin hooks config") : null;
864
1592
  if (hooksConfig) {
1593
+ if (JSON.stringify(Object.keys(hooksConfig.hooks ?? {}).sort()) !== JSON.stringify(["SessionStart"])) {
1594
+ failures.push("shared plugin hooks must expose SessionStart only");
1595
+ }
865
1596
  const sessionStartGroups = hooksConfig.hooks?.SessionStart;
866
1597
  if (!Array.isArray(sessionStartGroups) || sessionStartGroups.length === 0) failures.push("Codex plugin hooks config must define SessionStart hooks");
867
1598
  const sessionStartCommands = sessionStartGroups?.flatMap((group) => group?.hooks ?? []) ?? [];
@@ -871,6 +1602,16 @@ if (hooksConfig) {
871
1602
  const sessionStartCommandText = sessionStartCommands.map((hook) => String(hook?.command ?? "")).join("\n");
872
1603
  if (!sessionStartCommandText.includes("PLUGIN_ROOT")) failures.push("Codex plugin SessionStart hook command must use PLUGIN_ROOT");
873
1604
  if (!sessionStartCommands.every((hook) => String(hook?.commandWindows ?? "").includes("agdf-session-check.js"))) failures.push("Codex plugin SessionStart hooks must define a native Windows command");
1605
+ if (fixedRuntimeCheckCommand) {
1606
+ const expectedCommand = fixedRuntimeCheckCommand("codex", pluginRoot, "darwin");
1607
+ const expectedWindowsCommand = fixedRuntimeCheckCommand("codex", pluginRoot, "win32");
1608
+ if (!sessionStartCommands.every((hook) => hook?.command === expectedCommand)) {
1609
+ failures.push("Codex plugin SessionStart command must equal the canonical host-adapter projection");
1610
+ }
1611
+ if (!sessionStartCommands.every((hook) => hook?.commandWindows === expectedWindowsCommand)) {
1612
+ failures.push("Codex plugin Windows SessionStart command must equal the canonical host-adapter projection");
1613
+ }
1614
+ }
874
1615
  if (sessionStartCommandText.includes("/plugins/cache/*/")) failures.push("Codex plugin SessionStart hook command must not use cache wildcards");
875
1616
  }
876
1617
 
@@ -895,56 +1636,181 @@ if (!sourceMode && installationProvenance?.profile_id === "copilot-runtime-plugi
895
1636
  const copilotPlugin = isFile(copilotPluginPath) ? readJson(copilotPluginPath, "Copilot plugin manifest") : null;
896
1637
  const copilotHooks = isFile(copilotHooksPath) ? readJson(copilotHooksPath, "Copilot plugin hooks") : null;
897
1638
  if (!copilotPlugin) failures.push("installed runtime plugin must include root plugin.json for GitHub Copilot");
898
- if (copilotPlugin && (copilotPlugin.name !== "agdf" || copilotPlugin.version !== pluginDefinition?.version
899
- || copilotPlugin.skills !== "copilot-skills/" || copilotPlugin.hooks !== "hooks/copilot-hooks.json")) {
900
- failures.push("Copilot root plugin manifest must preserve AGDF identity, version and generated component paths");
1639
+ const copilotManifestKeys = ["$schema", "name", "version", "description", "author", "homepage", "repository", "license", "keywords"];
1640
+ if (copilotPlugin && (copilotPlugin.$schema !== "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"
1641
+ || copilotPlugin.name !== "agdf" || copilotPlugin.version !== pluginDefinition?.version
1642
+ || JSON.stringify(Object.keys(copilotPlugin)) !== JSON.stringify(copilotManifestKeys))) {
1643
+ failures.push("Copilot root plugin manifest must conform to the closed Agent Plugins 1.0 manifest schema");
901
1644
  }
902
1645
  const copilotSessionStart = copilotHooks?.hooks?.sessionStart;
1646
+ if (JSON.stringify(Object.keys(copilotHooks?.hooks ?? {}).sort()) !== JSON.stringify(["sessionStart"])) {
1647
+ failures.push("Copilot hooks must expose sessionStart only");
1648
+ }
903
1649
  if (!Array.isArray(copilotSessionStart) || !copilotSessionStart.some((hook) => hook?.type === "command"
904
1650
  && hook?.command === 'node "${PLUGIN_ROOT}/runtime/agdf-session-check.js"'
905
1651
  && hook?.env?.AGDF_SURFACE === "copilot")) {
906
1652
  failures.push("Copilot hooks must declare the fixed consent-bound AGDF sessionStart command");
907
1653
  }
1654
+ const copilotMcp = isFile(join(pluginRoot, "mcp.json")) ? readJson(join(pluginRoot, "mcp.json"), "Copilot MCP declaration") : null;
1655
+ const expectedCopilotMcp = {
1656
+ $schema: "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
1657
+ mcpServers: {
1658
+ agdf: {
1659
+ type: "stdio",
1660
+ command: "node",
1661
+ args: ["${PLUGIN_ROOT}/mcp/agdf-mcp-launch.js", "--surface", "copilot", "--data", "${PLUGIN_DATA}"],
1662
+ },
1663
+ },
1664
+ };
1665
+ if (JSON.stringify(copilotMcp) !== JSON.stringify(expectedCopilotMcp)) {
1666
+ failures.push("Copilot Agent Plugins profile must declare the canonical plugin-managed MCP server");
1667
+ }
1668
+ for (const required of ["mcp/agdf-mcp-launch.js", "mcp/sdk/package.json", "mcp/sdk/package-lock.json",
1669
+ "mcp/sdk/expected-sdk.json", "mcp/server/package.json", "mcp/server/bin/agdf-mcp.js",
1670
+ "runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js"]) {
1671
+ assertFile(join(pluginRoot, required), `Copilot plugin MCP runtime ${required}`);
1672
+ }
908
1673
  for (const skill of pluginDefinition?.skillSet ?? []) {
909
- assertFile(join(pluginRoot, "copilot-skills", `agdf-${skill.slug}`, "SKILL.md"), `Copilot prefixed plugin skill agdf-${skill.slug}`);
1674
+ if (!skillSlugPattern.test(skill?.slug ?? "")) continue;
1675
+ assertFile(join(pluginRoot, "skills", `agdf-${skill.slug}`, "SKILL.md"), `Copilot prefixed plugin skill agdf-${skill.slug}`);
910
1676
  }
911
1677
  }
912
1678
 
913
1679
  if (isFile(sessionStartHookPath)) {
914
1680
  const sessionStartHook = read(sessionStartHookPath);
915
- if (!sessionStartHook.includes("agdf-agent-router.md")) failures.push("AGDF SessionStart hook must load the canonical agent router");
916
- if (!sessionStartHook.includes("agdf-constitution.md")) failures.push("AGDF SessionStart hook must load the AGDF constitution");
917
- if (!sessionStartHook.includes("agdf-runtime-contract.md")) failures.push("AGDF SessionStart hook must expose the canonical runtime contract source");
918
- if (!sessionStartHook.includes("Do not print the full router or constitution unless the user asks for them")) {
919
- failures.push("AGDF SessionStart hook must avoid flooding the chat with full router or constitution text");
920
- }
921
- if (!sessionStartHook.includes(".agdf/control/config.json") || !sessionStartHook.includes("artefacts=") || !sessionStartHook.includes("chat=")) {
922
- failures.push("AGDF SessionStart hook must report the project language config hint compactly");
923
- }
924
- if (!sessionStartHook.includes("Language policy: write durable AGDF artefacts in")) {
925
- failures.push("AGDF SessionStart hook must turn language config into an explicit artefact/chat language instruction");
926
- }
927
- if (sessionStartHook.includes('cat "$ROUTER"') || sessionStartHook.includes('cat "$CONSTITUTION"')) {
928
- failures.push("AGDF SessionStart hook must not print full router or constitution files by default");
1681
+ for (const required of [
1682
+ "Compatibility transport only",
1683
+ 'SESSION_CHECK="${SCRIPT_DIR}/../runtime/agdf-session-check.js"',
1684
+ 'exec node "${SESSION_CHECK}"',
1685
+ "AGDF SessionStart transport unavailable: generated runtime entrypoint not found.",
1686
+ ]) {
1687
+ if (!sessionStartHook.includes(required)) failures.push(`AGDF SessionStart compatibility transport missing: ${required}`);
1688
+ }
1689
+ if (/agdf-agent-router|agdf-constitution|agdf-runtime-contract|\.agdf\/control|Language policy|Request Activation Guard/iu.test(sessionStartHook)) {
1690
+ failures.push("AGDF SessionStart compatibility transport must not own model-visible policy or repository inspection");
1691
+ }
1692
+ }
1693
+
1694
+ const footprintSessionEntrypoint = sourceMode
1695
+ ? join(repoRoot, "packages", "cli", "generated", "plugins", "agdf", "runtime", "agdf-session-check.js")
1696
+ : automaticRuntimeCheckPath;
1697
+ if (pluginDefinition && canonicalRequestActivationGuard && isFile(footprintSessionEntrypoint)) {
1698
+ const records = [];
1699
+ for (const surface of ["codex", "claude", "copilot"]) {
1700
+ const probe = spawnSync(process.execPath, [footprintSessionEntrypoint], {
1701
+ cwd: sourceMode ? repoRoot : pluginRoot,
1702
+ encoding: "utf8",
1703
+ env: {
1704
+ ...process.env,
1705
+ AGDF_DATA_DIR: join(sourceMode ? repoRoot : pluginRoot, ".agdf-runtime-integrity-no-consent"),
1706
+ AGDF_SURFACE: surface,
1707
+ },
1708
+ });
1709
+ if (probe.status !== 0) {
1710
+ failures.push(`SessionStart footprint probe failed for ${surface}: ${probe.stderr.trim()}`);
1711
+ continue;
1712
+ }
1713
+ try {
1714
+ const transported = surface === "copilot" ? JSON.parse(probe.stdout).additionalContext : probe.stdout;
1715
+ // The budget covers the base context; Claude appends runtime facts under plugin-enablement consent
1716
+ // and a possible installation drift notice after it.
1717
+ const content = normalizeLf(transported).replace(/\n$/u, "").split("\n\n")
1718
+ .filter((block) => !block.startsWith("AGDF runtime facts:") && !block.startsWith("AGDF installation drift:"))
1719
+ .join("\n\n");
1720
+ const bindingLine = content.split("\n").find((line) => line.startsWith("AGDF dispatcher binding: "));
1721
+ const binding = JSON.parse(bindingLine.slice("AGDF dispatcher binding: ".length));
1722
+ const routeSource = binding.route_source_after_activation;
1723
+ const routeSourcePath = routeSource?.relative_to === "validator_directory" && typeof routeSource.path === "string"
1724
+ ? resolve(dirname(binding.argv_prefix[0]), routeSource.path)
1725
+ : "";
1726
+ if (!routeSourcePath || !isFile(routeSourcePath)) {
1727
+ throw new Error("post-activation route source is missing or unresolved");
1728
+ }
1729
+ const routeSourceContent = read(routeSourcePath);
1730
+ if (!routeSourceContent.includes(requestActivationMarkers.operationsStart)
1731
+ || !routeSourceContent.includes(requestActivationMarkers.operationsEnd)
1732
+ || !routeSourceContent.includes(canonicalRequestActivationGuard)) {
1733
+ throw new Error("post-activation route source is not the packaged canonical operation catalog");
1734
+ }
1735
+ records.push({
1736
+ id: surface,
1737
+ content,
1738
+ dynamicValues: { executable: binding.executable, validator: binding.argv_prefix[0] },
1739
+ });
1740
+ } catch (error) {
1741
+ failures.push(`SessionStart footprint output is invalid for ${surface}: ${error.message}`);
1742
+ }
929
1743
  }
1744
+ const report = validateInstructionFootprintProfile({
1745
+ definition: pluginDefinition.instructionFootprint,
1746
+ canonicalKernel: canonicalRequestActivationGuard,
1747
+ expectedVersion: pluginDefinition.version,
1748
+ expectedInstanceIds: { sessionStartBase: ["codex", "claude", "copilot"] },
1749
+ surfaces: { sessionStartBase: records },
1750
+ requiredSurfaceIds: ["sessionStartBase"],
1751
+ });
1752
+ for (const finding of report.failures) failures.push(`${finding.code}: ${finding.message}`);
930
1753
  }
931
1754
 
932
1755
  if (isFile(agentRouterPath)) {
933
1756
  const agentRouter = read(agentRouterPath);
934
- assertRouterMatchesDefinition("plugin/meta/agdf-agent-router.md", agentRouter, "codex");
1757
+ assertRouterMatchesDefinition("plugins/agdf/meta/agdf-agent-router.md", agentRouter, "codex");
1758
+ const routerGuard = ownedBlock(
1759
+ agentRouter,
1760
+ requestActivationMarkers.guardStart,
1761
+ requestActivationMarkers.guardEnd,
1762
+ "plugins/agdf/meta/agdf-agent-router.md request activation guard",
1763
+ );
1764
+ if (routerGuard && canonicalRequestActivationGuard && routerGuard !== canonicalRequestActivationGuard) {
1765
+ failures.push("plugins/agdf/meta/agdf-agent-router.md request activation guard must be byte-identical to the canonical source block");
1766
+ }
1767
+ const expectedRoutingBlock = [
1768
+ requestActivationMarkers.skillRoutingStart,
1769
+ "| Skill | Use For | Boundary |",
1770
+ "|---|---|---|",
1771
+ ...(pluginDefinition?.skillSet ?? []).map((skill) => routingRowForSurface(skill, "codex")),
1772
+ requestActivationMarkers.skillRoutingEnd,
1773
+ ].join("\n");
1774
+ const routingBlock = ownedBlock(
1775
+ agentRouter,
1776
+ requestActivationMarkers.skillRoutingStart,
1777
+ requestActivationMarkers.skillRoutingEnd,
1778
+ "plugins/agdf/meta/agdf-agent-router.md skill routing",
1779
+ );
1780
+ if (routingBlock && routingBlock !== expectedRoutingBlock) {
1781
+ failures.push("plugins/agdf/meta/agdf-agent-router.md skill routing must exactly match definition order and metadata");
1782
+ }
1783
+ const activationOrder = [
1784
+ "## Surface Convention",
1785
+ "## Request Activation",
1786
+ "## Task Target Resolution",
1787
+ "## Mode Selection",
1788
+ ];
1789
+ const positions = activationOrder.map((heading) => {
1790
+ const count = countOccurrences(agentRouter, heading);
1791
+ if (count !== 1) failures.push(`plugins/agdf/meta/agdf-agent-router.md must contain exactly one ${heading}; found ${count}`);
1792
+ return agentRouter.indexOf(heading);
1793
+ });
1794
+ if (!positions.every((position, index) => position >= 0 && (index === 0 || position > positions[index - 1]))) {
1795
+ failures.push("plugins/agdf/meta/agdf-agent-router.md must order Surface Convention -> Request Activation -> Task Target Resolution -> Mode Selection");
1796
+ }
1797
+ if (!agentRouter.includes("Only after positive Request Activation, and only for a target-bound route")
1798
+ || !agentRouter.includes("A request that abstained or remained an\nordinary read-only request never enters AGDF Mode Selection or Quick Task handling.")) {
1799
+ failures.push("plugins/agdf/meta/agdf-agent-router.md must keep target and mode routing downstream of positive Request Activation");
1800
+ }
935
1801
  if (!agentRouter.includes("Default entry rule: a new user intent to build, add, change, extend, refactor or otherwise deliver something starts with `gate-check`")) {
936
- failures.push("plugin/meta/agdf-agent-router.md must state the gate-check default entry rule for new build/change intents");
1802
+ failures.push("plugins/agdf/meta/agdf-agent-router.md must state the gate-check default entry rule for new build/change intents");
937
1803
  }
938
1804
  if (!agentRouter.includes("Do not choose `brownfield-analysis` as the first primary skill for a fresh")) {
939
- failures.push("plugin/meta/agdf-agent-router.md must prevent brownfield-analysis from bypassing gate-check on fresh build/change prompts");
1805
+ failures.push("plugins/agdf/meta/agdf-agent-router.md must prevent brownfield-analysis from bypassing gate-check on fresh build/change prompts");
940
1806
  }
941
1807
  if (!agentRouter.includes("For Quick Task Mode, close with the Runtime Contract mini-output only")) {
942
- failures.push("plugin/meta/agdf-agent-router.md must keep Quick Task closeout lighter than relevant-run closeout");
1808
+ failures.push("plugins/agdf/meta/agdf-agent-router.md must keep Quick Task closeout lighter than relevant-run closeout");
943
1809
  }
944
1810
  for (const skill of pluginDefinition?.skillSet ?? []) {
945
1811
  const copilotName = skillNameForSurface(skill, "copilot");
946
1812
  if (agentRouter.includes(`\`${copilotName}\``) || agentRouter.includes(`/${copilotName}`)) {
947
- failures.push(`plugin/meta/agdf-agent-router.md must not use Copilot-prefixed skill name ${copilotName}`);
1813
+ failures.push(`plugins/agdf/meta/agdf-agent-router.md must not use Copilot-prefixed skill name ${copilotName}`);
948
1814
  }
949
1815
  }
950
1816
  }
@@ -981,14 +1847,28 @@ if (isFile(runtimeContractPath)) {
981
1847
  if (!runtimeContract.includes("A Mode/Slice Decision without scope reason and evidence is not recorded")) {
982
1848
  failures.push("runtime contract must treat unevidenced Mode/Slice Decision as missing");
983
1849
  }
984
- if (!runtimeContract.includes("Missing control files or missing current-state fields do not forbid the agent from preparing the current allowed artefact")) {
985
- failures.push("runtime contract must allow constructive artefact drafting when control state is missing");
986
- }
987
- if (!runtimeContract.includes("For a fresh request, the default allowed work is to draft a minimal UR in the response")) {
988
- failures.push("runtime contract must keep fresh missing-control requests lightweight");
989
- }
990
- if (!runtimeContract.includes("Initialize or write `.agdf/control/` only when the user explicitly asks for durable AGDF control state")) {
991
- failures.push("runtime contract must prevent default full scaffold writes for fresh requests");
1850
+ const gateRulesProse = normalizeProse(sectionAfterHeading(gateTransitionContract, "Gate Rules"));
1851
+ const gateRulesSearch = gateRulesProse.toLowerCase();
1852
+ const missingControlRuleStart = gateRulesSearch.indexOf("- after positive request activation and task-target resolution, missing control files");
1853
+ const missingControlRuleEnd = gateRulesSearch.indexOf("- `approval: ur` permits", missingControlRuleStart);
1854
+ const missingControlRule = missingControlRuleStart >= 0 && missingControlRuleEnd > missingControlRuleStart
1855
+ ? gateRulesSearch.slice(missingControlRuleStart, missingControlRuleEnd)
1856
+ : "";
1857
+ const missingControlSetup = missingControlRule.indexOf("obtain explicit setup or link authority");
1858
+ const missingControlPersistence = missingControlRule.indexOf("persist", missingControlSetup);
1859
+ const missingControlApproval = missingControlRule.indexOf("approval: ur", missingControlPersistence);
1860
+ if (!missingControlRule
1861
+ || !missingControlRule.includes("drafting the current minimal ur")
1862
+ || !missingControlRule.includes("forbid later-gate work, implementation and every gate-approval request")
1863
+ || missingControlSetup < 0
1864
+ || missingControlPersistence < 0
1865
+ || missingControlApproval < 0
1866
+ || !(missingControlSetup < missingControlPersistence
1867
+ && missingControlPersistence < missingControlApproval)) {
1868
+ failures.push("gate-transition contract must require setup/link authority and durable persistence before Approval: UR for missing control");
1869
+ }
1870
+ if (missingControlRule.includes("then request `approval: ur`. this branch is unreachable for `target_unresolved`. initialize or write `.agdf/control/`")) {
1871
+ failures.push("gate-transition contract must not request Approval: UR before missing-control setup and persistence");
992
1872
  }
993
1873
  if (!runtimeContract.includes("`config.json` stores project language preferences")) {
994
1874
  failures.push("runtime contract must define AGDF language preference config");
@@ -1084,62 +1964,106 @@ for (const skill of expectedSkills) {
1084
1964
 
1085
1965
  const skillMd = read(skillPath);
1086
1966
  const helpMd = read(helpPath);
1087
- if (skill === "gate-check") {
1088
- for (const required of [
1089
- "## Native Interaction Path",
1090
- "complete normative owner for interaction kinds, locale",
1091
- "Resolve or revalidate the primary task target before selecting repository control state",
1092
- "Select exactly one run and evaluate its current gate",
1093
- "Confirm that the required durable artefact is present and ready",
1094
- "Revalidate the same target, run, gate and revision immediately after the response and before persistence",
1095
- "Persist only a currently valid exact approval",
1096
- ]) {
1097
- if (!skillMd.includes(required)) failures.push(`gate-check native interaction guidance missing: ${required}`);
1098
- }
1099
- if (!skillMd.includes("If `Approval: UR` is present, do not say implementation is the next step.")) {
1100
- failures.push("gate-check must prevent implementation immediately after Approval: UR");
1101
- }
1102
- if (skillMd.includes("## Gate Transitions") || skillMd.includes("## Gate Order") || skillMd.includes("| State | Current gate or step | Allowed | Forbidden | Missing approval |")) {
1103
- failures.push("gate-check must not duplicate the Runtime Contract gate transition table");
1104
- }
1105
- if (!skillMd.includes("The canonical gate order and transition model live only in `../../meta/contracts/gate-transition.md`")) {
1106
- failures.push("gate-check must point to gate-transition.md as gate transition SoT");
1107
- }
1108
- if (!skillMd.includes("`status_presentation.markdown` verbatim") || !skillMd.includes("Do not maintain or render a skill-local table template")) {
1109
- failures.push("gate-check must delegate operational status rendering to the canonical projection");
1967
+ const requestActivationHeadingCount = countOccurrences(skillMd, "## Request Activation");
1968
+ if (requestActivationHeadingCount !== 1) {
1969
+ failures.push(`${skill} must contain exactly one Request Activation heading; found ${requestActivationHeadingCount}`);
1970
+ }
1971
+ const skillSlug = pluginDefinition?.codex?.skillPrefix && skill.startsWith(pluginDefinition.codex.skillPrefix)
1972
+ ? skill.slice(pluginDefinition.codex.skillPrefix.length)
1973
+ : skill;
1974
+ const skillDefinition = (pluginDefinition?.skillSet ?? []).find((entry) => entry.slug === skillSlug);
1975
+ const skillGuard = ownedBlock(
1976
+ skillMd,
1977
+ requestActivationMarkers.guardStart,
1978
+ requestActivationMarkers.guardEnd,
1979
+ `${skill} request activation guard`,
1980
+ );
1981
+ if (skillGuard && canonicalRequestActivationGuard && skillGuard !== canonicalRequestActivationGuard) {
1982
+ failures.push(`${skill} request activation guard must be byte-identical to the canonical source block`);
1983
+ }
1984
+ if (skillGuard && skillMd.indexOf(requestActivationMarkers.guardEnd) > skillMd.indexOf("## Executable Dispatch")) {
1985
+ failures.push(`${skill} request activation guard must precede executable dispatch`);
1986
+ }
1987
+ if (canonicalSkillDispatchProjection) {
1988
+ if (countOccurrences(skillMd, canonicalSkillDispatchProjection) !== 1) {
1989
+ failures.push(`${skill} must contain exactly one byte-identical projection of the canonical skill dispatch semantics`);
1110
1990
  }
1111
- if (!skillMd.includes("A decision value without scope reason and evidence is still missing")) {
1112
- failures.push("gate-check must require evidenced Mode/Slice Decision before later work");
1991
+ if (skillMd.includes(canonicalSkillDispatchProjection)
1992
+ && skillMd.indexOf(canonicalSkillDispatchProjection) < skillMd.indexOf("## Executable Dispatch")) {
1993
+ failures.push(`${skill} skill dispatch semantics must remain inside the executable dispatch boundary`);
1113
1994
  }
1114
- if (!skillMd.includes("Missing or incomplete control state must not push setup work back to the user")) {
1115
- failures.push("gate-check must make missing control state constructive for current artefact drafting");
1116
- }
1117
- if (!skillMd.includes("For a fresh request, draft the current minimal artefact in the response")) {
1118
- failures.push("gate-check must keep fresh missing-control requests lightweight");
1119
- }
1120
- if (!skillMd.includes("Do not write a full control scaffold unless durable control state was explicitly requested")) {
1121
- failures.push("gate-check must prevent full control scaffold writes by default");
1995
+ }
1996
+ if (canonicalSkillDispatchTerminalProjection) {
1997
+ if (countOccurrences(skillMd, canonicalSkillDispatchTerminalProjection) !== 1) {
1998
+ failures.push(`${skill} must contain exactly one byte-identical projection of the canonical terminal-response semantics`);
1122
1999
  }
1123
- if (!skillMd.includes("do not paste full file bodies into the chat")) {
1124
- failures.push("gate-check must keep control artefact content out of chat by default");
2000
+ if (skillMd.includes(canonicalSkillDispatchTerminalProjection)
2001
+ && skillMd.indexOf(canonicalSkillDispatchTerminalProjection) < skillMd.indexOf("## Executable Dispatch")) {
2002
+ failures.push(`${skill} terminal-response semantics must remain inside the executable dispatch boundary`);
1125
2003
  }
1126
- if (!skillMd.includes("requires a durable UR in `.agdf/control/` or a linked authoritative repository SoT")) {
1127
- failures.push("gate-check must require durable UR persistence for new product semantics or functional change");
2004
+ }
2005
+ if (canonicalSkillDispatchQaCandidatesProjection) {
2006
+ const expectedCount = skill === "qa-gate" ? 1 : 0;
2007
+ if (countOccurrences(skillMd, canonicalSkillDispatchQaCandidatesProjection) !== expectedCount) {
2008
+ failures.push(`${skill} must contain ${expectedCount} byte-identical projection of the canonical QA candidate semantics`);
1128
2009
  }
1129
- if (!skillMd.includes("Approval text and durable artefact presence are separate requirements for UR, PRD, SD, TP and QA report decisions")) {
1130
- failures.push("gate-check must separate approval text from durable artefact presence for UR, PRD, SD, TP and QA report decisions");
2010
+ }
2011
+ if (skillDefinition && activationDiscoverySuffix) {
2012
+ const expectedDescription = `description: ${JSON.stringify(expectedSkillDescription(skillDefinition, activationDiscoverySuffix))}`;
2013
+ if ((skillMd.match(/^description:.*$/gm) ?? []).length !== 1 || !skillMd.includes(expectedDescription)) {
2014
+ failures.push(`${skill} frontmatter description must derive exactly from skillSet useFor/boundary and the activation suffix`);
1131
2015
  }
1132
- if (!skillMd.includes("node <surface-local-agdf> delivery-map --json")) {
1133
- failures.push("gate-check must expose the machine-readable delivery-map command");
2016
+ }
2017
+ for (const required of [
2018
+ "## Executable Dispatch",
2019
+ "`terminal: true`",
2020
+ "`dispatcher_unavailable`",
2021
+ ]) {
2022
+ if (!skillMd.includes(required)) failures.push(`${skill} executable dispatch boundary missing: ${required}`);
2023
+ }
2024
+ if (!skillMd.includes(`--skill ${skill}`) && !skillMd.includes(`\`skill_id: ${skill}\``)) {
2025
+ failures.push(`${skill} executable dispatch boundary missing: canonical skill identifier`);
2026
+ }
2027
+ if (skill === "gate-check") {
2028
+ for (const required of [
2029
+ "../../meta/contracts/task-target-resolution.md",
2030
+ "../../meta/contracts/gate-transition.md",
2031
+ "../../meta/contracts/interaction.md",
2032
+ "../../meta/contracts/control-scaffold.md",
2033
+ "../../meta/contracts/modes.md",
2034
+ "../../meta/contracts/quality.md",
2035
+ "## Declared `instruction_only` Fallback",
2036
+ ]) {
2037
+ if (!skillMd.includes(required)) failures.push(`${skill} instruction-only dispatch fallback missing: ${required}`);
1134
2038
  }
1135
- if (!skillMd.includes("This skill is the primary operating path for gate judgement")) {
1136
- failures.push("gate-check must state that the skill is the primary operating path before helper commands");
2039
+ } else if (!skillMd.includes("`instruction_only`: first load `../../meta/contracts/task-target-resolution.md` and `../../meta/contracts/interaction.md`.")) {
2040
+ failures.push(`${skill} instruction-only dispatch fallback is incomplete`);
2041
+ }
2042
+ if ((skillMd.match(/^## Executable Dispatch$/gm) ?? []).length !== 1) failures.push(`${skill} must contain exactly one executable dispatch boundary`);
2043
+ if (skill !== "gate-check" && !skillMd.includes("`skill_continuation`")) failures.push(`${skill} judgement dispatch must consume skill_continuation`);
2044
+ if (skillMd.includes("## Task Target Orientation Template")
2045
+ || skillMd.includes("| Primary target | Governance target | Evidence sources |")) {
2046
+ failures.push(`${skill} must not maintain a skill-local task target orientation template`);
2047
+ }
2048
+ if (skill === "gate-check") {
2049
+ if (skillMd.includes("## Gate Transitions") || skillMd.includes("## Gate Order") || skillMd.includes("| State | Current gate or step | Allowed | Forbidden | Missing approval |")) {
2050
+ failures.push("gate-check must not duplicate the Runtime Contract gate transition table");
1137
2051
  }
1138
- if (!skillMd.includes("not a required ritual for normal work")) {
1139
- failures.push("gate-check must state that CLI reports are not a required ritual for normal work");
2052
+ if (/## Native Interaction Path|## Repository Activation Diagnosis|## OpenCode Passive Hook Boundary/u.test(skillMd)) {
2053
+ failures.push("gate-check must keep focused-contract handbooks out of the compact selected skill");
1140
2054
  }
1141
- if (!skillMd.includes("The CLI reports are validators and JSON evidence, not the primary user experience")) {
1142
- failures.push("gate-check must classify CLI reports as validators, not the primary workflow");
2055
+ } else if (skill === "qa-gate") {
2056
+ for (const required of [
2057
+ "## Resolved Target Run And Evidence Discovery",
2058
+ canonicalSkillDispatchQaCandidatesProjection,
2059
+ "Otherwise use the returned canonical candidate inventory",
2060
+ "Select exactly one run whose objective matches the request",
2061
+ "request\n one run selection and stop before a QA decision",
2062
+ "Do not ask the user to paste or relink repository files that the skill can read itself",
2063
+ "emit exactly one\n `pass | revise | block` decision",
2064
+ "must not reconstruct or promise a Run Status\nCard, Gate Transition Card, native QA card or interactive QA card",
2065
+ ]) {
2066
+ if (!skillMd.includes(required)) failures.push(`qa-gate evidence-discovery boundary missing: ${required}`);
1143
2067
  }
1144
2068
  }
1145
2069
  if (skill === "release-or") {
@@ -1163,9 +2087,9 @@ for (const skill of expectedSkills) {
1163
2087
  }
1164
2088
 
1165
2089
  for (const [pathLabel, content] of [
1166
- ["plugin/meta/agdf-agent-router.md", read(agentRouterPath)],
1167
- ["plugin/meta/agdf-runtime-contract.md", read(runtimeContractPath)],
1168
- ["plugin/meta/contracts/*.md", readAllContracts()],
2090
+ ["plugins/agdf/meta/agdf-agent-router.md", read(agentRouterPath)],
2091
+ ["plugins/agdf/meta/agdf-runtime-contract.md", read(runtimeContractPath)],
2092
+ ["plugins/agdf/meta/contracts/*.md", readAllContracts()],
1169
2093
  ]) {
1170
2094
  const normalized = stripAllowedGerman(content);
1171
2095
  for (const pattern of germanRuntimePatterns) {
@@ -1174,7 +2098,7 @@ for (const [pathLabel, content] of [
1174
2098
  }
1175
2099
 
1176
2100
  for (const relativePath of expectedControlFiles) {
1177
- assertFile(join(controlRoot, relativePath), `plugin/control/${relativePath}`);
2101
+ assertFile(join(controlRoot, relativePath), `plugins/agdf/control/${relativePath}`);
1178
2102
  }
1179
2103
 
1180
2104
  const runTemplatePath = join(controlRoot, "templates", "AGDF_RUN.md");
@@ -1279,9 +2203,26 @@ if (isFile(brownfieldReviewTemplatePath)) {
1279
2203
  "migration_propagation_bounded",
1280
2204
  "failure_recovery_local",
1281
2205
  "independently_acceptable",
2206
+ "## Architecture Impact",
2207
+ "architecture_relevance",
2208
+ "architecture_impact",
2209
+ "architecture_reason",
2210
+ "architecture_evidence",
2211
+ "architecture_missing_evidence",
2212
+ "architecture_next_owner_and_action",
2213
+ "### Retained Debt Detail (only when applicable)",
2214
+ "- finding: <same label as the Reuse And Parallel-Structure Risk row>",
2215
+ "- rationale:",
2216
+ "- accountable_owner:",
2217
+ "- mitigation:",
2218
+ "- review_date_or_exit_condition:",
2219
+ "Keep the review decision at least `revise` until every debt-acceptance field is evidenced",
1282
2220
  ]) {
1283
2221
  if (!brownfieldReviewTemplate.includes(required)) failures.push(`BROWNFIELD_REVIEW.md missing control field: ${required}`);
1284
2222
  }
2223
+ if (!brownfieldReviewTemplate.includes("| Finding | Evidence | Risk | Required action |")) {
2224
+ failures.push("BROWNFIELD_REVIEW.md must retain the four-column finding index");
2225
+ }
1285
2226
  }
1286
2227
 
1287
2228
  if (isFile(uxIntentTemplatePath)) {
@@ -1322,7 +2263,7 @@ if (isFile(qualityContractPath)) {
1322
2263
  "emergent_risk",
1323
2264
  "UR | PRD | SD | TP | CD+Tests | evidence_obligation",
1324
2265
  "gap_status` is exactly `open | resolved",
1325
- "It is not a seventh normalized finding type",
2266
+ "`none` is not a seventh normalized finding type",
1326
2267
  ]) {
1327
2268
  if (!contract.includes(required)) failures.push(`quality contract missing normalized review-gap invariant: ${required}`);
1328
2269
  }