@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
@@ -0,0 +1,161 @@
1
+ <#
2
+ .SYNOPSIS
3
+ Constrain direct discovery routing to the fixed operation contracts.
4
+ .DESCRIPTION
5
+ Pure companion to CodexTopology. Constants mirror discovery_operations in
6
+ config/orchestration-routing.json so published consumers need no config or
7
+ interpreter. Receipts describe a specialist and allowed output kinds; they
8
+ grant no writes, approvals, installation rights, or native tool authority.
9
+ CONVENTION: this module fails fast at module scope and imports its siblings with -ErrorAction Stop.
10
+ #>
11
+ Set-StrictMode -Version Latest
12
+ $ErrorActionPreference = 'Stop'
13
+
14
+ # Keep each exact operation independent: sharing a role never broadens its kinds.
15
+ $script:DISCOVERY_OPERATIONS = @{
16
+ 'inventory-legacy-system' = @{
17
+ role = 'legacy-parity-analyst'
18
+ kinds = @('coverage-ledger', 'evidence-reference', 'inventory-snapshot',
19
+ 'required-output-manifest', 'unspecified-behavior', 'unspecified-behavior-collection')
20
+ }
21
+ 'extract-feature-contract' = @{
22
+ role = 'legacy-parity-analyst'
23
+ kinds = @('coverage-ledger', 'evidence-reference', 'feature-contract',
24
+ 'required-output-manifest', 'unspecified-behavior', 'unspecified-behavior-collection')
25
+ }
26
+ 'characterize-runtime-behavior' = @{
27
+ role = 'runtime-characterization-analyst'
28
+ kinds = @('evidence-payload', 'evidence-reference', 'required-output-manifest',
29
+ 'runtime-characterization-scenario', 'unspecified-behavior', 'unspecified-behavior-collection')
30
+ }
31
+ 'reconcile-parity-matrix' = @{
32
+ role = 'requirements-reconciler'
33
+ kinds = @('parity-matrix', 'required-output-manifest',
34
+ 'unspecified-behavior', 'unspecified-behavior-collection')
35
+ }
36
+ 'review-discovery-coverage' = @{
37
+ role = 'migration-coverage-reviewer'
38
+ kinds = @('completion-report', 'coverage-report', 'parity-report',
39
+ 'required-output-manifest', 'validation-report')
40
+ }
41
+ 'adjudicate-unspecified-behavior' = @{
42
+ role = 'requirements-reconciler'
43
+ kinds = @('acceptance-specification', 'acceptance-view', 'product-decision',
44
+ 'product-decision-collection', 'required-output-manifest',
45
+ 'unspecified-behavior', 'unspecified-behavior-collection')
46
+ }
47
+ 'generate-acceptance-scenarios' = @{
48
+ role = 'requirements-reconciler'
49
+ kinds = @('acceptance-specification', 'acceptance-view', 'required-output-manifest')
50
+ }
51
+ 'initialize-discovery-workspace' = @{
52
+ role = 'migration-coverage-reviewer'
53
+ kinds = @('coverage-report', 'required-output-manifest', 'validation-report')
54
+ }
55
+ 'validate-discovery-artifacts' = @{
56
+ role = 'migration-coverage-reviewer'
57
+ kinds = @('coverage-report', 'required-output-manifest', 'validation-report')
58
+ }
59
+ }
60
+
61
+ function Resolve-CodexDiscoveryTopology {
62
+ <#
63
+ .SYNOPSIS
64
+ Select a fixed discovery role or allow the unchanged ordinary route.
65
+ .DESCRIPTION
66
+ Called after topology validates context, languages, counts and boolean
67
+ type. Validates selectors without coercion, rejects nonzero code/test
68
+ scope and root overrides, then returns a new seventeen-key receipt.
69
+ Ordinary requests with no skill return null. Invalid selectors or
70
+ combinations throw ArgumentException in the shared contract order.
71
+ No I/O or native authority is created; returned arrays are fresh copies.
72
+ .PARAMETER InvocationKind
73
+ Exact ordinary or discovery string; all other values are rejected.
74
+ .PARAMETER SkillId
75
+ Exact canonical skill string for discovery, null for ordinary requests.
76
+ .PARAMETER Context
77
+ Execution context already validated by the topology resolver; retained
78
+ unchanged. Named Context because ExecutionContext is a readonly
79
+ automatic variable.
80
+ .PARAMETER Language
81
+ Already normalized languages. Discovery requires an empty collection.
82
+ .PARAMETER ProductionFileCount
83
+ Already validated integer count. Discovery requires zero.
84
+ .PARAMETER TestFileCount
85
+ Already validated integer count. Discovery requires zero.
86
+ .PARAMETER CrossCutting
87
+ Already validated boolean. Discovery requires false.
88
+ .PARAMETER RootPersona
89
+ Raw optional root override. Discovery requires null.
90
+ .OUTPUTS
91
+ System.Collections.Hashtable for discovery, or null for ordinary routing.
92
+ #>
93
+ [CmdletBinding()]
94
+ [OutputType([hashtable])]
95
+ param(
96
+ [Parameter(Mandatory)][AllowNull()][object] $InvocationKind,
97
+ [Parameter(Mandatory)][AllowNull()][object] $SkillId,
98
+ [Parameter(Mandatory)][string] $Context,
99
+ [Parameter(Mandatory)][AllowEmptyCollection()][string[]] $Language,
100
+ [Parameter(Mandatory)][int] $ProductionFileCount,
101
+ [Parameter(Mandatory)][int] $TestFileCount,
102
+ [Parameter(Mandatory)][bool] $CrossCutting,
103
+ [Parameter(Mandatory)][AllowNull()][object] $RootPersona
104
+ )
105
+
106
+ # Object selectors retain their actual types; case-insensitive coercion
107
+ # would otherwise admit unsupported operations at this authority boundary.
108
+ if ($InvocationKind -isnot [string] -or @('ordinary', 'discovery') -cnotcontains $InvocationKind) {
109
+ throw [System.ArgumentException]::new('invocation_kind must be ordinary or discovery.')
110
+ }
111
+ if ($InvocationKind -ceq 'ordinary') {
112
+ if ($null -ne $SkillId) {
113
+ throw [System.ArgumentException]::new('skill_id is only valid for discovery invocations.')
114
+ }
115
+ return $null
116
+ }
117
+
118
+ # Reject discovery scope before looking up a role, preserving guard order
119
+ # even when several fields are malformed in the same invocation.
120
+ if ($null -ne $RootPersona) {
121
+ throw [System.ArgumentException]::new('Discovery invocations do not accept root_persona.')
122
+ }
123
+ if ($ProductionFileCount -ne 0) {
124
+ throw [System.ArgumentException]::new('Discovery invocations require production_file_count=0.')
125
+ }
126
+ if ($TestFileCount -ne 0) {
127
+ throw [System.ArgumentException]::new('Discovery invocations require test_file_count=0.')
128
+ }
129
+ if ($Language.Count -ne 0) {
130
+ throw [System.ArgumentException]::new('Discovery invocations do not accept languages.')
131
+ }
132
+ if ($CrossCutting) {
133
+ throw [System.ArgumentException]::new('Discovery invocations do not accept cross_cutting.')
134
+ }
135
+ if ($SkillId -isnot [string] -or $script:DISCOVERY_OPERATIONS.Keys -cnotcontains $SkillId) {
136
+ throw [System.ArgumentException]::new('Discovery invocations require a supported skill_id.')
137
+ }
138
+
139
+ $operation = $script:DISCOVERY_OPERATIONS[$SkillId]
140
+ return @{
141
+ execution_context = $Context
142
+ languages = [string[]]@()
143
+ production_file_count = 0
144
+ test_file_count = 0
145
+ cross_cutting = $false
146
+ root_persona = $null
147
+ route = 'discovery'
148
+ topology = 'discovery_specialist'
149
+ logical_agent = $operation.role
150
+ routing_reason = 'fixed_discovery_operation'
151
+ max_production_files = 0
152
+ max_test_files = 0
153
+ invocation_kind = 'discovery'
154
+ skill_id = $SkillId
155
+ output_contract_version = '2.0.0'
156
+ permissible_artifact_kinds = [string[]]@($operation.kinds)
157
+ gate_mode = 'agent-output'
158
+ }
159
+ }
160
+
161
+ Export-ModuleMember -Function Resolve-CodexDiscoveryTopology
@@ -53,6 +53,8 @@
53
53
  Set-StrictMode -Version Latest
54
54
  $ErrorActionPreference = 'Stop'
55
55
 
56
+ Import-Module (Join-Path $PSScriptRoot 'CodexDiscoveryRouting.psm1') -ErrorAction Stop
57
+
56
58
  # The three permitted execution contexts, the sorted tuple rendering the Python
57
59
  # message interpolates, and the two contexts that mark epic child work.
58
60
  $script:VALID_EXECUTION_CONTEXTS = @('standalone', 'epic_preparation_child', 'epic_execution_child')
@@ -249,11 +251,17 @@ function Resolve-CodexTopology {
249
251
  Whether the change is cross-cutting. Must be a boolean.
250
252
  .PARAMETER RootPersona
251
253
  An optional forced root persona, which requires a standalone context.
254
+ .PARAMETER InvocationKind
255
+ Exact ordinary or discovery selector. Defaults to ordinary routing.
256
+ .PARAMETER SkillId
257
+ Exact canonical discovery operation. Must be absent for ordinary routing.
252
258
  .OUTPUTS
253
259
  System.Collections.Hashtable with the twelve resolved keys:
254
260
  execution_context, languages, production_file_count, test_file_count,
255
261
  cross_cutting, root_persona, route, topology, logical_agent,
256
- routing_reason, max_production_files, max_test_files.
262
+ routing_reason, max_production_files, max_test_files. Discovery adds
263
+ invocation_kind, skill_id, output_contract_version,
264
+ permissible_artifact_kinds, and gate_mode; it grants no write authority.
257
265
  #>
258
266
  [CmdletBinding()]
259
267
  [OutputType([hashtable])]
@@ -281,7 +289,15 @@ function Resolve-CodexTopology {
281
289
 
282
290
  [Parameter(Mandatory = $false)]
283
291
  [AllowNull()]
284
- [object] $RootPersona = $null
292
+ [object] $RootPersona = $null,
293
+
294
+ [Parameter(Mandatory = $false)]
295
+ [AllowNull()]
296
+ [object] $InvocationKind = 'ordinary',
297
+
298
+ [Parameter(Mandatory = $false)]
299
+ [AllowNull()]
300
+ [object] $SkillId = $null
285
301
  )
286
302
 
287
303
  if ($script:VALID_EXECUTION_CONTEXTS -cnotcontains $ExecutionContext) {
@@ -307,6 +323,13 @@ function Resolve-CodexTopology {
307
323
  $testCount = [int]$TestFileCount
308
324
  $isCrossCutting = [bool]$CrossCutting
309
325
 
326
+ # Discovery validates its closed selector before ordinary root/epic/count
327
+ # dispatch. A fixed specialist receipt conveys routing, never tool grants.
328
+ $discovery = Resolve-CodexDiscoveryTopology -InvocationKind $InvocationKind -SkillId $SkillId `
329
+ -Context $context -Language $languages -ProductionFileCount $productionCount `
330
+ -TestFileCount $testCount -CrossCutting $isCrossCutting -RootPersona $RootPersona
331
+ if ($null -ne $discovery) { return $discovery }
332
+
310
333
  # A forced root persona short-circuits all escalation logic and selects
311
334
  # itself, but only from a standalone context.
312
335
  if ($null -ne $RootPersona) {
@@ -0,0 +1,90 @@
1
+ @{
2
+ # Module manifest for the shared native discovery authority primitives (issue #980).
3
+ # Importing this manifest loads the authority, manifest and payload modules together
4
+ # so a hook can take every narrow primitive from one import.
5
+ RootModule = 'DiscoveryAuthority.psm1'
6
+ ModuleVersion = '2.0.0'
7
+ GUID = '5d0b8e5e-3b7f-4a2a-9f8e-2f9f0b9a7c11'
8
+ Author = 'drm-copilot'
9
+ CompanyName = 'drm-copilot'
10
+ Copyright = '(c) drm-copilot. All rights reserved.'
11
+ Description = 'Protected discovery authority location, activation decoding, input-manifest freshness and host envelope normalization for native discovery hooks.'
12
+ PowerShellVersion = '7.0'
13
+ NestedModules = @('DiscoveryEncoding.psm1', 'DiscoveryManifest.psm1', 'DiscoveryPayload.psm1', 'DiscoveryAuthorization.psm1', 'DiscoveryStartRecord.psm1', 'DiscoveryStart.psm1', 'DiscoveryStop.psm1', 'DiscoveryPlanning.psm1', 'DiscoveryCapability.psm1')
14
+ FunctionsToExport = @(
15
+ 'Get-DiscoverySha256Hex',
16
+ 'Get-DiscoveryBytesSha256Hex',
17
+ 'ConvertTo-DiscoveryCanonicalJson',
18
+ 'Invoke-DiscoveryStoreSeam',
19
+ 'Resolve-DiscoveryAuthorityLocation',
20
+ 'Get-DiscoveryTrustedHostEnvironment',
21
+ 'Get-DiscoveryPartitionName',
22
+ 'Get-DiscoverySessionDirectory',
23
+ 'Get-DiscoveryInvocationDirectory',
24
+ 'Get-DiscoveryActivationRecordPath',
25
+ 'Test-DiscoveryProtectedPath',
26
+ 'Test-DiscoveryRelativePath',
27
+ 'ConvertFrom-DiscoveryActivationRecord',
28
+ 'Read-DiscoveryActivationState',
29
+ 'ConvertFrom-DiscoveryInputManifest',
30
+ 'Get-DiscoveryInputManifestDigest',
31
+ 'Get-DiscoveryWorkspacePath',
32
+ 'Compare-DiscoveryInputManifest',
33
+ 'Assert-DiscoveryInputsFresh',
34
+ 'Test-DiscoverySupportedHost',
35
+ 'ConvertFrom-DiscoveryHostEnvelope',
36
+ 'ConvertFrom-DiscoveryHostPayloadText',
37
+ 'Get-DiscoveryTrustedPrincipal',
38
+ 'Get-DiscoveryHostEnvironmentValueTable',
39
+ 'Get-DiscoveryPayloadAnomalyReason',
40
+ 'Resolve-DiscoveryToolName',
41
+ 'Get-DiscoveryToolOperation',
42
+ 'Get-DiscoveryInputDigest',
43
+ 'Find-DiscoveryAgentInvocation',
44
+ 'ConvertTo-DiscoveryToolAuthorizationRecord',
45
+ 'Get-DiscoveryDefaultStore',
46
+ 'Get-DiscoveryAuthorizationNonce',
47
+ 'Get-DiscoveryPreToolDecision',
48
+ 'ConvertTo-DiscoveryPreToolHookOutput',
49
+ 'Get-DiscoveryAgentRole',
50
+ 'Get-DiscoveryAgentProfilePath',
51
+ 'ConvertFrom-DiscoveryMarkdownProfile',
52
+ 'Read-DiscoveryAgentProfile',
53
+ 'ConvertTo-DiscoveryUtcInstant',
54
+ 'ConvertTo-DiscoveryStartedInvocationText',
55
+ 'ConvertTo-DiscoveryStartAttestationRecord',
56
+ 'Get-DiscoveryStartStore',
57
+ 'Get-DiscoveryStartAttestationFileName',
58
+ 'Find-DiscoveryPreparedInvocation',
59
+ 'Get-DiscoveryDeploymentMismatch',
60
+ 'Get-DiscoveryCapabilityMismatch',
61
+ 'Get-DiscoveryStartDecision',
62
+ 'Get-DiscoveryAuthorizationNonceText',
63
+ 'ConvertTo-DiscoveryStartHookOutput',
64
+ 'Find-DiscoveryAgentInvocationForStop',
65
+ 'Get-DiscoveryReceiptMismatch',
66
+ 'Get-DiscoveryStopDecision',
67
+ 'Get-DiscoveryStopVerdict',
68
+ 'Get-DiscoveryPlanningTarget',
69
+ 'Get-DiscoveryPlanningPrerequisite',
70
+ 'Get-DiscoveryPlanningReceiptMismatch',
71
+ 'Get-DiscoveryPlanningDecision',
72
+ 'ConvertTo-DiscoveryPlanningHookOutput',
73
+ 'Get-DiscoverySentinelRequest',
74
+ 'Get-DiscoverySentinelEnvelope',
75
+ 'Get-DiscoverySessionObservation',
76
+ 'Get-DiscoveryObservationEvidence',
77
+ 'Get-DiscoveryHostRegistration',
78
+ 'Test-DiscoveryHandlerRegistered',
79
+ 'Get-DiscoveryCapabilityObservation',
80
+ 'Write-DiscoveryCapabilityAttestation'
81
+ )
82
+ CmdletsToExport = @()
83
+ VariablesToExport = @()
84
+ AliasesToExport = @()
85
+ PrivateData = @{
86
+ PSData = @{
87
+ Tags = @('drm-copilot', 'discovery', 'hooks')
88
+ }
89
+ }
90
+ }