@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,134 @@
1
+ ---
2
+ name: characterize-runtime-behavior
3
+ description: 'Describe selected runtime scenarios from supplied captures or honest manual plans. Use when asked to characterize legacy behavior, record runtime evidence or prepare not-run and blocked scenarios.'
4
+ ---
5
+
6
+ # Characterize Runtime Behavior
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use for explicit runtime scenarios with supplied environment and capability information. The specialist documents observations or manual plans; it does not execute applications.
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
+ | feature_ids | Required selected features and relevant contracts. |
21
+ | environment | Required recorded environment identity or explicit unavailable state. |
22
+ | fixtures | Required supplied fixture references or explicit absent/manual requirements. |
23
+ | preconditions | Required stated scenario preconditions; unknown facts remain unresolved. |
24
+ | actions | Required ordered manual actions or supplied action descriptions. |
25
+ | capability_mode | Required declared runtime capability and whether observations are supplied, manual, unavailable or blocked. |
26
+ | supplied_captures | Optional supplied captures and provenance; absence cannot become a passed result. |
27
+
28
+ ## Routing
29
+
30
+ Logical role: `runtime-characterization-analyst`.
31
+ The root owns preparation and launch; this skill never auto-launches a logical
32
+ role through frontmatter. The existing resolver selects the exact deployment,
33
+ model, effort and profile hash under the existing C1-C4 ceiling and execution
34
+ context. Do not choose a model, self-launch, create another scheduler or promote
35
+ an ordinary discovery action into an issue. The production-write count is zero.
36
+
37
+ ## Exact output boundary
38
+
39
+ These rows are maximum workflow caps, not instructions to create every kind.
40
+ Only the prepared required outputs may be created or replaced.
41
+
42
+ | Artifact kind | Profile key | Constraint |
43
+ | --- | --- | --- |
44
+ | runtime-characterization-scenario | characterization | Selected feature/scenario IDs only |
45
+ | evidence-reference | evidence | Explicitly supplied and granted evidence only |
46
+ | evidence-payload | evidence | Explicitly supplied and granted payloads only |
47
+ | unspecified-behavior | unspecified_behaviors | Selected unresolved IDs only |
48
+ | unspecified-behavior-collection | unspecified_behaviors | Selected unresolved members only |
49
+ | required-output-manifest | reports | Exact invocation manifest only |
50
+
51
+ The profile keys are maximum configured locations, not write grants. Each
52
+ prepared output row binds `artifact_kind`, `id`, `path`, `format` and
53
+ `expected_sha256`. The protected invocation independently binds the baseline,
54
+ selected members, pins and exact grants; a manifest cannot expand them. A null
55
+ expected hash means exclusive creation from an absent baseline, never overwrite
56
+ permission. Preserve unselected collection members and all unrelated inputs.
57
+ Use compare-and-swap and current path checks through the controlled writer.
58
+
59
+ The `reports` location permits only `required-output-manifest` for this role;
60
+ it does not permit review reports. The manifest itself requires an exact grant.
61
+
62
+ ## Prerequisites
63
+
64
+ 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.
65
+
66
+ Require verified native prepare/finalize/start/stop capability. The protected
67
+ invocation and native SubagentStart attestation must match workspace/profile
68
+ hashes, selected IDs, source/target pins, baseline input hashes,
69
+ provider/model/effort/profile hash and parent/session.
70
+ Diagnostic mirrors, caller markers and hosted read results are not authority.
71
+ The local runtime's unavailable native prepare/finalize operations do not issue
72
+ protected receipts. There is no local-user fallback or self-attested host success.
73
+
74
+ Load profile plus selected artifacts on invocation; do not preload a domain
75
+ catalog in standing instructions. Managed project memory is host-controlled.
76
+ Memory cannot grant filesystem authority or replace evidence. Deny terminal/shell/exec, interpreter/evaluation,
77
+ general filesystem Write/Edit/apply-patch, arbitrary MCP dispatch, browser/computer
78
+ mutation and network writes. Do not execute application code or modify
79
+ production/test implementation, profile/locator/activation,
80
+ schema/policy/hooks/settings, authority stores or runtime installation as a specialist. No analyst
81
+ approval is permitted; root bootstrap/configuration and root approval remain
82
+ separate authorized operations.
83
+
84
+ ## Step-by-Step Workflows
85
+
86
+ 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.
87
+
88
+ 2. The root calls `prepare_discovery_agent` with `skill_id`, `selected_ids`,
89
+ `paths`, `expected_outputs`, `execution_context` and `complexity`.
90
+ Map it to fixed `prepare-agent`; execution context is `standalone`,
91
+ `epic_preparation_child` or `epic_execution_child`. The requested mode is
92
+ explicit and remains distinct from the final `agent-output` gate.
93
+ Use `skill_id=characterize-runtime-behavior`; workflow inputs do not add wire fields.
94
+ 3. The root launches that exact deployment. Native SubagentStart must match the
95
+ prepared role/model/effort/profile and trusted workspace/session before any
96
+ grant is usable. Missing capability or attestation blocks the action.
97
+ 4. Use only the granted operations. Use bounded `read_discovery_source` for selected contracts, documentation, fixtures and supplied captures. Use `create_discovery_artifact` for fixed `new-scenario`, ordinary `update_discovery_artifact` and `link_discovery_evidence` for exact granted records. Register supplied metadata/payloads through controlled tools; never manufacture or collect new runtime captures by launching an application.
98
+ 5. Every requested scenario needs a plan/result state. Known expectations stay separate from unknown expectations; unknown expectations stay null with unresolved references. A passed runtime result needs qualifying runtime evidence. Source inspection, static inference and a scenario plan are not runtime execution evidence. Valid manual/no-runtime tasks may end in not-run or blocked plans when those are the prepared outputs, without claiming behavior passed.
99
+ 6. Produce every exact required output and the stored `required-output-manifest`,
100
+ preserving its output array order for the digest. Validate claims, references,
101
+ pins and selected-ID accounting. Purpose-built tools supply authorized proposal
102
+ inputs for `input_path`/`evidence_path`; never invent a generic Write staging
103
+ step. Server-side role checks, exact one-use authorization and prospective
104
+ validation remain mandatory. Bounded source reads preserve content identity
105
+ and line ranges; truncation requires a narrower selection, not a completeness
106
+ claim or filesystem fallback.
107
+ 7. Call `finalize_discovery_agent` as the specialist, mapped to `finalize-agent`
108
+ with `mode=agent-output`, non-null `invocation_ref` and no operation inputs.
109
+ It validates the protected invocation's outputs, not final-message paths.
110
+ Native SubagentStop then verifies current output authority.
111
+ Missing final text cannot skip native stop validation.
112
+ 8. After native stop, the root records the explicit result, content-addressed artifact references,
113
+ selected-ID accounting and all findings. A successful tool call or generated
114
+ path alone is not evidence of completed discovery.
115
+
116
+ ## Stop and result
117
+
118
+ Account for each selected feature/scenario, supplied capture and missing capability. Output-valid manual plans do not prove runtime success or completion readiness.
119
+
120
+ Structural success is not discovery, parity or planning completion.
121
+ Missing prepare/finalize/start/stop capability, missing outputs, invalid claims,
122
+ unresolved required work, wrong role/model/start context or a stale/missing
123
+ receipt blocks successful completion. Return explicit
124
+ PASS, FAIL or BLOCKED, distinguishing valid incremental outputs from a passing
125
+ completion gate. Missing native enforcement remains BLOCKED even when ordinary
126
+ local-user operations can run; do not substitute CLI success for native authority.
127
+
128
+ ## References
129
+
130
+ - [Canonical runtime-characterization-analyst contract](../../agents/runtime-characterization-analyst.agent.md)
131
+ - Installed v2 `service-request` and `required-output-manifest` schema contracts;
132
+ consume them through the authoritative runtime, with no checkout-schema fallback.
133
+ - The selected profile and pinned local artifacts supplied for this invocation;
134
+ references do not preload catalogs or grant access to unselected paths.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: discovery-behavior-reconciliation
3
+ description: 'Dispatch unresolved behavior to canonical proposal and root-approval handling. Use when invoking the existing behavior-reconciliation alias.'
4
+ ---
5
+
6
+ # Discovery Behavior Reconciliation Alias
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use this compatibility name only to dispatch to its canonical workflow.
11
+
12
+ ## Inputs
13
+
14
+ | Input | Required contract |
15
+ | --- | --- |
16
+ | inputs | Required inputs of the linked canonical workflow, forwarded unchanged. |
17
+
18
+ Forward all other supplied canonical inputs to the selected target. These
19
+ alias selectors are not service-request fields. A fixed mapping requires no
20
+ additional selector; it does not add fields to `prepare-agent`.
21
+
22
+ ## Dispatch
23
+
24
+ | Selector | Canonical skill |
25
+ | --- | --- |
26
+ | fixed | adjudicate-unspecified-behavior |
27
+
28
+ Dispatch directly to `adjudicate-unspecified-behavior`. The target separates specialist proposals from authorized root approval; this alias does not approve decisions.
29
+
30
+ This alias has no independent output or write authority. Do not duplicate
31
+ business validation, call tools independently, create a receipt, change a model
32
+ or auto-launch a role. Use only the linked canonical workflow's lifecycle and
33
+ exact grants; no alias chain or filesystem fallback is permitted.
34
+
35
+ ## Stop and result
36
+
37
+ Return the selected canonical workflow's explicit result and references without
38
+ changing failed, blocked, pending or incremental outcomes into completion.
39
+ An unknown selector fails with no fallback. Missing configuration or native
40
+ capability is handled by the canonical workflow, including initialization's
41
+ explicit root bootstrap exception. The alias cannot bypass prepare/finalize or
42
+ native start/stop requirements.
43
+
44
+ ## References
45
+
46
+ - [adjudicate-unspecified-behavior](../adjudicate-unspecified-behavior/SKILL.md)
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: discovery-coverage-ledger
3
+ description: 'Dispatch explicit inventory, extraction or review without mixing coverage ownership. Use when invoking the existing coverage-ledger alias with action=inventory, extract or review.'
4
+ ---
5
+
6
+ # Discovery Coverage Ledger Alias
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use this compatibility name only to dispatch to its canonical workflow.
11
+
12
+ ## Inputs
13
+
14
+ | Input | Required contract |
15
+ | --- | --- |
16
+ | action | Required inventory, extract or review; reject missing, mixed or unknown actions with no fallback. |
17
+
18
+ Forward all other supplied canonical inputs to the selected target. These
19
+ alias selectors are not service-request fields. A fixed mapping requires no
20
+ additional selector; it does not add fields to `prepare-agent`.
21
+
22
+ ## Dispatch
23
+
24
+ | Selector | Canonical skill |
25
+ | --- | --- |
26
+ | inventory | inventory-legacy-system |
27
+ | extract | extract-feature-contract |
28
+ | review | review-discovery-coverage |
29
+
30
+ `action=inventory|extract|review` selects the corresponding canonical workflow. Inventory and extraction use `legacy-parity-analyst`; review uses `migration-coverage-reviewer` with no reviewer ledger writes. These names describe the target's mapping and never authorize an unprepared logical-role launch.
31
+
32
+ This alias has no independent output or write authority. Do not duplicate
33
+ business validation, call tools independently, create a receipt, change a model
34
+ or auto-launch a role. Use only the linked canonical workflow's lifecycle and
35
+ exact grants; no alias chain or filesystem fallback is permitted.
36
+
37
+ ## Stop and result
38
+
39
+ Return the selected canonical workflow's explicit result and references without
40
+ changing failed, blocked, pending or incremental outcomes into completion.
41
+ An unknown selector fails with no fallback. Missing configuration or native
42
+ capability is handled by the canonical workflow, including initialization's
43
+ explicit root bootstrap exception. The alias cannot bypass prepare/finalize or
44
+ native start/stop requirements.
45
+
46
+ ## References
47
+
48
+ - [inventory-legacy-system](../inventory-legacy-system/SKILL.md)
49
+ - [extract-feature-contract](../extract-feature-contract/SKILL.md)
50
+ - [review-discovery-coverage](../review-discovery-coverage/SKILL.md)
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: discovery-parity-matrix
3
+ description: 'Dispatch parity reconciliation to the canonical Requirements Reconciler workflow. Use when invoking the existing discovery parity-matrix alias.'
4
+ ---
5
+
6
+ # Discovery Parity Matrix Alias
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use this compatibility name only to dispatch to its canonical workflow.
11
+
12
+ ## Inputs
13
+
14
+ | Input | Required contract |
15
+ | --- | --- |
16
+ | inputs | Required inputs of the linked canonical workflow, forwarded unchanged. |
17
+
18
+ Forward all other supplied canonical inputs to the selected target. These
19
+ alias selectors are not service-request fields. A fixed mapping requires no
20
+ additional selector; it does not add fields to `prepare-agent`.
21
+
22
+ ## Dispatch
23
+
24
+ | Selector | Canonical skill |
25
+ | --- | --- |
26
+ | fixed | reconcile-parity-matrix |
27
+
28
+ Dispatch directly to `reconcile-parity-matrix`, whose logical role is `requirements-reconciler`. Do not route parity ownership to Legacy Parity Analyst or bypass the canonical root preparation.
29
+
30
+ This alias has no independent output or write authority. Do not duplicate
31
+ business validation, call tools independently, create a receipt, change a model
32
+ or auto-launch a role. Use only the linked canonical workflow's lifecycle and
33
+ exact grants; no alias chain or filesystem fallback is permitted.
34
+
35
+ ## Stop and result
36
+
37
+ Return the selected canonical workflow's explicit result and references without
38
+ changing failed, blocked, pending or incremental outcomes into completion.
39
+ An unknown selector fails with no fallback. Missing configuration or native
40
+ capability is handled by the canonical workflow, including initialization's
41
+ explicit root bootstrap exception. The alias cannot bypass prepare/finalize or
42
+ native start/stop requirements.
43
+
44
+ ## References
45
+
46
+ - [reconcile-parity-matrix](../reconcile-parity-matrix/SKILL.md)
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: discovery-repo-inventory
3
+ description: 'Dispatch repository inventory to the canonical legacy inventory workflow. Use when invoking the existing discovery repo-inventory alias.'
4
+ ---
5
+
6
+ # Discovery Repository Inventory Alias
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use this compatibility name only to dispatch to its canonical workflow.
11
+
12
+ ## Inputs
13
+
14
+ | Input | Required contract |
15
+ | --- | --- |
16
+ | inputs | Required inputs of the linked canonical workflow, forwarded unchanged. |
17
+
18
+ Forward all other supplied canonical inputs to the selected target. These
19
+ alias selectors are not service-request fields. A fixed mapping requires no
20
+ additional selector; it does not add fields to `prepare-agent`.
21
+
22
+ ## Dispatch
23
+
24
+ | Selector | Canonical skill |
25
+ | --- | --- |
26
+ | fixed | inventory-legacy-system |
27
+
28
+ Dispatch directly to `inventory-legacy-system`. Its prepared Legacy Parity Analyst owns inventory and selected coverage dispositions; this alias grants no role or tool.
29
+
30
+ This alias has no independent output or write authority. Do not duplicate
31
+ business validation, call tools independently, create a receipt, change a model
32
+ or auto-launch a role. Use only the linked canonical workflow's lifecycle and
33
+ exact grants; no alias chain or filesystem fallback is permitted.
34
+
35
+ ## Stop and result
36
+
37
+ Return the selected canonical workflow's explicit result and references without
38
+ changing failed, blocked, pending or incremental outcomes into completion.
39
+ An unknown selector fails with no fallback. Missing configuration or native
40
+ capability is handled by the canonical workflow, including initialization's
41
+ explicit root bootstrap exception. The alias cannot bypass prepare/finalize or
42
+ native start/stop requirements.
43
+
44
+ ## References
45
+
46
+ - [inventory-legacy-system](../inventory-legacy-system/SKILL.md)
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: discovery-runtime-characterization
3
+ description: 'Dispatch runtime characterization to its canonical supplied-evidence workflow. Use when invoking the existing runtime-characterization alias.'
4
+ ---
5
+
6
+ # Discovery Runtime Characterization Alias
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use this compatibility name only to dispatch to its canonical workflow.
11
+
12
+ ## Inputs
13
+
14
+ | Input | Required contract |
15
+ | --- | --- |
16
+ | inputs | Required inputs of the linked canonical workflow, forwarded unchanged. |
17
+
18
+ Forward all other supplied canonical inputs to the selected target. These
19
+ alias selectors are not service-request fields. A fixed mapping requires no
20
+ additional selector; it does not add fields to `prepare-agent`.
21
+
22
+ ## Dispatch
23
+
24
+ | Selector | Canonical skill |
25
+ | --- | --- |
26
+ | fixed | characterize-runtime-behavior |
27
+
28
+ Dispatch directly to `characterize-runtime-behavior`. The canonical workflow preserves supplied evidence and honest manual, not-run or blocked states; the alias does not execute applications.
29
+
30
+ This alias has no independent output or write authority. Do not duplicate
31
+ business validation, call tools independently, create a receipt, change a model
32
+ or auto-launch a role. Use only the linked canonical workflow's lifecycle and
33
+ exact grants; no alias chain or filesystem fallback is permitted.
34
+
35
+ ## Stop and result
36
+
37
+ Return the selected canonical workflow's explicit result and references without
38
+ changing failed, blocked, pending or incremental outcomes into completion.
39
+ An unknown selector fails with no fallback. Missing configuration or native
40
+ capability is handled by the canonical workflow, including initialization's
41
+ explicit root bootstrap exception. The alias cannot bypass prepare/finalize or
42
+ native start/stop requirements.
43
+
44
+ ## References
45
+
46
+ - [characterize-runtime-behavior](../characterize-runtime-behavior/SKILL.md)
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: discovery-validate-artifacts
3
+ description: 'Dispatch artifact validation to the canonical explicit-kind and mode workflow. Use when invoking the existing validate-artifacts alias.'
4
+ ---
5
+
6
+ # Discovery Artifact Validation Alias
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use this compatibility name only to dispatch to its canonical workflow.
11
+
12
+ ## Inputs
13
+
14
+ | Input | Required contract |
15
+ | --- | --- |
16
+ | inputs | Required inputs of the linked canonical workflow, forwarded unchanged. |
17
+
18
+ Forward all other supplied canonical inputs to the selected target. These
19
+ alias selectors are not service-request fields. A fixed mapping requires no
20
+ additional selector; it does not add fields to `prepare-agent`.
21
+
22
+ ## Dispatch
23
+
24
+ | Selector | Canonical skill |
25
+ | --- | --- |
26
+ | fixed | validate-discovery-artifacts |
27
+
28
+ Dispatch directly to `validate-discovery-artifacts`. Forward its exact artifact kind/selection and explicit mode without type probing or substituting a different gate.
29
+
30
+ This alias has no independent output or write authority. Do not duplicate
31
+ business validation, call tools independently, create a receipt, change a model
32
+ or auto-launch a role. Use only the linked canonical workflow's lifecycle and
33
+ exact grants; no alias chain or filesystem fallback is permitted.
34
+
35
+ ## Stop and result
36
+
37
+ Return the selected canonical workflow's explicit result and references without
38
+ changing failed, blocked, pending or incremental outcomes into completion.
39
+ An unknown selector fails with no fallback. Missing configuration or native
40
+ capability is handled by the canonical workflow, including initialization's
41
+ explicit root bootstrap exception. The alias cannot bypass prepare/finalize or
42
+ native start/stop requirements.
43
+
44
+ ## References
45
+
46
+ - [validate-discovery-artifacts](../validate-discovery-artifacts/SKILL.md)
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: discovery-workflow
3
+ description: 'Dispatch an explicit canonical discovery workflow without adding authority. Use when invoking the legacy discovery umbrella with a selected skill_id.'
4
+ ---
5
+
6
+ # Discovery Workflow Alias
7
+
8
+ ## When to Use This Skill
9
+
10
+ Use this compatibility name only to dispatch to its canonical workflow.
11
+
12
+ ## Inputs
13
+
14
+ | Input | Required contract |
15
+ | --- | --- |
16
+ | skill_id | Required exact one of the nine canonical skill IDs listed below; unknown or missing values fail with no fallback. |
17
+
18
+ Forward all other supplied canonical inputs to the selected target. These
19
+ alias selectors are not service-request fields. A fixed mapping requires no
20
+ additional selector; it does not add fields to `prepare-agent`.
21
+
22
+ ## Dispatch
23
+
24
+ | Selector | Canonical skill |
25
+ | --- | --- |
26
+ | inventory-legacy-system | inventory-legacy-system |
27
+ | extract-feature-contract | extract-feature-contract |
28
+ | characterize-runtime-behavior | characterize-runtime-behavior |
29
+ | reconcile-parity-matrix | reconcile-parity-matrix |
30
+ | review-discovery-coverage | review-discovery-coverage |
31
+ | adjudicate-unspecified-behavior | adjudicate-unspecified-behavior |
32
+ | generate-acceptance-scenarios | generate-acceptance-scenarios |
33
+ | initialize-discovery-workspace | initialize-discovery-workspace |
34
+ | validate-discovery-artifacts | validate-discovery-artifacts |
35
+
36
+ Select exactly one canonical workflow using `skill_id`. Forward its supplied inputs without inventing defaults or reinterpreting source identity. Each target owns its root prepare, exact launch, granted operations, finalize, native stop and root result; this umbrella adds no scheduler.
37
+
38
+ This alias has no independent output or write authority. Do not duplicate
39
+ business validation, call tools independently, create a receipt, change a model
40
+ or auto-launch a role. Use only the linked canonical workflow's lifecycle and
41
+ exact grants; no alias chain or filesystem fallback is permitted.
42
+
43
+ ## Stop and result
44
+
45
+ Return the selected canonical workflow's explicit result and references without
46
+ changing failed, blocked, pending or incremental outcomes into completion.
47
+ An unknown selector fails with no fallback. Missing configuration or native
48
+ capability is handled by the canonical workflow, including initialization's
49
+ explicit root bootstrap exception. The alias cannot bypass prepare/finalize or
50
+ native start/stop requirements.
51
+
52
+ ## References
53
+
54
+ - [inventory-legacy-system](../inventory-legacy-system/SKILL.md)
55
+ - [extract-feature-contract](../extract-feature-contract/SKILL.md)
56
+ - [characterize-runtime-behavior](../characterize-runtime-behavior/SKILL.md)
57
+ - [reconcile-parity-matrix](../reconcile-parity-matrix/SKILL.md)
58
+ - [review-discovery-coverage](../review-discovery-coverage/SKILL.md)
59
+ - [adjudicate-unspecified-behavior](../adjudicate-unspecified-behavior/SKILL.md)
60
+ - [generate-acceptance-scenarios](../generate-acceptance-scenarios/SKILL.md)
61
+ - [initialize-discovery-workspace](../initialize-discovery-workspace/SKILL.md)
62
+ - [validate-discovery-artifacts](../validate-discovery-artifacts/SKILL.md)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: execution-environment
3
- description: 'Execution-environment brief for research, planning, preflight, execution, and orchestration. Use before planning or delegating work so tool routes, command-text restrictions, the batch budget, hook context, CI shape, contract tests, evidence rules, coverage and file-size gates, and test-isolation checks are known and are not restated in plans.'
3
+ description: 'Execution-environment brief for research, planning, preflight, execution, and orchestration. Use before planning or delegating work so tool routes, command-text restrictions, the batch budget, hook context, CI shape, contract tests, evidence rules, coverage and file-size gates, test runtime, and test-isolation checks are known and are not restated in plans.'
4
4
  ---
5
5
 
6
6
  # Execution-Environment Brief
@@ -36,17 +36,20 @@ Two separate mechanisms restrict Bash command text. They are kept apart here bec
36
36
 
37
37
  ## Batch Budget
38
38
 
39
- - In direct mode the batch-budget hooks allow at most three distinct production files per kind in one session: the fourth distinct non-test PowerShell file is denied with `POWERSHELL_LARGE_PATH_REQUIRED` and the fourth distinct non-test Python file with `PYTHON_LARGE_PATH_REQUIRED` (`.claude/hooks/enforce-powershell-batch-budget.ps1` and `.claude/hooks/enforce-python-batch-budget.ps1`; Codex copies under `.codex/hooks/`). Test files never count.
40
- - Exemption: the cap does not apply when `artifacts/orchestration/orchestrator-state.json` in the worktree that holds the hook script selects the `large`, `remediation`, or `preparation` route and is not terminal (`Test-BatchBudgetLargePathRoute` in `.claude/hooks/enforce-batch-budget-route.ps1`). An isolated subagent worktree has no checkpoint, because `artifacts/` is gitignored, so direct mode applies there.
39
+ - In direct mode the batch-budget hooks allow at most three distinct production files per kind in one session and one resolved worktree: the fourth distinct non-test PowerShell file is denied with `POWERSHELL_LARGE_PATH_REQUIRED` and the fourth distinct non-test Python file with `PYTHON_LARGE_PATH_REQUIRED` (`.claude/hooks/enforce-powershell-batch-budget.ps1` and `.claude/hooks/enforce-python-batch-budget.ps1`; Codex copies under `.codex/hooks/`). Test files never count.
40
+ - Exemption: the cap does not apply when `artifacts/orchestration/orchestrator-state.json` in the worktree containing the edited file selects the `large`, `remediation`, or `preparation` route and is not terminal (`Test-BatchBudgetLargePathRoute` in `.claude/hooks/enforce-batch-budget-route.ps1`). That worktree is resolved by `Resolve-HookTargetWorktree` in `.claude/lib/worktree-resolution/HookTargetWorktree.psm1` (Codex twin `.codex/hooks/hook-target-worktree.ps1`): an absolute path resolves to its nearest enclosing registered git worktree, and a relative path, a path in no registered worktree, or an ambiguous result uses the session root. An isolated subagent worktree has no checkpoint, because `artifacts/` is gitignored, so direct mode applies there.
41
41
  - Bundle mirror copies under `extensions/drm-copilot/resources/` are production files and count against the cap.
42
- - A scratch `.ps1` file counts when it resolves inside the worktree root. Files under `SCRATCH`, which is outside the worktree root, are discarded without consuming a slot.
42
+ - A scratch `.ps1` file counts when it resolves inside the worktree root and outside that root's `artifacts/` directory. Files under `SCRATCH`, which is outside the worktree root, are discarded without consuming a slot.
43
+ - Paths under the root-level `artifacts/` directory of the resolved worktree never count: they are allowed without consuming a slot and write no state. A nested directory named `artifacts` elsewhere in the tree still counts.
44
+ - Claude edits to a sibling registered worktree count against that worktree's own budget, because containment uses the resolved root; a path outside every registered worktree keeps the session root and is discarded by containment. Codex has no containment filter, so a Codex edit outside every registered worktree counts against the session root.
43
45
  - Only `Write` and `Edit` calls are seen (the hook matcher is `Write|Edit`). Files written by Bash, by a copy script, or by a generator are not seen.
44
- - Budget state is kept per session under `.claude/state/`; there is no automatic reset.
46
+ - Budget state is kept per session and per resolved worktree root under the session root's `.claude/state/` (Codex `.codex/state/`): the session root keeps `<kind>-batch-budget.<session id>.json`, and another worktree uses `<kind>-batch-budget.<session id>.<worktree key>.json` with the key from `Get-HookTargetWorktreeKey`. No state is written into another worktree, and there is no automatic reset.
45
47
 
46
48
  ## Hook Execution Context
47
49
 
48
50
  - Hooks for an isolated subagent run inside the subagent's worktree with that worktree's hook scripts, which are `main`'s copies. A hook change on a branch is not exercised by isolated subagents until it merges.
49
51
  - Hook behavior on a branch is therefore proven by Pester suites, not by a live subagent run. A live check of a branch hook needs a non-isolated delegation from the item worktree.
52
+ - The batch-budget hooks evaluate the checkpoint of the target worktree that `Resolve-HookTargetWorktree` resolves for the edited file, so an edit made from a coordinating session into an item worktree is evaluated against the item worktree's checkpoint. The preimplementation gate (#1010) resolves the file path of a Write or Edit call and the `-C` values and absolute operands of `git add` and `git commit` through the same resolver, and denies when the worktree listing fails or names no worktree; its delegation checks still resolve by portable identity. The PR authoring gate (#1011) resolves the branch that a `gh pr create` or `gh pr edit` command names (`--head`, `--branch`, or a `branch:` label) through the same resolver when the command carries no canonical issue number line, and otherwise keeps its portable-identity and current-branch resolution. The other gates that read `artifacts/orchestration/orchestrator-state.json` are unchanged and still use the root that holds the hook script.
50
53
  - Enforcement hooks do not invoke Python; bash is preferred and PowerShell is acceptable (`tests/scripts/claude-runtime/enforcement-hooks-no-python-invocation.Tests.ps1`).
51
54
 
52
55
  ## MCP Surfaces Run the Installed Extension
@@ -58,12 +61,12 @@ Two separate mechanisms restrict Bash command text. They are kept apart here bec
58
61
  ## CI Shape and Required Checks
59
62
 
60
63
  - `.github/workflows/ci.yml` triggers on `push` to `main` and `development`, on `pull_request` to `main`, `development`, and `epic/**`, on `workflow_dispatch`, and on `merge_group` (`types: [checks_requested]`, added by issue #952), with no path filters. When the merge queue on `main` is enabled, every required check is produced by a `merge_group` run of `ci.yml` as well as by the pull-request run; `.github/workflows/README.md` (`## Triggers`) records the trigger set.
61
- - Jobs in `ci.yml` and their check names: `Change scope` (job `changes`, the change-scope decision below); `CI full run` (job `full-run-marker`, which runs only on a full run, marks that run as a valid base for later decisions, and is not a required check); `quality-checks7 / Code Quality & Tests (<python-version>)` on Python 3.10, 3.11, 3.12, and 3.13 (`_quality-checks.yml`: Black check, Ruff, Pyright, the Codex generator `--check`, the tier classification, Pytest with line and branch coverage, and the coverage-threshold check on the JSON report totals); `security-scan / Security Scanning` (its `safety check` step carries `continue-on-error: true` and does not fail the check); `docs-validation / Documentation Validation`; `build-check / Build Package`; `shell-coverage / Shell Coverage (Bats + kcov)`; `drm-copilot-extension-tests / drm-copilot Extension Tests (<os>)` on `ubuntu-latest` and `windows-latest`; `root-typescript-tests / Root TypeScript Tests (<os>)` on `ubuntu-latest` and `windows-latest`; `NPM Audit Gate / npm audit (<manifest>)` (the calling job carries the name `NPM Audit Gate`); and the `poshqc` group below.
64
+ - Jobs in `ci.yml` and their check names: `Change scope` (job `changes`, the change-scope decision below); `CI full run` (job `full-run-marker`, which runs only on a full run, marks that run as a valid base for later decisions, and is not a required check); `quality-checks7 / Code Quality & Tests (<python-version>)` on Python 3.11, 3.12, and 3.13 (`_quality-checks.yml`: Black check, Ruff, Pyright, the Codex generator `--check`, the tier classification, and Pytest on every version; Pytest with line and branch coverage and the coverage-threshold check on the JSON report totals run on 3.13 only); `security-scan / Security Scanning` (its `safety check` step carries `continue-on-error: true` and does not fail the check); `docs-validation / Documentation Validation`; `build-check / Build Package`; `shell-coverage / Shell Coverage (Bats + kcov)`; `drm-copilot-extension-tests / drm-copilot Extension Tests (<os>)` on `ubuntu-latest` and `windows-latest`; `root-typescript-tests / Root TypeScript Tests (<os>)` on `ubuntu-latest` and `windows-latest`; `NPM Audit Gate / npm audit (<manifest>)` (the calling job carries the name `NPM Audit Gate`); and the `poshqc` group below.
62
65
  - PowerShell CI (`_poshqc.yml`): `poshqc / PowerShell QC static` (format and analyze on `windows-latest`); the shard matrix `poshqc / PowerShell QC shard 1`, `shard 2`, and `shard 3` (`Invoke-PoshQCTest -ShardIndex -ShardCount` over the scan folders of `config/poshqc-scan.json`, with coverage, on `windows-latest`); the aggregator `poshqc / PowerShell QC`, which requires the static and shard jobs to succeed, verifies shard completeness against a Pester discovery count, and merges shard coverage; and `poshqc / PowerShell hook suites (Linux)`, which runs only `tests/scripts/claude-hooks` and `tests/scripts/codex-hooks` on `ubuntu-latest` with coverage disabled. A new test file under a scanned folder is assigned to a shard automatically and is counted by the completeness check.
63
66
  - Change-scope decision (issue #962): the `Change scope` job runs `scripts/ci/Invoke-CiChangeScope.ps1` and publishes the job output `code`. The decision is `code=false` (docs-only) only on a `pull_request` event from this repository, through one of two comparisons. Green-run base: every file changed since the newest successful `ci.yml` run on the pull-request branch whose `CI full run` job succeeded, and whose head commit is present and an ancestor of the current head, is on the allowlist `config/ci-docs-only-paths.json`; the reason is `DOCS_ONLY_SINCE_<green head sha>`. Merge-base fallback (issue #973): when the green-run step ends with no earlier full green run (`NO_FULL_GREEN_RUN`), a missing base (`BASE_NOT_PRESENT`), or a non-ancestor base (`BASE_NOT_ANCESTOR`), and the pull request's base ref is exactly `main`, the script computes `git merge-base` of the payload base SHA (`BASE_SHA`, from `github.event.pull_request.base.sha`; the base ref arrives as `BASE_REF`) and the head, lists the files changed since that merge base with the same diff arguments, and decides `DOCS_ONLY_SINCE_MERGE_BASE_<merge base sha>` when every changed file is allowlisted. Both comparisons run the diff with rename detection off, so both the old and the new path of a rename are classified. A path is allowlisted when it starts with `docs/features/active/`, `docs/features/archive/`, `docs/features/completed/`, `docs/features/epics/`, `docs/features/parallel/`, `docs/features/potential/`, or `docs/research/`, does not start with `docs/features/templates/` or `docs/features/potential/template.md`, and ends in `.md`, `.txt`, `.log`, `.json`, or `.xml`; the allowlist file itself is not allowlisted. Every other case is a full run (`code=true`): `push`, `merge_group`, and `workflow_dispatch` events, a fork pull request, unreadable run or job data, no earlier full green run or a missing or non-ancestor base when the base ref is not `main`, a merge base that cannot be resolved (`MERGE_BASE_UNRESOLVED`, for example a blank base SHA or a base commit missing from the checkout), a failed ancestry check, an empty diff, any path outside the allowlist, and any error. The decision step carries `continue-on-error: true` and the callers compare the output with `!= 'false'`, so a failed or missing decision also gives a full run.
64
67
  - Docs-only behavior (`code=false`): `ci.yml` passes `run-heavy: false` to `_quality-checks.yml`, `_security-scan.yml`, `_build-check.yml`, `_poshqc.yml`, `_shell-coverage.yml`, and `_drm-copilot-extension-tests.yml`. Each required job still starts under its full-run check name with every step skipped, so every required context reports `success` without running its suite. In `_poshqc.yml` the aggregator `poshqc / PowerShell QC` runs with every step gated, and `poshqc / PowerShell QC static`, the shard jobs, and `poshqc / PowerShell hook suites (Linux)` are skipped at job level. `docs-validation / Documentation Validation` runs in full. `root-typescript-tests`, `NPM Audit Gate`, and `CI full run` are skipped at job level. A `success` on a docs-only commit is therefore not evidence that the heavy suites pass for that commit; that evidence is the newest run whose `CI full run` job succeeded.
65
68
  - A commit that changes any path outside the allowlist (any code, workflow, configuration, script, test, or customization file) runs the full set of jobs, and its `CI full run` job marks it as a base for later docs-only decisions. A standalone `workflow_dispatch` of a reusable workflow, or a caller that omits `run-heavy`, also runs in full. `.github/workflows/README.md` (`## Change-Scope Decision (Issue #962)`) records the reason codes and the per-context behavior table.
66
- - Required contexts of ruleset 15241672, confirmed by the orchestrator through `gh api` on 2026-10-16: `drm-copilot-extension-tests / drm-copilot Extension Tests (ubuntu-latest)`, `drm-copilot-extension-tests / drm-copilot Extension Tests (windows-latest)`, `docs-validation / Documentation Validation`, `poshqc / PowerShell QC`, `shell-coverage / Shell Coverage (Bats + kcov)`, `security-scan / Security Scanning`, `quality-checks7 / Code Quality & Tests (3.10)`, `quality-checks7 / Code Quality & Tests (3.11)`, `quality-checks7 / Code Quality & Tests (3.12)`, `quality-checks7 / Code Quality & Tests (3.13)`, `build-check / Build Package`.
69
+ - Required contexts of ruleset 15241672, confirmed by the orchestrator through `gh api` on 2026-10-16: `drm-copilot-extension-tests / drm-copilot Extension Tests (ubuntu-latest)`, `drm-copilot-extension-tests / drm-copilot Extension Tests (windows-latest)`, `docs-validation / Documentation Validation`, `poshqc / PowerShell QC`, `shell-coverage / Shell Coverage (Bats + kcov)`, `security-scan / Security Scanning`, `quality-checks7 / Code Quality & Tests (3.11)`, `quality-checks7 / Code Quality & Tests (3.12)`, `quality-checks7 / Code Quality & Tests (3.13)`, `build-check / Build Package`.
67
70
  - Refresh rule: a change that renames a job, adds or removes a matrix entry, or changes the ruleset refreshes this list in the same change, and the orchestrator re-confirms the contexts with a read-only `gh api repos/drmoisan/drm-copilot/rulesets/15241672` call before relying on them.
68
71
  - Skipped-check semantics: a job skipped by an `if:` condition reports success to a required check; a workflow that does not run at all reports nothing, which leaves the required check pending.
69
72
  - A pull request into a branch other than `main`, `development`, or `epic/**` gets no CI run; dispatch `ci.yml` manually for it.
@@ -101,7 +104,7 @@ These pass every validator rule and are found only by reading the plan against t
101
104
  - A checkbox diff-pair assertion against a file the plan adds, and a CRLF fixture under the `eol=lf` attribute rule.
102
105
  - A new TypeScript production file without its own `coverageThreshold` entry in `extensions/drm-copilot/jest.config.cjs`, whose threshold map has per-file entries only and no `global` key.
103
106
  - A per-file coverage floor asserted for code that the tests replace with blanket mocks.
104
- - Batch-budget exhaustion across a session, and an acceptance condition that depends on a branch hook being exercised by an isolated subagent.
107
+ - Batch-budget exhaustion within one worktree over a session, and an acceptance condition that depends on a branch hook being exercised by an isolated subagent.
105
108
  - `origin/main` advancing during planning: scope diffs anchor on the merge base of `origin/main` and `HEAD`, never on `origin/main` itself.
106
109
  - `Measure-Object -Line` counts non-empty lines only; physical line counts use `wc -l` or `@(Get-Content -LiteralPath <path>).Count`.
107
110
  - A coverage argument written as a filesystem path measures nothing; the dotted module form is required, and branch figures come from the JSON report, not the combined terminal column.
@@ -122,7 +125,18 @@ These pass every validator rule and are found only by reading the plan against t
122
125
  - Python: measure a module with `--cov=<dotted.module>`, `--cov-branch`, `--cov-report=term-missing`, and `--cov-report=json:<path>`; read branch figures from the JSON report.
123
126
  - TypeScript: a new production file needs its own entry in the `coverageThreshold` map of `extensions/drm-copilot/jest.config.cjs`; Jest runs through `node run-jest.cjs` in `extensions/drm-copilot/`.
124
127
  - PowerShell: per-file line coverage is read from `artifacts/pester/powershell-coverage.xml` written by the self-hosted PoshQC module.
125
- - No production, test, or reusable script file exceeds 500 physical lines; Markdown is exempt. Files at or near the limit are not extended; new logic goes into a new module and a new test file.
128
+ - File size follows three tiers for production, test, and reusable script files, counted in logical lines (a trailing terminator adds no line): at 500 lines look for a logical split (guidance); at 700 lines split more aggressively, and reviewers report a non-blocking Warning (advisory); above 800 lines a split is enforced regardless of logical separability (hard limit; exactly 800 passes). The hard limit is enforced by `tests/scripts/ci/FileSizePolicy.RepoGate.Tests.ps1` in the existing PowerShell shards against `config/file-size-baseline.json`, where legacy files above 800 may shrink (with the entry tightened) or stay equal but may not grow, and by the PreToolUse hook `.claude/hooks/enforce-file-size-limit.ps1` (`.codex/hooks/enforce-file-size-limit.ps1`). New logic in a file near a tier goes into a new module and a new test file. Markdown is exempt.
129
+
130
+ ## Test Runtime
131
+
132
+ - A unit test runs in milliseconds. A full suite above about 15 minutes, or a single unit test above about 10 seconds, indicates repeated work in the code under test or its fixtures, not missing parallelism.
133
+ - Diagnose before proposing sharding or parallel workers. First aggregate per-test and per-module time from the JUnit report that the full run already writes (`--junitxml`); a small fraction of tests usually holds most of the time. Then run the slowest test under a profiler (`python -m cProfile -o <file> -m pytest <node id>`) and read the profile with `pstats`.
134
+ - Fix repeated production work first. An immutable structure, such as a schema registry that is rebuilt and re-verified on every call, is built once per owning instance. This speeds up the runtime as well as the tests.
135
+ - Second, build an expensive immutable fixture once per session and hand each test its own copy wherever a test could mutate it, so test independence is unchanged.
136
+ - Parallel workers reduce wall-clock time only: they are capped by the slowest test and leave the cost in the product.
137
+ - pytest: pass `-n auto` (pytest-xdist) on the command line of the CI step `Run tests with Pytest` and of the parallel VS Code tasks, never in `addopts`, because the VS Code Test Explorer keys results to the wrong file when `addopts` carries it. `-n auto` counts physical cores, so a runner can start fewer workers than it has vCPUs; measure it against an explicit count such as `-n 4` before keeping it. pytest-cov combines the worker coverage into one report, and the serial `poetry run pytest` command remains the isolation reference.
138
+ - Pester: Pester 5 has no in-process parallel mode, so parallel Pester runs are process-per-shard: `Invoke-PoshQCTest -ShardIndex -ShardCount` on the CI runners and `Invoke-PoshQCParallelTest` locally. Read the per-file `time` of the JUnit `testsuite` elements before changing the shard count or the weights in `config/poshqc-shard-weights.json`.
139
+ - A candidate fix can be measured before the tree is edited by loading a pytest plugin module from `SCRATCH` with `-p <module>` and `PYTHONPATH`.
126
140
 
127
141
  ## Test Isolation Checks
128
142
 
@@ -131,5 +145,6 @@ These pass every validator rule and are found only by reading the plan against t
131
145
  - a seeded shuffled Jest run (`node run-jest.cjs --randomize --seed=<n>` in `extensions/drm-copilot/`) with the seed recorded;
132
146
  - a reversed-order run of the new or changed Python test modules in one process;
133
147
  - a seeded shuffled file-order run of the touched Pester suites in one process, with at least three seeds and each seed and its file order recorded;
134
- - a fresh single-process Pester run over `tests/scripts`, which is the CI shape.
148
+ - a fresh single-process Pester run over `tests/scripts`, which is the CI shape;
149
+ - in addition to the serial runs, a concurrent-shard Pester run through `Invoke-PoshQCParallelTest` and a `pytest -n auto` run, both with zero failures.
135
150
  - An order dependence found by any run is fixed on both sides: the suite that leaves state behind (globals, functions, environment variables, mocks, imported modules, script-scope state) and the suite that assumes prior state. Every seed is then re-run.