@danmoisan/drm-copilot-mcp 1.1.26 → 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 (159) 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/powershell-typed-engineer.md +7 -7
  9. package/resources/claude-customizations/.claude/agents/python-typed-engineer.md +6 -6
  10. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-review.ps1 +699 -0
  11. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +16 -1
  12. package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage-rules.ps1 +50 -16
  13. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorState.psm1 +6 -1
  14. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateCompletion.psm1 +4 -2
  15. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateCompletionChecks.psm1 +51 -2
  16. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateReceipts.psm1 +5 -2
  17. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateRemediationAccounting.psm1 +116 -4
  18. package/resources/claude-customizations/.claude/rules/csharp.md +8 -8
  19. package/resources/claude-customizations/.claude/rules/orchestrator-state.md +28 -2
  20. package/resources/claude-customizations/.claude/rules/powershell.md +2 -2
  21. package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +8 -12
  22. package/resources/claude-customizations/.claude/skills/csharp-qa-gate/SKILL.md +14 -15
  23. package/resources/claude-customizations/.claude/skills/epic-progress-report/SKILL.md +338 -0
  24. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Logic.ps1 +248 -0
  25. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Metrics.ps1 +232 -0
  26. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Render.ps1 +196 -0
  27. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.State.ps1 +286 -0
  28. package/resources/claude-customizations/.claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.ps1 +475 -0
  29. package/resources/claude-customizations/.claude/skills/execution-environment/SKILL.md +18 -13
  30. package/resources/claude-customizations/.claude/skills/feature-review-workflow/SKILL.md +21 -9
  31. package/resources/claude-customizations/.claude/skills/invoke-csharp-engineer/SKILL.md +5 -5
  32. package/resources/claude-customizations/.claude/skills/invoke-powershell-engineer/SKILL.md +4 -4
  33. package/resources/claude-customizations/.claude/skills/invoke-python-engineer/SKILL.md +4 -4
  34. package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +24 -2
  35. package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +8 -0
  36. package/resources/claude-customizations/.claude/skills/powershell-qa-gate/SKILL.md +16 -17
  37. package/resources/claude-customizations/.claude/skills/python-qa-gate/SKILL.md +15 -16
  38. package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +1 -1
  39. package/resources/claude-customizations/.claude-variants/csharp-legacy/agents/csharp-typed-engineer.md +6 -6
  40. package/resources/claude-customizations/.claude-variants/csharp-legacy/skills/csharp-qa-gate/SKILL.md +13 -14
  41. package/resources/claude-customizations/.claude-variants/csharp-legacy/skills/invoke-csharp-engineer/SKILL.md +4 -4
  42. package/resources/claude-customizations/pack-manifests/core.json +7 -0
  43. package/resources/codex-and-agents-customizations/.agents/skills/atomic-plan-contract/SKILL.md +8 -12
  44. package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +1 -1
  45. package/resources/codex-and-agents-customizations/.agents/skills/csharp-qa-gate/SKILL.md +13 -14
  46. package/resources/codex-and-agents-customizations/.agents/skills/execution-environment/SKILL.md +18 -13
  47. package/resources/codex-and-agents-customizations/.agents/skills/feature-review/SKILL.md +5 -1
  48. package/resources/codex-and-agents-customizations/.agents/skills/feature-review-workflow/SKILL.md +18 -5
  49. package/resources/codex-and-agents-customizations/.agents/skills/invoke-csharp-engineer/SKILL.md +4 -4
  50. package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md +4 -4
  51. package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md +4 -4
  52. package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +24 -2
  53. package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-state/SKILL.md +16 -1
  54. package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +3 -3
  55. package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +2 -2
  56. package/resources/codex-and-agents-customizations/.agents/skills/powershell-qa-gate/SKILL.md +15 -16
  57. package/resources/codex-and-agents-customizations/.agents/skills/python-qa-gate/SKILL.md +14 -15
  58. package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/SKILL.md +2 -0
  59. package/resources/codex-and-agents-customizations/.agents-variants/csharp-legacy/skills/csharp-qa-gate/SKILL.md +13 -14
  60. package/resources/codex-and-agents-customizations/.agents-variants/csharp-legacy/skills/invoke-csharp-engineer/SKILL.md +4 -4
  61. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c1.toml +3 -3
  62. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c2.toml +3 -3
  63. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3-elevated.toml +3 -3
  64. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3.toml +3 -3
  65. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c4.toml +3 -3
  66. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor.toml +3 -3
  67. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c1.toml +2 -2
  68. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c2.toml +2 -2
  69. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3-elevated.toml +2 -2
  70. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3.toml +2 -2
  71. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c4.toml +2 -2
  72. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner.toml +2 -2
  73. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-executor.toml +2 -2
  74. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-planning.toml +1 -1
  75. package/resources/codex-and-agents-customizations/.codex/agents/csharp-orchestrator.toml +1 -1
  76. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c1.toml +6 -6
  77. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c2.toml +6 -6
  78. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3-elevated.toml +6 -6
  79. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3.toml +6 -6
  80. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c4.toml +6 -6
  81. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer.toml +6 -6
  82. package/resources/codex-and-agents-customizations/.codex/agents/feature-review.toml +2 -2
  83. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-executor.toml +2 -2
  84. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-planning.toml +1 -1
  85. package/resources/codex-and-agents-customizations/.codex/agents/powershell-di-unit-test-engineer.toml +1 -1
  86. package/resources/codex-and-agents-customizations/.codex/agents/powershell-orchestrator.toml +1 -1
  87. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c1.toml +7 -7
  88. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c2.toml +7 -7
  89. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3-elevated.toml +7 -7
  90. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3.toml +7 -7
  91. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c4.toml +7 -7
  92. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer.toml +7 -7
  93. package/resources/codex-and-agents-customizations/.codex/agents/pytest-unit-test-coding.toml +1 -1
  94. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-executor.toml +2 -2
  95. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-planning.toml +1 -1
  96. package/resources/codex-and-agents-customizations/.codex/agents/python-execution-only-typed.toml +1 -1
  97. package/resources/codex-and-agents-customizations/.codex/agents/python-orchestrator.toml +1 -1
  98. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c1.toml +6 -6
  99. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c2.toml +6 -6
  100. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3-elevated.toml +6 -6
  101. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3.toml +6 -6
  102. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c4.toml +6 -6
  103. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer.toml +6 -6
  104. package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
  105. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate-review.ps1 +699 -0
  106. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate.ps1 +29 -2
  107. package/resources/codex-and-agents-customizations/.codex/hooks/validate-feature-review-coverage.ps1 +51 -4
  108. package/resources/codex-and-agents-customizations/.codex-variants/csharp-legacy/agents/csharp-typed-engineer.toml +6 -6
  109. package/resources/codex-and-agents-customizations/pack-manifests/core.json +1 -0
  110. package/resources/customizations/.github/agents/5.1-Beast-adjusted.agent.md +1 -1
  111. package/resources/customizations/.github/agents/Powershell DI Unit Test Engineer.agent.md +20 -26
  112. package/resources/customizations/.github/agents/atomic_executor.agent.md +4 -4
  113. package/resources/customizations/.github/agents/atomic_planning.agent.md +4 -4
  114. package/resources/customizations/.github/agents/commentary-remediation.agent.md +1 -1
  115. package/resources/customizations/.github/agents/commit-steward.agent.md +1 -1
  116. package/resources/customizations/.github/agents/csharp-atomic-executor.agent.md +14 -14
  117. package/resources/customizations/.github/agents/csharp-atomic-planning.agent.md +2 -2
  118. package/resources/customizations/.github/agents/csharp-orchestrator.agent.md +4 -4
  119. package/resources/customizations/.github/agents/csharp-typed-engineer.agent.md +19 -22
  120. package/resources/customizations/.github/agents/epic-review.agent.md +1 -1
  121. package/resources/customizations/.github/agents/gpt-5-beast-mode.agent.md +3 -3
  122. package/resources/customizations/.github/agents/orchestrator.agent.md +8 -8
  123. package/resources/customizations/.github/agents/powershell-atomic-executor.agent.md +12 -12
  124. package/resources/customizations/.github/agents/powershell-atomic-planning.agent.md +4 -4
  125. package/resources/customizations/.github/agents/powershell-orchestrator.agent.md +6 -6
  126. package/resources/customizations/.github/agents/powershell-typed-engineer.agent.md +21 -24
  127. package/resources/customizations/.github/agents/pytest-unit-test-coding.agent.md +13 -17
  128. package/resources/customizations/.github/agents/python-atomic-executor.agent.md +11 -11
  129. package/resources/customizations/.github/agents/python-atomic-planning.agent.md +2 -2
  130. package/resources/customizations/.github/agents/python-execution-only-typed.agent.md +14 -17
  131. package/resources/customizations/.github/agents/python-orchestrator.agent.md +7 -7
  132. package/resources/customizations/.github/agents/python-typed-engineer.agent.md +17 -20
  133. package/resources/customizations/.github/agents/staged-review.agent.md +2 -2
  134. package/resources/customizations/.github/agents/tdd-green.agent.md +1 -1
  135. package/resources/customizations/.github/agents/tdd-red.agent.md +3 -3
  136. package/resources/customizations/.github/agents/tdd-refactor.agent.md +2 -2
  137. package/resources/customizations/.github/agents/typescript-engineer.agent.md +3 -3
  138. package/resources/customizations/.github/codex/execute-hard-lock.prompt.md +3 -3
  139. package/resources/customizations/.github/instructions/general-code-change.instructions.md +1 -1
  140. package/resources/customizations/.github/instructions/powershell-unit-test.instructions.md +1 -1
  141. package/resources/customizations/.github/instructions/python-code-change.instructions.md +5 -5
  142. package/resources/customizations/.github/instructions/python-suppressions.instructions.md +3 -3
  143. package/resources/customizations/.github/instructions/python-unit-test.instructions.md +1 -1
  144. package/resources/customizations/.github/prompts/execute-hard-lock.prompt.md +2 -2
  145. package/resources/customizations/.github/prompts/generate-commit-message-repo.prompt.md +2 -2
  146. package/resources/customizations/.github/prompts/remediate-comments.prompt.md +2 -2
  147. package/resources/customizations/.github/prompts/review-feature.prompt.md +1 -1
  148. package/resources/customizations/.github/skills/atomic-plan-contract/SKILL.md +8 -12
  149. package/resources/customizations/.github/skills/execution-environment/SKILL.md +18 -13
  150. package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +15 -2
  151. package/resources/feature-templates/bug/plan.yyyy-MM-ddTHH-mm.md +4 -4
  152. package/resources/feature-templates/feature/plan.yyyy-MM-ddTHH-mm.md +3 -3
  153. package/resources/feature-templates/refactor/plan.yyyy-MM-ddTHH-mm.md +2 -2
  154. package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +2 -2
  155. package/resources/powershell/PoshQC/PoshQC.psm1 +3 -3
  156. package/resources/powershell/PoshQC/README.md +8 -8
  157. package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +2 -2
  158. package/resources/templates/policy_audit/AGENTS.md +9 -10
  159. package/resources/templates/policy_audit/policy-audit.yyyy-MM-ddTHH-mm.md +19 -20
@@ -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
 
@@ -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
 
@@ -1,5 +1,5 @@
1
1
  name = "csharp-atomic-executor"
2
- description = "Execute atomic_planner plans verbatim with atomic_executor rigor and C#-specialized quality gates (csharpier, analyzers, nullable and type safety, and dotnet test)."
2
+ description = "Execute atomic_planner plans verbatim with atomic_executor rigor and C#-specialized quality gates (csharpier, analyzers, nullable and type safety, and MSTest)."
3
3
 
4
4
  developer_instructions = """
5
5
  You are a C#-aware execution wrapper for atomic-plan execution in Codex.
@@ -14,7 +14,7 @@ Core behavior:
14
14
  - Execute the approved plan exactly as written.
15
15
  - Preserve phase headings, task IDs, checkbox format, and task order.
16
16
  - Honor validation-only preflight when the handoff includes `DIRECTIVE: PREFLIGHT VALIDATION ONLY`.
17
- - When execution is authorized, run the required C# QA loop and report formatting, analyzer, type-safety, test, and coverage deltas where policy requires coverage.
17
+ - When execution is authorized, run the required C# QA loop and report formatting, analyzer, and type-safety deltas, failures in the single gate run, and per-file coverage where policy requires coverage.
18
18
  - Stop and report blocked state if preflight requires planner revision and the planner-return handoff cannot be started or completed.
19
19
 
20
20
  Final response contract:
@@ -13,7 +13,7 @@ Core behavior:
13
13
  - Produce or revise only deterministic plan files for C# delivery work.
14
14
  - Delegate validation-only preflight to `atomic-executor`.
15
15
  - Require the exact directive `DIRECTIVE: PREFLIGHT VALIDATION ONLY` in the delegated preflight handoff.
16
- - Require explicit C# baseline and final-QA tasks, including formatting, analyzer, type-safety, test, and coverage steps where policy requires coverage.
16
+ - Require explicit C# static baseline tasks and final-QA tasks, including formatting, analyzer, type-safety, test, and coverage steps where policy requires coverage.
17
17
  - Reuse the same target plan file for the single permitted preflight revision.
18
18
  - Do not create timestamped sibling plan files when an authoritative `plan-path` already exists.
19
19
  - Stop and report blocked state if the required `atomic-executor` handoff cannot be started, resumed, or completed.
@@ -41,7 +41,7 @@ Routing and lifecycle rules:
41
41
  - Do not create or edit `${feature-folder}/issue.md`, `${feature-folder}/spec.md`, `${feature-folder}/user-story.md`, or `plan*.md` until lifecycle setup succeeds.
42
42
  - Do not persist placeholder lifecycle values such as `NONE`, `TBD`, or empty strings once lifecycle setup begins.
43
43
  - Do not treat delegated planning as complete until the returned `plan-path` is concrete and preflight returns `PREFLIGHT: ALL CLEAR`.
44
- - Do not treat delegated execution as complete until QA output includes formatting, analyzer, type-safety, test, and coverage deltas where policy requires coverage.
44
+ - Do not treat delegated execution as complete until QA output includes formatting, analyzer, and type-safety deltas, failures in the single gate run, and per-file coverage where policy requires coverage.
45
45
  - Do not treat delegated review as complete until the required review artifacts exist on disk and validator-backed checks pass.
46
46
 
47
47
  Language-specific large-path chain:
@@ -29,7 +29,7 @@ Migration contract:
29
29
 
30
30
  ---
31
31
  name: csharp-typed-engineer
32
- description: Project-scoped worker that implements and verifies C# changes within typed repository boundaries. Applies the CSharpier -> .NET Analyzers -> Nullable Analysis -> MSTest toolchain, the 1-3 production-file small-path budget, and zero-regression quality gates.
32
+ description: Project-scoped worker that implements and verifies C# changes within typed repository boundaries. Applies the CSharpier -> .NET Analyzers -> Nullable Analysis -> MSTest toolchain, the 1-3 production-file small-path budget, and quality gates read from the single gate run.
33
33
  tools:
34
34
  - Read
35
35
  - Grep
@@ -62,10 +62,10 @@ Follow the phased workflow defined by the preloaded skills:
62
62
 
63
63
  1. **Policy compliance** — apply `policy-compliance-order` to load mandatory repo policies before any change.
64
64
  2. **Routing and scope** — apply `csharp-change-budget-router` to estimate scope, select direct vs orchestrator handoff mode, and enforce the 3 production + 3 test per-batch cap.
65
- 3. **Plan and baseline** — apply `atomic-plan-contract` for Phase 0 baseline capture and atomic plan structure. Delegate plan authoring to `atomic_planner` when no plan is supplied. Plans must include the proposed class and module structure, minimal DI seams, MSTest scenario-level test strategy, and Moq mock strategy.
66
- 4. **Implement in batches** — apply the approved plan. After each batch, run targeted analyzer and nullable builds on touched projects plus targeted MSTest, and confirm per-file coverage.
67
- 5. **Final QA gate** — apply `csharp-qa-gate` to run the full toolchain, enforce zero-regression deltas against the baseline, and produce the required reporting block before declaring completion.
68
- 6. **Evidence and handoff** — store baseline and post-change evidence per `evidence-and-timestamp-conventions`. Trigger remediation via `remediation-handoff-atomic-planner` when deltas fail.
65
+ 3. **Plan and baseline** — apply `atomic-plan-contract` for Phase 0 static baseline capture and atomic plan structure. Delegate plan authoring to `atomic_planner` when no plan is supplied. Plans must include the proposed class and module structure, minimal DI seams, MSTest scenario-level test strategy, and Moq mock strategy.
66
+ 4. **Implement in batches** — apply the approved plan. After each batch, run targeted analyzer and nullable builds on touched projects. Test and coverage results come from the single gate run. A focused run of one test file to debug a specific failure is debugging only.
67
+ 5. **Final QA gate** — apply `csharp-qa-gate` to run the full toolchain, compare static tool results against the static baseline, read test and coverage results from the single gate run, and produce the required reporting block before declaring completion.
68
+ 6. **Evidence and handoff** — store static baseline and final gate evidence per `evidence-and-timestamp-conventions`. Trigger remediation via `remediation-handoff-atomic-planner` when a gate fails.
69
69
 
70
70
  ## Mode Marker Resolution
71
71
 
@@ -84,7 +84,7 @@ Stop implementation and return to the user when:
84
84
 
85
85
  - the scope estimate or an in-flight batch would exceed the 3-production-file cap in direct mode,
86
86
  - a file is above or would exceed the 800-line hard limit of the tiered file-size policy (split it before proceeding; at 500 lines look for a logical split, and at 700 lines split more aggressively),
87
- - any QA gate delta is non-zero after self-correction,
87
+ - any QA gate check fails after self-correction,
88
88
  - the toolchain cannot be executed in the current environment (mark the change **unverified**),
89
89
  - orchestrator handoff mode is requested but the required context package is incomplete,
90
90
  - policy instructions conflict.