@danmoisan/drm-copilot-mcp 1.1.18 → 1.1.20

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 (264) hide show
  1. package/out/mcp-server.js +1149 -661
  2. package/package.json +3 -2
  3. package/resources/claude-customizations/.claude/agents/atomic-executor.md +28 -6
  4. package/resources/claude-customizations/.claude/agents/atomic-planner.md +20 -2
  5. package/resources/claude-customizations/.claude/agents/epic-orchestrator.md +17 -4
  6. package/resources/claude-customizations/.claude/agents/epic-planner.md +5 -4
  7. package/resources/claude-customizations/.claude/agents/feature-review.md +6 -4
  8. package/resources/claude-customizations/.claude/agents/orchestrator.md +9 -5
  9. package/resources/claude-customizations/.claude/agents/parallel-orchestrator.md +35 -13
  10. package/resources/claude-customizations/.claude/agents/parallel-planner.md +9 -6
  11. package/resources/claude-customizations/.claude/agents/pr-author.md +15 -2
  12. package/resources/claude-customizations/.claude/agents/prd-feature.md +1 -1
  13. package/resources/claude-customizations/.claude/agents/task-researcher.md +8 -0
  14. package/resources/claude-customizations/.claude/hooks/check-powershell-test-purity.ps1 +7 -1
  15. package/resources/claude-customizations/.claude/hooks/check-python-test-purity.ps1 +7 -1
  16. package/resources/claude-customizations/.claude/hooks/enforce-checkpoint-monotonic.ps1 +7 -1
  17. package/resources/claude-customizations/.claude/hooks/enforce-completion-consistency.ps1 +111 -46
  18. package/resources/claude-customizations/.claude/hooks/enforce-completion-helpers.ps1 +105 -0
  19. package/resources/claude-customizations/.claude/hooks/enforce-discovery-artifact-gate.ps1 +8 -1
  20. package/resources/claude-customizations/.claude/hooks/enforce-epic-invocation-origin.ps1 +7 -1
  21. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-command.ps1 +190 -0
  22. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-resolution.ps1 +116 -59
  23. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +78 -77
  24. package/resources/claude-customizations/.claude/hooks/enforce-epic-wave-barrier.ps1 +74 -75
  25. package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate-resolution.ps1 +127 -35
  26. package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate.ps1 +61 -57
  27. package/resources/claude-customizations/.claude/hooks/enforce-evidence-locations.ps1 +7 -1
  28. package/resources/claude-customizations/.claude/hooks/enforce-feature-folder-order.ps1 +129 -39
  29. package/resources/claude-customizations/.claude/hooks/enforce-mermaid-validation.ps1 +7 -1
  30. package/resources/claude-customizations/.claude/hooks/enforce-model-routing-receipt.ps1 +9 -3
  31. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1 +39 -51
  32. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-helpers.ps1 +31 -58
  33. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-modes.ps1 +63 -47
  34. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-targets.ps1 +433 -0
  35. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate.ps1 +17 -12
  36. package/resources/claude-customizations/.claude/hooks/enforce-parallel-abandon-gate.ps1 +9 -3
  37. package/resources/claude-customizations/.claude/hooks/enforce-parallel-cohort-barrier.ps1 +65 -50
  38. package/resources/claude-customizations/.claude/hooks/enforce-parallel-drift-gate.ps1 +49 -42
  39. package/resources/claude-customizations/.claude/hooks/enforce-parallel-worktree-removal-gate.ps1 +54 -72
  40. package/resources/claude-customizations/.claude/hooks/enforce-powershell-batch-budget.ps1 +8 -2
  41. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-command-allowlist.ps1 +279 -0
  42. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill-helpers.ps1 +129 -75
  43. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.artifact-root.ps1 +233 -0
  44. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.docs-only.ps1 +224 -0
  45. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.ps1 +69 -24
  46. package/resources/claude-customizations/.claude/hooks/enforce-prd-feature-before-planner-helpers.ps1 +29 -18
  47. package/resources/claude-customizations/.claude/hooks/enforce-prd-feature-before-planner.ps1 +10 -4
  48. package/resources/claude-customizations/.claude/hooks/enforce-promotion-mcp-only.ps1 +14 -5
  49. package/resources/claude-customizations/.claude/hooks/enforce-python-batch-budget.ps1 +8 -2
  50. package/resources/claude-customizations/.claude/hooks/feature-folder-resolution.ps1 +373 -0
  51. package/resources/claude-customizations/.claude/hooks/feature-review-coverage-thresholds.ps1 +85 -0
  52. package/resources/claude-customizations/.claude/hooks/hook-command-heredoc.ps1 +119 -0
  53. package/resources/claude-customizations/.claude/hooks/hook-command-invocation-operands.ps1 +198 -0
  54. package/resources/claude-customizations/.claude/hooks/hook-command-invocation.ps1 +254 -255
  55. package/resources/claude-customizations/.claude/hooks/hook-command-payload-powershell.ps1 +201 -0
  56. package/resources/claude-customizations/.claude/hooks/hook-command-payload.ps1 +484 -0
  57. package/resources/claude-customizations/.claude/hooks/hook-command-scanner.ps1 +27 -110
  58. package/resources/claude-customizations/.claude/hooks/hook-dependency-guard.ps1 +114 -0
  59. package/resources/claude-customizations/.claude/hooks/hook-docs-only-diff.ps1 +497 -0
  60. package/resources/claude-customizations/.claude/hooks/premortem-section.ps1 +149 -0
  61. package/resources/claude-customizations/.claude/hooks/subagentstop-envelope.ps1 +192 -0
  62. package/resources/claude-customizations/.claude/hooks/validate-bash.ps1 +9 -3
  63. package/resources/claude-customizations/.claude/hooks/validate-discovery-artifact-gate.ps1 +40 -42
  64. package/resources/claude-customizations/.claude/hooks/validate-executor-output.ps1 +267 -113
  65. package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage-metrics.ps1 +180 -0
  66. package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage-rules.ps1 +195 -0
  67. package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage.ps1 +141 -395
  68. package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output-resolution.ps1 +311 -0
  69. package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output-routing.ps1 +170 -0
  70. package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output.ps1 +115 -190
  71. package/resources/claude-customizations/.claude/hooks/validate-planner-output.ps1 +77 -33
  72. package/resources/claude-customizations/.claude/hooks/validate-pr-author-output.ps1 +39 -44
  73. package/resources/claude-customizations/.claude/hooks/validate-prd-feature-output.ps1 +43 -14
  74. package/resources/claude-customizations/.claude/hooks/validate-required-artifact-output.ps1 +66 -36
  75. package/resources/claude-customizations/.claude/hooks/validate-task-researcher-output.ps1 +52 -36
  76. package/resources/claude-customizations/.claude/lib/bash/mutate-parallel-run.sh +191 -0
  77. package/resources/claude-customizations/.claude/lib/bash/parallel-cohorts.sh +13 -3
  78. package/resources/claude-customizations/.claude/lib/bash/parallel-mutation-cli.sh +152 -0
  79. package/resources/claude-customizations/.claude/lib/bash/parallel-mutation-ops.sh +193 -0
  80. package/resources/claude-customizations/.claude/lib/bash/parallel-mutation.sh +322 -0
  81. package/resources/claude-customizations/.claude/lib/bash/remove-parallel-item.sh +146 -0
  82. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusExtraction.psm1 +23 -33
  83. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusTokenShape.psm1 +86 -6
  84. package/resources/claude-customizations/.claude/lib/ci-gate/Invoke-CiGateParser.ps1 +91 -19
  85. package/resources/claude-customizations/.claude/lib/ci-gate/Invoke-MergeConfirmationParser.ps1 +203 -0
  86. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateEpicWaveBarrier.psm1 +346 -0
  87. package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateIssueAdoption.psm1 +24 -3
  88. package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeItemResolution.psm1 +79 -2
  89. package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeRunResolution.psm1 +3 -3
  90. package/resources/claude-customizations/.claude/rules/architecture-boundaries.md +5 -5
  91. package/resources/claude-customizations/.claude/rules/csharp.md +2 -2
  92. package/resources/claude-customizations/.claude/rules/general-code-change.md +1 -1
  93. package/resources/claude-customizations/.claude/rules/general-unit-test.md +3 -2
  94. package/resources/claude-customizations/.claude/rules/orchestrator-state.md +37 -4
  95. package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +50 -5
  96. package/resources/claude-customizations/.claude/rules/plan-acceptance-gates.md +85 -10
  97. package/resources/claude-customizations/.claude/rules/quality-tiers.md +11 -7
  98. package/resources/claude-customizations/.claude/rules/shell.md +10 -8
  99. package/resources/claude-customizations/.claude/rules/typescript.md +1 -1
  100. package/resources/claude-customizations/.claude/settings.json +3 -4
  101. package/resources/claude-customizations/.claude/skills/acceptance-criteria-tracking/SKILL.md +1 -1
  102. package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +52 -16
  103. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/SKILL.md +7 -3
  104. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_detached_lib.sh +1 -1
  105. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_enumerate_lib.sh +2 -0
  106. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/scripts/cleanup_worktrees_scan_helper.sh +2 -0
  107. package/resources/claude-customizations/.claude/skills/csharp-change-budget-router/SKILL.md +2 -2
  108. package/resources/claude-customizations/.claude/skills/epic-orchestrate/SKILL.md +45 -9
  109. package/resources/claude-customizations/.claude/skills/epic-plan/SKILL.md +5 -3
  110. package/resources/claude-customizations/.claude/skills/evidence-and-timestamp-conventions/SKILL.md +10 -1
  111. package/resources/claude-customizations/.claude/skills/execution-environment/SKILL.md +134 -0
  112. package/resources/claude-customizations/.claude/skills/feature-promotion-lifecycle/SKILL.md +1 -1
  113. package/resources/claude-customizations/.claude/skills/feature-review-workflow/SKILL.md +4 -3
  114. package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +36 -15
  115. package/resources/claude-customizations/.claude/skills/parallel-add/SKILL.md +52 -14
  116. package/resources/claude-customizations/.claude/skills/parallel-close/SKILL.md +22 -9
  117. package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +108 -21
  118. package/resources/claude-customizations/.claude/skills/parallel-plan/SKILL.md +63 -7
  119. package/resources/claude-customizations/.claude/skills/parallel-remove/SKILL.md +35 -12
  120. package/resources/claude-customizations/.claude/skills/powershell-change-budget-router/SKILL.md +1 -1
  121. package/resources/claude-customizations/.claude/skills/pr-author/SKILL.md +3 -1
  122. package/resources/claude-customizations/.claude/skills/python-change-budget-router/SKILL.md +1 -1
  123. package/resources/claude-customizations/.claude/skills/quota-throttling/SKILL.md +1 -1
  124. package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +16 -8
  125. package/resources/claude-customizations/.claude/skills/research-issue/SKILL.md +6 -0
  126. package/resources/claude-customizations/pack-manifests/core.json +27 -0
  127. package/resources/codex-and-agents-customizations/.agents/skills/README.md +1 -0
  128. package/resources/codex-and-agents-customizations/.agents/skills/acceptance-criteria-tracking/SKILL.md +1 -1
  129. package/resources/codex-and-agents-customizations/.agents/skills/architecture-boundaries/SKILL.md +5 -5
  130. package/resources/codex-and-agents-customizations/.agents/skills/atomic-executor/SKILL.md +19 -7
  131. package/resources/codex-and-agents-customizations/.agents/skills/atomic-plan-contract/SKILL.md +43 -4
  132. package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +18 -6
  133. package/resources/codex-and-agents-customizations/.agents/skills/csharp/SKILL.md +2 -2
  134. package/resources/codex-and-agents-customizations/.agents/skills/csharp-change-budget-router/SKILL.md +2 -2
  135. package/resources/codex-and-agents-customizations/.agents/skills/csharp-qa-gate/SKILL.md +2 -2
  136. package/resources/codex-and-agents-customizations/.agents/skills/epic-orchestrate/SKILL.md +16 -1
  137. package/resources/codex-and-agents-customizations/.agents/skills/epic-plan/SKILL.md +17 -1
  138. package/resources/codex-and-agents-customizations/.agents/skills/epic-run/SKILL.md +2 -1
  139. package/resources/codex-and-agents-customizations/.agents/skills/evidence-and-timestamp-conventions/SKILL.md +10 -1
  140. package/resources/codex-and-agents-customizations/.agents/skills/execution-environment/SKILL.md +134 -0
  141. package/resources/codex-and-agents-customizations/.agents/skills/feature-review-workflow/SKILL.md +13 -5
  142. package/resources/codex-and-agents-customizations/.agents/skills/general-code-change/SKILL.md +1 -1
  143. package/resources/codex-and-agents-customizations/.agents/skills/general-unit-test/SKILL.md +3 -2
  144. package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +27 -8
  145. package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +1 -1
  146. package/resources/codex-and-agents-customizations/.agents/skills/powershell-change-budget-router/SKILL.md +1 -1
  147. package/resources/codex-and-agents-customizations/.agents/skills/python-change-budget-router/SKILL.md +1 -1
  148. package/resources/codex-and-agents-customizations/.agents/skills/quality-tiers/SKILL.md +11 -7
  149. package/resources/codex-and-agents-customizations/.agents/skills/remediation-handoff-atomic-planner/SKILL.md +7 -3
  150. package/resources/codex-and-agents-customizations/.agents/skills/research-issue/SKILL.md +6 -0
  151. package/resources/codex-and-agents-customizations/.agents/skills/translate-claude-to-codex/SKILL.md +1 -1
  152. package/resources/codex-and-agents-customizations/.agents-variants/csharp-legacy/skills/csharp/SKILL.md +2 -2
  153. package/resources/codex-and-agents-customizations/.agents-variants/csharp-legacy/skills/csharp-qa-gate/SKILL.md +2 -2
  154. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c1.toml +21 -6
  155. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c2.toml +21 -6
  156. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3-elevated.toml +21 -6
  157. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3.toml +21 -6
  158. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c4.toml +21 -6
  159. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor.toml +21 -6
  160. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c1.toml +15 -2
  161. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c2.toml +15 -2
  162. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3-elevated.toml +15 -2
  163. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3.toml +15 -2
  164. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c4.toml +15 -2
  165. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner.toml +15 -2
  166. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planning.toml +1 -1
  167. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-planning.toml +1 -1
  168. package/resources/codex-and-agents-customizations/.codex/agents/epic-orchestrator.toml +4 -1
  169. package/resources/codex-and-agents-customizations/.codex/agents/feature-review.toml +6 -6
  170. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c1.toml +7 -4
  171. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c2.toml +7 -4
  172. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c3-elevated.toml +7 -4
  173. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c3.toml +7 -4
  174. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c4.toml +7 -4
  175. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator.toml +7 -4
  176. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-planning.toml +1 -1
  177. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-planning.toml +1 -1
  178. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c1.toml +6 -0
  179. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c2.toml +6 -0
  180. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c3-elevated.toml +6 -0
  181. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c3.toml +6 -0
  182. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c4.toml +6 -0
  183. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher.toml +6 -0
  184. package/resources/codex-and-agents-customizations/.codex/codex-web-setup.sh +318 -273
  185. package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
  186. package/resources/codex-and-agents-customizations/.codex/hooks/check-powershell-test-purity.ps1 +7 -1
  187. package/resources/codex-and-agents-customizations/.codex/hooks/check-python-test-purity.ps1 +7 -1
  188. package/resources/codex-and-agents-customizations/.codex/hooks/codex-epic-child-launch-attestation.ps1 +1 -1
  189. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-checkpoint-monotonic.ps1 +7 -1
  190. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-codex-model-routing.ps1 +8 -2
  191. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-completion-consistency.ps1 +97 -44
  192. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-completion-helpers.ps1 +105 -0
  193. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-child-worktree-binding.ps1 +7 -1
  194. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate-command.ps1 +190 -0
  195. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate.ps1 +54 -43
  196. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-planning-only.ps1 +6 -0
  197. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-root-invocation.ps1 +7 -1
  198. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-wave-barrier.ps1 +7 -1
  199. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-worktree-removal-gate.ps1 +54 -41
  200. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-evidence-locations.ps1 +7 -1
  201. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1 +35 -14
  202. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-helpers.ps1 +31 -58
  203. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-modes.ps1 +63 -47
  204. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-targets.ps1 +433 -0
  205. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate.ps1 +24 -11
  206. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-powershell-batch-budget.ps1 +8 -2
  207. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-promotion-mcp-only.ps1 +13 -4
  208. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-python-batch-budget.ps1 +8 -2
  209. package/resources/codex-and-agents-customizations/.codex/hooks/feature-folder-resolution.ps1 +373 -0
  210. package/resources/codex-and-agents-customizations/.codex/hooks/feature-review-coverage-thresholds.ps1 +85 -0
  211. package/resources/codex-and-agents-customizations/.codex/hooks/hook-command-heredoc.ps1 +119 -0
  212. package/resources/codex-and-agents-customizations/.codex/hooks/hook-command-invocation-operands.ps1 +198 -0
  213. package/resources/codex-and-agents-customizations/.codex/hooks/hook-command-invocation.ps1 +254 -255
  214. package/resources/codex-and-agents-customizations/.codex/hooks/hook-command-payload-powershell.ps1 +201 -0
  215. package/resources/codex-and-agents-customizations/.codex/hooks/hook-command-payload.ps1 +484 -0
  216. package/resources/codex-and-agents-customizations/.codex/hooks/hook-command-scanner.ps1 +27 -110
  217. package/resources/codex-and-agents-customizations/.codex/hooks/hook-dependency-guard.ps1 +114 -0
  218. package/resources/codex-and-agents-customizations/.codex/hooks/hook-docs-only-diff.ps1 +497 -0
  219. package/resources/codex-and-agents-customizations/.codex/hooks/validate-bash.ps1 +8 -2
  220. package/resources/codex-and-agents-customizations/.codex/hooks/validate-codex-subagent-routing.ps1 +7 -1
  221. package/resources/codex-and-agents-customizations/.codex/hooks/validate-feature-review-coverage.ps1 +24 -8
  222. package/resources/codex-and-agents-customizations/.codex/prompts/feature-review-remediate.md +6 -4
  223. package/resources/codex-and-agents-customizations/pack-manifests/core.json +11 -0
  224. package/resources/customizations/.github/agents/atomic_executor.agent.md +21 -11
  225. package/resources/customizations/.github/agents/atomic_planning.agent.md +8 -3
  226. package/resources/customizations/.github/agents/csharp-atomic-executor.agent.md +13 -9
  227. package/resources/customizations/.github/agents/csharp-atomic-planning.agent.md +2 -2
  228. package/resources/customizations/.github/agents/csharp-orchestrator.agent.md +2 -2
  229. package/resources/customizations/.github/agents/csharp-typed-engineer.agent.md +5 -5
  230. package/resources/customizations/.github/agents/orchestrator.agent.md +8 -5
  231. package/resources/customizations/.github/agents/powershell-atomic-executor.agent.md +13 -9
  232. package/resources/customizations/.github/agents/powershell-atomic-planning.agent.md +2 -2
  233. package/resources/customizations/.github/agents/powershell-orchestrator.agent.md +2 -2
  234. package/resources/customizations/.github/agents/powershell-typed-engineer.agent.md +3 -3
  235. package/resources/customizations/.github/agents/python-atomic-executor.agent.md +13 -9
  236. package/resources/customizations/.github/agents/python-atomic-planning.agent.md +2 -2
  237. package/resources/customizations/.github/agents/python-orchestrator.agent.md +2 -2
  238. package/resources/customizations/.github/agents/task-researcher.agent.md +6 -0
  239. package/resources/customizations/.github/instructions/csharp-code-change.instructions.md +4 -4
  240. package/resources/customizations/.github/instructions/csharp-unit-test.instructions.md +2 -2
  241. package/resources/customizations/.github/prompts/generate-atomic-plan.prompt.md +16 -10
  242. package/resources/customizations/.github/prompts/orchestrate-csharp-work.prompt.md +2 -2
  243. package/resources/customizations/.github/prompts/orchestrate-powershell-work.prompt.md +1 -1
  244. package/resources/customizations/.github/prompts/orchestrate-python-work.prompt.md +1 -1
  245. package/resources/customizations/.github/prompts/orchestrate-work.prompt.md +2 -2
  246. package/resources/customizations/.github/skills/acceptance-criteria-tracking/SKILL.md +1 -1
  247. package/resources/customizations/.github/skills/atomic-plan-contract/SKILL.md +43 -4
  248. package/resources/customizations/.github/skills/csharp-change-budget-router/SKILL.md +1 -1
  249. package/resources/customizations/.github/skills/evidence-and-timestamp-conventions/SKILL.md +10 -1
  250. package/resources/customizations/.github/skills/execution-environment/SKILL.md +134 -0
  251. package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +1 -1
  252. package/resources/customizations/.github/skills/powershell-change-budget-router/SKILL.md +1 -1
  253. package/resources/customizations/.github/skills/remediation-handoff-atomic-planner/SKILL.md +7 -3
  254. package/resources/feature-templates/bug/plan.yyyy-MM-ddTHH-mm.md +10 -0
  255. package/resources/feature-templates/feature/plan.yyyy-MM-ddTHH-mm.md +11 -0
  256. package/resources/feature-templates/refactor/plan.yyyy-MM-ddTHH-mm.md +11 -0
  257. package/resources/powershell/PoshQC/PoshQC.Coverage.psm1 +314 -0
  258. package/resources/powershell/PoshQC/PoshQC.CoverageMerge.psm1 +163 -0
  259. package/resources/powershell/PoshQC/PoshQC.Shard.psm1 +296 -0
  260. package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +48 -32
  261. package/resources/powershell/PoshQC/PoshQC.psd1 +7 -1
  262. package/resources/powershell/PoshQC/PoshQC.psm1 +18 -5
  263. package/resources/powershell/PoshQC/README.md +21 -3
  264. package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +5 -319
@@ -42,6 +42,11 @@ identical forms.
42
42
  - **Promotion.** Unpromoted items are promoted by their own preparation-mode child, not by the
43
43
  planner. The `preparation` route already carries the promotion MCP tools (`new_potential_entry`,
44
44
  `potential_to_issue`, `new_active_feature_folder`).
45
+ - **Issue adoption.** Issue-number items are adopted, not promoted. The item's GitHub issue
46
+ already exists, so its preparation child verifies the issue read-only and records a top-level
47
+ `issue_adoption` object in its checkpoint instead of calling `potential_to_issue` or the
48
+ promotion-entry tool. The delegation prompt carries that instruction as the issue-adoption line
49
+ under `## Preparation Fan-Out`.
45
50
  - **`issue_num` resolution.** `issue_num` is the primary key for every item reference. It is known
46
51
  at intake for issue-number items. For potential-entry items, record negative placeholders in
47
52
  intake order (`-1`, `-2`, ...) and back-fill the real number from each child's promotion receipt
@@ -102,11 +107,13 @@ invocations after the initial plan. Use `/parallel-plan` for intake and `/parall
102
107
  admit an item into a run that is already in flight.
103
108
 
104
109
  Each delegation prompt includes this literal kickoff line, followed by the model-budget marker
105
- line:
110
+ line and, for an issue-number item only, the issue-adoption line:
106
111
 
107
112
  > `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.`
108
113
  >
109
114
  > `model_budget.fable_policy: <disabled|available|preferred>.`
115
+ >
116
+ > `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.`
110
117
 
111
118
  Properties of that line, each individually load-bearing:
112
119
 
@@ -128,6 +135,13 @@ does not apply to preparation. It contains no `Parallel mode: true`, so F7's fut
128
135
  hook, which matches that marker, will not gate preparation either. Both omissions are intentional
129
136
  and must be preserved verbatim when the line is emitted.
130
137
 
138
+ **Issue-adoption line.** The issue-adoption line is emitted only for an issue-number item, after
139
+ the model-budget marker line, and is omitted for a potential-entry item, whose child promotes it.
140
+ The line carries no mode marker, no digits, and no active feature-folder path, so hook target
141
+ resolution and mode classification are unchanged. The preparation checkpoint does not carry over
142
+ to execution, so the execution child records its own adoption (see
143
+ `.claude/skills/parallel-orchestrate/SKILL.md`, kickoff element 4).
144
+
131
145
  **No edit to shared surfaces.** No edit is made to `.claude/skills/orchestrate/SKILL.md` or to
132
146
  `config/orchestration-routing.json`, including the `preparation` route. The route mechanism is
133
147
  marker-driven; the child contract's "commit ... to the current branch" wording is satisfied by a
@@ -135,8 +149,9 @@ branch created off `origin/main`; and `routes.preparation` declares no epic-spec
135
149
  agent, skill, or MCP tool.
136
150
 
137
151
  **Collected per child at termination:** `plan-path`, preflight status, the promotion receipt (the
138
- `issue_num` back-fill source), the model-routing receipt with `logical_agent: "orchestrator"`, the
139
- topology receipt, `branch_name`, and `worktree_path`. There is no fan-in merge step: the planner
152
+ `issue_num` back-fill source for a potential-entry item) or, for an issue-number item, the
153
+ `issue_adoption` record from the child checkpoint, the model-routing receipt with
154
+ `agent: "orchestrator"`, the topology receipt, `branch_name`, and `worktree_path`. There is no fan-in merge step: the planner
140
155
  fetches and records each pushed item branch, back-fills `issue_num` into the manifest on
141
156
  `parallel/<slug>-plan`, and updates the checkpoint.
142
157
 
@@ -276,6 +291,44 @@ concurrently.
276
291
  Derivation, the V1-V3 rules, and the contention relation are implemented upstream. This skill calls
277
292
  them; it defines none of them.
278
293
 
294
+ ## Complexity Assessment
295
+
296
+ **Assessment point.** Assess each item's complexity band after the item is `prepared` — its
297
+ preflight status is `PREFLIGHT: ALL CLEAR` and its `declared` radius is V1/V2-clear — and before
298
+ cohort seeding, which consumes the band through the scheduling entry point. The parallel parent
299
+ reads the same band to choose the `model` of that item's `Agent(orchestrator)` spawn, so an item
300
+ without a band cannot be routed.
301
+
302
+ **Signals and scale.** Read the signal catalog and the band scale from `model_policy` in
303
+ `config/orchestration-routing.json`. Record every signal the item's approved plan and spec exhibit
304
+ in `signals_present`, then choose a band from the scale.
305
+
306
+ **Floor.** Compute the floor with `Get-ComplexityFloor -SignalsPresent <signals>` from
307
+ `.claude/lib/model-routing/ModelRouting.psm1` in PowerShell, or `compute_complexity_floor(signals)`
308
+ in Python. The chosen band must be at or above the floor; the floor is a lower bound only.
309
+
310
+ **Model resolution.** Resolve the child model with
311
+ `Resolve-DelegationModel -Agent orchestrator -Band <band> -FablePolicy <fable_policy>` from the same
312
+ module, or `resolve_delegation_model("orchestrator", band, fable_policy)` in Python, using the
313
+ run's `model_budget.fable_policy`.
314
+
315
+ **Per-item record.** Write three fields on the item:
316
+
317
+ - `complexity_band` — one of `C1`, `C2`, `C3`, `C4`.
318
+ - `complexity_assessment` — `{ band, floor, signals_present, rationale, assessed_at }`, where `band`
319
+ equals `complexity_band`, `floor` is the computed floor, `rationale` is a non-empty string, and
320
+ `assessed_at` is a non-empty ISO-8601 string.
321
+ - `model_routing_receipt` — `{ agent: "orchestrator", phase, complexity_band, fable_policy,
322
+ table_model, clamped_from, model }`, copied from the resolver output, with `complexity_band`
323
+ equal to the item's band.
324
+
325
+ The kickoff artifact's `## Item Summary` `complexity` cell for the item equals its
326
+ `complexity_band`.
327
+
328
+ **Routing input, not a verdict.** The band is a routing input for model selection and edge
329
+ derivation. It is distinct from the deliberately absent worthiness verdict: assessing a band never
330
+ admits, rejects, or reorders an item.
331
+
279
332
  ## Cohort Seeding
280
333
 
281
334
  Reach cohort computation through the **destination-runtime bash entry point** under
@@ -448,7 +501,8 @@ Top-level fields: `objective`, `parallel_slug`, `parallel_manifest_path`, `mode`
448
501
  `last_updated`. F3's landed required-key set (planner invariant P1) is a strict subset of this
449
502
  list, and `plan_home_branch` is a permitted additional field.
450
503
 
451
- Per item: `issue_num`, `feature_folder`, `kind`, `state`, `complexity_band`, `preparation_status`,
504
+ Per item: `issue_num`, `feature_folder`, `kind`, `state`, `complexity_band`, `complexity_assessment`,
505
+ `preparation_status`,
452
506
  `research_path`, `plan_path`, `preflight_status`, `branch_name`, `worktree_path`, `blast_radius`
453
507
  (with `source: "declared"`), `radius_validation` (the `v1`, `v2`, and `v3` results with their
454
508
  severities), `model_routing_receipt`, and `topology_receipt`.
@@ -461,8 +515,10 @@ blast-radius overlap.
461
515
  `require_ready_for_execution` gate: at least two items (invariant P6); every item
462
516
  `preparation_status: prepared` with `preflight_status` exactly `PREFLIGHT: ALL CLEAR`, non-empty
463
517
  `research_path` and `plan_path`, and `blast_radius.source == "declared"` (P7); `next_step` exactly
464
- the ready sentinel `PARALLEL_EXECUTION_READY` (P8); and `kickoff_prompt_path` exactly
465
- `artifacts/orchestration/parallel-kickoff-<slug>.md` (P9).
518
+ the ready sentinel `PARALLEL_EXECUTION_READY` (P8); `kickoff_prompt_path` exactly
519
+ `artifacts/orchestration/parallel-kickoff-<slug>.md` (P9); and every item carries a valid
520
+ `complexity_band`, a `complexity_assessment`, and a `model_routing_receipt` with
521
+ `agent: "orchestrator"` that agree with the band (P10).
466
522
 
467
523
  **Git integrity is F4-owned.** F3's `require_ready_for_execution` gate is structural only, so
468
524
  verifying that each item's committed plan blob exists on that item's pushed branch ref — and that
@@ -595,7 +651,7 @@ With no ready feature checkpoint, the exemption admits two attribution-trailer f
595
651
  - The trailer option: `git commit -m 'docs: plan' --trailer 'Co-Authored-By: Name <email>' --trailer 'Claude-Session: <url>' -- <exempt paths>`. The separate-value form and the `--trailer=<value>` form are both admitted, any number of times, on `git commit` only; `git add --trailer` and a trailer option with no value are denied. Git writes every trailer value into one trailer block.
596
652
  - The one-paragraph multi-message form: the subject in the first `-m` and every trailer in one single-quoted second `-m` value, separated by a literal newline. Each `-m` value becomes its own paragraph and git parses only the last paragraph as the trailer block, so trailers split across separate `-m` values do not form one trailer block.
597
653
 
598
- Quoting rules: `$` and backtick are literal and admitted inside single quotes, and denied outside quotes and inside double quotes, where the shell expands them. `<` and `>` are admitted inside single or double quotes and denied outside quotes. An unquoted `#` is denied anywhere, because it starts a shell comment that the exemption does not model; a `#` inside quotes is admitted. A typographic quote character (U+2018 to U+201E) anywhere in the command line is denied, because a PowerShell host reads it as a quote.
654
+ Quoting rules: `$` and backtick are literal and admitted inside single quotes, and denied outside quotes and inside double quotes, where the shell expands them. `<` and `>` are admitted inside single or double quotes and denied outside quotes. An unquoted `#` is denied anywhere, because it starts a shell comment that the exemption does not model; a `#` inside quotes is admitted. A typographic quote character (U+2018 to U+201E) anywhere in the command line is denied, because a PowerShell host reads it as a quote. Because the executing shell is undetermined (issue #735), a shape whose meaning differs between a POSIX shell and PowerShell is denied: a backslash anywhere in the command line is denied, and `{`, `}`, `,`, `(`, `)`, and `@` are denied outside quotes. Every staging operand must be a plain forward-slash repository-relative path that uses only the characters `A-Z a-z 0-9 . _ / -`.
599
655
 
600
656
  Not admitted: heredoc-fed messages, including `git commit -m "$(cat <<'EOF' ... EOF)"` and `git commit -F - <<'EOF'`, and message files supplied through `-F <file>` or `--file=<file>`. Use one of the two forms above instead.
601
657
 
@@ -73,17 +73,28 @@ Do not record a partial removal, and do not record the rejection itself in `muta
73
73
 
74
74
  1. Re-derive durable state as above and resolve the item key against `items[]`.
75
75
 
76
- 2. Decide the removal by calling `decide_removal(item_key, items, disposition)` from
77
- `scripts/dev_tools/parallel_mutation_protocol.py`. The engine raises the dedicated rejection
78
- exception for every rejected row; surface its message and stop.
76
+ 2. Decide the removal through the bundled entry point:
77
+
78
+ ```shell
79
+ bash .claude/lib/bash/remove-parallel-item.sh decide --item <key> --state <state> --removal-disposition <detach|abandon>
80
+ ```
81
+
82
+ `--state` is the state re-derived in step 1; omit it when the key resolves to no `items[]`
83
+ entry. Pass the caller's disposition as `--removal-disposition`, and omit the option when none
84
+ was supplied. Exit 0 prints the decision object (`item_key`, `prior_state`, `new_state`,
85
+ `disposition`, `triggers_recompute`) as one JSON line on stdout. Exit 1 is a rejected row:
86
+ surface its single stderr line and stop. Exit 2 is a usage error in the invocation itself.
79
87
 
80
88
  3. **Unstarted removal (recompute).** Set the item's state to `withdrawn`, drop its vertex, and
81
- recolor by calling `recolor_unstarted(unstarted_items, conflict_edges, pinned,
82
- current_generation, current_cohort=current_cohort,
83
- highest_pinned_cohort=highest_pinned_cohort)`. Write
84
- `RecolorResult.cohort_assignments` into `cohorts[]` and set the top-level `recolor_generation`
85
- to `RecolorResult.generation`; the generation increments by exactly one. The result names no
86
- pinned key, so no in-flight item moves.
89
+ recolor through the bundled entry point:
90
+
91
+ ```shell
92
+ bash .claude/lib/bash/remove-parallel-item.sh recolor --unstarted "<k> ..." --edges "<a>:<b> ..." --pinned "<k> ..." --generation <g> --current-cohort <c> --highest-pinned-cohort <h>
93
+ ```
94
+
95
+ Write the output field `cohort_assignments` into `cohorts[]` and set the top-level
96
+ `recolor_generation` to the output field `generation`; the generation increments by exactly
97
+ one. The result names no pinned key, so no in-flight item moves.
87
98
 
88
99
  `current_cohort` is F3's top-level field, read from the re-verified durable state: the lowest
89
100
  current-generation cohort index still holding a non-terminal item. Under the per-edge barrier an
@@ -117,8 +128,18 @@ Do not record a partial removal, and do not record the rejection itself in `muta
117
128
  invocation above, so an ad hoc command is not matchable and would bypass the confirmation
118
129
  contract entirely. One invocation, one item, both side effects.
119
130
 
120
- 6. **Append exactly one `mutations[]` entry** for a successful removal, built by
121
- `build_remove_entry` from `scripts/dev_tools/parallel_mutation_protocol.py`:
131
+ 6. **Append exactly one `mutations[]` entry** for a successful removal, built through the
132
+ bundled entry point:
133
+
134
+ ```shell
135
+ bash .claude/lib/bash/remove-parallel-item.sh entry --item <key> --prior-state <state> --removal-disposition <detach|abandon> --recompute <true|false> --generation <g> --at <timestamp>
136
+ ```
137
+
138
+ `--recompute` equals the decision's `triggers_recompute`. `--generation` is the generation
139
+ before the removal. Omit `--removal-disposition` for an unstarted item. `--at` is the mutation
140
+ timestamp in `yyyy-MM-ddTHH-mm` form; when it is omitted the entry point uses the current UTC
141
+ minute. Exit 0 prints the entry as one JSON line on stdout; exit 1 is a contract rejection whose
142
+ single stderr line is surfaced before stopping; exit 2 is a usage error.
122
143
 
123
144
  | Case | `op` | `item_key` | `prior_state` | `new_state` | `disposition` | `recolor_generation` |
124
145
  | --- | --- | --- | --- | --- | --- | --- |
@@ -127,7 +148,9 @@ Do not record a partial removal, and do not record the rejection itself in `muta
127
148
  | Remove, `abandon` | `remove` | item key | `in_flight` | `withdrawn` | `abandon` | `g` (unchanged) |
128
149
 
129
150
  `disposition` is non-null only on an in-flight removal and is null on the unstarted row. The `at`
130
- timestamp comes from the engine's injected clock seam.
151
+ timestamp comes from the `--at` value, or from the current UTC minute when `--at` is omitted.
152
+ The repository-local module `scripts/dev_tools/parallel_mutation_protocol.py` is retained as the
153
+ parity reference for this entry point and is not invoked on this path.
131
154
 
132
155
  7. **Validate the checkpoint** before treating the removal as applied. Run the
133
156
  `validate_orchestration_artifacts` MCP tool with `artifact_type:
@@ -28,7 +28,7 @@ When routed through `/orchestrate`, small path still requires lifecycle scaffold
28
28
  - promote potential item to GitHub issue with `--work-mode minor-audit`,
29
29
  - create active feature folder with `--work-mode minor-audit`,
30
30
  - delegate minimal-audit plan creation to `atomic_planner` with `DIRECTIVE: MINIMAL-AUDIT PLAN REQUIRED`,
31
- - require `atomic_executor` preflight until `PREFLIGHT: ALL CLEAR`,
31
+ - require single-pass `atomic_executor` preflight ending in `PREFLIGHT: ALL CLEAR` (at most one return to the planner),
32
32
  - execute Phase 0 only via `atomic_executor` before branching,
33
33
  - run reduced small-audit after implementation and QC.
34
34
 
@@ -49,7 +49,7 @@ PreToolUse hook can verify the body passed to `gh pr create --body-file` is the
49
49
  produced:
50
50
 
51
51
  1. Write the body text to `artifacts/pr_body_<N>.md`, where `<N>` is the target issue or PR number.
52
- 2. Compute the SHA-256 of the body file bytes and render it as lowercase hexadecimal.
52
+ 2. Compute the SHA-256 of the body file by running `sha256sum artifacts/pr_body_<N>.md` as a single command (no chaining) and take the lowercase hexadecimal digest.
53
53
  3. Write the sibling receipt `artifacts/pr_body_<N>.receipt.json` with the shape:
54
54
 
55
55
  ```json
@@ -63,6 +63,8 @@ produced:
63
63
  }
64
64
  ```
65
65
 
66
+ Obtain it by running `date -u +%Y-%m-%dT%H:%M:%SZ` as a single command.
67
+
66
68
  4. Pass the body to the pull request via `--body-file artifacts/pr_body_<N>.md`; do not use inline
67
69
  `--body`.
68
70
 
@@ -40,7 +40,7 @@ When routed through `/orchestrate`, the small path still requires lifecycle scaf
40
40
  - promote the potential item to a GitHub issue with `--work-mode minor-audit`,
41
41
  - create the active feature folder with `--work-mode minor-audit`,
42
42
  - delegate minimal-audit plan creation to `atomic_planner` with `DIRECTIVE: MINIMAL-AUDIT PLAN REQUIRED`,
43
- - require `atomic_executor` preflight until `PREFLIGHT: ALL CLEAR`,
43
+ - require single-pass `atomic_executor` preflight ending in `PREFLIGHT: ALL CLEAR` (at most one return to the planner),
44
44
  - execute Phase 0 only via `atomic_executor` before branching,
45
45
  - run the reduced small-audit after implementation and QC.
46
46
 
@@ -6,7 +6,7 @@ description: 'Quota throttling and account-switching policy for multi-agent orch
6
6
  # Quota Throttling and Account-Switching Policy
7
7
 
8
8
  Policy for keeping long-running, multi-agent orchestration inside account usage limits without
9
- losing work. Derived from about five days of continuous multi-agent orchestration (TaskMaster runs
9
+ losing work. Derived from about five days of continuous multi-agent orchestration (consumer-repository runs
10
10
  `bugs-2026-09-11` and `bugs-2026-09-17`).
11
11
 
12
12
  Every figure marked **MEASURED** was observed; figures marked **ESTIMATE** are extrapolations.
@@ -5,7 +5,7 @@ description: 'Remediation handoff chain from orchestrator through atomic-planner
5
5
 
6
6
  # Remediation Handoff to atomic-planner
7
7
 
8
- Strict handoff chain for orchestrator-initiated remediation cycles. The chain enforces that an `atomic-planner`-authored plan is preflighted by `atomic-executor`, revised through a preflight sub-loop if needed, executed by `atomic-executor` task-by-task, and reaudited by `feature-review`. Workers are never invoked directly by the orchestrator.
8
+ Strict handoff chain for orchestrator-initiated remediation cycles. The chain enforces that an `atomic-planner`-authored plan is preflighted by `atomic-executor`, revised at most once through the preflight sub-loop if needed, executed by `atomic-executor` task-by-task, and reaudited by `feature-review`. Workers are never invoked directly by the orchestrator.
9
9
 
10
10
  ## When to Use This Skill
11
11
 
@@ -14,7 +14,7 @@ Use this skill when:
14
14
  - Audit findings require remediation (FAIL or material PARTIAL findings).
15
15
  - Toolchain checks fail.
16
16
  - Acceptance criteria are unmet.
17
- - A required CI check fails after the pull request is open.
17
+ - A CI check fails after the pull request is open.
18
18
  - Any new finding surfaces during execution of an active cycle (in which case begin a new cycle, do not extend the active one).
19
19
 
20
20
  ## Full Handoff Chain
@@ -30,7 +30,7 @@ orchestrator
30
30
  PREFLIGHT: ALL CLEAR -> proceed to execution
31
31
  PREFLIGHT: REVISIONS REQUIRED -> route back to atomic-planner
32
32
  with a precise plan delta; planner revises in place and
33
- orchestrator re-runs preflight (sub-loop until clear)
33
+ orchestrator re-runs preflight once (at most one return)
34
34
  -> atomic-executor executes the cleared plan task-by-task
35
35
  (workers are invoked by atomic-executor only)
36
36
  -> orchestrator delegates to feature-review
@@ -52,7 +52,7 @@ Trigger remediation when any of these are true:
52
52
  - Audit artifacts contain FAIL or meaningful PARTIAL findings.
53
53
  - Toolchain checks fail (format, lint, type-check, test, contract, or integration stages).
54
54
  - Acceptance criteria are not met.
55
- - A required CI check fails after the PR is open (workflow-file changes specifically must enter the loop and trigger the `modified-workflow-needs-green-run` rule defined in `.claude/skills/feature-review-workflow/SKILL.md`).
55
+ - A CI check fails after the PR is open (workflow-file changes specifically must enter the loop and trigger the `modified-workflow-needs-green-run` rule defined in `.claude/skills/feature-review-workflow/SKILL.md`).
56
56
 
57
57
  Remediation triggers only on blocking findings classified `autonomous`. Each blocking finding carries one remediability class (`autonomous`, `external_dependency`, `policy_hold`, `awaiting_ci`, or `human_decision_required`; `autonomous` when no class is stated). When no blocking finding is `autonomous`, the review verdict is `HALT_NON_REMEDIABLE` or `AWAITING_CI`: the orchestrator halts or waits, and no cycle, remediation plan, or `atomic-planner` handoff is created.
58
58
 
@@ -63,6 +63,11 @@ The orchestrator authors `remediation/<entry-ts>/remediation-inputs.md` with:
63
63
  - Enumerated fix list with file paths, expected behavior, and verification commands.
64
64
  - A "do not do" list (no scope creep, no policy weakening, no silent skips).
65
65
  - A pointer to the audit artifacts that produced the findings.
66
+ - Exactly one mode line, `Remediation-Mode: proportionate` or `Remediation-Mode: design`. The cycle is proportionate when every `autonomous` finding can be fixed without changing a spec acceptance criterion, a public interface, or the item's file inventory beyond the files already in the branch diff plus their tests and mirrors; otherwise it is design. CI-failure findings are normally proportionate.
67
+
68
+ Proportionate cycle. One `atomic-planner` delegation writes a short plan; one `atomic-executor` delegation then runs single-pass preflight with in-place trivial fixes and executes the plan in the same run. The orchestrator records `preflight: {iterations: 1, final_status: "clear"}` on the cycle before `execution_status`. When that preflight finds a substantive defect, the executor stops with `BLOCKED at preflight (before [P0-T1])`, a plan delta, and no checked task, and the orchestrator converts the cycle to design mode by rewriting the mode line to `Remediation-Mode: design` before one planner revision.
69
+
70
+ Design cycle. The full chain above runs with the preflight sub-loop below, bounded by the at-most-one-return rule.
66
71
 
67
72
  ## Required Artifacts
68
73
 
@@ -96,25 +101,28 @@ A comprehensive or final sweep in a remediation cycle covers that cycle's own pl
96
101
  - Phase 0 captures policy reads and baseline toolchain results per `policy-compliance-order` and `evidence-and-timestamp-conventions`.
97
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.
98
103
  - Evidence paths resolve to `<FEATURE>/evidence/<kind>/` per the non-overridable evidence path clause.
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.
99
105
 
100
106
  The plan must pass the `mcp__drm-copilot__validate_orchestration_artifacts` MCP tool with `artifact_type: "plan"` and `artifact_path: <plan-path>` before `atomic-executor` runs preflight against it.
101
107
 
102
108
  ## Preflight Sub-Loop
103
109
 
104
- After the plan is authored, `atomic-executor` runs preflight under the directive `DIRECTIVE: PREFLIGHT VALIDATION ONLY`. The exact signal returned is either:
110
+ After the plan is authored, `atomic-executor` runs preflight under the directive `DIRECTIVE: PREFLIGHT VALIDATION ONLY`, which the orchestrator places in the delegation prompt and never in the plan file. Preflight is single-pass: trivial defects are fixed in place and recorded as `PREFLIGHT-FIX:` lines with a `preflight-fix-record:` path. The exact signal returned is either:
105
111
 
106
112
  - `PREFLIGHT: ALL CLEAR` — the plan proceeds to execution.
107
- - `PREFLIGHT: REVISIONS REQUIRED` — `atomic-executor` returns a precise plan delta. The orchestrator routes the delta to `atomic-planner` for revision. `atomic-planner` updates the same plan file in place (per the plan-path continuity contract in `atomic-plan-contract`). The orchestrator then re-runs preflight. The sub-loop repeats until `PREFLIGHT: ALL CLEAR` is returned.
113
+ - `PREFLIGHT: REVISIONS REQUIRED` — `atomic-executor` returns a precise plan delta with one `PREFLIGHT-DEFECT:` line per substantive defect. The orchestrator routes the full defect list to `atomic-planner` for one revision. `atomic-planner` updates the same plan file in place (per the plan-path continuity contract in `atomic-plan-contract`). The orchestrator then re-runs preflight once.
114
+
115
+ At most one return. The sub-loop returns to `atomic-planner` at most once per cycle: when the second preflight still reports a substantive defect, the iteration ceiling below applies.
108
116
 
109
117
  The orchestrator records the preflight outcome in `remediation_loop.cycles[current_cycle].preflight` with `iterations` (counter) and `final_status` (`clear|changes_requested|pending`).
110
118
 
111
119
  For a well-scoped item where `preflight.iterations > 1`, record a process-defect investigation that identifies the incomplete planner internal-review dimension. Treat excess rounds as a process signal, not routine iteration.
112
120
 
113
- The exhaustive-pass, defect-enumeration, and delta-self-check rules that govern how `atomic-executor` conducts preflight are defined in the `## Preflight Validation (Planner ↔ Executor)` section of `.claude/skills/atomic-plan-contract/SKILL.md` and are not restated here.
121
+ The exhaustive-pass, defect-classification, in-place-fix, and fix-self-check rules that govern how `atomic-executor` conducts preflight are defined in the `## Preflight Validation (Planner ↔ Executor)` section of `.claude/skills/atomic-plan-contract/SKILL.md` and are not restated here.
114
122
 
115
123
  Alongside `iterations` and `final_status`, the orchestrator also records in `remediation_loop.cycles[current_cycle].preflight` the convergence line `atomic-executor` returned on that round, which is one of `CONVERGENCE: NO FURTHER ROUNDS EXPECTED` or `CONVERGENCE: FURTHER ROUNDS LIKELY`. This convergence field extends the field set already recorded at `remediation_loop.cycles[current_cycle].preflight` rather than replacing it: `iterations` and `final_status` continue to be recorded exactly as stated above, and the convergence field is written in addition to them.
116
124
 
117
- Iteration ceiling. When a cycle's `iterations` would exceed 2, the orchestrator records `final_status: "blocked_preflight_iteration_limit"`, halts the preflight sub-loop, and escalates to the caller, rather than continuing the sub-loop indefinitely. `blocked_preflight_iteration_limit` is a fourth `final_status` value extending the `clear|changes_requested|pending` enumeration stated above. This ceiling bounds the repeat-until-clear behavior stated above it: the sub-loop still repeats until `PREFLIGHT: ALL CLEAR` is returned, and the ceiling supplies the terminating condition for the case where that signal is not reached within two iterations.
125
+ Iteration ceiling. When a cycle's `iterations` would exceed 2, the orchestrator records `final_status: "blocked_preflight_iteration_limit"`, halts the preflight sub-loop, and escalates to the caller. `blocked_preflight_iteration_limit` is a fourth `final_status` value extending the `clear|changes_requested|pending` enumeration stated above. Under the at-most-one-return rule the ceiling is reached after one planner revision: the first preflight and the confirming preflight are the two permitted iterations.
118
126
 
119
127
  ## Execution and Reaudit
120
128
 
@@ -63,6 +63,12 @@ Create or update a single research file at one of the two tracked research roots
63
63
  - Propose a test strategy consistent with repository policy (unit tests for pure logic, integration seams).
64
64
  - Do not write test code; describe the strategy only.
65
65
 
66
+ ### 6. Pre-Mortem
67
+
68
+ - Feature-associated research (a research path under `docs/features/`) MUST carry a `## Pre-Mortem` section with one bullet beginning with each of the seven labels `Review checklists`, `Coverage`, `Mirror parity`, `File size`, `Test isolation`, `CI-only behavior`, and `Evidence`. Each bullet states how the next review or CI run could fail on that dimension and the mitigation the plan must carry; a label that does not apply is written as "not applicable" followed by the reason.
69
+ - One-off research under `docs/research/` is exempt.
70
+ - The researcher SubagentStop hook blocks feature research without a complete section. The `execution-environment` skill states the CI shape, contract tests, and isolation checks the section accounts for.
71
+
66
72
  ## Constraints
67
73
 
68
74
  - Research only. Do not implement changes.
@@ -30,6 +30,7 @@
30
30
  ".claude/hooks/enforce-epic-merge-gate.ps1",
31
31
  ".claude/hooks/enforce-epic-merge-gate-authorization.ps1",
32
32
  ".claude/hooks/enforce-epic-merge-gate-resolution.ps1",
33
+ ".claude/hooks/enforce-epic-merge-gate-command.ps1",
33
34
  ".claude/hooks/enforce-epic-wave-barrier.ps1",
34
35
  ".claude/hooks/enforce-epic-worktree-removal-gate.ps1",
35
36
  ".claude/hooks/enforce-epic-worktree-removal-gate-resolution.ps1",
@@ -40,25 +41,43 @@
40
41
  ".claude/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1",
41
42
  ".claude/hooks/enforce-orchestration-preimplementation-gate-helpers.ps1",
42
43
  ".claude/hooks/enforce-orchestration-preimplementation-gate-modes.ps1",
44
+ ".claude/hooks/enforce-orchestration-preimplementation-gate-targets.ps1",
43
45
  ".claude/hooks/enforce-parallel-abandon-gate.ps1",
44
46
  ".claude/hooks/enforce-parallel-cohort-barrier.ps1",
45
47
  ".claude/hooks/enforce-parallel-cohort-barrier-helpers.ps1",
46
48
  ".claude/hooks/enforce-parallel-drift-gate.ps1",
47
49
  ".claude/hooks/enforce-parallel-drift-gate-helpers.ps1",
48
50
  ".claude/hooks/enforce-parallel-worktree-removal-gate.ps1",
51
+ ".claude/hooks/enforce-pr-author-command-allowlist.ps1",
52
+ ".claude/hooks/enforce-pr-author-skill.artifact-root.ps1",
53
+ ".claude/hooks/enforce-pr-author-skill.docs-only.ps1",
49
54
  ".claude/hooks/enforce-pr-author-skill.epic-base-branch.ps1",
50
55
  ".claude/hooks/enforce-pr-author-skill.ps1",
51
56
  ".claude/hooks/enforce-pr-author-skill-helpers.ps1",
52
57
  ".claude/hooks/enforce-prd-feature-before-planner-helpers.ps1",
53
58
  ".claude/hooks/enforce-prd-feature-before-planner.ps1",
54
59
  ".claude/hooks/enforce-promotion-mcp-only.ps1",
60
+ ".claude/hooks/feature-folder-resolution.ps1",
61
+ ".claude/hooks/feature-review-coverage-thresholds.ps1",
62
+ ".claude/hooks/hook-command-heredoc.ps1",
55
63
  ".claude/hooks/hook-command-invocation.ps1",
64
+ ".claude/hooks/hook-command-invocation-operands.ps1",
65
+ ".claude/hooks/hook-command-payload.ps1",
66
+ ".claude/hooks/hook-command-payload-powershell.ps1",
56
67
  ".claude/hooks/hook-command-scanner.ps1",
68
+ ".claude/hooks/hook-dependency-guard.ps1",
69
+ ".claude/hooks/hook-docs-only-diff.ps1",
57
70
  ".claude/hooks/persist-session-id.ps1",
71
+ ".claude/hooks/premortem-section.ps1",
72
+ ".claude/hooks/subagentstop-envelope.ps1",
58
73
  ".claude/hooks/validate-bash.ps1",
59
74
  ".claude/hooks/validate-discovery-artifact-gate.ps1",
60
75
  ".claude/hooks/validate-executor-output.ps1",
76
+ ".claude/hooks/validate-feature-review-coverage-metrics.ps1",
77
+ ".claude/hooks/validate-feature-review-coverage-rules.ps1",
61
78
  ".claude/hooks/validate-feature-review-coverage.ps1",
79
+ ".claude/hooks/validate-orchestrator-output-resolution.ps1",
80
+ ".claude/hooks/validate-orchestrator-output-routing.ps1",
62
81
  ".claude/hooks/validate-orchestrator-output.ps1",
63
82
  ".claude/hooks/validate-planner-output.ps1",
64
83
  ".claude/hooks/validate-prd-feature-output.ps1",
@@ -100,6 +119,7 @@
100
119
  ".claude/skills/epic-run/SKILL.md",
101
120
  ".claude/skills/evidence-and-timestamp-conventions/SKILL.md",
102
121
  ".claude/skills/execute-hard-lock/SKILL.md",
122
+ ".claude/skills/execution-environment/SKILL.md",
103
123
  ".claude/skills/feature-promotion-lifecycle/SKILL.md",
104
124
  ".claude/skills/feature-review-workflow/SKILL.md",
105
125
  ".claude/skills/fill-feature-docs/SKILL.md",
@@ -145,6 +165,7 @@
145
165
  ".claude/lib/orchestrator-state/OrchestratorStateRoutingContract.psm1",
146
166
  ".claude/lib/orchestrator-state/OrchestratorStateIssueAdoption.psm1",
147
167
  ".claude/lib/orchestrator-state/OrchestratorStateUnconditional.psm1",
168
+ ".claude/lib/orchestrator-state/OrchestratorStateEpicWaveBarrier.psm1",
148
169
  ".claude/lib/discovery-validation/DiscoveryValidation.psm1",
149
170
  ".claude/lib/codex-routing/CodexDeployment.psm1",
150
171
  ".claude/lib/codex-routing/CodexTopology.psm1",
@@ -163,6 +184,7 @@
163
184
  ".claude/lib/project-file-merge/ProjectFileMerge.psm1",
164
185
  ".claude/lib/project-file-merge/Resolve-MergeableConflict.ps1",
165
186
  ".claude/lib/ci-gate/Invoke-CiGateParser.ps1",
187
+ ".claude/lib/ci-gate/Invoke-MergeConfirmationParser.ps1",
166
188
  ".claude/lib/parallel-drift/ParallelDriftHalt.psm1",
167
189
  ".claude/lib/parallel-drift/ParallelDrift.psm1",
168
190
  ".claude/lib/parallel-drift/Invoke-ParallelDriftDetection.ps1",
@@ -171,13 +193,18 @@
171
193
  ".claude/lib/bash/abandon-parallel-item.sh",
172
194
  ".claude/lib/bash/compute-cohorts.sh",
173
195
  ".claude/lib/bash/compute-concurrency-batches.sh",
196
+ ".claude/lib/bash/mutate-parallel-run.sh",
174
197
  ".claude/lib/bash/parallel-cohorts.sh",
175
198
  ".claude/lib/bash/parallel-common.sh",
176
199
  ".claude/lib/bash/parallel-items-validate.sh",
177
200
  ".claude/lib/bash/parallel-lane-assertion.sh",
178
201
  ".claude/lib/bash/parallel-manifest-validate.sh",
202
+ ".claude/lib/bash/parallel-mutation-cli.sh",
203
+ ".claude/lib/bash/parallel-mutation-ops.sh",
204
+ ".claude/lib/bash/parallel-mutation.sh",
179
205
  ".claude/lib/bash/parallel-yaml-emit.sh",
180
206
  ".claude/lib/bash/parallel-yaml-scan.sh",
207
+ ".claude/lib/bash/remove-parallel-item.sh",
181
208
  ".claude/lib/bash/report-lane-assertion.sh",
182
209
  ".claude/lib/bash/validate-parallel-manifest.sh",
183
210
  "config/orchestration-routing.json",
@@ -9,6 +9,7 @@ Repository-local Codex skills live under `.agents/skills/<skill-name>/SKILL.md`.
9
9
  - `atomic-plan-contract`
10
10
  - `acceptance-criteria-tracking`
11
11
  - `evidence-and-timestamp-conventions`
12
+ - `execution-environment`
12
13
  - `skill-canonical-location-audit`
13
14
 
14
15
  - Integration
@@ -86,7 +86,7 @@ During feature review (feature-audit phase):
86
86
 
87
87
  ### When Orchestrators Enforce AC Tracking
88
88
 
89
- Orchestrators do not directly check off AC items. Instead:
89
+ Orchestrators do not directly check off AC items. The one exception is a CI-dependent criterion, which the item's own orchestrator run checks off at S9 as described in `### CI-Dependent Criteria` above. For every other criterion, orchestrators instead:
90
90
 
91
91
  1. Ensure delegated executors and reviewers reference this skill.
92
92
  2. After executor or reviewer completion, verify that AC source files reflect delivered work (spot-check; do not re-execute verification).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: architecture-boundaries
3
- description: Architecture boundary enforcement rules for the No-COM architecture.
3
+ description: Architecture boundary enforcement rules for a host-neutral layered architecture.
4
4
  ---
5
5
 
6
6
  # Converted rule
@@ -16,7 +16,7 @@ Architecture boundary enforcement is a uniform gate across all tiers (T1–T4).
16
16
  - **TypeScript:** `dependency-cruiser`. Configuration file pattern: `.dependency-cruiser.cjs`.
17
17
  - **.NET (when the backend exists):** `NetArchTest.Rules`. Test project naming pattern: `*.ArchitectureTests`.
18
18
 
19
- ## No-COM Architecture Rules (enforceable assertions)
19
+ ## Host-Neutral Architecture Rules (enforceable assertions)
20
20
 
21
21
  Production code in this repository must satisfy each of the following assertions. Each assertion is enforced by `dependency-cruiser` (TypeScript) or `NetArchTest.Rules` (.NET) where applicable; legacy import utilities, when added, must satisfy the same assertions.
22
22
 
@@ -39,9 +39,9 @@ Production code in this repository must satisfy each of the following assertions
39
39
 
40
40
  ## Layer Boundary Assertions (.NET, applies once the backend exists)
41
41
 
42
- - `TaskMaster.Domain` must have zero references to Outlook PIA, VSTO, or Office.js types.
43
- - `TaskMaster.Application` may depend on `TaskMaster.Domain` only.
44
- - Adapter projects may depend on `TaskMaster.Domain` and `TaskMaster.Application`; domain may not depend on adapters.
42
+ - `<Product>.Domain` must have zero references to Outlook PIA, VSTO, or Office.js types.
43
+ - `<Product>.Application` may depend on `<Product>.Domain` only.
44
+ - Adapter projects may depend on `<Product>.Domain` and `<Product>.Application`; domain may not depend on adapters.
45
45
 
46
46
  ## Enforcement Outcome
47
47
 
@@ -13,6 +13,7 @@ Always apply:
13
13
  - `policy-compliance-order`
14
14
  - `atomic-plan-contract`
15
15
  - `acceptance-criteria-tracking`
16
+ - `execution-environment`
16
17
 
17
18
  ## Role
18
19
 
@@ -33,17 +34,17 @@ Blocking is allowed only during preflight.
33
34
 
34
35
  ### Validation-Only Mode Contract
35
36
 
36
- If the incoming handoff includes the exact directive `DIRECTIVE: PREFLIGHT VALIDATION ONLY`:
37
+ If the incoming handoff includes the exact directive `DIRECTIVE: PREFLIGHT VALIDATION ONLY` (the directive belongs in the delegation prompt, never in a plan file):
37
38
 
38
- 1. Perform preflight validation only.
39
+ 1. Perform preflight validation only, in one pass over the entire plan, under `### Single-Pass Preflight` in `atomic-plan-contract`.
39
40
  2. Do not execute tasks, establish execution state, or run implementation commands.
40
- 3. Return exactly one of:
41
+ 3. Fix trivial defects in place in task text only (never add, remove, or reorder tasks), record each fix in `<FEATURE>/evidence/other/preflight-fixes.<timestamp>.md`, and report it as a `PREFLIGHT-FIX:` line with a `preflight-fix-record:` path.
42
+ 4. Return exactly one of:
41
43
  - `PREFLIGHT: ALL CLEAR`
42
44
  - `PREFLIGHT: REVISIONS REQUIRED`
43
- 4. If revisions are required, include a precise plan delta that `atomic-planner` can apply to the same plan file.
44
- 5. If revisions are required, automatically hand off back to `atomic-planner` and request that it apply the delta to the same plan file and resubmit that file for validation-only again.
45
- 6. Continue the validate -> delta -> planner-revise -> validate loop until preflight can return `PREFLIGHT: ALL CLEAR`.
46
- 7. If the planner-return handoff cannot be started or completed, stop and report blocked state; do not convert the failure into `PREFLIGHT: ALL CLEAR`.
45
+ 5. If revisions are required, include a precise plan delta that `atomic-planner` can apply to the same plan file, with one `PREFLIGHT-DEFECT:` line per substantive defect and every substantive defect listed.
46
+ 6. Return the result to the caller. A plan returns to the planner at most once; the orchestrator routes the defect list for one revision and runs one confirming preflight.
47
+ 7. If the required handoff cannot be started or completed, stop and report blocked state; do not convert the failure into `PREFLIGHT: ALL CLEAR`.
47
48
 
48
49
  ## Execution Rules
49
50
 
@@ -55,6 +56,17 @@ For each task:
55
56
  4. Check off the plan file on disk immediately after verification passes.
56
57
  5. Check off satisfied acceptance criteria in the authoritative requirement source file per `acceptance-criteria-tracking`.
57
58
 
59
+ ## Scratch Location
60
+
61
+ Concurrent child runs in one session share one session scratchpad, so every scratch file a run writes lives in a directory unique to the child.
62
+
63
+ - `SCRATCH` resolves to `<session scratchpad>/issue-<issue-num>/`, where `<issue-num>` is the plan's canonical issue number.
64
+ - Every scratch file, helper script, staged copy, and coverage report a plan names lives under `SCRATCH`. Subdirectories such as `SCRATCH/stage/` are permitted.
65
+ - Create `SCRATCH` before the first scratch write. Never write a scratch file to the scratchpad root or to a fixed shared name outside `SCRATCH`.
66
+ - When a plan written before this rule defines `SCRATCH` as the bare session scratchpad, treat that definition as `<session scratchpad>/issue-<issue-num>/`. This is a mechanical micro-action, not replanning.
67
+ - Plans and evidence artifacts record the literal token `SCRATCH`, never a host path.
68
+ - If two runs for the same issue can execute at once, the run-unique form `issue-<issue-num>-<yyyy-MM-ddTHH-mm>` replaces `issue-<issue-num>`.
69
+
58
70
  ## Non-Negotiable Constraints
59
71
 
60
72
  - Do not invent new phases or tasks.