@danmoisan/drm-copilot-mcp 1.1.16 → 1.1.17
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.
- package/out/mcp-server.js +639 -27
- package/package.json +1 -1
- package/resources/claude-customizations/.claude/agents/parallel-orchestrator.md +12 -6
- package/resources/claude-customizations/.claude/agents/python-typed-engineer.md +3 -3
- package/resources/claude-customizations/.claude/hooks/{enforce-powershell-batch-budget-route.ps1 → enforce-batch-budget-route.ps1} +12 -10
- package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-resolution.ps1 +221 -0
- package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +42 -66
- package/resources/claude-customizations/.claude/hooks/enforce-epic-wave-barrier.ps1 +58 -10
- package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate-resolution.ps1 +144 -0
- package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate.ps1 +36 -47
- package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1 +179 -27
- package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate.ps1 +21 -38
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-abandon-gate.ps1 +4 -4
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-cohort-barrier.ps1 +58 -10
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-drift-gate.ps1 +59 -9
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-worktree-removal-gate.ps1 +114 -37
- package/resources/claude-customizations/.claude/hooks/enforce-powershell-batch-budget.ps1 +3 -3
- package/resources/claude-customizations/.claude/hooks/enforce-python-batch-budget.ps1 +99 -64
- package/resources/claude-customizations/.claude/lib/bash/abandon-parallel-item.sh +176 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusConflict.psm1 +193 -14
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusGlob.psm1 +51 -28
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusScheduling.psm1 +5 -8
- package/resources/claude-customizations/.claude/lib/parallel-drift/Invoke-ParallelDriftDetection.ps1 +336 -0
- package/resources/claude-customizations/.claude/lib/parallel-drift/ParallelDrift.psm1 +467 -0
- package/resources/claude-customizations/.claude/lib/parallel-drift/ParallelDriftHalt.psm1 +388 -0
- package/resources/claude-customizations/.claude/lib/worktree-resolution/EpicScopeResolution.psm1 +53 -32
- package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeItemResolution.psm1 +19 -4
- package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeRunResolution.psm1 +497 -0
- package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +21 -0
- package/resources/claude-customizations/.claude/skills/epic-orchestrate/SKILL.md +2 -0
- package/resources/claude-customizations/.claude/skills/invoke-csharp-engineer/SKILL.md +4 -0
- package/resources/claude-customizations/.claude/skills/invoke-powershell-engineer/SKILL.md +4 -0
- package/resources/claude-customizations/.claude/skills/invoke-python-engineer/SKILL.md +6 -3
- package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +3 -1
- package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +32 -18
- package/resources/claude-customizations/.claude/skills/parallel-remove/SKILL.md +10 -10
- package/resources/claude-customizations/.claude/skills/python-change-budget-router/SKILL.md +11 -35
- package/resources/claude-customizations/pack-manifests/core.json +8 -0
- package/resources/claude-customizations/pack-manifests/powershell.json +0 -1
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md +0 -1
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md +2 -3
- package/resources/codex-and-agents-customizations/.agents/skills/python-change-budget-router/SKILL.md +10 -34
- package/resources/codex-and-agents-customizations/.codex/agents/python-orchestrator.toml +2 -2
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c1.toml +3 -3
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c2.toml +3 -3
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3-elevated.toml +3 -3
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3.toml +3 -3
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c4.toml +3 -3
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer.toml +3 -3
- package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-batch-budget-route.ps1 +139 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-powershell-batch-budget.ps1 +4 -124
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-python-batch-budget.ps1 +169 -79
- package/resources/codex-and-agents-customizations/pack-manifests/core.json +1 -0
- package/resources/customizations/.github/agents/python-orchestrator.agent.md +4 -4
- package/resources/customizations/.github/agents/python-typed-engineer.agent.md +7 -8
- package/resources/customizations/.github/prompts/orchestrate-python-work.prompt.md +3 -3
- package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +12 -1
|
@@ -97,7 +97,7 @@ Use these reusable skills to avoid duplicating shared operations:
|
|
|
97
97
|
3) **Single source of routing truth = change budget**
|
|
98
98
|
- First action is always to estimate rough change budget by identifying likely affected production Python files.
|
|
99
99
|
- If estimate is `1-3` production Python files (+ corresponding tests), use **small path**.
|
|
100
|
-
- If estimate is
|
|
100
|
+
- If estimate is more than 3 (`>3`) production Python files, use **large path**. The large path has no production-file cap. Test files are not counted toward the routing threshold.
|
|
101
101
|
|
|
102
102
|
4) **Deterministic variable handling**
|
|
103
103
|
- Persist and reuse these variables exactly as names:
|
|
@@ -117,7 +117,7 @@ Use these reusable skills to avoid duplicating shared operations:
|
|
|
117
117
|
|
|
118
118
|
## Phase 0 — Intake and budget estimate (mandatory)
|
|
119
119
|
|
|
120
|
-
1. Read user request and infer likely touched production Python files
|
|
120
|
+
1. Read user request and infer likely touched production Python files.
|
|
121
121
|
2. Estimate rough change budget.
|
|
122
122
|
3. Write/update orchestration checkpoint.
|
|
123
123
|
4. Route to one of two paths:
|
|
@@ -126,7 +126,7 @@ Use these reusable skills to avoid duplicating shared operations:
|
|
|
126
126
|
|
|
127
127
|
---
|
|
128
128
|
|
|
129
|
-
## Small path (budget 1-3 production Python files
|
|
129
|
+
## Small path (budget 1-3 production Python files)
|
|
130
130
|
|
|
131
131
|
Follow this exact sequence.
|
|
132
132
|
|
|
@@ -243,7 +243,7 @@ Hard enforcement for S8:
|
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
246
|
-
## Large path (budget >3 production Python files
|
|
246
|
+
## Large path (budget >3 production Python files)
|
|
247
247
|
|
|
248
248
|
Follow this exact sequence.
|
|
249
249
|
|
|
@@ -58,12 +58,12 @@ If any instructions conflict, **halt and notify the user**.
|
|
|
58
58
|
|
|
59
59
|
## 1) Scope control (NO scope creep)
|
|
60
60
|
|
|
61
|
-
- Default scope is **one feature slice** (typically **1
|
|
62
|
-
-
|
|
61
|
+
- Default scope is **one feature slice** (typically **1-3 production files** within the same package) plus its corresponding test file(s).
|
|
62
|
+
- Within the direct-mode budget, a slice may include production files beyond the primary module only when it is required to:
|
|
63
63
|
- introduce a minimal seam for testability (I/O boundary isolation, dependency injection),
|
|
64
64
|
- make typing changes required for Pyright cleanliness in the slice, or
|
|
65
65
|
- update the smallest set of call sites needed to preserve a stable public API.
|
|
66
|
-
-
|
|
66
|
+
- If the change requires more than 3 production files, stop and instruct the caller to use `python-orchestrator` (or `.github/prompts/orchestrate-python-work.prompt.md`). The orchestrated large path has no production-file cap.
|
|
67
67
|
- You may not modify additional production files unless:
|
|
68
68
|
- the user explicitly expands scope, OR
|
|
69
69
|
- a shared helper is objectively broken and the minimal fix is required for the in-scope change.
|
|
@@ -73,11 +73,10 @@ If any instructions conflict, **halt and notify the user**.
|
|
|
73
73
|
- the smallest alternative that avoids expanding scope
|
|
74
74
|
Proceed only after user approval.
|
|
75
75
|
|
|
76
|
-
## 2) Change budget (
|
|
76
|
+
## 2) Change budget (routing threshold)
|
|
77
77
|
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
- If no override is provided, the 3/3 limit applies; if an override is requested, comfirm compliance before Phase C.
|
|
78
|
+
- Direct mode budget: 1-3 production Python files (+ corresponding tests). A change of more than 3 production Python files belongs on the orchestrated large path (`python-orchestrator`).
|
|
79
|
+
- Test files are not counted toward the routing threshold, and the orchestrated large path has no production-file cap.
|
|
81
80
|
|
|
82
81
|
## 3) Deterministic unit tests only (no temp files, no external systems)
|
|
83
82
|
|
|
@@ -135,7 +134,7 @@ If no plan is provided, delegate the creation of a plan to the `atomic_planner`.
|
|
|
135
134
|
- Mocking plan (what is mocked, where patched, and why)
|
|
136
135
|
- Exact files to change (must match scope guardrails)
|
|
137
136
|
|
|
138
|
-
Before exiting Phase B, perform a quick line-count check on all in-scope files. If any file is near the 500-line limit or planned additions would push it over 500, decide upfront to split now (counting new files against the budget)
|
|
137
|
+
Before exiting Phase B, perform a quick line-count check on all in-scope files. If any file is near the 500-line limit or planned additions would push it over 500, decide upfront to split now (counting new files against the budget) before Phase C. If uncertain, treat it as at-risk and plan for a split rather than discovering it mid-execution. If an approved plan would create a 500-line violation, halt and seek clarification before proceeding.
|
|
139
138
|
|
|
140
139
|
Do not proceed to edits until the user explicitly approves (e.g., “Proceed.”).
|
|
141
140
|
However, if a plan is provided in the initial prompt, it is already implicitly approved.
|
|
@@ -20,10 +20,10 @@ Coordinate the user request from intake to completion using the correct path bas
|
|
|
20
20
|
|
|
21
21
|
## Required orchestration behavior
|
|
22
22
|
|
|
23
|
-
1. Estimate rough change budget first (production Python files
|
|
24
|
-
2. If budget is **1
|
|
23
|
+
1. Estimate rough change budget first (production Python files; test files are not counted toward the routing threshold).
|
|
24
|
+
2. If budget is **1-3 production Python files** (+ corresponding tests):
|
|
25
25
|
- Delegate directly to `python-typed-engineer` for plan + implementation + QA closure.
|
|
26
|
-
3. If budget is
|
|
26
|
+
3. If budget is **more than 3 production Python files**:
|
|
27
27
|
- Execute full large-path lifecycle:
|
|
28
28
|
1) Scope and create potential entry (`feature` vs `bug`, short-name creation)
|
|
29
29
|
2) Promote to GitHub issue and capture issue metadata
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
'.claude/hooks/check-powershell-test-purity.ps1'
|
|
30
30
|
'.claude/hooks/enforce-python-batch-budget.ps1'
|
|
31
31
|
'.claude/hooks/enforce-powershell-batch-budget.ps1'
|
|
32
|
-
'.claude/hooks/enforce-
|
|
32
|
+
'.claude/hooks/enforce-batch-budget-route.ps1'
|
|
33
33
|
# Issue #272 hardened this PreToolUse hook with a new orchestrator-state preflight
|
|
34
34
|
# check; measured here so the change produces real per-file coverage evidence.
|
|
35
35
|
'.claude/hooks/enforce-pr-author-skill.ps1'
|
|
@@ -45,8 +45,10 @@
|
|
|
45
45
|
'.claude/hooks/enforce-epic-merge-gate.ps1'
|
|
46
46
|
# Issue #670: CodeCoverage.Path is an explicit per-file allow-list, so the dot-sourced helpers file is listed here.
|
|
47
47
|
'.claude/hooks/enforce-epic-merge-gate-authorization.ps1'
|
|
48
|
+
'.claude/hooks/enforce-epic-merge-gate-resolution.ps1'
|
|
48
49
|
'.claude/hooks/enforce-epic-wave-barrier.ps1'
|
|
49
50
|
'.claude/hooks/enforce-epic-worktree-removal-gate.ps1'
|
|
51
|
+
'.claude/hooks/enforce-epic-worktree-removal-gate-resolution.ps1'
|
|
50
52
|
'.claude/hooks/enforce-pr-author-skill.ps1'
|
|
51
53
|
'.claude/hooks/validate-orchestrator-output.ps1'
|
|
52
54
|
'.claude/hooks/enforce-pr-author-skill.epic-base-branch.ps1'
|
|
@@ -135,6 +137,7 @@
|
|
|
135
137
|
'.codex/hooks/check-powershell-test-purity.ps1'
|
|
136
138
|
'.codex/hooks/enforce-python-batch-budget.ps1'
|
|
137
139
|
'.codex/hooks/enforce-powershell-batch-budget.ps1'
|
|
140
|
+
'.codex/hooks/enforce-batch-budget-route.ps1'
|
|
138
141
|
'.codex/hooks/enforce-evidence-locations.ps1'
|
|
139
142
|
'.codex/hooks/enforce-checkpoint-monotonic.ps1'
|
|
140
143
|
'.codex/hooks/enforce-orchestration-preimplementation-gate.ps1'
|
|
@@ -318,11 +321,19 @@
|
|
|
318
321
|
# Issue #663 added the epic-scope resolver and its pure readiness predicates.
|
|
319
322
|
'.claude/lib/worktree-resolution/EpicScopeResolution.psm1'
|
|
320
323
|
'.claude/lib/worktree-resolution/EpicScopeReadiness.psm1'
|
|
324
|
+
# Issue #690 added the run-target resolver; registered so it stays in the coverage denominator.
|
|
325
|
+
'.claude/lib/worktree-resolution/WorktreeRunResolution.psm1'
|
|
321
326
|
# Issue #762 relocated the CI gate parser into the bundled .claude/lib tree so
|
|
322
327
|
# push-down carries it with the orchestrate and epic-orchestrate skills.
|
|
323
328
|
# CodeCoverage.Path is an explicit per-file allow-list, so the relocated production
|
|
324
329
|
# file is registered here to stay in the coverage denominator.
|
|
325
330
|
'.claude/lib/ci-gate/Invoke-CiGateParser.ps1'
|
|
331
|
+
# Issue #763 ported radius drift detection to the destination runtime as two pure
|
|
332
|
+
# modules and an entry script under .claude/lib/parallel-drift. CodeCoverage.Path is an
|
|
333
|
+
# explicit per-file allow-list, so each new production file is registered here.
|
|
334
|
+
'.claude/lib/parallel-drift/ParallelDriftHalt.psm1'
|
|
335
|
+
'.claude/lib/parallel-drift/ParallelDrift.psm1'
|
|
336
|
+
'.claude/lib/parallel-drift/Invoke-ParallelDriftDetection.ps1'
|
|
326
337
|
)
|
|
327
338
|
# Optional: don't fail the run on coverage percentage
|
|
328
339
|
CoveragePercentTarget = 0
|