@danmoisan/drm-copilot-mcp 1.1.22 → 1.1.24

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 (261) hide show
  1. package/out/mcp-server.js +18758 -12030
  2. package/package.json +1 -1
  3. package/resources/claude-customizations/.claude/agent-memory/orchestrator/MEMORY.md +1 -1
  4. package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_test_files_count_against_500_cap.md +4 -4
  5. package/resources/claude-customizations/.claude/agents/csharp-typed-engineer.md +1 -1
  6. package/resources/claude-customizations/.claude/agents/discovery-capability-sentinel.md +34 -0
  7. package/resources/claude-customizations/.claude/agents/feature-review.md +8 -0
  8. package/resources/claude-customizations/.claude/agents/legacy-parity-analyst.md +101 -43
  9. package/resources/claude-customizations/.claude/agents/migration-coverage-reviewer.md +107 -43
  10. package/resources/claude-customizations/.claude/agents/orchestrator.md +1 -1
  11. package/resources/claude-customizations/.claude/agents/parallel-orchestrator.md +60 -6
  12. package/resources/claude-customizations/.claude/agents/parallel-planner.md +21 -1
  13. package/resources/claude-customizations/.claude/agents/powershell-typed-engineer.md +1 -1
  14. package/resources/claude-customizations/.claude/agents/pr-author.md +48 -7
  15. package/resources/claude-customizations/.claude/agents/python-typed-engineer.md +1 -1
  16. package/resources/claude-customizations/.claude/agents/requirements-reconciler.md +117 -42
  17. package/resources/claude-customizations/.claude/agents/runtime-characterization-analyst.md +103 -43
  18. package/resources/claude-customizations/.claude/hooks/discovery-capability-probe.ps1 +102 -0
  19. package/resources/claude-customizations/.claude/hooks/enforce-discovery-artifact-gate.ps1 +69 -194
  20. package/resources/claude-customizations/.claude/hooks/enforce-discovery-planning-gate.ps1 +87 -0
  21. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-green-ci.ps1 +325 -0
  22. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +29 -7
  23. package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate-resolution.ps1 +23 -10
  24. package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate.ps1 +29 -21
  25. package/resources/claude-customizations/.claude/hooks/enforce-file-size-limit.ps1 +244 -0
  26. package/resources/claude-customizations/.claude/hooks/enforce-model-routing-receipt.ps1 +51 -0
  27. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1 +168 -48
  28. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate.ps1 +1 -1
  29. package/resources/claude-customizations/.claude/hooks/enforce-parallel-worktree-removal-gate.ps1 +22 -11
  30. package/resources/claude-customizations/.claude/hooks/enforce-powershell-batch-budget.ps1 +59 -20
  31. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-command-allowlist.ps1 +51 -4
  32. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill-helpers.ps1 +72 -11
  33. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.current-branch.ps1 +149 -0
  34. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.epic-base-branch.ps1 +4 -2
  35. package/resources/claude-customizations/.claude/hooks/enforce-python-batch-budget.ps1 +59 -20
  36. package/resources/claude-customizations/.claude/hooks/record-discovery-agent-start.ps1 +132 -0
  37. package/resources/claude-customizations/.claude/hooks/validate-discovery-artifact-gate.ps1 +56 -212
  38. package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output-feature-folder.ps1 +146 -0
  39. package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output-rejection.ps1 +172 -0
  40. package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output.ps1 +34 -4
  41. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadius.psm1 +9 -3
  42. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusAggregate.psm1 +154 -0
  43. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusCombination.psm1 +228 -0
  44. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusExtraction.psm1 +1 -0
  45. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusNormalization.psm1 +4 -2
  46. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusScheduling.psm1 +63 -16
  47. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusTokenShape.psm1 +56 -1
  48. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusWriteIntent.psm1 +4 -1
  49. package/resources/claude-customizations/.claude/lib/cleanup-manifest/CleanupWorktreeManifest.psm1 +33 -6
  50. package/resources/claude-customizations/.claude/lib/codex-routing/CodexDeployment.psm1 +5 -1
  51. package/resources/claude-customizations/.claude/lib/codex-routing/CodexDiscoveryRouting.psm1 +161 -0
  52. package/resources/claude-customizations/.claude/lib/codex-routing/CodexTopology.psm1 +25 -2
  53. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryAuthority.psd1 +90 -0
  54. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryAuthority.psm1 +493 -0
  55. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryAuthorization.psm1 +479 -0
  56. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryCapability.psm1 +468 -0
  57. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryEncoding.psm1 +156 -0
  58. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryManifest.psm1 +384 -0
  59. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryObservation.psm1 +217 -0
  60. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryPayload.psm1 +276 -0
  61. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryPlanning.psm1 +336 -0
  62. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryRootGrant.psm1 +164 -0
  63. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryStart.psm1 +440 -0
  64. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryStartRecord.psm1 +296 -0
  65. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryStop.psm1 +336 -0
  66. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryToolRouting.psm1 +228 -0
  67. package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryValidation.psm1 +188 -341
  68. package/resources/claude-customizations/.claude/lib/file-size-policy/FileSizePolicy.psm1 +434 -0
  69. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateFeatureFolderRecord.psm1 +166 -0
  70. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateIssueAdoption.psm1 +8 -3
  71. package/resources/claude-customizations/.claude/lib/worktree-resolution/HookTargetWorktree.psm1 +391 -0
  72. package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeRunRecordPath.psm1 +185 -0
  73. package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeRunResolution.psm1 +11 -21
  74. package/resources/claude-customizations/.claude/rules/general-code-change.md +4 -1
  75. package/resources/claude-customizations/.claude/rules/orchestrator-state.md +29 -5
  76. package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +152 -20
  77. package/resources/claude-customizations/.claude/rules/powershell.md +1 -1
  78. package/resources/claude-customizations/.claude/rules/shell.md +1 -1
  79. package/resources/claude-customizations/.claude/settings.json +36 -3
  80. package/resources/claude-customizations/.claude/skills/adjudicate-unspecified-behavior/SKILL.md +135 -0
  81. package/resources/claude-customizations/.claude/skills/characterize-runtime-behavior/SKILL.md +134 -0
  82. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/SKILL.md +2 -2
  83. package/resources/claude-customizations/.claude/skills/discovery-behavior-reconciliation/SKILL.md +28 -47
  84. package/resources/claude-customizations/.claude/skills/discovery-coverage-ledger/SKILL.md +32 -48
  85. package/resources/claude-customizations/.claude/skills/discovery-parity-matrix/SKILL.md +28 -45
  86. package/resources/claude-customizations/.claude/skills/discovery-repo-inventory/SKILL.md +28 -62
  87. package/resources/claude-customizations/.claude/skills/discovery-runtime-characterization/SKILL.md +28 -45
  88. package/resources/claude-customizations/.claude/skills/discovery-validate-artifacts/SKILL.md +28 -61
  89. package/resources/claude-customizations/.claude/skills/discovery-workflow/SKILL.md +55 -139
  90. package/resources/claude-customizations/.claude/skills/execution-environment/SKILL.md +25 -10
  91. package/resources/claude-customizations/.claude/skills/extract-feature-contract/SKILL.md +133 -0
  92. package/resources/claude-customizations/.claude/skills/feature-promotion-lifecycle/SKILL.md +1 -0
  93. package/resources/claude-customizations/.claude/skills/generate-acceptance-scenarios/SKILL.md +132 -0
  94. package/resources/claude-customizations/.claude/skills/initialize-discovery-workspace/SKILL.md +131 -0
  95. package/resources/claude-customizations/.claude/skills/inventory-legacy-system/SKILL.md +131 -0
  96. package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +15 -7
  97. package/resources/claude-customizations/.claude/skills/parallel-add/SKILL.md +25 -2
  98. package/resources/claude-customizations/.claude/skills/parallel-close/SKILL.md +11 -1
  99. package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +124 -14
  100. package/resources/claude-customizations/.claude/skills/parallel-plan/SKILL.md +72 -7
  101. package/resources/claude-customizations/.claude/skills/parallel-remove/SKILL.md +15 -0
  102. package/resources/claude-customizations/.claude/skills/parallel-run/SKILL.md +6 -0
  103. package/resources/claude-customizations/.claude/skills/pr-author/SKILL.md +56 -9
  104. package/resources/claude-customizations/.claude/skills/reconcile-parity-matrix/SKILL.md +131 -0
  105. package/resources/claude-customizations/.claude/skills/review-discovery-coverage/SKILL.md +129 -0
  106. package/resources/claude-customizations/.claude/skills/validate-discovery-artifacts/SKILL.md +127 -0
  107. package/resources/claude-customizations/.claude-variants/csharp-legacy/agents/csharp-typed-engineer.md +1 -1
  108. package/resources/claude-customizations/config/blast-radius.json +6 -5
  109. package/resources/claude-customizations/config/orchestration-routing.json +61 -1
  110. package/resources/claude-customizations/pack-manifests/core.json +40 -1
  111. package/resources/codex-and-agents-customizations/.agents/skills/adjudicate-unspecified-behavior/SKILL.md +135 -0
  112. package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +7 -0
  113. package/resources/codex-and-agents-customizations/.agents/skills/characterize-runtime-behavior/SKILL.md +134 -0
  114. package/resources/codex-and-agents-customizations/.agents/skills/discovery-behavior-reconciliation/SKILL.md +46 -0
  115. package/resources/codex-and-agents-customizations/.agents/skills/discovery-coverage-ledger/SKILL.md +50 -0
  116. package/resources/codex-and-agents-customizations/.agents/skills/discovery-parity-matrix/SKILL.md +46 -0
  117. package/resources/codex-and-agents-customizations/.agents/skills/discovery-repo-inventory/SKILL.md +46 -0
  118. package/resources/codex-and-agents-customizations/.agents/skills/discovery-runtime-characterization/SKILL.md +46 -0
  119. package/resources/codex-and-agents-customizations/.agents/skills/discovery-validate-artifacts/SKILL.md +46 -0
  120. package/resources/codex-and-agents-customizations/.agents/skills/discovery-workflow/SKILL.md +62 -0
  121. package/resources/codex-and-agents-customizations/.agents/skills/execution-environment/SKILL.md +25 -10
  122. package/resources/codex-and-agents-customizations/.agents/skills/extract-feature-contract/SKILL.md +133 -0
  123. package/resources/codex-and-agents-customizations/.agents/skills/feature-promotion-lifecycle/SKILL.md +1 -1
  124. package/resources/codex-and-agents-customizations/.agents/skills/feature-review/SKILL.md +8 -0
  125. package/resources/codex-and-agents-customizations/.agents/skills/general-code-change/SKILL.md +4 -1
  126. package/resources/codex-and-agents-customizations/.agents/skills/generate-acceptance-scenarios/SKILL.md +132 -0
  127. package/resources/codex-and-agents-customizations/.agents/skills/initialize-discovery-workspace/SKILL.md +131 -0
  128. package/resources/codex-and-agents-customizations/.agents/skills/inventory-legacy-system/SKILL.md +131 -0
  129. package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +8 -0
  130. package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +1 -1
  131. package/resources/codex-and-agents-customizations/.agents/skills/reconcile-parity-matrix/SKILL.md +131 -0
  132. package/resources/codex-and-agents-customizations/.agents/skills/review-discovery-coverage/SKILL.md +129 -0
  133. package/resources/codex-and-agents-customizations/.agents/skills/validate-discovery-artifacts/SKILL.md +127 -0
  134. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c1.toml +1 -1
  135. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c2.toml +1 -1
  136. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3-elevated.toml +1 -1
  137. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3.toml +1 -1
  138. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c4.toml +1 -1
  139. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer.toml +1 -1
  140. package/resources/codex-and-agents-customizations/.codex/agents/discovery-capability-sentinel.toml +51 -0
  141. package/resources/codex-and-agents-customizations/.codex/agents/feature-review.toml +8 -0
  142. package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c1.toml +148 -0
  143. package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c2.toml +148 -0
  144. package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c3-elevated.toml +148 -0
  145. package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c3.toml +148 -0
  146. package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c4.toml +148 -0
  147. package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst.toml +148 -0
  148. package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c1.toml +154 -0
  149. package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c2.toml +154 -0
  150. package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c3-elevated.toml +154 -0
  151. package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c3.toml +154 -0
  152. package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c4.toml +154 -0
  153. package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer.toml +154 -0
  154. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c1.toml +1 -1
  155. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c2.toml +1 -1
  156. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3-elevated.toml +1 -1
  157. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3.toml +1 -1
  158. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c4.toml +1 -1
  159. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer.toml +1 -1
  160. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c1.toml +1 -1
  161. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c2.toml +1 -1
  162. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3-elevated.toml +1 -1
  163. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3.toml +1 -1
  164. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c4.toml +1 -1
  165. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer.toml +1 -1
  166. package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c1.toml +164 -0
  167. package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c2.toml +164 -0
  168. package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c3-elevated.toml +164 -0
  169. package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c3.toml +164 -0
  170. package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c4.toml +164 -0
  171. package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler.toml +164 -0
  172. package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c1.toml +150 -0
  173. package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c2.toml +150 -0
  174. package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c3-elevated.toml +150 -0
  175. package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c3.toml +150 -0
  176. package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c4.toml +150 -0
  177. package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst.toml +150 -0
  178. package/resources/codex-and-agents-customizations/.codex/config.toml +39 -3
  179. package/resources/codex-and-agents-customizations/.codex/hooks/codex-agent-profile-attestation.ps1 +22 -0
  180. package/resources/codex-and-agents-customizations/.codex/hooks/discovery-capability-probe.ps1 +97 -0
  181. package/resources/codex-and-agents-customizations/.codex/hooks/discovery-start-attestation.ps1 +171 -0
  182. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-codex-model-routing.ps1 +4 -1
  183. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-discovery-artifact-gate.ps1 +187 -0
  184. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-discovery-planning-gate.ps1 +149 -0
  185. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-file-size-limit.ps1 +282 -0
  186. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1 +239 -2
  187. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate.ps1 +6 -15
  188. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-powershell-batch-budget.ps1 +54 -15
  189. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-python-batch-budget.ps1 +54 -15
  190. package/resources/codex-and-agents-customizations/.codex/hooks/file-size-policy.ps1 +421 -0
  191. package/resources/codex-and-agents-customizations/.codex/hooks/hook-target-worktree.ps1 +369 -0
  192. package/resources/codex-and-agents-customizations/.codex/hooks/record-subagent-routing-attestation.ps1 +8 -0
  193. package/resources/codex-and-agents-customizations/.codex/hooks/validate-codex-subagent-routing.ps1 +22 -1
  194. package/resources/codex-and-agents-customizations/.codex/hooks/validate-discovery-agent-output.ps1 +178 -0
  195. package/resources/codex-and-agents-customizations/.codex/scripts/Resolve-CodexTopology.ps1 +11 -1
  196. package/resources/codex-and-agents-customizations/.codex-variants/csharp-legacy/agents/csharp-typed-engineer.toml +1 -1
  197. package/resources/codex-and-agents-customizations/AGENTS.md +4 -1
  198. package/resources/codex-and-agents-customizations/pack-manifests/core.json +65 -1
  199. package/resources/config/orchestration-routing.json +61 -1
  200. package/resources/customizations/.github/agents/commentary-remediation.agent.md +1 -1
  201. package/resources/customizations/.github/agents/discovery-capability-sentinel.agent.md +34 -0
  202. package/resources/customizations/.github/agents/legacy-parity-analyst.agent.md +122 -0
  203. package/resources/customizations/.github/agents/migration-coverage-reviewer.agent.md +128 -0
  204. package/resources/customizations/.github/agents/python-execution-only-typed.agent.md +1 -1
  205. package/resources/customizations/.github/agents/python-typed-engineer.agent.md +1 -1
  206. package/resources/customizations/.github/agents/requirements-reconciler.agent.md +138 -0
  207. package/resources/customizations/.github/agents/runtime-characterization-analyst.agent.md +124 -0
  208. package/resources/customizations/.github/hooks/discovery-agent-start.ps1 +139 -0
  209. package/resources/customizations/.github/hooks/discovery-agent-stop.ps1 +123 -0
  210. package/resources/customizations/.github/hooks/discovery-capability-probe.ps1 +98 -0
  211. package/resources/customizations/.github/hooks/discovery-planning.ps1 +91 -0
  212. package/resources/customizations/.github/hooks/discovery-pre-tool.ps1 +123 -0
  213. package/resources/customizations/.github/hooks/discovery.json +35 -0
  214. package/resources/customizations/.github/instructions/general-code-change.instructions.md +5 -2
  215. package/resources/customizations/.github/instructions/mermaid.instructions.md +85 -0
  216. package/resources/customizations/.github/instructions/powershell-code-change.instructions.md +1 -1
  217. package/resources/customizations/.github/prompts/execute-hard-lock.prompt.md +105 -0
  218. package/resources/customizations/.github/prompts/remediate-comments.prompt.md +1 -1
  219. package/resources/customizations/.github/skills/adjudicate-unspecified-behavior/SKILL.md +135 -0
  220. package/resources/customizations/.github/skills/characterize-runtime-behavior/SKILL.md +134 -0
  221. package/resources/customizations/.github/skills/discovery-behavior-reconciliation/SKILL.md +46 -0
  222. package/resources/customizations/.github/skills/discovery-coverage-ledger/SKILL.md +50 -0
  223. package/resources/customizations/.github/skills/discovery-parity-matrix/SKILL.md +46 -0
  224. package/resources/customizations/.github/skills/discovery-repo-inventory/SKILL.md +46 -0
  225. package/resources/customizations/.github/skills/discovery-runtime-characterization/SKILL.md +46 -0
  226. package/resources/customizations/.github/skills/discovery-validate-artifacts/SKILL.md +46 -0
  227. package/resources/customizations/.github/skills/discovery-workflow/SKILL.md +62 -0
  228. package/resources/customizations/.github/skills/execution-environment/SKILL.md +25 -10
  229. package/resources/customizations/.github/skills/extract-feature-contract/SKILL.md +133 -0
  230. package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +8 -0
  231. package/resources/customizations/.github/skills/generate-acceptance-scenarios/SKILL.md +132 -0
  232. package/resources/customizations/.github/skills/initialize-discovery-workspace/SKILL.md +131 -0
  233. package/resources/customizations/.github/skills/inventory-legacy-system/SKILL.md +131 -0
  234. package/resources/customizations/.github/skills/reconcile-parity-matrix/SKILL.md +131 -0
  235. package/resources/customizations/.github/skills/review-discovery-coverage/SKILL.md +129 -0
  236. package/resources/customizations/.github/skills/validate-discovery-artifacts/SKILL.md +127 -0
  237. package/resources/lib/codex-routing/CodexDeployment.psm1 +5 -1
  238. package/resources/lib/codex-routing/CodexDiscoveryRouting.psm1 +161 -0
  239. package/resources/lib/codex-routing/CodexTopology.psm1 +25 -2
  240. package/resources/lib/discovery-validation/DiscoveryAuthority.psd1 +90 -0
  241. package/resources/lib/discovery-validation/DiscoveryAuthority.psm1 +493 -0
  242. package/resources/lib/discovery-validation/DiscoveryAuthorization.psm1 +479 -0
  243. package/resources/lib/discovery-validation/DiscoveryCapability.psm1 +468 -0
  244. package/resources/lib/discovery-validation/DiscoveryEncoding.psm1 +156 -0
  245. package/resources/lib/discovery-validation/DiscoveryManifest.psm1 +384 -0
  246. package/resources/lib/discovery-validation/DiscoveryObservation.psm1 +217 -0
  247. package/resources/lib/discovery-validation/DiscoveryPayload.psm1 +276 -0
  248. package/resources/lib/discovery-validation/DiscoveryPlanning.psm1 +336 -0
  249. package/resources/lib/discovery-validation/DiscoveryRootGrant.psm1 +164 -0
  250. package/resources/lib/discovery-validation/DiscoveryStart.psm1 +440 -0
  251. package/resources/lib/discovery-validation/DiscoveryStartRecord.psm1 +296 -0
  252. package/resources/lib/discovery-validation/DiscoveryStop.psm1 +336 -0
  253. package/resources/lib/discovery-validation/DiscoveryToolRouting.psm1 +228 -0
  254. package/resources/powershell/PoshQC/PoshQC.Parallel.psm1 +452 -0
  255. package/resources/powershell/PoshQC/PoshQC.Shard.psm1 +106 -8
  256. package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +12 -0
  257. package/resources/powershell/PoshQC/PoshQC.psd1 +6 -1
  258. package/resources/powershell/PoshQC/PoshQC.psm1 +7 -1
  259. package/resources/powershell/PoshQC/README.md +20 -1
  260. package/resources/templates/policy_audit/code-review.yyyy-MM-ddTHH-mm.md +4 -4
  261. package/resources/templates/policy_audit/policy-audit.yyyy-MM-ddTHH-mm.md +4 -4
@@ -40,7 +40,7 @@ Use these sections in this order:
40
40
  8. **Risks and Mitigations** — realistic risks with mitigations and rollback notes
41
41
  9. **Review Guide** — suggested order, noisy mechanical moves, large diffs
42
42
  10. **Follow-ups** — known TODOs, deferred cleanup, next PRs
43
- 11. **GitHub Auto-close** — `- Closes #NNN` only from verified autoclose lists; do not invent issue numbers
43
+ 11. **GitHub Auto-close** — `- Closes #NNN` from the three sources in Issue/PR Reference Rules (the PR-context "Issues to autoclose" list, the PR-context "Author-asserted autoclose issues" list, and an issue named as author-asserted in the delegation prompt); `- None` only when no source has an entry; do not invent issue numbers
44
44
 
45
45
  ## Output Artifact
46
46
 
@@ -74,22 +74,69 @@ writes and the `gh pr create` / `gh pr edit --body-file` handoff.
74
74
 
75
75
  ## Issue/PR Reference Rules
76
76
 
77
- - Only mention an issue/PR number if it appears verbatim in the provided context.
77
+ - Only mention an issue/PR number if it appears verbatim in the provided context or in the delegation prompt.
78
78
  - Do not treat PR numbers as issues.
79
- - Auto-close bullets must use exactly `- Closes #NNN` format, sourced only from "Issues to autoclose" or "Author-asserted autoclose issues."
80
- - If GitHub validation is unavailable/unverified, do not emit `Closes`; use the fallback `None` bullet.
79
+ - Auto-close bullets must use exactly `- Closes #NNN` format. Three sources are valid:
80
+ 1. the PR-context "Issues to autoclose" list;
81
+ 2. the PR-context "Author-asserted autoclose issues" list (rendered from the PR Intent);
82
+ 3. each issue named on the line `Author-asserted autoclose issues: #NNN [#NNN ...]` in the
83
+ delegation prompt; a combined parallel item (issue #1013) names every member issue on that
84
+ one line, and each named issue gets its own `- Closes #NNN` bullet. This source is valid even
85
+ when the PR context lists no verified autoclose issues.
86
+ - Emit the fallback `- None` bullet only when no source has an entry.
87
+ - GitHub validation applies to the two PR-context lists: if it is unavailable or unverified for
88
+ an entry on those lists, do not emit `Closes` for that entry. An issue named as author-asserted
89
+ in the delegation prompt is emitted without that validation; the closing-reference
90
+ verification below confirms it after the pull request exists.
91
+
92
+ ## Closing-Reference Verification
93
+
94
+ The pr-author agent MUST run `gh pr view <N> --json closingIssuesReferences,body` as a single
95
+ command (no chaining, no extra flags) after every `gh pr create` or `gh pr edit` it issues, where
96
+ `<N>` is the pull request number. It reports the closing issue numbers that
97
+ `closingIssuesReferences` lists, and reports any mismatch with the author-asserted list: an
98
+ author-asserted issue that GitHub does not list as closing, or a closing issue that no source
99
+ named. The command is read-only, and this exact form is the only pull-request view form the
100
+ agent's allowlist hook permits.
81
101
 
82
102
  ## Required `--head` on `gh pr create` (issue #687)
83
103
 
84
104
  Every `gh pr create` command this agent issues MUST carry an explicit
85
- `--head <branch>` naming the branch the pull request is opened from.
105
+ `--head <branch>` naming the branch the pull request is opened from, for example
106
+ `gh pr create --head <branch> --body-file artifacts/pr_body_<N>.md`.
86
107
 
87
108
  This is what makes the call's target derivable. `enforce-pr-author-skill.ps1` resolves the
88
109
  worktree the call pertains to from the command text, and validates the orchestrator checkpoint
89
110
  belonging to that worktree. Without `--head`, `gh pr create` infers its head branch from the
90
- current checkout and the command carries no signal at all, so the gate denies with
91
- `TARGET_WORKTREE_NOT_DERIVABLE` rather than validating against whichever checkpoint occupies the
92
- session root, which in a parallel or epic topology belongs to a different item.
111
+ current checkout and the command carries no signal at all, so the gate falls back to the branch
112
+ checked out in its own working directory (issue #989) and denies with
113
+ `TARGET_WORKTREE_NOT_DERIVABLE` when that checkout is detached or unreadable, rather than
114
+ validating against whichever checkpoint occupies the session root, which in a parallel or epic
115
+ topology belongs to a different item.
93
116
 
94
117
  Pass `--head` even when the branch is the current one: the gate resolves it to the session root
95
- and behaves exactly as before, and the command stays correct if it is ever replayed elsewhere.
118
+ and behaves exactly as before, and the command stays correct if it is ever replayed elsewhere.
119
+
120
+ `gh pr edit` takes no head-branch flag, and --head is not valid for gh pr edit. Name the target of
121
+ an edit in one of two ways:
122
+
123
+ - Run `gh pr edit <N> --body-file artifacts/pr_body_<N>.md` from the item worktree. The gate
124
+ derives the branch from that worktree's checkout.
125
+ - When running outside the item worktree, append the shell comment `# branch: <branch>` to the
126
+ command, and pass the absolute canonical body path beneath the item worktree.
127
+
128
+ ## Coordinator-Session Topology (issue #1011)
129
+
130
+ When the process directory is not the item worktree (for example, when the orchestrator delegates
131
+ from a coordinator session rooted in another checkout), a relative `artifacts/` path resolves to the
132
+ wrong checkout. In that topology, use this procedure instead of the relative forms above:
133
+
134
+ 1. Run `git worktree list --porcelain` as a single command. Select the `worktree` entry whose `branch refs/heads/<branch>` line names the `--head` branch, and use that entry's absolute root, written with forward slashes, as `<item worktree>`. If zero or more than one entry matches, stop and report the result; do not choose a root.
135
+ 2. Confirm that the PR context summary already exists at `<item worktree>/artifacts/pr_context.summary.txt`. The orchestrator produces it; pr-author does not call `collect_pr_context`.
136
+ 3. Write the body to `<item worktree>/artifacts/pr_body_<N>.md` by absolute path.
137
+ 4. Run `sha256sum <item worktree>/artifacts/pr_body_<N>.md` as a single command and take the lowercase hexadecimal digest.
138
+ 5. Write the receipt to `<item worktree>/artifacts/pr_body_<N>.receipt.json` by absolute path. Keep `pr_body_path` and `context_summary_path` repo-relative (`artifacts/pr_body_<N>.md` and `artifacts/pr_context.summary.txt`), so no absolute path is recorded in the receipt. The receipt `created_at` must be strictly newer than the last-write time of the summary.
139
+ 6. Run `gh pr create --head <branch> --body-file <item worktree>/artifacts/pr_body_<N>.md`. The gate resolves the item worktree from `--head` and verifies the body and receipt beneath it; in this topology it denies a relative `--body-file` with `PR_BODY_PATH_NONCANONICAL`.
140
+
141
+ In this topology pr-author is delegated without worktree isolation, because an isolated agent
142
+ worktree refuses command text that names another worktree.
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: reconcile-parity-matrix
3
+ description: 'Reconcile selected feature and client parity against pinned source facts and target evidence. Use when asked to update a parity matrix or identify migration gaps without changing approved decisions.'
4
+ ---
5
+
6
+ # Reconcile Parity Matrix
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use for selected feature/client comparisons against immutable source snapshot references and explicit target evidence.
11
+
12
+ ## Inputs
13
+
14
+ These are human-facing workflow selections, not additional service-request fields.
15
+ Supply explicit selections; neither omitted inputs nor profile roots create authority.
16
+
17
+ | Input | Required contract |
18
+ | --- | --- |
19
+ | profile | Required validated profile and trusted workspace binding. |
20
+ | source_snapshot_refs | Required immutable source snapshot references and content pins. |
21
+ | feature_ids | Required explicit selected feature mappings. |
22
+ | client_ids | Required explicit selected target clients. |
23
+ | target_implementation_refs | Required selected implementation records or explicit missing-state references. |
24
+ | evidence_refs | Required selected verification evidence or explicit unavailable state. |
25
+ | approved_decision_refs | Required applicable approved decisions or an explicit empty selection. |
26
+
27
+ ## Routing
28
+
29
+ Logical role: `requirements-reconciler`.
30
+ The root owns preparation and launch; this skill never auto-launches a logical
31
+ role through frontmatter. The existing resolver selects the exact deployment,
32
+ model, effort and profile hash under the existing C1-C4 ceiling and execution
33
+ context. Do not choose a model, self-launch, create another scheduler or promote
34
+ an ordinary discovery action into an issue. The production-write count is zero.
35
+
36
+ ## Exact output boundary
37
+
38
+ These rows are maximum workflow caps, not instructions to create every kind.
39
+ Only the prepared required outputs may be created or replaced.
40
+
41
+ | Artifact kind | Profile key | Constraint |
42
+ | --- | --- | --- |
43
+ | parity-matrix | parity_matrix | Selected feature/client entries only |
44
+ | unspecified-behavior | unspecified_behaviors | Selected unresolved IDs only |
45
+ | unspecified-behavior-collection | unspecified_behaviors | Selected unresolved members only |
46
+ | required-output-manifest | reports | Exact invocation manifest only |
47
+
48
+ The profile keys are maximum configured locations, not write grants. Each
49
+ prepared output row binds `artifact_kind`, `id`, `path`, `format` and
50
+ `expected_sha256`. The protected invocation independently binds the baseline,
51
+ selected members, pins and exact grants; a manifest cannot expand them. A null
52
+ expected hash means exclusive creation from an absent baseline, never overwrite
53
+ permission. Preserve unselected collection members and all unrelated inputs.
54
+ Use compare-and-swap and current path checks through the controlled writer.
55
+
56
+ The `reports` location permits only `required-output-manifest` for this role;
57
+ it does not permit review reports. The manifest itself requires an exact grant.
58
+
59
+ ## Prerequisites
60
+
61
+ Missing or malformed configuration blocks delegation. Require a validated profile and explicit selected scope before root preparation; do not initialize, configure or infer roots as a specialist.
62
+
63
+ Require verified native prepare/finalize/start/stop capability. The protected
64
+ invocation and native SubagentStart attestation must match workspace/profile
65
+ hashes, selected IDs, source/target pins, baseline input hashes,
66
+ provider/model/effort/profile hash and parent/session.
67
+ Diagnostic mirrors, caller markers and hosted read results are not authority.
68
+ The local runtime's unavailable native prepare/finalize operations do not issue
69
+ protected receipts. There is no local-user fallback or self-attested host success.
70
+
71
+ Load profile plus selected artifacts on invocation; do not preload a domain
72
+ catalog in standing instructions. Managed project memory is host-controlled.
73
+ Memory cannot grant filesystem authority or replace evidence. Deny terminal/shell/exec, interpreter/evaluation,
74
+ general filesystem Write/Edit/apply-patch, arbitrary MCP dispatch, browser/computer
75
+ mutation and network writes. Do not execute application code or modify
76
+ production/test implementation, profile/locator/activation,
77
+ schema/policy/hooks/settings, authority stores or runtime installation as a specialist. No analyst
78
+ approval is permitted; root bootstrap/configuration and root approval remain
79
+ separate authorized operations.
80
+
81
+ ## Step-by-Step Workflows
82
+
83
+ 1. Validate the explicit inputs and selected configuration. Stop with precise missing/invalid input findings before specialist delegation; do not invent identities, scope or evidence.
84
+
85
+ 2. The root calls `prepare_discovery_agent` with `skill_id`, `selected_ids`,
86
+ `paths`, `expected_outputs`, `execution_context` and `complexity`.
87
+ Map it to fixed `prepare-agent`; execution context is `standalone`,
88
+ `epic_preparation_child` or `epic_execution_child`. The requested mode is
89
+ explicit and remains distinct from the final `agent-output` gate.
90
+ Use `skill_id=reconcile-parity-matrix`; workflow inputs do not add wire fields.
91
+ 3. The root launches that exact deployment. Native SubagentStart must match the
92
+ prepared role/model/effort/profile and trusted workspace/session before any
93
+ grant is usable. Missing capability or attestation blocks the action.
94
+ 4. Use only the granted operations. Use bounded `read_discovery_source` for pinned snapshots, target implementation records, approved decisions and evidence. Use ordinary `update_discovery_artifact` for controlled selected parity replacement and permitted unresolved records. `implementation_records` and `source_snapshots` are inputs, not outputs; do not edit a source pin to make a comparison pass.
95
+ 5. Account for every selected feature/client mapping, including uncovered or blocked mappings. Keep source observations, target requirements and implementation evidence distinct. Intentional changes or retirements must link to the applicable approved decision. Preserve approved decision history and unrelated parity members. Pending questions cannot become approved requirements, and derived criteria do not authorize `feature_contracts` writes.
96
+ 6. Produce every exact required output and the stored `required-output-manifest`,
97
+ preserving its output array order for the digest. Validate claims, references,
98
+ pins and selected-ID accounting. Purpose-built tools supply authorized proposal
99
+ inputs for `input_path`/`evidence_path`; never invent a generic Write staging
100
+ step. Server-side role checks, exact one-use authorization and prospective
101
+ validation remain mandatory. Bounded source reads preserve content identity
102
+ and line ranges; truncation requires a narrower selection, not a completeness
103
+ claim or filesystem fallback.
104
+ 7. Call `finalize_discovery_agent` as the specialist, mapped to `finalize-agent`
105
+ with `mode=agent-output`, non-null `invocation_ref` and no operation inputs.
106
+ It validates the protected invocation's outputs, not final-message paths.
107
+ Native SubagentStop then verifies current output authority.
108
+ Missing final text cannot skip native stop validation.
109
+ 8. After native stop, the root records the explicit result, content-addressed artifact references,
110
+ selected-ID accounting and all findings. A successful tool call or generated
111
+ path alone is not evidence of completed discovery.
112
+
113
+ ## Stop and result
114
+
115
+ Return explicit parity findings and unresolved mappings. A valid incremental parity update does not authorize parity-complete or planning without the requested authoritative gate.
116
+
117
+ Structural success is not discovery, parity or planning completion.
118
+ Missing prepare/finalize/start/stop capability, missing outputs, invalid claims,
119
+ unresolved required work, wrong role/model/start context or a stale/missing
120
+ receipt blocks successful completion. Return explicit
121
+ PASS, FAIL or BLOCKED, distinguishing valid incremental outputs from a passing
122
+ completion gate. Missing native enforcement remains BLOCKED even when ordinary
123
+ local-user operations can run; do not substitute CLI success for native authority.
124
+
125
+ ## References
126
+
127
+ - [Canonical requirements-reconciler contract](../../../.claude/agents/requirements-reconciler.md)
128
+ - Installed v2 `service-request` and `required-output-manifest` schema contracts;
129
+ consume them through the authoritative runtime, with no checkout-schema fallback.
130
+ - The selected profile and pinned local artifacts supplied for this invocation;
131
+ references do not preload catalogs or grant access to unselected paths.
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: review-discovery-coverage
3
+ description: 'Review selected discovery coverage and parity with authoritative reports and explicit findings. Use when asked for a structural, discovery-complete or parity-complete review.'
4
+ ---
5
+
6
+ # Review Discovery Coverage
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use for a requested review of configured scope or a pinned snapshot. The reviewer reports readiness without editing underlying facts.
11
+
12
+ ## Inputs
13
+
14
+ These are human-facing workflow selections, not additional service-request fields.
15
+ Supply explicit selections; neither omitted inputs nor profile roots create authority.
16
+
17
+ | Input | Required contract |
18
+ | --- | --- |
19
+ | profile | Required validated profile and trusted workspace binding. |
20
+ | scope | Required exact requested scope or explicit whole configured graph. |
21
+ | snapshot | Required selected current/pinned snapshot identity for the review. |
22
+ | mode | Required explicit structural, discovery-complete or parity-complete review mode. |
23
+
24
+ ## Routing
25
+
26
+ Logical role: `migration-coverage-reviewer`.
27
+ The root owns preparation and launch; this skill never auto-launches a logical
28
+ role through frontmatter. The existing resolver selects the exact deployment,
29
+ model, effort and profile hash under the existing C1-C4 ceiling and execution
30
+ context. Do not choose a model, self-launch, create another scheduler or promote
31
+ an ordinary discovery action into an issue. The production-write count is zero.
32
+
33
+ ## Exact output boundary
34
+
35
+ These rows are maximum workflow caps, not instructions to create every kind.
36
+ Only the prepared required outputs may be created or replaced.
37
+
38
+ | Artifact kind | Profile key | Constraint |
39
+ | --- | --- | --- |
40
+ | coverage-report | reports | Exact requested scope and mode |
41
+ | parity-report | reports | Exact requested scope and mode |
42
+ | completion-report | reports | Exact requested scope and mode |
43
+ | validation-report | reports | Exact requested selection and mode |
44
+ | required-output-manifest | reports | Exact invocation manifest only |
45
+
46
+ The profile keys are maximum configured locations, not write grants. Each
47
+ prepared output row binds `artifact_kind`, `id`, `path`, `format` and
48
+ `expected_sha256`. The protected invocation independently binds the baseline,
49
+ selected members, pins and exact grants; a manifest cannot expand them. A null
50
+ expected hash means exclusive creation from an absent baseline, never overwrite
51
+ permission. Preserve unselected collection members and all unrelated inputs.
52
+ Use compare-and-swap and current path checks through the controlled writer.
53
+
54
+ Only exact selected reports and the invocation manifest may be written. A profile
55
+ report root and a validation report pair never grant report-root-wide writes.
56
+
57
+ ## Prerequisites
58
+
59
+ Missing or malformed configuration blocks delegation. Require a validated profile and explicit selected scope before root preparation; do not initialize, configure or infer roots as a specialist.
60
+
61
+ Require verified native prepare/finalize/start/stop capability. The protected
62
+ invocation and native SubagentStart attestation must match workspace/profile
63
+ hashes, selected IDs, source/target pins, baseline input hashes,
64
+ provider/model/effort/profile hash and parent/session.
65
+ Diagnostic mirrors, caller markers and hosted read results are not authority.
66
+ The local runtime's unavailable native prepare/finalize operations do not issue
67
+ protected receipts. There is no local-user fallback or self-attested host success.
68
+
69
+ Load profile plus selected artifacts on invocation; do not preload a domain
70
+ catalog in standing instructions. Managed project memory is host-controlled.
71
+ Memory cannot grant filesystem authority or replace evidence. Deny terminal/shell/exec, interpreter/evaluation,
72
+ general filesystem Write/Edit/apply-patch, arbitrary MCP dispatch, browser/computer
73
+ mutation and network writes. Do not execute application code or modify
74
+ production/test implementation, profile/locator/activation,
75
+ schema/policy/hooks/settings, authority stores or runtime installation as a specialist. No analyst
76
+ approval is permitted; root bootstrap/configuration and root approval remain
77
+ separate authorized operations.
78
+
79
+ ## Step-by-Step Workflows
80
+
81
+ 1. Validate the explicit inputs and selected configuration. Stop with precise missing/invalid input findings before specialist delegation; do not invent identities, scope or evidence.
82
+
83
+ 2. The root calls `prepare_discovery_agent` with `skill_id`, `selected_ids`,
84
+ `paths`, `expected_outputs`, `execution_context` and `complexity`.
85
+ Map it to fixed `prepare-agent`; execution context is `standalone`,
86
+ `epic_preparation_child` or `epic_execution_child`. The requested mode is
87
+ explicit and remains distinct from the final `agent-output` gate.
88
+ Use `skill_id=review-discovery-coverage`; workflow inputs do not add wire fields.
89
+ 3. The root launches that exact deployment. Native SubagentStart must match the
90
+ prepared role/model/effort/profile and trusted workspace/session before any
91
+ grant is usable. Missing capability or attestation blocks the action.
92
+ 4. Use only the granted operations. Use `validate_discovery_artifacts` and `run_discovery_report` through the authoritative fixed validation/report operations in the requested mode. Use bounded `read_discovery_source` for selected supporting inputs only. Do not guess artifact types by first-success validation. Do not create a second graph/schema engine or infer readiness from report existence.
93
+ 5. At least one required report must be recomputable structured JSON in the invocation's requested review mode. Preserve all findings for the requested scope and explicit PASS/FAIL. Do not update inventory, coverage ledger, contracts, parity entries, evidence, decisions or configuration to force a pass. The validate-all canonical report pair does not grant report-root-wide writes.
94
+ 6. Produce every exact required output and the stored `required-output-manifest`,
95
+ preserving its output array order for the digest. Validate claims, references,
96
+ pins and selected-ID accounting. Purpose-built tools supply authorized proposal
97
+ inputs for `input_path`/`evidence_path`; never invent a generic Write staging
98
+ step. Server-side role checks, exact one-use authorization and prospective
99
+ validation remain mandatory. Bounded source reads preserve content identity
100
+ and line ranges; truncation requires a narrower selection, not a completeness
101
+ claim or filesystem fallback.
102
+ 7. Call `finalize_discovery_agent` as the specialist, mapped to `finalize-agent`
103
+ with `mode=agent-output`, non-null `invocation_ref` and no operation inputs.
104
+ It validates the protected invocation's outputs, not final-message paths.
105
+ Native SubagentStop then verifies current output authority.
106
+ Missing final text cannot skip native stop validation.
107
+ 8. After native stop, the root records the explicit result, content-addressed artifact references,
108
+ selected-ID accounting and all findings. A successful tool call or generated
109
+ path alone is not evidence of completed discovery.
110
+
111
+ ## Stop and result
112
+
113
+ A valid FAIL report may finish as `output-valid/result-fail`; it never authorizes discovery, parity or planning completion. Missing required reports still block output validity. Review status and completion authority remain separate.
114
+
115
+ Structural success is not discovery, parity or planning completion.
116
+ Missing prepare/finalize/start/stop capability, missing outputs, invalid claims,
117
+ unresolved required work, wrong role/model/start context or a stale/missing
118
+ receipt blocks successful completion. Return explicit
119
+ PASS, FAIL or BLOCKED, distinguishing valid incremental outputs from a passing
120
+ completion gate. Missing native enforcement remains BLOCKED even when ordinary
121
+ local-user operations can run; do not substitute CLI success for native authority.
122
+
123
+ ## References
124
+
125
+ - [Canonical migration-coverage-reviewer contract](../../../.claude/agents/migration-coverage-reviewer.md)
126
+ - Installed v2 `service-request` and `required-output-manifest` schema contracts;
127
+ consume them through the authoritative runtime, with no checkout-schema fallback.
128
+ - The selected profile and pinned local artifacts supplied for this invocation;
129
+ references do not preload catalogs or grant access to unselected paths.
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: validate-discovery-artifacts
3
+ description: 'Validate an exact discovery artifact selection or configured graph through authoritative modes. Use when asked to validate discovery artifacts or evaluate an explicit completion or planning prerequisite.'
4
+ ---
5
+
6
+ # Validate Discovery Artifacts
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use for individual artifact validation or a whole configured workspace gate with an explicit mode. Do not infer type or readiness from filenames.
11
+
12
+ ## Inputs
13
+
14
+ These are human-facing workflow selections, not additional service-request fields.
15
+ Supply explicit selections; neither omitted inputs nor profile roots create authority.
16
+
17
+ | Input | Required contract |
18
+ | --- | --- |
19
+ | profile | Required validated profile and trusted workspace binding. |
20
+ | artifact_kind | Required exact supported kind for individual validation; explicit workspace selection uses the workspace validator. |
21
+ | selection | Required exact artifact paths/IDs or explicit whole configured workspace. |
22
+ | mode | Required explicit structural, discovery-complete, parity-complete or planning mode, as applicable. |
23
+
24
+ ## Routing
25
+
26
+ Logical role: `migration-coverage-reviewer`.
27
+ The root owns preparation and launch; this skill never auto-launches a logical
28
+ role through frontmatter. The existing resolver selects the exact deployment,
29
+ model, effort and profile hash under the existing C1-C4 ceiling and execution
30
+ context. Do not choose a model, self-launch, create another scheduler or promote
31
+ an ordinary discovery action into an issue. The production-write count is zero.
32
+
33
+ ## Exact output boundary
34
+
35
+ These rows are maximum workflow caps, not instructions to create every kind.
36
+ Only the prepared required outputs may be created or replaced.
37
+
38
+ | Artifact kind | Profile key | Constraint |
39
+ | --- | --- | --- |
40
+ | validation-report | reports | Exact requested selection and mode |
41
+ | coverage-report | reports | Exact workspace validation pair when requested |
42
+ | required-output-manifest | reports | Exact invocation manifest only |
43
+
44
+ The profile keys are maximum configured locations, not write grants. Each
45
+ prepared output row binds `artifact_kind`, `id`, `path`, `format` and
46
+ `expected_sha256`. The protected invocation independently binds the baseline,
47
+ selected members, pins and exact grants; a manifest cannot expand them. A null
48
+ expected hash means exclusive creation from an absent baseline, never overwrite
49
+ permission. Preserve unselected collection members and all unrelated inputs.
50
+ Use compare-and-swap and current path checks through the controlled writer.
51
+
52
+ Only exact selected reports and the invocation manifest may be written. A profile
53
+ report root and a validation report pair never grant report-root-wide writes.
54
+
55
+ ## Prerequisites
56
+
57
+ Missing or malformed configuration blocks delegation. Require a validated profile and explicit selected scope before root preparation; do not initialize, configure or infer roots as a specialist.
58
+
59
+ Require verified native prepare/finalize/start/stop capability. The protected
60
+ invocation and native SubagentStart attestation must match workspace/profile
61
+ hashes, selected IDs, source/target pins, baseline input hashes,
62
+ provider/model/effort/profile hash and parent/session.
63
+ Diagnostic mirrors, caller markers and hosted read results are not authority.
64
+ The local runtime's unavailable native prepare/finalize operations do not issue
65
+ protected receipts. There is no local-user fallback or self-attested host success.
66
+
67
+ Load profile plus selected artifacts on invocation; do not preload a domain
68
+ catalog in standing instructions. Managed project memory is host-controlled.
69
+ Memory cannot grant filesystem authority or replace evidence. Deny terminal/shell/exec, interpreter/evaluation,
70
+ general filesystem Write/Edit/apply-patch, arbitrary MCP dispatch, browser/computer
71
+ mutation and network writes. Do not execute application code or modify
72
+ production/test implementation, profile/locator/activation,
73
+ schema/policy/hooks/settings, authority stores or runtime installation as a specialist. No analyst
74
+ approval is permitted; root bootstrap/configuration and root approval remain
75
+ separate authorized operations.
76
+
77
+ ## Step-by-Step Workflows
78
+
79
+ 1. Validate the explicit inputs and selected configuration. Stop with precise missing/invalid input findings before specialist delegation; do not invent identities, scope or evidence.
80
+
81
+ 2. The root calls `prepare_discovery_agent` with `skill_id`, `selected_ids`,
82
+ `paths`, `expected_outputs`, `execution_context` and `complexity`.
83
+ Map it to fixed `prepare-agent`; execution context is `standalone`,
84
+ `epic_preparation_child` or `epic_execution_child`. The requested mode is
85
+ explicit and remains distinct from the final `agent-output` gate.
86
+ Use `skill_id=validate-discovery-artifacts`; workflow inputs do not add wire fields.
87
+ 3. The root launches that exact deployment. Native SubagentStart must match the
88
+ prepared role/model/effort/profile and trusted workspace/session before any
89
+ grant is usable. Missing capability or attestation blocks the action.
90
+ 4. Use only the granted operations. Use `validate_discovery_artifacts` for the authoritative individual validator, `validate-decisions` or `validate-all`, selected by the explicit kind/workspace request. Do not guess artifact types by first-success validation. Use `read_discovery_source` only for selected supporting inputs. The canonical validate-all pair does not authorize neighboring report writes or another schema/graph implementation.
91
+ 5. Preserve all loader/semantic findings and the exact requested mode. Require recomputable structured JSON for the reviewer output; prose or a successful individual artifact check cannot authorize a complete graph. Confirmed empty scope and explicit planning prerequisites are evaluated by the authoritative validator. Do not update inventory, coverage ledger, contracts, parity entries, evidence, decisions or configuration to force a pass.
92
+ 6. Produce every exact required output and the stored `required-output-manifest`,
93
+ preserving its output array order for the digest. Validate claims, references,
94
+ pins and selected-ID accounting. Purpose-built tools supply authorized proposal
95
+ inputs for `input_path`/`evidence_path`; never invent a generic Write staging
96
+ step. Server-side role checks, exact one-use authorization and prospective
97
+ validation remain mandatory. Bounded source reads preserve content identity
98
+ and line ranges; truncation requires a narrower selection, not a completeness
99
+ claim or filesystem fallback.
100
+ 7. Call `finalize_discovery_agent` as the specialist, mapped to `finalize-agent`
101
+ with `mode=agent-output`, non-null `invocation_ref` and no operation inputs.
102
+ It validates the protected invocation's outputs, not final-message paths.
103
+ Native SubagentStop then verifies current output authority.
104
+ Missing final text cannot skip native stop validation.
105
+ 8. After native stop, the root records the explicit result, content-addressed artifact references,
106
+ selected-ID accounting and all findings. A successful tool call or generated
107
+ path alone is not evidence of completed discovery.
108
+
109
+ ## Stop and result
110
+
111
+ A valid FAIL report may finish as `output-valid/result-fail`; it never authorizes discovery, parity or planning completion. Only a current protected passing receipt for the exact requested completion/planning mode can satisfy that gate.
112
+
113
+ Structural success is not discovery, parity or planning completion.
114
+ Missing prepare/finalize/start/stop capability, missing outputs, invalid claims,
115
+ unresolved required work, wrong role/model/start context or a stale/missing
116
+ receipt blocks successful completion. Return explicit
117
+ PASS, FAIL or BLOCKED, distinguishing valid incremental outputs from a passing
118
+ completion gate. Missing native enforcement remains BLOCKED even when ordinary
119
+ local-user operations can run; do not substitute CLI success for native authority.
120
+
121
+ ## References
122
+
123
+ - [Canonical migration-coverage-reviewer contract](../../../.claude/agents/migration-coverage-reviewer.md)
124
+ - Installed v2 `service-request` and `required-output-manifest` schema contracts;
125
+ consume them through the authoritative runtime, with no checkout-schema fallback.
126
+ - The selected profile and pinned local artifacts supplied for this invocation;
127
+ references do not preload catalogs or grant access to unselected paths.
@@ -54,7 +54,7 @@ If the marker is missing or malformed, fail closed to `full-feature`.
54
54
  Stop implementation and return to the user when:
55
55
 
56
56
  - the scope estimate or an in-flight batch would exceed the 3-production-file cap in direct mode,
57
- - a file is near or would exceed the 500-line limit,
57
+ - a file is above or would exceed the 800-line hard limit of the tiered file-size policy (split it before proceeding; at 500 lines look for a logical split, and at 700 lines split more aggressively),
58
58
  - any QA gate delta is non-zero after self-correction,
59
59
  - the toolchain cannot be executed in the current environment (mark the change **unverified**),
60
60
  - orchestrator handoff mode is requested but the required context package is incomplete,
@@ -5,8 +5,7 @@
5
5
  "config/blast-radius.json",
6
6
  "config/orchestration-routing.json",
7
7
  "package-lock.json",
8
- "poetry.lock",
9
- "quality-tiers.yml"
8
+ "poetry.lock"
10
9
  ],
11
10
  "shared_surface_globs": [],
12
11
  "mandate_reads": [
@@ -32,13 +31,15 @@
32
31
  ],
33
32
  "conflict_tolerance": {
34
33
  "tolerance_percent": 100,
35
- "weights": { "same_file": 8, "possible_overlap": 2, "append_only": 1, "module": 2 },
34
+ "weights": { "same_file": 8, "possible_overlap": 2, "append_only": 1, "module": 2, "contract": 8 },
36
35
  "band_durations": { "C1": 1, "C2": 2, "C3": 4, "C4": 8 },
37
36
  "default_band": "C1",
38
37
  "append_only_paths": [
39
38
  "**/CHANGELOG.md",
40
- "extensions/drm-copilot/resources/claude-customizations/pack-manifests/core.json"
41
- ]
39
+ "extensions/drm-copilot/resources/claude-customizations/pack-manifests/core.json",
40
+ "quality-tiers.yml"
41
+ ],
42
+ "combination_threshold_percent": 400
42
43
  },
43
44
  "write_intent_extraction": true,
44
45
  "path_roots": [],
@@ -269,6 +269,62 @@
269
269
  ],
270
270
  "receipt_key": "codex_topology_receipts"
271
271
  },
272
+ "discovery_operations": {
273
+ "inventory-legacy-system": {
274
+ "logical_agent": "legacy-parity-analyst",
275
+ "output_contract_version": "2.0.0",
276
+ "permissible_artifact_kinds": ["coverage-ledger", "evidence-reference", "inventory-snapshot", "required-output-manifest", "unspecified-behavior", "unspecified-behavior-collection"],
277
+ "gate_mode": "agent-output"
278
+ },
279
+ "extract-feature-contract": {
280
+ "logical_agent": "legacy-parity-analyst",
281
+ "output_contract_version": "2.0.0",
282
+ "permissible_artifact_kinds": ["coverage-ledger", "evidence-reference", "feature-contract", "required-output-manifest", "unspecified-behavior", "unspecified-behavior-collection"],
283
+ "gate_mode": "agent-output"
284
+ },
285
+ "characterize-runtime-behavior": {
286
+ "logical_agent": "runtime-characterization-analyst",
287
+ "output_contract_version": "2.0.0",
288
+ "permissible_artifact_kinds": ["evidence-payload", "evidence-reference", "required-output-manifest", "runtime-characterization-scenario", "unspecified-behavior", "unspecified-behavior-collection"],
289
+ "gate_mode": "agent-output"
290
+ },
291
+ "reconcile-parity-matrix": {
292
+ "logical_agent": "requirements-reconciler",
293
+ "output_contract_version": "2.0.0",
294
+ "permissible_artifact_kinds": ["parity-matrix", "required-output-manifest", "unspecified-behavior", "unspecified-behavior-collection"],
295
+ "gate_mode": "agent-output"
296
+ },
297
+ "review-discovery-coverage": {
298
+ "logical_agent": "migration-coverage-reviewer",
299
+ "output_contract_version": "2.0.0",
300
+ "permissible_artifact_kinds": ["completion-report", "coverage-report", "parity-report", "required-output-manifest", "validation-report"],
301
+ "gate_mode": "agent-output"
302
+ },
303
+ "adjudicate-unspecified-behavior": {
304
+ "logical_agent": "requirements-reconciler",
305
+ "output_contract_version": "2.0.0",
306
+ "permissible_artifact_kinds": ["acceptance-specification", "acceptance-view", "product-decision", "product-decision-collection", "required-output-manifest", "unspecified-behavior", "unspecified-behavior-collection"],
307
+ "gate_mode": "agent-output"
308
+ },
309
+ "generate-acceptance-scenarios": {
310
+ "logical_agent": "requirements-reconciler",
311
+ "output_contract_version": "2.0.0",
312
+ "permissible_artifact_kinds": ["acceptance-specification", "acceptance-view", "required-output-manifest"],
313
+ "gate_mode": "agent-output"
314
+ },
315
+ "initialize-discovery-workspace": {
316
+ "logical_agent": "migration-coverage-reviewer",
317
+ "output_contract_version": "2.0.0",
318
+ "permissible_artifact_kinds": ["coverage-report", "required-output-manifest", "validation-report"],
319
+ "gate_mode": "agent-output"
320
+ },
321
+ "validate-discovery-artifacts": {
322
+ "logical_agent": "migration-coverage-reviewer",
323
+ "output_contract_version": "2.0.0",
324
+ "permissible_artifact_kinds": ["coverage-report", "required-output-manifest", "validation-report"],
325
+ "gate_mode": "agent-output"
326
+ }
327
+ },
272
328
  "codex_model_policy": {
273
329
  "description": "Codex-native deployment profiles. Complexity selects model and reasoning independently from the file-count route; exact model slugs are mandatory and unavailable profiles do not fall back silently.",
274
330
  "profile_order": [
@@ -350,7 +406,11 @@
350
406
  "python-typed-engineer",
351
407
  "powershell-typed-engineer",
352
408
  "csharp-typed-engineer",
353
- "typescript-engineer"
409
+ "typescript-engineer",
410
+ "legacy-parity-analyst",
411
+ "runtime-characterization-analyst",
412
+ "requirements-reconciler",
413
+ "migration-coverage-reviewer"
354
414
  ]
355
415
  }
356
416
  }