@danmoisan/drm-copilot-mcp 1.1.25 → 1.1.27

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 (185) hide show
  1. package/out/mcp-server.js +170 -52
  2. package/package.json +1 -1
  3. package/resources/claude-customizations/.claude/agents/atomic-executor.md +3 -3
  4. package/resources/claude-customizations/.claude/agents/atomic-planner.md +2 -2
  5. package/resources/claude-customizations/.claude/agents/csharp-typed-engineer.md +7 -7
  6. package/resources/claude-customizations/.claude/agents/feature-review.md +6 -3
  7. package/resources/claude-customizations/.claude/agents/orchestrator.md +11 -7
  8. package/resources/claude-customizations/.claude/agents/parallel-orchestrator.md +7 -3
  9. package/resources/claude-customizations/.claude/agents/parallel-planner.md +6 -2
  10. package/resources/claude-customizations/.claude/agents/powershell-typed-engineer.md +7 -7
  11. package/resources/claude-customizations/.claude/agents/python-typed-engineer.md +6 -6
  12. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-review.ps1 +699 -0
  13. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +16 -1
  14. package/resources/claude-customizations/.claude/hooks/enforce-model-routing-receipt.ps1 +41 -0
  15. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-cleanup.ps1 +481 -0
  16. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate.ps1 +3 -1
  17. package/resources/claude-customizations/.claude/hooks/enforce-parallel-cohort-barrier-helpers.ps1 +69 -3
  18. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill-helpers.ps1 +2 -2
  19. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.cleanup.ps1 +246 -0
  20. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.docs-only.ps1 +1 -0
  21. package/resources/claude-customizations/.claude/hooks/hook-cleanup-context.ps1 +343 -0
  22. package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage-rules.ps1 +50 -16
  23. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorState.psm1 +6 -1
  24. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateCompletion.psm1 +4 -2
  25. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateCompletionChecks.psm1 +51 -2
  26. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateReceipts.psm1 +5 -2
  27. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateRemediationAccounting.psm1 +116 -4
  28. package/resources/claude-customizations/.claude/lib/parallel-admission/Invoke-ParallelAdmission.ps1 +626 -0
  29. package/resources/claude-customizations/.claude/lib/parallel-admission/ParallelAdmission.psm1 +508 -0
  30. package/resources/claude-customizations/.claude/lib/parallel-admission/ParallelAdmissionJson.psm1 +141 -0
  31. package/resources/claude-customizations/.claude/lib/parallel-admission/ParallelAdmissionPrecedence.psm1 +508 -0
  32. package/resources/claude-customizations/.claude/rules/csharp.md +8 -8
  33. package/resources/claude-customizations/.claude/rules/orchestrator-state.md +28 -2
  34. package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +17 -1
  35. package/resources/claude-customizations/.claude/rules/powershell.md +2 -2
  36. package/resources/claude-customizations/.claude/settings.json +1 -0
  37. package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +9 -13
  38. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/SKILL.md +93 -14
  39. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/scripts/cleanup-worktrees.sh +23 -10
  40. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_preserve_lib.sh +54 -46
  41. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_preserve_merge_lib.sh +234 -0
  42. package/resources/claude-customizations/.claude/skills/csharp-qa-gate/SKILL.md +14 -15
  43. package/resources/claude-customizations/.claude/skills/epic-progress-report/SKILL.md +338 -0
  44. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Logic.ps1 +248 -0
  45. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Metrics.ps1 +232 -0
  46. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Render.ps1 +196 -0
  47. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.State.ps1 +286 -0
  48. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.ps1 +475 -0
  49. package/resources/claude-customizations/.claude/skills/execution-environment/SKILL.md +31 -16
  50. package/resources/claude-customizations/.claude/skills/feature-review-workflow/SKILL.md +21 -9
  51. package/resources/claude-customizations/.claude/skills/invoke-csharp-engineer/SKILL.md +5 -5
  52. package/resources/claude-customizations/.claude/skills/invoke-powershell-engineer/SKILL.md +4 -4
  53. package/resources/claude-customizations/.claude/skills/invoke-python-engineer/SKILL.md +4 -4
  54. package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +24 -2
  55. package/resources/claude-customizations/.claude/skills/parallel-add/SKILL.md +71 -7
  56. package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +34 -2
  57. package/resources/claude-customizations/.claude/skills/parallel-plan/SKILL.md +82 -12
  58. package/resources/claude-customizations/.claude/skills/powershell-qa-gate/SKILL.md +16 -17
  59. package/resources/claude-customizations/.claude/skills/python-qa-gate/SKILL.md +15 -16
  60. package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +1 -1
  61. package/resources/claude-customizations/.claude-variants/csharp-legacy/agents/csharp-typed-engineer.md +6 -6
  62. package/resources/claude-customizations/.claude-variants/csharp-legacy/skills/csharp-qa-gate/SKILL.md +13 -14
  63. package/resources/claude-customizations/.claude-variants/csharp-legacy/skills/invoke-csharp-engineer/SKILL.md +4 -4
  64. package/resources/claude-customizations/pack-manifests/core.json +15 -0
  65. package/resources/codex-and-agents-customizations/.agents/skills/atomic-plan-contract/SKILL.md +8 -12
  66. package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +1 -1
  67. package/resources/codex-and-agents-customizations/.agents/skills/csharp-qa-gate/SKILL.md +13 -14
  68. package/resources/codex-and-agents-customizations/.agents/skills/execution-environment/SKILL.md +31 -16
  69. package/resources/codex-and-agents-customizations/.agents/skills/feature-review/SKILL.md +5 -1
  70. package/resources/codex-and-agents-customizations/.agents/skills/feature-review-workflow/SKILL.md +18 -5
  71. package/resources/codex-and-agents-customizations/.agents/skills/invoke-csharp-engineer/SKILL.md +4 -4
  72. package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md +4 -4
  73. package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md +4 -4
  74. package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +24 -2
  75. package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-state/SKILL.md +16 -1
  76. package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +3 -3
  77. package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +2 -2
  78. package/resources/codex-and-agents-customizations/.agents/skills/powershell-qa-gate/SKILL.md +15 -16
  79. package/resources/codex-and-agents-customizations/.agents/skills/python-qa-gate/SKILL.md +14 -15
  80. package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/SKILL.md +2 -0
  81. package/resources/codex-and-agents-customizations/.agents-variants/csharp-legacy/skills/csharp-qa-gate/SKILL.md +13 -14
  82. package/resources/codex-and-agents-customizations/.agents-variants/csharp-legacy/skills/invoke-csharp-engineer/SKILL.md +4 -4
  83. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c1.toml +3 -3
  84. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c2.toml +3 -3
  85. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3-elevated.toml +3 -3
  86. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3.toml +3 -3
  87. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c4.toml +3 -3
  88. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor.toml +3 -3
  89. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c1.toml +2 -2
  90. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c2.toml +2 -2
  91. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3-elevated.toml +2 -2
  92. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3.toml +2 -2
  93. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c4.toml +2 -2
  94. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner.toml +2 -2
  95. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-executor.toml +2 -2
  96. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-planning.toml +1 -1
  97. package/resources/codex-and-agents-customizations/.codex/agents/csharp-orchestrator.toml +1 -1
  98. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c1.toml +6 -6
  99. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c2.toml +6 -6
  100. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3-elevated.toml +6 -6
  101. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3.toml +6 -6
  102. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c4.toml +6 -6
  103. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer.toml +6 -6
  104. package/resources/codex-and-agents-customizations/.codex/agents/feature-review.toml +2 -2
  105. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-executor.toml +2 -2
  106. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-planning.toml +1 -1
  107. package/resources/codex-and-agents-customizations/.codex/agents/powershell-di-unit-test-engineer.toml +1 -1
  108. package/resources/codex-and-agents-customizations/.codex/agents/powershell-orchestrator.toml +1 -1
  109. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c1.toml +7 -7
  110. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c2.toml +7 -7
  111. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3-elevated.toml +7 -7
  112. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3.toml +7 -7
  113. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c4.toml +7 -7
  114. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer.toml +7 -7
  115. package/resources/codex-and-agents-customizations/.codex/agents/pytest-unit-test-coding.toml +1 -1
  116. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-executor.toml +2 -2
  117. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-planning.toml +1 -1
  118. package/resources/codex-and-agents-customizations/.codex/agents/python-execution-only-typed.toml +1 -1
  119. package/resources/codex-and-agents-customizations/.codex/agents/python-orchestrator.toml +1 -1
  120. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c1.toml +6 -6
  121. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c2.toml +6 -6
  122. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3-elevated.toml +6 -6
  123. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3.toml +6 -6
  124. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c4.toml +6 -6
  125. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer.toml +6 -6
  126. package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
  127. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate-review.ps1 +699 -0
  128. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate.ps1 +29 -2
  129. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-cleanup.ps1 +481 -0
  130. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate.ps1 +4 -2
  131. package/resources/codex-and-agents-customizations/.codex/hooks/hook-cleanup-context.ps1 +343 -0
  132. package/resources/codex-and-agents-customizations/.codex/hooks/validate-feature-review-coverage.ps1 +51 -4
  133. package/resources/codex-and-agents-customizations/.codex-variants/csharp-legacy/agents/csharp-typed-engineer.toml +6 -6
  134. package/resources/codex-and-agents-customizations/pack-manifests/core.json +3 -0
  135. package/resources/customizations/.github/agents/5.1-Beast-adjusted.agent.md +1 -1
  136. package/resources/customizations/.github/agents/Powershell DI Unit Test Engineer.agent.md +20 -26
  137. package/resources/customizations/.github/agents/atomic_executor.agent.md +4 -4
  138. package/resources/customizations/.github/agents/atomic_planning.agent.md +4 -4
  139. package/resources/customizations/.github/agents/commentary-remediation.agent.md +1 -1
  140. package/resources/customizations/.github/agents/commit-steward.agent.md +1 -1
  141. package/resources/customizations/.github/agents/csharp-atomic-executor.agent.md +14 -14
  142. package/resources/customizations/.github/agents/csharp-atomic-planning.agent.md +2 -2
  143. package/resources/customizations/.github/agents/csharp-orchestrator.agent.md +4 -4
  144. package/resources/customizations/.github/agents/csharp-typed-engineer.agent.md +19 -22
  145. package/resources/customizations/.github/agents/epic-review.agent.md +1 -1
  146. package/resources/customizations/.github/agents/gpt-5-beast-mode.agent.md +3 -3
  147. package/resources/customizations/.github/agents/orchestrator.agent.md +8 -8
  148. package/resources/customizations/.github/agents/powershell-atomic-executor.agent.md +12 -12
  149. package/resources/customizations/.github/agents/powershell-atomic-planning.agent.md +4 -4
  150. package/resources/customizations/.github/agents/powershell-orchestrator.agent.md +6 -6
  151. package/resources/customizations/.github/agents/powershell-typed-engineer.agent.md +21 -24
  152. package/resources/customizations/.github/agents/pytest-unit-test-coding.agent.md +13 -17
  153. package/resources/customizations/.github/agents/python-atomic-executor.agent.md +11 -11
  154. package/resources/customizations/.github/agents/python-atomic-planning.agent.md +2 -2
  155. package/resources/customizations/.github/agents/python-execution-only-typed.agent.md +14 -17
  156. package/resources/customizations/.github/agents/python-orchestrator.agent.md +7 -7
  157. package/resources/customizations/.github/agents/python-typed-engineer.agent.md +17 -20
  158. package/resources/customizations/.github/agents/staged-review.agent.md +2 -2
  159. package/resources/customizations/.github/agents/tdd-green.agent.md +1 -1
  160. package/resources/customizations/.github/agents/tdd-red.agent.md +3 -3
  161. package/resources/customizations/.github/agents/tdd-refactor.agent.md +2 -2
  162. package/resources/customizations/.github/agents/typescript-engineer.agent.md +3 -3
  163. package/resources/customizations/.github/codex/execute-hard-lock.prompt.md +3 -3
  164. package/resources/customizations/.github/instructions/general-code-change.instructions.md +1 -1
  165. package/resources/customizations/.github/instructions/powershell-unit-test.instructions.md +1 -1
  166. package/resources/customizations/.github/instructions/python-code-change.instructions.md +5 -5
  167. package/resources/customizations/.github/instructions/python-suppressions.instructions.md +3 -3
  168. package/resources/customizations/.github/instructions/python-unit-test.instructions.md +1 -1
  169. package/resources/customizations/.github/prompts/execute-hard-lock.prompt.md +2 -2
  170. package/resources/customizations/.github/prompts/generate-commit-message-repo.prompt.md +2 -2
  171. package/resources/customizations/.github/prompts/remediate-comments.prompt.md +2 -2
  172. package/resources/customizations/.github/prompts/review-feature.prompt.md +1 -1
  173. package/resources/customizations/.github/skills/atomic-plan-contract/SKILL.md +8 -12
  174. package/resources/customizations/.github/skills/execution-environment/SKILL.md +31 -16
  175. package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +15 -2
  176. package/resources/feature-templates/bug/plan.yyyy-MM-ddTHH-mm.md +4 -4
  177. package/resources/feature-templates/feature/plan.yyyy-MM-ddTHH-mm.md +3 -3
  178. package/resources/feature-templates/refactor/plan.yyyy-MM-ddTHH-mm.md +2 -2
  179. package/resources/powershell/PoshQC/PoshQC.ScanConfig.psm1 +3 -1
  180. package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +14 -12
  181. package/resources/powershell/PoshQC/PoshQC.psm1 +3 -3
  182. package/resources/powershell/PoshQC/README.md +8 -8
  183. package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +2 -2
  184. package/resources/templates/policy_audit/AGENTS.md +9 -10
  185. package/resources/templates/policy_audit/policy-audit.yyyy-MM-ddTHH-mm.md +19 -20
@@ -66,7 +66,7 @@ These invariants apply only when the checkpoint contains a top-level `remediatio
66
66
 
67
67
  1. **Non-empty `plan_path`.** Each cycle's `plan_path` must be a non-empty string. A missing value, a non-string value, or an empty/whitespace-only string is a malformed cycle.
68
68
 
69
- 2. **Execution requires cleared preflight.** A cycle's `execution_status` may be in `{in_progress, complete, failed}` only when that cycle's `preflight.final_status` is exactly `'clear'`. Any other preflight status with one of those execution statuses is a malformed cycle (execution was recorded before preflight cleared).
69
+ 2. **Execution requires cleared preflight.** A cycle's `execution_status` may be in `{in_progress, complete, failed}` only when that cycle's `preflight.final_status` is exactly `'clear'`. Any other preflight status with one of those execution statuses is a malformed cycle (execution was recorded before preflight cleared). The invariant does not apply to a cycle whose `remediation_path` is exactly the string `light`, compared ordinally, because a light cycle runs no preflight; invariant 8 governs that cycle.
70
70
 
71
71
  3. **Exit gate requires zero blocking findings.** When a cycle's `exit_condition_met == true`, its `blocking_count` must be `0`. A non-zero `blocking_count` with `exit_condition_met == true` is a malformed cycle (the exit gate was marked satisfied while blocking findings remained).
72
72
 
@@ -78,6 +78,17 @@ These invariants apply only when the checkpoint contains a top-level `remediatio
78
78
 
79
79
  7. **`completed_attempts` counts completed attempts (R7).** When `remediation_loop.completed_attempts` is present, it must be a non-negative integer (not a boolean) equal to the number of object cycles whose `candidate_applied` is `true` (zero when `cycles` is absent or not a list), and any other value is a malformed loop.
80
80
 
81
+ 8. **Light remediation (issue #1097).** When a cycle object carries `remediation_path`, the rules below run in the accounting stage, after the R7 checks, per cycle in order, with byte-identical messages in `scripts/dev_tools/_orchestrator_state_light_cycle.py`, `extensions/drm-copilot/src/lib/validate/orchestrator-state-light-cycle.ts`, and `Get-RemediationLightCycleError` in `.claude/lib/orchestrator-state/OrchestratorStateRemediationAccounting.psm1`, pinned by the corpus `tests/fixtures/orchestrator_state_remediation_loop/`. A cycle without the key reaches none of them, so every existing checkpoint validates as before. `scope` on a finding is read only by these rules.
82
+ 1. A value other than exactly `light` or `full`, null included: `Checkpoint remediation cycle #N remediation_path must be light or full.` Nothing further runs for the cycle, and nothing further runs for `full`.
83
+ 2. A `preflight` key, whatever its value: `Checkpoint remediation cycle #N remediation_path is light but the cycle carries preflight.`
84
+ 3. `opened_by_review` absent, or not naming a `REMEDIATION_REQUIRED` outcome by the R11 predicate: `Checkpoint remediation cycle #N remediation_path is light but opened_by_review does not name its opening review.` Rules 4 to 6 are then skipped.
85
+ 4. More than 3 findings in that outcome (a non-list `findings` value counts as empty): `Checkpoint remediation cycle #N remediation_path is light but its opening review has M findings; the limit is 3.`
86
+ 5. Per finding K whose `remediability` is not exactly `autonomous`, a non-object finding included: `Checkpoint remediation cycle #N remediation_path is light but finding #K is not autonomous.`
87
+ 6. Per finding K whose `scope` is not exactly `contained`, absent included: `Checkpoint remediation cycle #N remediation_path is light but finding #K scope is not contained.`
88
+ 7. The immediately prior list element is an object whose `remediation_path` is exactly `light`: `Checkpoint remediation cycle #N remediation_path is light but the prior cycle is light.`
89
+
90
+ Route (D9): the installed MCP validator applies invariant 8 only after the extension release that carries it is installed. Until then, a Claude run validates a light checkpoint through the repository-local Python CLI, and on Codex, whose completion boundary is the installed MCP validator, the light path is unavailable.
91
+
81
92
  ## Invariants (remediation_loop.review_outcomes)
82
93
 
83
94
  These invariants apply only when `remediation_loop` contains a `review_outcomes` key. The orchestrator appends one entry per review, including a `PASS` review, in the shape `{"verdict": <verdict>, "findings": [{"remediability": <class>}, ...]}`, where `findings` lists the review's blocking findings only. A halt or wait verdict records no remediation cycle.
@@ -109,6 +120,10 @@ Derivation order. The verdict is a pure function of the findings' classes, evalu
109
120
 
110
121
  3. **Verdict matches its findings (R10).** When an outcome passes the membership checks, its `verdict` must equal the verdict that the derivation order yields for its findings' classes. A mismatch is a malformed outcome.
111
122
 
123
+ ## Concurrent-Review Key (review_mode)
124
+
125
+ The top-level checkpoint key `review_mode` selects the concurrent run sequence. Only the exact string `concurrent`, compared ordinally, activates it; an absent key, `null`, `sequential`, a case variant, a number, and every other value mean sequential. Under the key, each `remediation_loop.review_outcomes[]` entry carries `head_sha`, the full lowercase head the review ran against. `## Concurrent Review and CI (review_mode)` in `.agents/skills/orchestrate/SKILL.md` defines the run sequence.
126
+
112
127
  ## Human-Interaction Scope and Backward Compatibility
113
128
 
114
129
  These invariants apply only when the checkpoint contains a top-level `human_interaction` block. A checkpoint with no `human_interaction` key (the existing checkpoint shape) is unaffected: it validates exactly as before and produces no new errors. The invariants are additive and support the autonomous-execution mandate documented in `.agents/skills/orchestrate/SKILL.md`.
@@ -374,14 +374,14 @@ Required behavior:
374
374
  in deterministic filename order, including timestamped scaffolded plans.
375
375
  - The planning route MUST be `atomic-planner -> atomic-executor` for preflight validation.
376
376
  - The planner MUST update `${plan-path}` in place and MUST NOT create additional `plan.*.md` files for revisions.
377
- - The approved plan MUST include explicit Phase 0 baseline evidence tasks and explicit final-QA evidence or coverage tasks for each language in scope where policy requires them.
377
+ - The approved plan MUST include explicit Phase 0 static baseline evidence tasks and explicit final-QA evidence or coverage tasks for each language in scope where policy requires them.
378
378
  - Do not mark Step 7 complete until delegate output includes both a concrete `plan-path` and final `PREFLIGHT: ALL CLEAR`.
379
379
  - Do not perform planning locally when this delegation cannot be started; set `step7_status` to `blocked`, set `blocked_reason`, and stop.
380
380
  - Record a delegation receipt and set `step7_status` to `verified` only after delegate output and validator checks pass.
381
381
  9. Spawn `atomic-executor` to execute the approved plan.
382
382
  Hard enforcement for Step 8:
383
- - Do not mark Step 8 complete until execution output includes execution summary, QA summary, lint/type/test/coverage deltas, and numeric baseline/post/new-code coverage metrics where policy requires them.
384
- - Do not accept PASS execution outcomes when required baseline or final-QA artifacts are missing, when checklist state is not backed by artifacts, or when coverage-bearing plan tasks remain unverified.
383
+ - Do not mark Step 8 complete until execution output includes execution summary, QA summary, lint and type-check deltas, and numeric per-file coverage from the single gate run where policy requires them.
384
+ - Do not accept PASS execution outcomes when required baseline or final-QA artifacts are missing, when checklist state is not backed by artifacts, or when coverage plan tasks remain unverified.
385
385
  - Do not perform execution locally when this delegation cannot be started; set `step8_status` to `blocked`, set `blocked_reason`, and stop.
386
386
  - Record a delegation receipt and set `step8_status` to `verified` only after delegate output and validator checks pass.
387
387
  10. Spawn `feature-reviewer` for post-implementation review.
@@ -12,7 +12,7 @@ This rule file summarizes the PowerShell-specific policies for this repository.
12
12
  1. **Formatting — Invoke-Formatter**: Format all PowerShell files via PoshQC. MCP command: `mcp__drm-copilot__run_poshqc_format`
13
13
  2. **Linting — PSScriptAnalyzer**: Run PoshQC analyzer with repo settings. MCP command: `mcp__drm-copilot__run_poshqc_analyze`. Optional autofix: `mcp__drm-copilot__run_poshqc_analyze_autofix`
14
14
  3. **Type checking**: Not applicable for PowerShell; skip to testing.
15
- 4. **Testing — Pester (v5.x)**: Run tests via MCP. MCP command: `mcp__drm-copilot__run_poshqc_test`. Use repo config at `scripts/powershell/PoshQC/settings/pester.runsettings.psd1`.
15
+ 4. **Testing — Pester (v6.x)**: Run tests via MCP. MCP command: `mcp__drm-copilot__run_poshqc_test`. Use repo config at `scripts/powershell/PoshQC/settings/pester.runsettings.psd1`.
16
16
 
17
17
  Run the toolchain in order: format → analyze → test. Restart from step 1 if any step fails or changes files. Use the MCP server functions; do not substitute VS Code task wrappers.
18
18
 
@@ -49,7 +49,7 @@ Introduce the smallest seam that enables reliable mocking. Apply these options i
49
49
 
50
50
  ## Testing Standards
51
51
 
52
- - Use **Pester** (v5.x) as the test framework.
52
+ - Use **Pester** (v6.x) as the test framework.
53
53
  - Organize tests to mirror code structure (e.g., `tests/scripts/dev-tools/ScriptName.Tests.ps1`).
54
54
  - Name test files `*.Tests.ps1`.
55
55
  - Use `Describe`/`Context`/`It` blocks; one behavior per `It`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: powershell-qa-gate
3
- description: Final QA gate for PowerShell changes. Runs PoshQC formatting, analysis, and testing with coverage where enforced; compares a captured baseline, enforces zero-regression deltas, and produces the required reporting block before completion.
3
+ description: Final QA gate for PowerShell changes. Runs PoshQC formatting, analysis, and testing with coverage where enforced; compares static results to the static baseline, reads tests and coverage from the single gate run, and reports before completion.
4
4
  ---
5
5
 
6
6
  # PowerShell QA Gate
@@ -12,14 +12,14 @@ Canonical procedure for the Phase D final quality gate that every PowerShell cha
12
12
  Use this skill when:
13
13
 
14
14
  - `powershell-typed-engineer` is about to declare a change complete.
15
- - An executor has finished applying a planned batch and must verify zero regressions against the baseline captured in Phase A.
15
+ - An executor has finished applying a planned batch and must verify the static tools against the static baseline recorded in Phase A, and the tests in the single gate run.
16
16
  - A reviewer needs to confirm the toolchain was actually run and produced a clean pass.
17
17
 
18
18
  ## Required Inputs
19
19
 
20
20
  Before invoking this gate, the agent must have:
21
21
 
22
- - a baseline record produced in Phase A, containing PSScriptAnalyzer findings, Pester pass/fail status, and per-file coverage status for the in-scope files,
22
+ - a static baseline record produced in Phase A, containing PSScriptAnalyzer findings for the in-scope files,
23
23
  - the exact list of touched production and test files,
24
24
  - a clean working tree (all planned edits committed to the working copy).
25
25
 
@@ -29,39 +29,38 @@ Run the full toolchain in this exact order. If any step fails or modifies files,
29
29
 
30
30
  1. `mcp__drm-copilot__run_poshqc_format`
31
31
  2. `mcp__drm-copilot__run_poshqc_analyze`
32
- 3. `mcp__drm-copilot__run_poshqc_test`
33
- 4. Coverage check (when enforced by task/repo flow) — use the Pester coverage output from step 3 or the repo coverage task.
32
+ 3. One `Invoke-PoshQCParallelTest` run, through the route in the `execution-environment` brief. Read `ExitCode` first.
33
+ 4. Coverage check (when enforced by task/repo flow) — use the Pester coverage output of the run in step 3.
34
34
 
35
35
  If the environment prevents running any tool, stop and report the change as **unverified**. Do not declare completion.
36
36
 
37
- ## Delta Requirements (Zero-Regression Hard Gate)
37
+ ## Gate Requirements (Hard Gate)
38
38
 
39
- Compare the final results to the Phase A baseline. All of the following must hold:
39
+ Compare the final static tool results to the static baseline recorded in Phase A, and read test and coverage results from the single gate run. All of the following must hold:
40
40
 
41
41
  - **PSScriptAnalyzer delta**: 0 new findings across the repository.
42
- - **Pester delta**: 0 new failing tests.
43
- - **Per-file coverage delta**: coverage for every touched file is greater than or equal to the baseline for that file.
44
- - **Overall coverage delta** (when the repo enforces it): overall coverage is greater than or equal to the baseline.
42
+ - **Pester gate**: zero failures in the single gate run.
43
+ - **Per-file coverage**: every changed file meets the coverage thresholds, read from the single gate run, and new behavior is tested.
45
44
  - **New modules, classes, or methods**: coverage >= 90% for each new unit introduced in the batch.
46
45
 
47
- If any delta check fails, the agent must revert or fix immediately and rerun the full toolchain. Do not proceed to reporting until all deltas are clean.
46
+ If any check fails, the agent must revert or fix immediately and rerun the full toolchain. Do not proceed to reporting until all checks are clean.
48
47
 
49
48
  ## Required Reporting Block
50
49
 
51
50
  Every completion response must include the following sections:
52
51
 
53
52
  1. **Scope** — exact file list touched in this change.
54
- 2. **Baseline** — PSScriptAnalyzer, Pester, and coverage status recorded in Phase A.
53
+ 2. **Baseline** — PSScriptAnalyzer findings recorded in Phase A.
55
54
  3. **Plan** — design and test-strategy summary, referencing the approved plan, including proposed script/module structure, minimal DI seams, Pester scenario-level test strategy, and external executable wrapper mock strategy.
56
55
  4. **Diffs** — patch-style or full-file replacements for scoped files only.
57
- 5. **QA Gate Results** — PSScriptAnalyzer delta, failing-tests delta, per-file coverage delta, and overall coverage delta when applicable. If any step could not be run, mark the corresponding line **unverified** and state why.
56
+ 5. **QA Gate Results** — PSScriptAnalyzer delta, failures in the single gate run, and per-file coverage against the thresholds. If any step could not be run, mark the corresponding line **unverified** and state why.
58
57
 
59
58
  ## Evidence Storage
60
59
 
61
60
  Persist toolchain output according to `evidence-and-timestamp-conventions`:
62
61
 
63
- - store baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
64
- - store post-change outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
62
+ - store static baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
63
+ - store final gate outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
65
64
  - use ISO-8601 UTC timestamps in folder names.
66
65
 
67
66
  This location is canonical per evidence-and-timestamp-conventions and is not overridable.
@@ -73,5 +72,5 @@ The evidence paths must be referenced in the agent's completion message to satis
73
72
 
74
73
  - Do not disable, skip, or narrow any step of the toolchain to reach a clean result.
75
74
  - Do not add PSScriptAnalyzer rule suppressions (`[Diagnostics.CodeAnalysis.SuppressMessageAttribute]` or `PSScriptAnalyzer` suppression comments) or Pester `-Skip` / `-Pending` to mask new findings introduced by the change.
76
- - Do not report success based on partial or targeted runs alone. Targeted runs are allowed mid-batch, but the final gate requires a full-repo pass.
75
+ - Do not report success based on partial or targeted runs. A focused run of one test file to debug a specific failure is debugging only; it is never a gate or evidence, and the final gate is the single gate run.
77
76
  - Do not mock `git`, `gh`, `actionlint`, or other executables directly; mock the wrapper function (for example `Invoke-GitExe`) per `.agents/skills/powershell/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: python-qa-gate
3
- description: Final QA gate for Python changes. Runs Black, Ruff, Pyright, and Pytest; compares a captured baseline, enforces zero-regression deltas, and produces the required reporting block before completion.
3
+ description: Final QA gate for Python changes. Runs Black, Ruff, Pyright, and Pytest; compares static results to the static baseline, reads tests and coverage from the single gate run, and reports before completion.
4
4
  ---
5
5
 
6
6
  # Python QA Gate
@@ -12,14 +12,14 @@ Canonical procedure for the Phase D final quality gate that every Python change
12
12
  Use this skill when:
13
13
 
14
14
  - `python-typed-engineer` is about to declare a change complete.
15
- - An executor has finished applying a planned batch and must verify zero regressions against the baseline captured in Phase A.
15
+ - An executor has finished applying a planned batch and must verify the static tools against the static baseline recorded in Phase A, and the tests in the single gate run.
16
16
  - A reviewer needs to confirm the toolchain was actually run and produced a clean pass.
17
17
 
18
18
  ## Required Inputs
19
19
 
20
20
  Before invoking this gate, the agent must have:
21
21
 
22
- - a baseline record produced in Phase A, containing Ruff, Pyright, Pytest, and per-file coverage status for the in-scope files,
22
+ - a static baseline record produced in Phase A, containing Ruff and Pyright findings for the in-scope files,
23
23
  - the exact list of touched production and test files,
24
24
  - a clean working tree (all planned edits committed to the working copy).
25
25
 
@@ -30,39 +30,38 @@ Run the full toolchain in this exact order. If any step fails or modifies files,
30
30
  1. `poetry run black .`
31
31
  2. `poetry run ruff check .`
32
32
  3. `poetry run pyright`
33
- 4. `poetry run pytest --cov --cov-report=term-missing`
33
+ 4. `poetry run pytest -n auto --cov-branch --cov-report=term-missing --cov`
34
34
 
35
35
  If the environment prevents running any tool, stop and report the change as **unverified**. Do not declare completion.
36
36
 
37
- ## Delta Requirements (Zero-Regression Hard Gate)
37
+ ## Gate Requirements (Hard Gate)
38
38
 
39
- Compare the final results to the Phase A baseline. All of the following must hold:
39
+ Compare the final static tool results to the static baseline recorded in Phase A, and read test and coverage results from the single gate run. All of the following must hold:
40
40
 
41
41
  - **Ruff delta**: 0 new findings across the repository.
42
42
  - **Pyright delta**: 0 new diagnostics across the repository.
43
- - **Pytest delta**: 0 new failing tests.
44
- - **Per-file coverage delta**: coverage for every touched file is greater than or equal to the baseline for that file.
45
- - **Overall coverage delta** (when the repo enforces it): overall coverage is greater than or equal to the baseline.
43
+ - **Pytest gate**: zero failures in the single gate run.
44
+ - **Per-file coverage**: every changed file meets the coverage thresholds, read from the single gate run, and new behavior is tested.
46
45
  - **New modules, classes, or methods**: coverage >= 90% for each new unit introduced in the batch.
47
46
 
48
- If any delta check fails, the agent must revert or fix immediately and rerun the full toolchain. Do not proceed to reporting until all deltas are clean.
47
+ If any check fails, the agent must revert or fix immediately and rerun the full toolchain. Do not proceed to reporting until all checks are clean.
49
48
 
50
49
  ## Required Reporting Block
51
50
 
52
51
  Every completion response must include the following sections:
53
52
 
54
53
  1. **Scope** — exact file list touched in this change.
55
- 2. **Baseline** — Ruff, Pyright, Pytest, and coverage status recorded in Phase A.
54
+ 2. **Baseline** — Ruff and Pyright findings recorded in Phase A.
56
55
  3. **Plan** — design and test-strategy summary, referencing the approved plan.
57
56
  4. **Diffs** — patch-style or full-file replacements for scoped files only.
58
- 5. **QA Gate Results** — Ruff, Pyright, Pytest, and coverage deltas. If any step could not be run, mark the corresponding line **unverified** and state why.
57
+ 5. **QA Gate Results** — Ruff and Pyright deltas, failures in the single gate run, and per-file coverage against the thresholds. If any step could not be run, mark the corresponding line **unverified** and state why.
59
58
 
60
59
  ## Evidence Storage
61
60
 
62
61
  Persist toolchain output according to `evidence-and-timestamp-conventions`:
63
62
 
64
- - store baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
65
- - store post-change outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
63
+ - store static baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
64
+ - store final gate outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
66
65
  - use ISO-8601 UTC timestamps in folder names.
67
66
 
68
67
  This location is canonical per evidence-and-timestamp-conventions and is not overridable.
@@ -74,4 +73,4 @@ The evidence paths must be referenced in the agent's completion message to satis
74
73
 
75
74
  - Do not disable, skip, or narrow any step of the toolchain to reach a clean result.
76
75
  - Do not add Ruff `noqa`, Pyright `# type: ignore`, or test skips to suppress new findings introduced by the change.
77
- - Do not report success based on partial or targeted runs alone. Targeted runs are allowed mid-batch, but the final gate requires a full-repo pass.
76
+ - Do not report success based on partial or targeted runs. A focused run of one test file to debug a specific failure is debugging only; it is never a gate or evidence, and the final gate is the single gate run.
@@ -180,6 +180,8 @@ Required tools:
180
180
  - `run_poshqc_analyze_autofix`
181
181
  - `run_poshqc_test`
182
182
 
183
+ `run_poshqc_test` is not a validation gate. The Pester gate is one `Invoke-PoshQCParallelTest` run, through the route in the `execution-environment` skill.
184
+
183
185
  When a workflow requires PoshQC execution through MCP, use only these tools. If the required tool is unavailable or fails, stop.
184
186
 
185
187
  ## Output Requirements
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: csharp-qa-gate
3
- description: Final QA gate for C# changes. Executes the full CSharpier -> .NET Analyzers -> Nullable Analysis -> MSTest toolchain, compares against a captured baseline, enforces zero-regression deltas, and produces the required reporting block before the agent declares the change complete.
3
+ description: Final QA gate for C# changes. Executes the full CSharpier -> .NET Analyzers -> Nullable Analysis -> MSTest toolchain, compares static tool results against the static baseline, reads test and coverage results from the single gate run, and produces the required reporting block before the agent declares the change complete.
4
4
  ---
5
5
 
6
6
  # C# QA Gate
@@ -14,14 +14,14 @@ Canonical procedure for the Phase D final quality gate that every C# change must
14
14
  Use this skill when:
15
15
 
16
16
  - `csharp-typed-engineer` is about to declare a change complete.
17
- - An executor has finished applying a planned batch and must verify zero regressions against the baseline captured in Phase A.
17
+ - An executor has finished applying a planned batch and must verify the static tools against the static baseline recorded in Phase A, and the tests in the single gate run.
18
18
  - A reviewer needs to confirm the toolchain was actually run and produced a clean pass.
19
19
 
20
20
  ## Required Inputs
21
21
 
22
22
  Before invoking this gate, the agent must have:
23
23
 
24
- - a baseline record produced in Phase A, containing analyzer findings, compiler/nullable diagnostics, MSTest pass/fail status, and per-file coverage status for the in-scope files,
24
+ - a static baseline record produced in Phase A, containing analyzer findings and compiler/nullable diagnostics for the in-scope files,
25
25
  - the exact list of touched production and test files,
26
26
  - a clean working tree (all planned edits committed to the working copy).
27
27
 
@@ -38,35 +38,34 @@ Run the full toolchain in this exact order. If any step fails or modifies files,
38
38
 
39
39
  If the environment prevents running any tool, stop and report the change as **unverified**. Do not declare completion.
40
40
 
41
- ## Delta Requirements (Zero-Regression Hard Gate)
41
+ ## Gate Requirements (Hard Gate)
42
42
 
43
- Compare the final results to the Phase A baseline. All of the following must hold:
43
+ Compare the final static tool results to the static baseline recorded in Phase A, and read test and coverage results from the single gate run. All of the following must hold:
44
44
 
45
45
  - **Analyzer delta**: 0 new findings across the repository.
46
46
  - **Compiler / nullable delta**: 0 new diagnostics across the repository.
47
- - **MSTest delta**: 0 new failing tests.
48
- - **Per-file coverage delta**: coverage for every touched file is greater than or equal to the baseline for that file.
49
- - **Overall coverage delta** (when the repo enforces it): overall coverage is greater than or equal to the baseline.
47
+ - **MSTest gate**: zero failures in the single gate run.
48
+ - **Per-file coverage**: every changed file meets the coverage thresholds, read from the single gate run, and new behavior is tested.
50
49
  - **New modules, classes, or methods**: coverage >= 90% for each new unit introduced in the batch.
51
50
 
52
- If any delta check fails, the agent must revert or fix immediately and rerun the full toolchain. Do not proceed to reporting until all deltas are clean.
51
+ If any check fails, the agent must revert or fix immediately and rerun the full toolchain. Do not proceed to reporting until all checks are clean.
53
52
 
54
53
  ## Required Reporting Block
55
54
 
56
55
  Every completion response must include the following sections:
57
56
 
58
57
  1. **Scope** — exact file list touched in this change.
59
- 2. **Baseline** — analyzer, compiler/nullable, MSTest, and coverage status recorded in Phase A.
58
+ 2. **Baseline** — analyzer and compiler/nullable findings recorded in Phase A.
60
59
  3. **Plan** — design and test-strategy summary, referencing the approved plan.
61
60
  4. **Diffs** — patch-style or full-file replacements for scoped files only.
62
- 5. **QA Gate Results** — analyzer, compiler/nullable, MSTest, and coverage deltas. If any step could not be run, mark the corresponding line **unverified** and state why.
61
+ 5. **QA Gate Results** — analyzer and compiler/nullable deltas, failures in the single gate run, and per-file coverage against the thresholds. If any step could not be run, mark the corresponding line **unverified** and state why.
63
62
 
64
63
  ## Evidence Storage
65
64
 
66
65
  Persist toolchain output according to `evidence-and-timestamp-conventions`:
67
66
 
68
- - store baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
69
- - store post-change outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
67
+ - store static baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
68
+ - store final gate outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
70
69
  - use ISO-8601 UTC timestamps in folder names.
71
70
 
72
71
  This location is canonical per evidence-and-timestamp-conventions and is not overridable.
@@ -78,4 +77,4 @@ The evidence paths must be referenced in the agent's completion message to satis
78
77
 
79
78
  - Do not disable, skip, or narrow any step of the toolchain to reach a clean result.
80
79
  - Do not add analyzer suppressions, `#pragma warning disable`, `#nullable disable`, or test `[Ignore]` attributes to suppress new findings introduced by the change.
81
- - Do not report success based on partial or targeted runs alone. Targeted runs are allowed mid-batch, but the final gate requires a full-solution pass.
80
+ - Do not report success based on partial or targeted runs. A focused run of one test file to debug a specific failure is debugging only; it is never a gate or evidence, and the final gate is the single gate run.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: invoke-csharp-engineer
3
- description: Invoke the csharp-typed-engineer worker to design, implement, and verify C# changes within typed repository boundaries. Applies CSharpier -> .NET Analyzers -> Nullable Analysis -> MSTest toolchain, the 1-3 production-file small-path budget, and zero-regression quality gates.
3
+ description: Invoke the csharp-typed-engineer worker to design, implement, and verify C# changes within typed repository boundaries. Applies CSharpier -> .NET Analyzers -> Nullable Analysis -> MSTest toolchain, the 1-3 production-file small-path budget, and quality gates read from the single gate run.
4
4
  ---
5
5
 
6
6
  # Implement C# Skill
@@ -30,7 +30,7 @@ If the estimated scope exceeds the small-path budget, this skill defers to the o
30
30
  ## Output Paths
31
31
 
32
32
  - C# source and test files within the approved scope.
33
- - Baseline evidence under `<FEATURE>/evidence/baseline/<timestamp>/` and post-change evidence under `<FEATURE>/evidence/qa-gates/<timestamp>/` per `evidence-and-timestamp-conventions`.
33
+ - Static baseline evidence under `<FEATURE>/evidence/baseline/<timestamp>/` and final gate evidence under `<FEATURE>/evidence/qa-gates/<timestamp>/` per `evidence-and-timestamp-conventions`.
34
34
  - This location is canonical per evidence-and-timestamp-conventions and is not overridable. See `.agents/skills/evidence-and-timestamp-conventions/SKILL.md` for the canonical evidence path authority.
35
35
  - Plan artifacts under the active feature folder when the task is feature-scoped.
36
36
 
@@ -39,10 +39,10 @@ If the estimated scope exceeds the small-path budget, this skill defers to the o
39
39
  The worker must return the following reporting block:
40
40
 
41
41
  1. Scope (exact file list).
42
- 2. Baseline (CSharpier, .NET Analyzers, Nullable Analysis, MSTest, coverage status).
42
+ 2. Baseline (CSharpier, .NET Analyzers, and Nullable Analysis findings).
43
43
  3. Plan (design and test strategy).
44
44
  4. Diffs (patch-style or full-file replacements).
45
- 5. QA Gate Results (CSharpier, .NET Analyzers, Nullable Analysis, MSTest, and coverage deltas, or clearly marked **unverified**).
45
+ 5. QA Gate Results (CSharpier, .NET Analyzers, and Nullable Analysis deltas, failures in the single gate run, and per-file coverage against the thresholds, or clearly marked **unverified**).
46
46
 
47
47
  ## Worker Routing
48
48
 
@@ -89,9 +89,9 @@ For each task:
89
89
 
90
90
  Use the scoped tool patterns for quality gates:
91
91
 
92
- - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest`
92
+ - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest -n auto`
93
93
  - **TypeScript**: `npx prettier`, `npx eslint`, `npx tsc`, `npx jest`
94
- - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_test`, `mcp__drm-copilot__run_poshqc_analyze_autofix`)
94
+ - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_analyze_autofix`), and one `Invoke-PoshQCParallelTest` run as the Pester gate through the `sh` launcher route
95
95
  - **Git**: `git diff`, `git status`, `git log`
96
96
 
97
97
  Run toolchain in order: format, lint, type-check, test. Restart from step 1 if any step fails or changes files.
@@ -122,7 +122,7 @@ When the delegation prompt carries the directive `DIRECTIVE: PREFLIGHT VALIDATIO
122
122
 
123
123
  ## Blocking Protocol
124
124
 
125
- Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. When preflight-blocked:
125
+ Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. A light remediation run has no preflight, and stops the same way before `[P0-T1]` only when a fix task cannot be done at its named location. When preflight-blocked:
126
126
 
127
127
  1. State: `BLOCKED at preflight (before [P0-T1])`.
128
128
  2. Provide a short, concrete explanation of why.
@@ -89,9 +89,9 @@ For each task:
89
89
 
90
90
  Use the scoped tool patterns for quality gates:
91
91
 
92
- - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest`
92
+ - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest -n auto`
93
93
  - **TypeScript**: `npx prettier`, `npx eslint`, `npx tsc`, `npx jest`
94
- - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_test`, `mcp__drm-copilot__run_poshqc_analyze_autofix`)
94
+ - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_analyze_autofix`), and one `Invoke-PoshQCParallelTest` run as the Pester gate through the `sh` launcher route
95
95
  - **Git**: `git diff`, `git status`, `git log`
96
96
 
97
97
  Run toolchain in order: format, lint, type-check, test. Restart from step 1 if any step fails or changes files.
@@ -122,7 +122,7 @@ When the delegation prompt carries the directive `DIRECTIVE: PREFLIGHT VALIDATIO
122
122
 
123
123
  ## Blocking Protocol
124
124
 
125
- Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. When preflight-blocked:
125
+ Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. A light remediation run has no preflight, and stops the same way before `[P0-T1]` only when a fix task cannot be done at its named location. When preflight-blocked:
126
126
 
127
127
  1. State: `BLOCKED at preflight (before [P0-T1])`.
128
128
  2. Provide a short, concrete explanation of why.
@@ -89,9 +89,9 @@ For each task:
89
89
 
90
90
  Use the scoped tool patterns for quality gates:
91
91
 
92
- - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest`
92
+ - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest -n auto`
93
93
  - **TypeScript**: `npx prettier`, `npx eslint`, `npx tsc`, `npx jest`
94
- - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_test`, `mcp__drm-copilot__run_poshqc_analyze_autofix`)
94
+ - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_analyze_autofix`), and one `Invoke-PoshQCParallelTest` run as the Pester gate through the `sh` launcher route
95
95
  - **Git**: `git diff`, `git status`, `git log`
96
96
 
97
97
  Run toolchain in order: format, lint, type-check, test. Restart from step 1 if any step fails or changes files.
@@ -122,7 +122,7 @@ When the delegation prompt carries the directive `DIRECTIVE: PREFLIGHT VALIDATIO
122
122
 
123
123
  ## Blocking Protocol
124
124
 
125
- Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. When preflight-blocked:
125
+ Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. A light remediation run has no preflight, and stops the same way before `[P0-T1]` only when a fix task cannot be done at its named location. When preflight-blocked:
126
126
 
127
127
  1. State: `BLOCKED at preflight (before [P0-T1])`.
128
128
  2. Provide a short, concrete explanation of why.
@@ -89,9 +89,9 @@ For each task:
89
89
 
90
90
  Use the scoped tool patterns for quality gates:
91
91
 
92
- - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest`
92
+ - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest -n auto`
93
93
  - **TypeScript**: `npx prettier`, `npx eslint`, `npx tsc`, `npx jest`
94
- - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_test`, `mcp__drm-copilot__run_poshqc_analyze_autofix`)
94
+ - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_analyze_autofix`), and one `Invoke-PoshQCParallelTest` run as the Pester gate through the `sh` launcher route
95
95
  - **Git**: `git diff`, `git status`, `git log`
96
96
 
97
97
  Run toolchain in order: format, lint, type-check, test. Restart from step 1 if any step fails or changes files.
@@ -122,7 +122,7 @@ When the delegation prompt carries the directive `DIRECTIVE: PREFLIGHT VALIDATIO
122
122
 
123
123
  ## Blocking Protocol
124
124
 
125
- Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. When preflight-blocked:
125
+ Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. A light remediation run has no preflight, and stops the same way before `[P0-T1]` only when a fix task cannot be done at its named location. When preflight-blocked:
126
126
 
127
127
  1. State: `BLOCKED at preflight (before [P0-T1])`.
128
128
  2. Provide a short, concrete explanation of why.
@@ -89,9 +89,9 @@ For each task:
89
89
 
90
90
  Use the scoped tool patterns for quality gates:
91
91
 
92
- - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest`
92
+ - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest -n auto`
93
93
  - **TypeScript**: `npx prettier`, `npx eslint`, `npx tsc`, `npx jest`
94
- - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_test`, `mcp__drm-copilot__run_poshqc_analyze_autofix`)
94
+ - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_analyze_autofix`), and one `Invoke-PoshQCParallelTest` run as the Pester gate through the `sh` launcher route
95
95
  - **Git**: `git diff`, `git status`, `git log`
96
96
 
97
97
  Run toolchain in order: format, lint, type-check, test. Restart from step 1 if any step fails or changes files.
@@ -122,7 +122,7 @@ When the delegation prompt carries the directive `DIRECTIVE: PREFLIGHT VALIDATIO
122
122
 
123
123
  ## Blocking Protocol
124
124
 
125
- Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. When preflight-blocked:
125
+ Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. A light remediation run has no preflight, and stops the same way before `[P0-T1]` only when a fix task cannot be done at its named location. When preflight-blocked:
126
126
 
127
127
  1. State: `BLOCKED at preflight (before [P0-T1])`.
128
128
  2. Provide a short, concrete explanation of why.
@@ -89,9 +89,9 @@ For each task:
89
89
 
90
90
  Use the scoped tool patterns for quality gates:
91
91
 
92
- - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest`
92
+ - **Python**: `poetry run black`, `poetry run ruff`, `poetry run pyright`, `poetry run pytest -n auto`
93
93
  - **TypeScript**: `npx prettier`, `npx eslint`, `npx tsc`, `npx jest`
94
- - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_test`, `mcp__drm-copilot__run_poshqc_analyze_autofix`)
94
+ - **PowerShell**: MCP server functions (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp__drm-copilot__run_poshqc_analyze_autofix`), and one `Invoke-PoshQCParallelTest` run as the Pester gate through the `sh` launcher route
95
95
  - **Git**: `git diff`, `git status`, `git log`
96
96
 
97
97
  Run toolchain in order: format, lint, type-check, test. Restart from step 1 if any step fails or changes files.
@@ -122,7 +122,7 @@ When the delegation prompt carries the directive `DIRECTIVE: PREFLIGHT VALIDATIO
122
122
 
123
123
  ## Blocking Protocol
124
124
 
125
- Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. When preflight-blocked:
125
+ Blocking is permitted only during preflight validation (before `[P0-T1]`), including the preflight that opens a combined preflight-and-execute run of a proportionate remediation cycle. A light remediation run has no preflight, and stops the same way before `[P0-T1]` only when a fix task cannot be done at its named location. When preflight-blocked:
126
126
 
127
127
  1. State: `BLOCKED at preflight (before [P0-T1])`.
128
128
  2. Provide a short, concrete explanation of why.
@@ -58,14 +58,14 @@ Generate plans using the atomic plan contract defined in the `atomic-plan-contra
58
58
  - Phase headings: `### Phase N — <Title>`
59
59
  - Task IDs: `- [ ] [P#-T#] <description>`
60
60
  - Sequential task numbering within each phase
61
- - Phase 0: baseline capture (repo-policy reading tasks + language-specific toolchain baselines)
61
+ - Phase 0: baseline capture (repo-policy reading tasks + language-specific static tool baselines; no test suite runs)
62
62
  - Final phase: full QA loop for each applicable language
63
63
 
64
64
  ## Requirements
65
65
 
66
66
  1. Every task must be atomic: one binary outcome, one verifiable acceptance criterion.
67
67
  2. Every task must include explicit file paths.
68
- 3. Include explicit coverage-bearing baseline and final-QA testing tasks for each language where policy requires coverage.
68
+ 3. Include explicit static baseline tasks and final-QA coverage tasks for each language where policy requires coverage, with per-file coverage read from the single gate run.
69
69
  4. Do not add bucket tasks (e.g., "Refactor module" or "Write tests") that cannot be completed as a single binary outcome.
70
70
  5. Do not execute implementation; produce the plan only.
71
71
 
@@ -58,14 +58,14 @@ Generate plans using the atomic plan contract defined in the `atomic-plan-contra
58
58
  - Phase headings: `### Phase N — <Title>`
59
59
  - Task IDs: `- [ ] [P#-T#] <description>`
60
60
  - Sequential task numbering within each phase
61
- - Phase 0: baseline capture (repo-policy reading tasks + language-specific toolchain baselines)
61
+ - Phase 0: baseline capture (repo-policy reading tasks + language-specific static tool baselines; no test suite runs)
62
62
  - Final phase: full QA loop for each applicable language
63
63
 
64
64
  ## Requirements
65
65
 
66
66
  1. Every task must be atomic: one binary outcome, one verifiable acceptance criterion.
67
67
  2. Every task must include explicit file paths.
68
- 3. Include explicit coverage-bearing baseline and final-QA testing tasks for each language where policy requires coverage.
68
+ 3. Include explicit static baseline tasks and final-QA coverage tasks for each language where policy requires coverage, with per-file coverage read from the single gate run.
69
69
  4. Do not add bucket tasks (e.g., "Refactor module" or "Write tests") that cannot be completed as a single binary outcome.
70
70
  5. Do not execute implementation; produce the plan only.
71
71
 
@@ -58,14 +58,14 @@ Generate plans using the atomic plan contract defined in the `atomic-plan-contra
58
58
  - Phase headings: `### Phase N — <Title>`
59
59
  - Task IDs: `- [ ] [P#-T#] <description>`
60
60
  - Sequential task numbering within each phase
61
- - Phase 0: baseline capture (repo-policy reading tasks + language-specific toolchain baselines)
61
+ - Phase 0: baseline capture (repo-policy reading tasks + language-specific static tool baselines; no test suite runs)
62
62
  - Final phase: full QA loop for each applicable language
63
63
 
64
64
  ## Requirements
65
65
 
66
66
  1. Every task must be atomic: one binary outcome, one verifiable acceptance criterion.
67
67
  2. Every task must include explicit file paths.
68
- 3. Include explicit coverage-bearing baseline and final-QA testing tasks for each language where policy requires coverage.
68
+ 3. Include explicit static baseline tasks and final-QA coverage tasks for each language where policy requires coverage, with per-file coverage read from the single gate run.
69
69
  4. Do not add bucket tasks (e.g., "Refactor module" or "Write tests") that cannot be completed as a single binary outcome.
70
70
  5. Do not execute implementation; produce the plan only.
71
71
 
@@ -58,14 +58,14 @@ Generate plans using the atomic plan contract defined in the `atomic-plan-contra
58
58
  - Phase headings: `### Phase N — <Title>`
59
59
  - Task IDs: `- [ ] [P#-T#] <description>`
60
60
  - Sequential task numbering within each phase
61
- - Phase 0: baseline capture (repo-policy reading tasks + language-specific toolchain baselines)
61
+ - Phase 0: baseline capture (repo-policy reading tasks + language-specific static tool baselines; no test suite runs)
62
62
  - Final phase: full QA loop for each applicable language
63
63
 
64
64
  ## Requirements
65
65
 
66
66
  1. Every task must be atomic: one binary outcome, one verifiable acceptance criterion.
67
67
  2. Every task must include explicit file paths.
68
- 3. Include explicit coverage-bearing baseline and final-QA testing tasks for each language where policy requires coverage.
68
+ 3. Include explicit static baseline tasks and final-QA coverage tasks for each language where policy requires coverage, with per-file coverage read from the single gate run.
69
69
  4. Do not add bucket tasks (e.g., "Refactor module" or "Write tests") that cannot be completed as a single binary outcome.
70
70
  5. Do not execute implementation; produce the plan only.
71
71
 
@@ -58,14 +58,14 @@ Generate plans using the atomic plan contract defined in the `atomic-plan-contra
58
58
  - Phase headings: `### Phase N — <Title>`
59
59
  - Task IDs: `- [ ] [P#-T#] <description>`
60
60
  - Sequential task numbering within each phase
61
- - Phase 0: baseline capture (repo-policy reading tasks + language-specific toolchain baselines)
61
+ - Phase 0: baseline capture (repo-policy reading tasks + language-specific static tool baselines; no test suite runs)
62
62
  - Final phase: full QA loop for each applicable language
63
63
 
64
64
  ## Requirements
65
65
 
66
66
  1. Every task must be atomic: one binary outcome, one verifiable acceptance criterion.
67
67
  2. Every task must include explicit file paths.
68
- 3. Include explicit coverage-bearing baseline and final-QA testing tasks for each language where policy requires coverage.
68
+ 3. Include explicit static baseline tasks and final-QA coverage tasks for each language where policy requires coverage, with per-file coverage read from the single gate run.
69
69
  4. Do not add bucket tasks (e.g., "Refactor module" or "Write tests") that cannot be completed as a single binary outcome.
70
70
  5. Do not execute implementation; produce the plan only.
71
71