@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
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: parallel-plan
3
3
  description: Prepare a set of thematically unrelated items for concurrent execution before any execution begins - item intake over issue numbers and potential-entry paths, concurrent preparation-mode child orchestrator delegations, blast-radius computation and V1-V3 validation, cohort seeding with a recomputation-parity check, run-manifest and planner-checkpoint authoring, and the parallel-orchestrator kickoff artifact.
4
- argument-hint: "[items: issue numbers and/or potential-entry paths]"
4
+ argument-hint: "[items: issue numbers and/or potential-entry paths] [--after <later>:<earlier> ...]"
5
5
  context: fork
6
6
  agent: parallel-planner
7
7
  ---
@@ -16,7 +16,8 @@ $ARGUMENTS
16
16
  This skill frames work for the `parallel-planner` agent, parallel to how
17
17
  `.claude/skills/epic-plan/SKILL.md` frames work for `epic-planner`. The `parallel` surface
18
18
  schedules thematically unrelated items by computed blast-radius contention: there is no worthiness
19
- assessment, no operator-supplied ordering, and no shared branch into which item work merges.
19
+ assessment, no operator-supplied ordering beyond the optional `--after <later>:<earlier>`
20
+ precedence flags, and no shared branch into which item work merges.
20
21
  Planning ends at preflight clearance and cohort seeding; no atomic execution, PR authoring, or CI
21
22
  monitoring occurs under this skill.
22
23
 
@@ -62,13 +63,29 @@ identical forms.
62
63
  - **`kind`.** Record `kind: feature | bug` at intake from the item source (issue labels, or the
63
64
  potential entry's declared kind). When the source is indeterminate, default to `feature` and note
64
65
  the choice `[recommendation, not upstream-constrained]`.
66
+ - **Admission assessment.** Run the same `assess` subcommand `/parallel-add` step 2 runs for every
67
+ item whose branch is pushed:
68
+ `pwsh -NoProfile -NonInteractive -File .claude/lib/parallel-admission/Invoke-ParallelAdmission.ps1 assess -Branch origin/<item branch> -FeatureFolder <feature folder>`.
69
+ An item with no pushed branch (an unpromoted potential entry) takes `full_preparation`. Fan-out
70
+ takes only the items whose `next_action` is not `admit_prepared`. An item whose `next_action` is
71
+ `admit_prepared` (stage `cleared`, verdict `fresh`) runs no preparation child: record its
72
+ `plan_path`, `research_path`, `plan_hash`, `base_commit`, `branch_name`, and
73
+ `preflight_status: PREFLIGHT: ALL CLEAR` from the branch, set `preparation_status: prepared`
74
+ (the planner ready value that corresponds to the admission stage `cleared`), and record
75
+ `topology_receipt` as not applicable, because no preparation child ran for it.
76
+ - **Precedence input.** Record each `--after <later>:<earlier>` flag as one top-level
77
+ `precedence[]` entry `{before, after, source, recorded_at}` with `source` `operator`, as
78
+ declared in `## Prepared-Item Admission (issue #1047)` of `.claude/rules/parallel-orchestration.md`.
79
+ The flags are optional and are never requested.
65
80
 
66
81
  The operator is never asked for ordering edges, cohort assignments, or a worthiness verdict.
67
82
  Intake proceeds directly to preparation fan-out.
68
83
 
69
84
  ## Preparation Fan-Out
70
85
 
71
- One preparation-mode `Agent(orchestrator)` run per item. Preparation produces documents and plans
86
+ One preparation-mode `Agent(orchestrator)` run per incomplete item, that is, per item whose
87
+ `assess` `next_action` is not `admit_prepared`; the waves below cover the incomplete items only.
88
+ Preparation produces documents and plans
72
89
  rather than code, and items carry no ordering constraint, so preparations may run concurrently —
73
90
  but they are BOUNDED, not unbounded.
74
91
 
@@ -84,6 +101,8 @@ JSON array of arrays, returns the batches in order, and sorts the keys itself, s
84
101
  does not depend on caller ordering. Launch wave *k* as one message carrying that wave's `Agent`
85
102
  calls, each `isolation: "worktree"` and `run_in_background: true`.
86
103
  Create each preparation worktree's branch from `origin/main`.
104
+ A resumed item (`next_action` `resume_preparation`) instead runs on its pushed branch, as
105
+ `## Issue Combination` step 3 does, so its completed stages stay on that branch.
87
106
  Launch wave *k+1* only after every child of wave *k* has TERMINATED — not merely reported
88
107
  progress. All of this happens inside a single `/parallel-plan` invocation with no operator action
89
108
  between waves.
@@ -107,13 +126,18 @@ invocations after the initial plan. Use `/parallel-plan` for intake and `/parall
107
126
  admit an item into a run that is already in flight.
108
127
 
109
128
  Each delegation prompt includes this literal kickoff line, followed by the model-budget marker
110
- line and, for an issue-number item only, the issue-adoption line:
129
+ line, for an issue-number item only, the issue-adoption line, for a resumed item only, the
130
+ preparation-resume line, and the preparation-receipt line:
111
131
 
112
132
  > `Preparation mode: true. route_id: preparation. parallel_slug: <slug>. Perform promotion, research, feature documents (spec.md, user-story.md), atomic planning, and preflight clearance only. Atomic execution, PR authoring, and CI monitoring are out of scope for this run and are executed later by parallel-orchestrator. After the atomic-executor preflight returns PREFLIGHT: ALL CLEAR, commit the feature folder and plan to the current branch, push the current branch to origin, set out-of-scope step statuses to not-applicable, set next_step to S5_atomic_execution, and stop, reporting the plan-path and preflight status.`
113
133
  >
114
134
  > `model_budget.fable_policy: <disabled|available|preferred>.`
115
135
  >
116
136
  > `Issue adoption: this item's GitHub issue already exists. Verify it read-only (gh issue view), do not call potential_to_issue or the promotion-entry tool, and record a top-level issue_adoption object in the checkpoint per .claude/rules/orchestrator-state.md with origin filed_before_orchestration (or transferred when the issue was transferred), waiving potential_to_issue and the promotion-entry tool for the checkpoint's promotion-type. When a lifecycle record for the item exists under docs/features/potential/promoted/, cite it as potential_record.`
137
+ >
138
+ > `Preparation resume: stage <stage>. Existing artifacts: <paths>. Do not repeat a completed stage; supersede with new timestamped files.`
139
+ >
140
+ > `Preparation receipt: before the commit, write <feature folder>/evidence/other/preparation-receipt.<yyyy-MM-ddTHH-mm>.json with schema_version, stage, research_path, spec_path, plan_path, plan_hash, base_commit, preflight_status, and recorded_at.`
117
141
 
118
142
  Properties of that line, each individually load-bearing:
119
143
 
@@ -144,6 +168,21 @@ to execution, so the execution child records its own adoption (see
144
168
  creates and commits the feature folder, the execution child's adoption also waives
145
169
  `new_active_feature_folder` and records `feature_folder_record` for that committed folder.
146
170
 
171
+ **Preparation-resume line.** The preparation-resume line is emitted only for a resumed item, after
172
+ the issue-adoption line (or after the model-budget marker line for a potential-entry item). Its
173
+ `<stage>` is the `assess` `resume_stage`, and its `<paths>` are the existing `research_path`,
174
+ `spec_path`, and `plan_path` written relative to the feature folder. The line carries no mode
175
+ marker and no active feature-folder path and does not match the hook issue-number pattern, so hook
176
+ target resolution and mode classification are unchanged. A stale item resumes at preflight with
177
+ the `assess` `changed_cited_paths` as findings under the unchanged single-pass rule of
178
+ `.claude/skills/orchestrate/SKILL.md` `## Delegation Model`; a falsified premise resumes at `plan`,
179
+ and a superseded artifact is replaced by a new timestamped file and never deleted.
180
+
181
+ **Preparation-receipt line.** The preparation-receipt line is emitted for every delegated item. The
182
+ child resolves `<feature folder>` to its own folder and writes the receipt declared in
183
+ `## Prepared-Item Admission (issue #1047)` of `.claude/rules/parallel-orchestration.md` before its
184
+ commit, so a later `assess` reads the stage, plan hash, and base commit from the branch.
185
+
147
186
  **No edit to shared surfaces.** No edit is made to `.claude/skills/orchestrate/SKILL.md` or to
148
187
  `config/orchestration-routing.json`, including the `preparation` route. The route mechanism is
149
188
  marker-driven; the child contract's "commit ... to the current branch" wording is satisfied by a
@@ -437,7 +476,13 @@ The library returns the partition; the planner supplies the record fields.
437
476
  (hard classes, integer cost, pairwise benefit, and the configured `conflict_tolerance`). It
438
477
  returns `edges` and `tolerated_overlaps`. The -Relation argument is required; pass the facade's
439
478
  Test-BlastRadiusConflict function object as shown. Pass the returned `edges` pairs as
440
- `--edges "<a>:<b> ..."` and the item keys as `--keys "<k1> <k2> ..."`.
479
+ `--edges "<a>:<b> ..."` and the item keys as `--keys "<k1> <k2> ..."`. Add each recorded
480
+ `precedence[]` pair to `--edges` as one more separating `<a>:<b>` edge with `a < b`, so the
481
+ coloring always separates the pair. Then pass the coloring through the precedence lift:
482
+ `pwsh -NoProfile -NonInteractive -File .claude/lib/parallel-admission/Invoke-ParallelAdmission.ps1 order-cohorts -Cohorts <compute-cohorts output> -Edges "<a>:<b> ..." -Precedence "<before>:<after> ..."`.
483
+ No item has started at seeding, so the call passes no option that holds an item in place, and
484
+ its `cohorts` output is the table steps 3 and 5 record. A `precedence_cycle` or
485
+ `precedence_unknown_item` rejection (exit 1) stops the run with the helper's stderr line.
441
486
  The detection relation inside the entry point contributes no `path_overlap` edge for a path
442
487
  matching the truth table's optional `mergeable_paths` list, and the path stays in the declared
443
488
  radius. When `Test-BlastRadiusConflict` is called directly (for example, while investigating a
@@ -482,6 +527,18 @@ The library returns the partition; the planner supplies the record fields.
482
527
  (the bash port of `compute_concurrency_batches(cohort_item_keys, max_concurrency)`), which fills
483
528
  slots in ascending item-key order. Recoloring under add, remove, or drift mutation is F6 and F8
484
529
  scope. This skill performs seeding only.
530
+ 7. **Durable scheduling record.** Build the record content with
531
+ `pwsh -NoProfile -NonInteractive -File .claude/lib/parallel-admission/Invoke-ParallelAdmission.ps1 record -RunFolder docs/features/parallel/<slug> -Entry <entry-json>`
532
+ from the recorded `conflict_edges`, `tolerated_overlaps`, `precedence`, and `items`; the helper
533
+ prints the content and makes no git write. Write it to
534
+ `docs/features/parallel/<slug>/parallel-scheduling.json` and commit it on `parallel/<slug>-plan`
535
+ with the manifest. A re-seed applies the reuse rule per item with
536
+ `pwsh -NoProfile -NonInteractive -File .claude/lib/parallel-admission/Invoke-ParallelAdmission.ps1 reuse-edges -Slug <slug> -IssueNum <issue> -PlanHash <plan_hash>`,
537
+ where `<plan_hash>` is the item's `plan_hash` from its `assess` output. The helper reads the
538
+ committed record by ref from `origin/parallel/<slug>-plan`, runs no fetch, and prints
539
+ `{action, edges, reason}`. On `action` `reuse` the printed `edges` are that item's recorded
540
+ edges and are reused; on `action` `recompute` (reason `record_missing`, `unknown_item`, or
541
+ `plan_hash_changed`) that item's edges are recomputed.
485
542
 
486
543
  ### Recomputation parity (planner-owned check)
487
544
 
@@ -492,12 +549,18 @@ skill discharges that obligation as documented procedure, not as a new module:
492
549
 
493
550
  1. After writing `cohorts[]` into the checkpoint and **before** emitting the kickoff artifact,
494
551
  re-invoke `compute_cohorts` over exactly the `item_keys` and `conflict_edges` recorded in the
495
- checkpoint.
552
+ checkpoint (through `compute-cohorts.sh`), plus the separating edges of the recorded
553
+ `precedence[]` pairs, and pass the result through `order-cohorts` with the recorded precedence,
554
+ exactly as `### Seeding procedure` step 1 does.
496
555
  2. Assert that the recomputed list of lists maps to exactly the recorded `cohorts[]` at
497
556
  `generation: 0`: the same partition, the same `index` assignment, and the same ascending
498
- `item_keys[]` ordering.
499
- 3. A mismatch is a **Blocking** condition. Stop the run and report the mismatch. Do not
500
- auto-correct the recorded cohorts, and do not emit the kickoff artifact.
557
+ `item_keys[]` ordering. Then run
558
+ `pwsh -NoProfile -NonInteractive -File .claude/lib/parallel-admission/Invoke-ParallelAdmission.ps1 test-cohorts -CheckpointPath artifacts/orchestration/parallel-planner-state.json`,
559
+ which rejects with `precedence_violated` when a cohort places an `after` item at or before an
560
+ active `before` item.
561
+ 3. A mismatch is a **Blocking** condition, and so is a `test-cohorts` rejection. Stop the run and
562
+ report the mismatch or the rejection. Do not auto-correct the recorded cohorts, and do not emit
563
+ the kickoff artifact.
501
564
 
502
565
  No production module is added for this check; it is a re-invocation of the landed library.
503
566
 
@@ -558,20 +621,22 @@ Write `artifacts/orchestration/parallel-planner-state.json` after every complete
558
621
 
559
622
  Top-level fields: `objective`, `parallel_slug`, `parallel_manifest_path`, `mode`,
560
623
  `max_concurrency`, `plan_home_branch` (`parallel/<slug>-plan`), `items[]`, `cohorts[]`,
561
- `conflict_edges[]`, `recolor_generation`, `kickoff_prompt_path`
624
+ `conflict_edges[]`, `precedence[]` (the operator precedence entries, declared in
625
+ `## Prepared-Item Admission (issue #1047)` of the rule), `recolor_generation`, `kickoff_prompt_path`
562
626
  (`artifacts/orchestration/parallel-kickoff-<slug>.md`), `completed_steps`, `next_step`, and
563
627
  `last_updated`. F3's landed required-key set (planner invariant P1) is a strict subset of this
564
628
  list, and `plan_home_branch` is a permitted additional field.
565
629
 
566
630
  Per item: `issue_num`, `feature_folder`, `kind`, `state`, `complexity_band`, `complexity_assessment`,
567
631
  `preparation_status`,
568
- `research_path`, `plan_path`, `preflight_status`, `branch_name`, `worktree_path`, `blast_radius`
632
+ `research_path`, `plan_path`, `plan_hash`, `base_commit`, `preflight_status`, `branch_name`, `worktree_path`, `blast_radius`
569
633
  (with `source: "declared"`), `radius_validation` (the `v1`, `v2`, and `v3` results with their
570
634
  severities), `model_routing_receipt`, and `topology_receipt`.
571
635
 
572
636
  **Deliberately absent:** any `epic_worthiness` analogue, any `depends_on` field, and any `wave`
573
637
  field. The parallel surface renders no worthiness verdict and expresses ordering only as
574
- blast-radius overlap.
638
+ blast-radius overlap and as the operator `precedence[]` input, which is a separating input and not
639
+ a dependency field.
575
640
 
576
641
  **Readiness contract.** Before reporting completion the checkpoint must satisfy F3's
577
642
  `require_ready_for_execution` gate: at least two items (invariant P6); every item
@@ -674,6 +739,11 @@ Structural requirements enforced by the contract module:
674
739
  commit of `parallel/<slug>-plan` as run-level provenance and a per-item `plan-path | plan-hash`
675
740
  table whose hashes are 40 to 64 hex characters with no repeated plan path.
676
741
 
742
+ The planner writes the `## Integrity` section with one row per item, whose `plan-hash` is that
743
+ item's `assess` `plan_hash` (the plan blob hash at the item branch head), the same value recorded
744
+ on the checkpoint item and in the durable scheduling record. The parallel orchestrator passes it to
745
+ the item's execution child in kickoff element 4, which verifies it before any other step.
746
+
677
747
  Validate the artifact through `mcp__drm-copilot__validate_orchestration_artifacts` with
678
748
  `artifact_type: "parallel-kickoff"`. That artifact type dispatches to
679
749
  `scripts/dev_tools/parallel_kickoff_contract.py`, which this feature delivers.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: powershell-qa-gate
3
- description: Final QA gate for PowerShell changes. Executes the full PoshQC format -> analyze -> test toolchain (with coverage where enforced), 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 PowerShell changes. Executes the full PoshQC format -> analyze -> test toolchain (with coverage where enforced), 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
  # 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.
45
- - **New modules, classes, or methods**: line coverage >= 85% per the uniform tier rule (`.claude/rules/quality-tiers.md`). No tier-specific lower thresholds. No regression on changed lines. Pester measures command (instruction) coverage and line coverage only; branch coverage is not measurable for PowerShell, so no branch-coverage gate applies here (see `.claude/rules/powershell.md`). Command coverage is informational and carries no threshold.
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.
44
+ - **New modules, classes, or methods**: line coverage >= 85% per the uniform tier rule (`.claude/rules/quality-tiers.md`). No tier-specific lower thresholds. Pester measures command (instruction) coverage and line coverage only; branch coverage is not measurable for PowerShell, so no branch-coverage gate applies here (see `.claude/rules/powershell.md`). Command coverage is informational and carries no threshold.
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 `.claude/rules/powershell.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: python-qa-gate
3
- description: Final QA gate for Python changes. Executes the full Black -> Ruff -> Pyright -> Pytest 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 Python changes. Executes the full Black -> Ruff -> Pyright -> Pytest 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
  # 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.
46
- - **New modules, classes, or methods**: line coverage >= 85% and branch coverage >= 75% per the uniform tier rule (`.claude/rules/quality-tiers.md`). No tier-specific lower thresholds. No regression on changed lines.
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.
45
+ - **New modules, classes, or methods**: line coverage >= 85% and branch coverage >= 75% per the uniform tier rule (`.claude/rules/quality-tiers.md`). No tier-specific lower thresholds.
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.
@@ -98,7 +98,7 @@ A comprehensive or final sweep in a remediation cycle covers that cycle's own pl
98
98
 
99
99
  - Phase headings: `### Phase N — <Title>`.
100
100
  - Tasks: `- [ ] [P#-T#]` with sequential per-phase IDs.
101
- - Phase 0 captures policy reads and baseline toolchain results per `policy-compliance-order` and `evidence-and-timestamp-conventions`.
101
+ - Phase 0 captures policy reads and static baseline results per `policy-compliance-order` and `evidence-and-timestamp-conventions`.
102
102
  - Final phase runs the full toolchain QA loop in the order specified by `atomic-plan-contract` and records numeric coverage values where the repository policy requires coverage.
103
103
  - Evidence paths resolve to `<FEATURE>/evidence/<kind>/` per the non-overridable evidence path clause.
104
104
  - The plan is design-level per `## Design-Level Plan Contract (Mandatory)` in `atomic-plan-contract`, carries a `## Pre-Mortem` section, and ends with the final-phase self-review task. A proportionate plan covers only the listed findings and stays short.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: csharp-typed-engineer
3
- 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.
3
+ 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.
4
4
  tools:
5
5
  - Read
6
6
  - Grep
@@ -33,10 +33,10 @@ Follow the phased workflow defined by the preloaded skills:
33
33
 
34
34
  1. **Policy compliance** — apply `policy-compliance-order` to load mandatory repo policies before any change.
35
35
  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.
36
- 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.
37
- 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.
38
- 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.
39
- 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.
36
+ 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.
37
+ 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.
38
+ 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.
39
+ 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.
40
40
 
41
41
  ## Mode Marker Resolution
42
42
 
@@ -55,7 +55,7 @@ Stop implementation and return to the user when:
55
55
 
56
56
  - the scope estimate or an in-flight batch would exceed the 3-production-file cap in direct mode,
57
57
  - a file is above or would exceed the 800-line hard limit of the tiered file-size policy (split it before proceeding; at 500 lines look for a logical split, and at 700 lines split more aggressively),
58
- - any QA gate delta is non-zero after self-correction,
58
+ - any QA gate check fails after self-correction,
59
59
  - the toolchain cannot be executed in the current environment (mark the change **unverified**),
60
60
  - orchestrator handoff mode is requested but the required context package is incomplete,
61
61
  - policy instructions conflict.
@@ -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
@@ -12,14 +12,14 @@ Canonical procedure for the Phase D final quality gate that every C# change must
12
12
  Use this skill when:
13
13
 
14
14
  - `csharp-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 analyzer findings, compiler/nullable diagnostics, MSTest pass/fail status, and per-file coverage status for the in-scope files,
22
+ - a static baseline record produced in Phase A, containing analyzer findings and compiler/nullable diagnostics 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
 
@@ -36,35 +36,34 @@ Run the full toolchain in this exact order. If any step fails or modifies files,
36
36
 
37
37
  If the environment prevents running any tool, stop and report the change as **unverified**. Do not declare completion.
38
38
 
39
- ## Delta Requirements (Zero-Regression Hard Gate)
39
+ ## Gate Requirements (Hard Gate)
40
40
 
41
- Compare the final results to the Phase A baseline. All of the following must hold:
41
+ 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:
42
42
 
43
43
  - **Analyzer delta**: 0 new findings across the repository.
44
44
  - **Compiler / nullable delta**: 0 new diagnostics across the repository.
45
- - **MSTest delta**: 0 new failing tests.
46
- - **Per-file coverage delta**: coverage for every touched file is greater than or equal to the baseline for that file.
47
- - **Overall coverage delta** (when the repo enforces it): overall coverage is greater than or equal to the baseline.
45
+ - **MSTest gate**: zero failures in the single gate run.
46
+ - **Per-file coverage**: every changed file meets the coverage thresholds, read from the single gate run, and new behavior is tested.
48
47
  - **New modules, classes, or methods**: coverage >= 90% for each new unit introduced in the batch.
49
48
 
50
- 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.
49
+ 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.
51
50
 
52
51
  ## Required Reporting Block
53
52
 
54
53
  Every completion response must include the following sections:
55
54
 
56
55
  1. **Scope** — exact file list touched in this change.
57
- 2. **Baseline** — analyzer, compiler/nullable, MSTest, and coverage status recorded in Phase A.
56
+ 2. **Baseline** — analyzer and compiler/nullable findings recorded in Phase A.
58
57
  3. **Plan** — design and test-strategy summary, referencing the approved plan.
59
58
  4. **Diffs** — patch-style or full-file replacements for scoped files only.
60
- 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.
59
+ 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.
61
60
 
62
61
  ## Evidence Storage
63
62
 
64
63
  Persist toolchain output according to `evidence-and-timestamp-conventions`:
65
64
 
66
- - store baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
67
- - store post-change outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
65
+ - store static baseline outputs under `<FEATURE>/evidence/baseline/<timestamp>/`,
66
+ - store final gate outputs under `<FEATURE>/evidence/qa-gates/<timestamp>/`,
68
67
  - use ISO-8601 UTC timestamps in folder names.
69
68
 
70
69
  This location is canonical per evidence-and-timestamp-conventions and is not overridable.
@@ -76,4 +75,4 @@ The evidence paths must be referenced in the agent's completion message to satis
76
75
 
77
76
  - Do not disable, skip, or narrow any step of the toolchain to reach a clean result.
78
77
  - Do not add analyzer suppressions, `#pragma warning disable`, `#nullable disable`, or test `[Ignore]` attributes to suppress new findings introduced by the change.
79
- - 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.
78
+ - 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
@@ -28,7 +28,7 @@ If the estimated scope exceeds the small-path budget, this skill defers to the o
28
28
  ## Output Paths
29
29
 
30
30
  - C# source and test files within the approved scope.
31
- - Baseline evidence under `<FEATURE>/evidence/baseline/<timestamp>/` and post-change evidence under `<FEATURE>/evidence/qa-gates/<timestamp>/` per `evidence-and-timestamp-conventions`.
31
+ - Static baseline evidence under `<FEATURE>/evidence/baseline/<timestamp>/` and final gate evidence under `<FEATURE>/evidence/qa-gates/<timestamp>/` per `evidence-and-timestamp-conventions`.
32
32
  - This location is canonical per evidence-and-timestamp-conventions and is not overridable. See `.claude/skills/evidence-and-timestamp-conventions/SKILL.md` for the canonical evidence path authority.
33
33
  - Plan artifacts under the active feature folder when the task is feature-scoped.
34
34
 
@@ -37,10 +37,10 @@ If the estimated scope exceeds the small-path budget, this skill defers to the o
37
37
  The worker must return the following reporting block:
38
38
 
39
39
  1. Scope (exact file list).
40
- 2. Baseline (CSharpier, .NET Analyzers, Nullable Analysis, MSTest, coverage status).
40
+ 2. Baseline (CSharpier, .NET Analyzers, and Nullable Analysis findings).
41
41
  3. Plan (design and test strategy).
42
42
  4. Diffs (patch-style or full-file replacements).
43
- 5. QA Gate Results (CSharpier, .NET Analyzers, Nullable Analysis, MSTest, and coverage deltas, or clearly marked **unverified**).
43
+ 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**).
44
44
 
45
45
  ## Worker Routing
46
46
 
@@ -39,6 +39,7 @@
39
39
  ".claude/hooks/enforce-epic-merge-gate-resolution.ps1",
40
40
  ".claude/hooks/enforce-epic-merge-gate-command.ps1",
41
41
  ".claude/hooks/enforce-epic-merge-gate-green-ci.ps1",
42
+ ".claude/hooks/enforce-epic-merge-gate-review.ps1",
42
43
  ".claude/hooks/enforce-epic-wave-barrier.ps1",
43
44
  ".claude/hooks/enforce-epic-worktree-removal-gate.ps1",
44
45
  ".claude/hooks/enforce-epic-worktree-removal-gate-resolution.ps1",
@@ -47,6 +48,7 @@
47
48
  ".claude/hooks/enforce-file-size-limit.ps1",
48
49
  ".claude/hooks/enforce-model-routing-receipt.ps1",
49
50
  ".claude/hooks/enforce-orchestration-preimplementation-gate.ps1",
51
+ ".claude/hooks/enforce-orchestration-preimplementation-gate-cleanup.ps1",
50
52
  ".claude/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1",
51
53
  ".claude/hooks/enforce-orchestration-preimplementation-gate-helpers.ps1",
52
54
  ".claude/hooks/enforce-orchestration-preimplementation-gate-modes.ps1",
@@ -60,6 +62,7 @@
60
62
  ".claude/hooks/enforce-powershell-batch-budget.ps1",
61
63
  ".claude/hooks/enforce-pr-author-command-allowlist.ps1",
62
64
  ".claude/hooks/enforce-pr-author-skill.artifact-root.ps1",
65
+ ".claude/hooks/enforce-pr-author-skill.cleanup.ps1",
63
66
  ".claude/hooks/enforce-pr-author-skill.current-branch.ps1",
64
67
  ".claude/hooks/enforce-pr-author-skill.docs-only.ps1",
65
68
  ".claude/hooks/enforce-pr-author-skill.epic-base-branch.ps1",
@@ -71,6 +74,7 @@
71
74
  ".claude/hooks/enforce-python-batch-budget.ps1",
72
75
  ".claude/hooks/feature-folder-resolution.ps1",
73
76
  ".claude/hooks/feature-review-coverage-thresholds.ps1",
77
+ ".claude/hooks/hook-cleanup-context.ps1",
74
78
  ".claude/hooks/hook-command-heredoc.ps1",
75
79
  ".claude/hooks/hook-command-invocation.ps1",
76
80
  ".claude/hooks/hook-command-invocation-operands.ps1",
@@ -122,6 +126,7 @@
122
126
  ".claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_lib.sh",
123
127
  ".claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_preserve_eol_lib.sh",
124
128
  ".claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_preserve_lib.sh",
129
+ ".claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_preserve_merge_lib.sh",
125
130
  ".claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_report_records_lib.sh",
126
131
  ".claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_scan_helper.sh",
127
132
  ".claude/skills/commit-message/SKILL.md",
@@ -134,6 +139,12 @@
134
139
  ".claude/skills/discovery-workflow/SKILL.md",
135
140
  ".claude/skills/epic-orchestrate/SKILL.md",
136
141
  ".claude/skills/epic-plan/SKILL.md",
142
+ ".claude/skills/epic-progress-report/SKILL.md",
143
+ ".claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Logic.ps1",
144
+ ".claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Metrics.ps1",
145
+ ".claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.Render.ps1",
146
+ ".claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.State.ps1",
147
+ ".claude/skills/epic-progress-report/scripts/Get-EpicProgressReport.ps1",
137
148
  ".claude/skills/epic-run/SKILL.md",
138
149
  ".claude/skills/evidence-and-timestamp-conventions/SKILL.md",
139
150
  ".claude/skills/execute-hard-lock/SKILL.md",
@@ -231,6 +242,10 @@
231
242
  ".claude/lib/parallel-drift/ParallelDriftHalt.psm1",
232
243
  ".claude/lib/parallel-drift/ParallelDrift.psm1",
233
244
  ".claude/lib/parallel-drift/Invoke-ParallelDriftDetection.ps1",
245
+ ".claude/lib/parallel-admission/ParallelAdmission.psm1",
246
+ ".claude/lib/parallel-admission/ParallelAdmissionPrecedence.psm1",
247
+ ".claude/lib/parallel-admission/Invoke-ParallelAdmission.ps1",
248
+ ".claude/lib/parallel-admission/ParallelAdmissionJson.psm1",
234
249
  ".claude/rules/parallel-orchestration.md",
235
250
  ".claude/rules/shell.md",
236
251
  ".claude/lib/bash/abandon-parallel-item.sh",