@danmoisan/drm-copilot-mcp 1.1.19 → 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 (112) hide show
  1. package/out/mcp-server.js +165 -4
  2. package/package.json +1 -1
  3. package/resources/claude-customizations/.claude/agents/atomic-executor.md +17 -6
  4. package/resources/claude-customizations/.claude/agents/atomic-planner.md +10 -2
  5. package/resources/claude-customizations/.claude/agents/epic-orchestrator.md +5 -0
  6. package/resources/claude-customizations/.claude/agents/orchestrator.md +4 -1
  7. package/resources/claude-customizations/.claude/agents/parallel-orchestrator.md +4 -0
  8. package/resources/claude-customizations/.claude/agents/task-researcher.md +8 -0
  9. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-command.ps1 +190 -0
  10. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +22 -53
  11. package/resources/claude-customizations/.claude/hooks/hook-docs-only-diff.ps1 +5 -1
  12. package/resources/claude-customizations/.claude/hooks/premortem-section.ps1 +149 -0
  13. package/resources/claude-customizations/.claude/hooks/validate-executor-output.ps1 +210 -84
  14. package/resources/claude-customizations/.claude/hooks/validate-planner-output.ps1 +13 -1
  15. package/resources/claude-customizations/.claude/hooks/validate-task-researcher-output.ps1 +24 -5
  16. package/resources/claude-customizations/.claude/lib/ci-gate/Invoke-MergeConfirmationParser.ps1 +203 -0
  17. package/resources/claude-customizations/.claude/rules/plan-acceptance-gates.md +46 -10
  18. package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +48 -16
  19. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/SKILL.md +7 -3
  20. package/resources/claude-customizations/.claude/skills/csharp-change-budget-router/SKILL.md +2 -2
  21. package/resources/claude-customizations/.claude/skills/epic-orchestrate/SKILL.md +12 -3
  22. package/resources/claude-customizations/.claude/skills/epic-plan/SKILL.md +4 -2
  23. package/resources/claude-customizations/.claude/skills/execution-environment/SKILL.md +134 -0
  24. package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +22 -9
  25. package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +29 -5
  26. package/resources/claude-customizations/.claude/skills/powershell-change-budget-router/SKILL.md +1 -1
  27. package/resources/claude-customizations/.claude/skills/python-change-budget-router/SKILL.md +1 -1
  28. package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +14 -6
  29. package/resources/claude-customizations/.claude/skills/research-issue/SKILL.md +6 -0
  30. package/resources/claude-customizations/pack-manifests/core.json +4 -0
  31. package/resources/codex-and-agents-customizations/.agents/skills/README.md +1 -0
  32. package/resources/codex-and-agents-customizations/.agents/skills/atomic-executor/SKILL.md +8 -7
  33. package/resources/codex-and-agents-customizations/.agents/skills/atomic-plan-contract/SKILL.md +39 -4
  34. package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +8 -6
  35. package/resources/codex-and-agents-customizations/.agents/skills/csharp-change-budget-router/SKILL.md +2 -2
  36. package/resources/codex-and-agents-customizations/.agents/skills/epic-orchestrate/SKILL.md +8 -1
  37. package/resources/codex-and-agents-customizations/.agents/skills/execution-environment/SKILL.md +134 -0
  38. package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +12 -2
  39. package/resources/codex-and-agents-customizations/.agents/skills/powershell-change-budget-router/SKILL.md +1 -1
  40. package/resources/codex-and-agents-customizations/.agents/skills/python-change-budget-router/SKILL.md +1 -1
  41. package/resources/codex-and-agents-customizations/.agents/skills/remediation-handoff-atomic-planner/SKILL.md +7 -3
  42. package/resources/codex-and-agents-customizations/.agents/skills/research-issue/SKILL.md +6 -0
  43. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c1.toml +10 -6
  44. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c2.toml +10 -6
  45. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3-elevated.toml +10 -6
  46. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c3.toml +10 -6
  47. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor-c4.toml +10 -6
  48. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor.toml +10 -6
  49. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c1.toml +5 -2
  50. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c2.toml +5 -2
  51. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3-elevated.toml +5 -2
  52. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c3.toml +5 -2
  53. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner-c4.toml +5 -2
  54. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner.toml +5 -2
  55. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planning.toml +1 -1
  56. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-planning.toml +1 -1
  57. package/resources/codex-and-agents-customizations/.codex/agents/epic-orchestrator.toml +2 -0
  58. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c1.toml +5 -2
  59. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c2.toml +5 -2
  60. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c3-elevated.toml +5 -2
  61. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c3.toml +5 -2
  62. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c4.toml +5 -2
  63. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator.toml +5 -2
  64. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-planning.toml +1 -1
  65. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-planning.toml +1 -1
  66. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c1.toml +6 -0
  67. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c2.toml +6 -0
  68. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c3-elevated.toml +6 -0
  69. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c3.toml +6 -0
  70. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher-c4.toml +6 -0
  71. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher.toml +6 -0
  72. package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
  73. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate-command.ps1 +190 -0
  74. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-epic-merge-gate.ps1 +17 -38
  75. package/resources/codex-and-agents-customizations/.codex/hooks/hook-docs-only-diff.ps1 +5 -1
  76. package/resources/codex-and-agents-customizations/.codex/prompts/feature-review-remediate.md +6 -4
  77. package/resources/codex-and-agents-customizations/pack-manifests/core.json +2 -0
  78. package/resources/customizations/.github/agents/atomic_executor.agent.md +21 -11
  79. package/resources/customizations/.github/agents/atomic_planning.agent.md +8 -3
  80. package/resources/customizations/.github/agents/csharp-atomic-executor.agent.md +13 -9
  81. package/resources/customizations/.github/agents/csharp-atomic-planning.agent.md +2 -2
  82. package/resources/customizations/.github/agents/csharp-orchestrator.agent.md +2 -2
  83. package/resources/customizations/.github/agents/csharp-typed-engineer.agent.md +3 -3
  84. package/resources/customizations/.github/agents/orchestrator.agent.md +8 -5
  85. package/resources/customizations/.github/agents/powershell-atomic-executor.agent.md +13 -9
  86. package/resources/customizations/.github/agents/powershell-atomic-planning.agent.md +2 -2
  87. package/resources/customizations/.github/agents/powershell-orchestrator.agent.md +2 -2
  88. package/resources/customizations/.github/agents/powershell-typed-engineer.agent.md +3 -3
  89. package/resources/customizations/.github/agents/python-atomic-executor.agent.md +13 -9
  90. package/resources/customizations/.github/agents/python-atomic-planning.agent.md +2 -2
  91. package/resources/customizations/.github/agents/python-orchestrator.agent.md +2 -2
  92. package/resources/customizations/.github/agents/task-researcher.agent.md +6 -0
  93. package/resources/customizations/.github/prompts/generate-atomic-plan.prompt.md +16 -10
  94. package/resources/customizations/.github/prompts/orchestrate-csharp-work.prompt.md +2 -2
  95. package/resources/customizations/.github/prompts/orchestrate-powershell-work.prompt.md +1 -1
  96. package/resources/customizations/.github/prompts/orchestrate-python-work.prompt.md +1 -1
  97. package/resources/customizations/.github/prompts/orchestrate-work.prompt.md +2 -2
  98. package/resources/customizations/.github/skills/atomic-plan-contract/SKILL.md +39 -4
  99. package/resources/customizations/.github/skills/csharp-change-budget-router/SKILL.md +1 -1
  100. package/resources/customizations/.github/skills/execution-environment/SKILL.md +134 -0
  101. package/resources/customizations/.github/skills/powershell-change-budget-router/SKILL.md +1 -1
  102. package/resources/customizations/.github/skills/remediation-handoff-atomic-planner/SKILL.md +7 -3
  103. package/resources/feature-templates/bug/plan.yyyy-MM-ddTHH-mm.md +10 -0
  104. package/resources/feature-templates/feature/plan.yyyy-MM-ddTHH-mm.md +11 -0
  105. package/resources/feature-templates/refactor/plan.yyyy-MM-ddTHH-mm.md +11 -0
  106. package/resources/powershell/PoshQC/PoshQC.CoverageMerge.psm1 +163 -0
  107. package/resources/powershell/PoshQC/PoshQC.Shard.psm1 +296 -0
  108. package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +23 -4
  109. package/resources/powershell/PoshQC/PoshQC.psd1 +7 -1
  110. package/resources/powershell/PoshQC/PoshQC.psm1 +17 -5
  111. package/resources/powershell/PoshQC/README.md +13 -1
  112. package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +3 -0
@@ -13,7 +13,7 @@ PoshQC is a lightweight PowerShell quality gate that wraps Invoke-Formatter, PSS
13
13
  ## Requirements
14
14
 
15
15
  - PowerShell 5.1 or 7.6+
16
- - Modules: PSScriptAnalyzer 1.22.0, Pester 5.6.1 (installed automatically via the helper if missing)
16
+ - Modules: PSScriptAnalyzer 1.22.0, Pester 5.9.0 or later, below 6.0 (installed automatically via the helper if missing)
17
17
 
18
18
  ## Getting started
19
19
 
@@ -59,6 +59,12 @@ PoshQC is a lightweight PowerShell quality gate that wraps Invoke-Formatter, PSS
59
59
  - `Invoke-PoshQCSuite`: run format, analyze, and test in one pass, optionally narrowing the scan scope with `-ScanFolders`.
60
60
  - `Invoke-PoshQCTest`: run Pester using the bundled runsettings, including coverage and optional Koverage copy.
61
61
  - `Convert-PoshQCCoverageToRelative`: utility to strip repo-root prefixes and write a `.koverage.xml` copy (used internally by `Invoke-PoshQCTest`).
62
+ - `Get-PoshQCShardSlice`: select one shard's test files; with `-Weight` (non-negative values, for example text sizes in bytes) the heaviest files are assigned first to the least-loaded shard, and a negative weight is rejected.
63
+ - `New-PoshQCShardManifest`: build the in-memory shard manifest (`shardIndex`, `shardCount`, `all`, `selected`, `selectedFullPath`).
64
+ - `Test-PoshQCShardCompleteness`: throw unless a set of shard manifests selects every test file exactly once.
65
+ - `Test-PoshQCShardTestCount`: throw unless the shard test counts sum to a discovery-pass test count.
66
+ - `Merge-PoshQCCoverageReport`: merge the CoverageGutters XML texts of the shards at LINE granularity (no file I/O, no threshold).
67
+ - `Get-PoshQCCoverageLineSummary`: return covered, missed, total, and percent from a report's LINE counter.
62
68
 
63
69
  ## Configuration
64
70
 
@@ -66,6 +72,7 @@ PoshQC is a lightweight PowerShell quality gate that wraps Invoke-Formatter, PSS
66
72
  - Enforces compatible syntax for 5.1 and 7.6, 4-space indentation, ShouldProcess for state-changing functions, and safety guards (no Invoke-Expression, no global vars, etc.).
67
73
  - Pester settings: `./settings/pester.runsettings.psd1`
68
74
  - Runs tests under `scripts` and `tests/powershell`, outputs JUnit XML and CoverageGutters coverage, and enables coverage. The shipped runsettings carry no `CodeCoverage.Path` list; `Invoke-PoshQCTest` derives the coverage population from the workspace (see Coverage population below).
75
+ - Coverage uses Pester's profiler-based mode (`CodeCoverage.UseBreakpoints = $false`, issue #953), which needs Pester 5.4 or later and is faster than breakpoint mode on the same coverage population. The PoshQC suites target PowerShell 7; profiler mode under Windows PowerShell 5.1 is not exercised in CI. To use breakpoint mode, pass a settings file with `UseBreakpoints = $true` through `-SettingsPath`.
69
76
  - When `-ScanFolders` is supplied to `Invoke-PoshQCSuite` or the lower-level commands, the suite narrows discovery to those workspace-relative or workspace-contained folders.
70
77
  - Coverage population (issue #527): `Invoke-PoshQCTest` measures the same file set for the same workspace whichever module copy is loaded.
71
78
  - Workspace configuration: `config/poshqc-coverage.json` with the schema `{"version": 1, "roots": [...]}`. Each root is a workspace-relative folder. The file is validated fail-fast, and every error names `config/poshqc-coverage.json`: empty content, invalid JSON, a `version` other than 1, a missing or non-array `roots`, and a blank, absolute, or `..`-segment entry are rejected. An empty `roots` array yields an empty population.
@@ -73,6 +80,11 @@ PoshQC is a lightweight PowerShell quality gate that wraps Invoke-Formatter, PSS
73
80
  - Built-in exclusions: `.ps1` and `.psm1` files only; files named `*.Tests.ps1` are excluded, as are files whose first root-relative segment is `tests` and files under any root-relative directory named in `DefaultExcludedDirs` (for example `node_modules`, `artifacts`, `.venv`). A nonexistent root is skipped with a warning.
74
81
  - An empty population disables coverage for that invocation, logs `Code coverage disabled for this invocation`, and still runs the tests.
75
82
  - Each run logs `Code coverage population: source=<source>; files=<count>` before Pester starts.
83
+ - Sharded runs (issue #953): `Invoke-PoshQCTest -ShardIndex <n> -ShardCount <N>` runs only shard n of N.
84
+ - Test files are weighted by the UTF-8 size in bytes of their text with CRLF line endings counted as LF, and assigned heaviest first to the shard with the least assigned weight (ties: fewer files, then the lower shard index; equal sizes are taken in ordinal path order), so runners whose checkouts differ only in line-ending conversion compute the same assignment.
85
+ - `-ShardFileListPath <path>` writes the shard manifest (`shardIndex`, `shardCount`, `all`, `selected`) as JSON through the `-WriteShardFileList` seam.
86
+ - A shard that selects no test file (more shards than test files) stops with an error before Pester runs.
87
+ - `Merge-PoshQCCoverageReport` merges the shard reports with `ci = max(ci)` per line and recomputes the LINE and INSTRUCTION counters, so the merged LINE figures are exact. It omits `class` and `method` elements and METHOD and CLASS counters, because those cannot be recomputed from line hits.
76
88
 
77
89
  ## Typical workflow
78
90
 
@@ -24,6 +24,9 @@
24
24
  # workspace (config/poshqc-coverage.json, else the effective test scan folders); see README.md.
25
25
  # Optional: don't fail the run on coverage percentage
26
26
  CoveragePercentTarget = 0
27
+ # Issue #953: collect coverage with Pester's profiler-based tracer instead of
28
+ # breakpoints. The coverage population and denominator are unchanged.
29
+ UseBreakpoints = $false
27
30
  }
28
31
  }
29
32