@danmoisan/drm-copilot-mcp 1.0.26 → 1.1.0

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 (63) hide show
  1. package/out/mcp-server.js +542 -42
  2. package/package.json +1 -1
  3. package/resources/claude-customizations/.claude/hooks/check-powershell-test-purity.ps1 +17 -21
  4. package/resources/claude-customizations/.claude/hooks/check-python-test-purity.ps1 +17 -19
  5. package/resources/claude-customizations/.claude/hooks/enforce-checkpoint-monotonic.ps1 +17 -19
  6. package/resources/claude-customizations/.claude/hooks/enforce-completion-consistency.ps1 +18 -19
  7. package/resources/claude-customizations/.claude/hooks/enforce-discovery-artifact-gate.ps1 +18 -19
  8. package/resources/claude-customizations/.claude/hooks/enforce-epic-invocation-origin.ps1 +54 -32
  9. package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +172 -24
  10. package/resources/claude-customizations/.claude/hooks/enforce-epic-wave-barrier.ps1 +51 -22
  11. package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate.ps1 +56 -19
  12. package/resources/claude-customizations/.claude/hooks/enforce-evidence-locations.ps1 +71 -28
  13. package/resources/claude-customizations/.claude/hooks/enforce-feature-folder-order.ps1 +68 -23
  14. package/resources/claude-customizations/.claude/hooks/enforce-mermaid-validation.ps1 +402 -0
  15. package/resources/claude-customizations/.claude/hooks/enforce-model-routing-receipt.ps1 +20 -22
  16. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate.ps1 +59 -14
  17. package/resources/claude-customizations/.claude/hooks/enforce-parallel-abandon-gate.ps1 +17 -20
  18. package/resources/claude-customizations/.claude/hooks/enforce-parallel-cohort-barrier-helpers.ps1 +278 -0
  19. package/resources/claude-customizations/.claude/hooks/enforce-parallel-cohort-barrier.ps1 +55 -271
  20. package/resources/claude-customizations/.claude/hooks/enforce-parallel-drift-gate.ps1 +57 -22
  21. package/resources/claude-customizations/.claude/hooks/enforce-parallel-worktree-removal-gate.ps1 +56 -19
  22. package/resources/claude-customizations/.claude/hooks/enforce-powershell-batch-budget.ps1 +70 -27
  23. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill-helpers.ps1 +228 -0
  24. package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.ps1 +68 -225
  25. package/resources/claude-customizations/.claude/hooks/enforce-prd-feature-before-planner.ps1 +161 -34
  26. package/resources/claude-customizations/.claude/hooks/enforce-promotion-mcp-only.ps1 +59 -22
  27. package/resources/claude-customizations/.claude/hooks/enforce-python-batch-budget.ps1 +70 -27
  28. package/resources/claude-customizations/.claude/hooks/validate-bash.ps1 +32 -18
  29. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadius.psm1 +105 -2
  30. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusConfig.psm1 +32 -52
  31. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusExtraction.psm1 +107 -99
  32. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusNormalization.psm1 +295 -0
  33. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusValidation.psm1 +9 -3
  34. package/resources/claude-customizations/.claude/lib/hook-payload/HookPayload.psm1 +494 -0
  35. package/resources/claude-customizations/.claude/lib/mermaid/MermaidGrammar.psm1 +491 -0
  36. package/resources/claude-customizations/.claude/lib/mermaid/MermaidLineScanner.psm1 +488 -0
  37. package/resources/claude-customizations/.claude/lib/mermaid/MermaidMarkdownFences.psm1 +298 -0
  38. package/resources/claude-customizations/.claude/lib/mermaid/MermaidValidation.psm1 +496 -0
  39. package/resources/claude-customizations/.claude/rules/mermaid.md +142 -0
  40. package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +124 -1
  41. package/resources/claude-customizations/.claude/rules/plan-acceptance-gates.md +116 -0
  42. package/resources/claude-customizations/.claude/settings.json +5 -0
  43. package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +15 -0
  44. package/resources/claude-customizations/.claude/skills/evidence-and-timestamp-conventions/SKILL.md +13 -0
  45. package/resources/claude-customizations/.claude/skills/feature-promotion-lifecycle/SKILL.md +6 -0
  46. package/resources/claude-customizations/.claude/skills/mermaid-diagram/SKILL.md +184 -0
  47. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/c4.md +50 -0
  48. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/class.md +63 -0
  49. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/er.md +56 -0
  50. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/flowchart.md +68 -0
  51. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/gantt.md +51 -0
  52. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/other-types.md +82 -0
  53. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/pie.md +32 -0
  54. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/sequence.md +63 -0
  55. package/resources/claude-customizations/.claude/skills/mermaid-diagram/references/state.md +49 -0
  56. package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +8 -7
  57. package/resources/claude-customizations/.claude/skills/parallel-plan/SKILL.md +24 -4
  58. package/resources/claude-customizations/config/blast-radius.json +16 -2
  59. package/resources/claude-customizations/pack-manifests/core.json +22 -1
  60. package/resources/codex-and-agents-customizations/.agents/skills/evidence-and-timestamp-conventions/SKILL.md +13 -0
  61. package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
  62. package/resources/customizations/.github/skills/evidence-and-timestamp-conventions/SKILL.md +13 -0
  63. package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +31 -1
@@ -83,6 +83,19 @@ When evidence artifacts are used for automated checking or plan reconciliation,
83
83
  - `Command: <exact command>`
84
84
  - `EXIT_CODE: <int>`
85
85
 
86
+ One optional field may also be declared:
87
+ - `ExpectedExitCode: <int>` — the exit code the gate is expected to produce.
88
+
89
+ Rules for the optional expectation field:
90
+ - The spelling is exact and case-sensitive: `ExpectedExitCode`. `expectedexitcode` and `Expected Exit Code` do not match the accept-list and are discarded as unrecognized rows.
91
+ - The value is a single integer. A leading sign is accepted and no range check is applied; the value is used for an equality comparison only.
92
+ - When the field is absent the expectation defaults to `0`, so every artifact that omits it keeps its existing result. Writing `ExpectedExitCode: 0` explicitly renders identically to omitting the field.
93
+ - A present but non-integer value (including an empty value) makes the WHOLE artifact `unparseable`. An unparseable artifact is dropped by the collector filter, so a typo in the expectation removes the row from the PR body rather than degrading it to `fail`.
94
+ - When the field is duplicated, the FIRST occurrence wins in both the Python and the TypeScript parser; later occurrences are ignored.
95
+ - The field is per-FILE, not per-gate: one artifact carries exactly one expectation, so an artifact recording several gates cannot express a different expectation for each. Record a gate that needs a non-zero expectation in its own artifact file.
96
+
97
+ A gate whose observed `EXIT_CODE` equals its declared expectation is normalized to `pass`. The observed exit code is still displayed, and the rendered row additionally carries ` - Expected EXIT_CODE: <int>` between the `EXIT_CODE` and `Normalized result` lines when the expectation is non-zero.
98
+
86
99
  ### Baseline Evidence Output Summary (Required)
87
100
 
88
101
  For baseline evidence artifacts stored under `evidence/baseline/`, include an output summary in addition to the schema fields above:
@@ -137,14 +137,20 @@
137
137
  '.codex/hooks/enforce-epic-planning-only.ps1'
138
138
  # Issue #447 added the .claude-resident PowerShell blast-radius library, the
139
139
  # two-language mirror of scripts/dev_tools/compute_blast_radius.py and its
140
- # helper modules. The set is split across five files only to satisfy the
140
+ # helper modules. The set is split across six files only to satisfy the
141
141
  # 500-line limit; measured here so no new production module is excluded from
142
142
  # coverage.
143
+ # Issue #489 added BlastRadiusNormalization.psm1, which holds the
144
+ # read-by-mandate exclusion plus Get-ContractIdentifier and
145
+ # Resolve-BlastRadiusModule relocated out of the two modules that had run
146
+ # out of headroom. The relocation moves already-measured lines, so the new
147
+ # file is registered here to keep them in the coverage denominator.
143
148
  '.claude/lib/blast-radius/BlastRadiusExtraction.psm1'
144
149
  '.claude/lib/blast-radius/BlastRadiusGlob.psm1'
145
150
  '.claude/lib/blast-radius/BlastRadiusConfig.psm1'
146
151
  '.claude/lib/blast-radius/BlastRadiusValidation.psm1'
147
152
  '.claude/lib/blast-radius/BlastRadius.psm1'
153
+ '.claude/lib/blast-radius/BlastRadiusNormalization.psm1'
148
154
  # Issue #440 added the two parallel enforcement hooks (the Layer 1 cohort
149
155
  # barrier and the worktree removal gate) and extended the invocation-origin
150
156
  # hook with the parallel-agent family; measured here so no new or changed
@@ -164,6 +170,30 @@
164
170
  # excluded from coverage. The test suite dot-sources the file (guarded body) so
165
171
  # line attribution is valid.
166
172
  '.claude/hooks/enforce-parallel-abandon-gate.ps1'
173
+ # Issue #491 added the Mermaid validation PreToolUse hook and its dependency-free
174
+ # validator library; measured here so the new production files are not excluded from
175
+ # coverage. The hook's test suite dot-sources the file (guarded body) and the library
176
+ # suites import the modules, so line attribution is valid.
177
+ '.claude/hooks/enforce-mermaid-validation.ps1'
178
+ '.claude/lib/mermaid/MermaidGrammar.psm1'
179
+ '.claude/lib/mermaid/MermaidLineScanner.psm1'
180
+ '.claude/lib/mermaid/MermaidMarkdownFences.psm1'
181
+ '.claude/lib/mermaid/MermaidValidation.psm1'
182
+ # Issue #501 fixed the PreToolUse payload transport and shape across the whole
183
+ # hook surface. CodeCoverage.Path is an explicit per-file allow-list, so the new
184
+ # shared payload module, the six hooks that were changed but never registered,
185
+ # and the two dot-sourced helper siblings extracted for headroom are registered
186
+ # here. Without them the changed production surface would sit outside the
187
+ # coverage denominator, which the Coverage Exclusion Policy forbids.
188
+ '.claude/lib/hook-payload/HookPayload.psm1'
189
+ '.claude/hooks/enforce-promotion-mcp-only.ps1'
190
+ '.claude/hooks/enforce-orchestration-preimplementation-gate.ps1'
191
+ '.claude/hooks/enforce-evidence-locations.ps1'
192
+ '.claude/hooks/enforce-feature-folder-order.ps1'
193
+ '.claude/hooks/enforce-checkpoint-monotonic.ps1'
194
+ '.claude/hooks/enforce-prd-feature-before-planner.ps1'
195
+ '.claude/hooks/enforce-parallel-cohort-barrier-helpers.ps1'
196
+ '.claude/hooks/enforce-pr-author-skill-helpers.ps1'
167
197
  )
168
198
  # Optional: don't fail the run on coverage percentage
169
199
  CoveragePercentTarget = 0