@danmoisan/drm-copilot-mcp 1.1.4 → 1.1.6

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 (38) hide show
  1. package/out/mcp-server.js +335 -24
  2. package/package.json +1 -1
  3. package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate.ps1 +163 -18
  4. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-modes.ps1 +477 -0
  5. package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate.ps1 +120 -12
  6. package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadius.psm1 +11 -0
  7. package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +1 -0
  8. package/resources/claude-customizations/.claude/rules/plan-acceptance-gates.md +131 -2
  9. package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +37 -0
  10. package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/SKILL.md +136 -4
  11. package/resources/claude-customizations/.claude/skills/parallel-add/SKILL.md +3 -1
  12. package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +18 -9
  13. package/resources/claude-customizations/.claude/skills/parallel-plan/SKILL.md +8 -1
  14. package/resources/claude-customizations/.claude/skills/pr-context-artifacts/SKILL.md +22 -0
  15. package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +10 -0
  16. package/resources/claude-customizations/config/orchestration-routing.json +1 -0
  17. package/resources/claude-customizations/pack-manifests/core.json +1 -0
  18. package/resources/codex-and-agents-customizations/.agents/skills/codex-model-routing/SKILL.md +10 -0
  19. package/resources/codex-and-agents-customizations/.agents/skills/pr-context-artifacts/SKILL.md +22 -0
  20. package/resources/codex-and-agents-customizations/.codex/agents/commit-steward-c1.toml +22 -0
  21. package/resources/codex-and-agents-customizations/.codex/agents/commit-steward-c2.toml +22 -0
  22. package/resources/codex-and-agents-customizations/.codex/agents/commit-steward-c3-elevated.toml +22 -0
  23. package/resources/codex-and-agents-customizations/.codex/agents/commit-steward-c3.toml +22 -0
  24. package/resources/codex-and-agents-customizations/.codex/agents/commit-steward-c4.toml +22 -0
  25. package/resources/codex-and-agents-customizations/.codex/agents/commit-steward.toml +2 -0
  26. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c1.toml +7 -0
  27. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c2.toml +7 -0
  28. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c3-elevated.toml +7 -0
  29. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c3.toml +7 -0
  30. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator-c4.toml +7 -0
  31. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator.toml +7 -0
  32. package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
  33. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-modes.ps1 +477 -0
  34. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate.ps1 +125 -12
  35. package/resources/codex-and-agents-customizations/pack-manifests/core.json +8 -1
  36. package/resources/config/orchestration-routing.json +1 -0
  37. package/resources/customizations/.github/skills/pr-context-artifacts/SKILL.md +22 -0
  38. package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +10 -2
@@ -65,6 +65,16 @@ epic root personas are forced independently of file count.
65
65
  7. Spawn the generated agent profile. Do not spawn the base alias and claim that
66
66
  a different model was selected.
67
67
 
68
+ ## Normal routed-delegation launch binding
69
+
70
+ Before every normal nested `spawn_agent` call, resolve independently for that delegation. Validate the generated profile name, model, reasoning effort, path, and SHA-256 against the resolver result and the generated profile on disk. Add
71
+ the exact validated receipt to `codex_model_routing_receipts[]`, including its non-empty `phase` and delegation identifier, in the selected checkpoint that `SubagentStart` reads. Durably flush the selected checkpoint before launch, then launch only the resolver-returned `deployment_agent`.
72
+
73
+ Reject the launch when the receipt is late, a generic alias is supplied, the
74
+ checkpoint is ambiguous, profile validation fails, persistence or durable flush
75
+ fails, or start attestation returns `routing_valid: false`. Do not accept child output or child mutations after `routing_valid: false`; retain downstream
76
+ recorder, authority-store, mutation-gate, and stop-gate enforcement.
77
+
68
78
  The route name `feature-review` resolves to the native
69
79
  `feature-reviewer-<profile>` agent family; retain `feature-review` as the
70
80
  receipt's logical agent name.
@@ -27,3 +27,25 @@ If the artifacts are missing or stale relative to the current branch state, re-g
27
27
  - When `PRBaseBranch` is missing or ambiguous, resolve it first with `pr-base-branch-merge-base` before running the collector.
28
28
  - Do not infer the refresh base from the repository default branch unless merge-base resolution fails for all candidates.
29
29
  - Treat an already-fresh artifact pair as authoritative; do not refresh solely because no explicit `PRBaseBranch` input was provided.
30
+
31
+ ### Freshness Cross-Check
32
+
33
+ Both artifacts open with a `Context generated` section carrying the generation timestamp and a
34
+ `Head SHA:` line. Decide freshness from those two values in two steps, and from nothing else.
35
+
36
+ 1. **Pair identity.** The generated-context timestamp must be byte-identical in the summary and in
37
+ the appendix. A mismatch proves the two files came from different invocations — a summary
38
+ refreshed while a stale appendix persists, or the reverse — so the pair does not describe one
39
+ run and must be regenerated.
40
+ 2. **Head binding.** The head SHA recorded in both files must equal the current head of the branch
41
+ under review. A mismatch proves the pair predates the current head, so it describes a different
42
+ diff than the one being reviewed and must be regenerated.
43
+
44
+ File existence and file modification time are not freshness signals. A file left at the expected
45
+ path by a previous invocation satisfies an existence check, and a stale file that was copied or
46
+ touched satisfies a modification-time check. Both operands of the cross-check above are read from
47
+ the artifacts themselves and from git, so the check is deterministic and does not depend on a wall
48
+ clock.
49
+
50
+ When the head SHA renders the `(unknown)` token, the collected context carried no head SHA. Head
51
+ binding cannot be established in that case, so treat the pair as unverified and regenerate it.
@@ -0,0 +1,22 @@
1
+ name = "commit-steward-c1"
2
+ description = "Generate a high-signal conventional commit message for the current repository based on staged changes only."
3
+ model = "gpt-5.6-luna"
4
+ model_reasoning_effort = "low"
5
+
6
+ developer_instructions = """
7
+ You are a commit-message specialist.
8
+
9
+ Use the following repo-local skill as the canonical workflow source:
10
+ - commit-message-conventions
11
+
12
+ Core behavior:
13
+ - Generate an audit-quality Git commit message for the current repository.
14
+ - Use an explicitly supplied commit-context artifact when one is provided.
15
+ - Otherwise inspect the local staged state directly with non-destructive Git commands.
16
+ - Do not create the commit. Do not stage, unstage, or modify files.
17
+ - Treat the shared skill as the source of truth for commit classification, formatting, interpretation, and prohibitions.
18
+
19
+ Final response contract:
20
+ - Output exactly one fenced `text` code block containing only the commit message.
21
+ - Do not include commentary, alternatives, or explanations outside the code block.
22
+ """
@@ -0,0 +1,22 @@
1
+ name = "commit-steward-c2"
2
+ description = "Generate a high-signal conventional commit message for the current repository based on staged changes only."
3
+ model = "gpt-5.6-terra"
4
+ model_reasoning_effort = "medium"
5
+
6
+ developer_instructions = """
7
+ You are a commit-message specialist.
8
+
9
+ Use the following repo-local skill as the canonical workflow source:
10
+ - commit-message-conventions
11
+
12
+ Core behavior:
13
+ - Generate an audit-quality Git commit message for the current repository.
14
+ - Use an explicitly supplied commit-context artifact when one is provided.
15
+ - Otherwise inspect the local staged state directly with non-destructive Git commands.
16
+ - Do not create the commit. Do not stage, unstage, or modify files.
17
+ - Treat the shared skill as the source of truth for commit classification, formatting, interpretation, and prohibitions.
18
+
19
+ Final response contract:
20
+ - Output exactly one fenced `text` code block containing only the commit message.
21
+ - Do not include commentary, alternatives, or explanations outside the code block.
22
+ """
@@ -0,0 +1,22 @@
1
+ name = "commit-steward-c3-elevated"
2
+ description = "Generate a high-signal conventional commit message for the current repository based on staged changes only."
3
+ model = "gpt-5.6-sol"
4
+ model_reasoning_effort = "high"
5
+
6
+ developer_instructions = """
7
+ You are a commit-message specialist.
8
+
9
+ Use the following repo-local skill as the canonical workflow source:
10
+ - commit-message-conventions
11
+
12
+ Core behavior:
13
+ - Generate an audit-quality Git commit message for the current repository.
14
+ - Use an explicitly supplied commit-context artifact when one is provided.
15
+ - Otherwise inspect the local staged state directly with non-destructive Git commands.
16
+ - Do not create the commit. Do not stage, unstage, or modify files.
17
+ - Treat the shared skill as the source of truth for commit classification, formatting, interpretation, and prohibitions.
18
+
19
+ Final response contract:
20
+ - Output exactly one fenced `text` code block containing only the commit message.
21
+ - Do not include commentary, alternatives, or explanations outside the code block.
22
+ """
@@ -0,0 +1,22 @@
1
+ name = "commit-steward-c3"
2
+ description = "Generate a high-signal conventional commit message for the current repository based on staged changes only."
3
+ model = "gpt-5.6-terra"
4
+ model_reasoning_effort = "high"
5
+
6
+ developer_instructions = """
7
+ You are a commit-message specialist.
8
+
9
+ Use the following repo-local skill as the canonical workflow source:
10
+ - commit-message-conventions
11
+
12
+ Core behavior:
13
+ - Generate an audit-quality Git commit message for the current repository.
14
+ - Use an explicitly supplied commit-context artifact when one is provided.
15
+ - Otherwise inspect the local staged state directly with non-destructive Git commands.
16
+ - Do not create the commit. Do not stage, unstage, or modify files.
17
+ - Treat the shared skill as the source of truth for commit classification, formatting, interpretation, and prohibitions.
18
+
19
+ Final response contract:
20
+ - Output exactly one fenced `text` code block containing only the commit message.
21
+ - Do not include commentary, alternatives, or explanations outside the code block.
22
+ """
@@ -0,0 +1,22 @@
1
+ name = "commit-steward-c4"
2
+ description = "Generate a high-signal conventional commit message for the current repository based on staged changes only."
3
+ model = "gpt-5.6-sol"
4
+ model_reasoning_effort = "max"
5
+
6
+ developer_instructions = """
7
+ You are a commit-message specialist.
8
+
9
+ Use the following repo-local skill as the canonical workflow source:
10
+ - commit-message-conventions
11
+
12
+ Core behavior:
13
+ - Generate an audit-quality Git commit message for the current repository.
14
+ - Use an explicitly supplied commit-context artifact when one is provided.
15
+ - Otherwise inspect the local staged state directly with non-destructive Git commands.
16
+ - Do not create the commit. Do not stage, unstage, or modify files.
17
+ - Treat the shared skill as the source of truth for commit classification, formatting, interpretation, and prohibitions.
18
+
19
+ Final response contract:
20
+ - Output exactly one fenced `text` code block containing only the commit message.
21
+ - Do not include commentary, alternatives, or explanations outside the code block.
22
+ """
@@ -1,5 +1,7 @@
1
1
  name = "commit-steward"
2
2
  description = "Generate a high-signal conventional commit message for the current repository based on staged changes only."
3
+ model = "gpt-5.6-terra"
4
+ model_reasoning_effort = "high"
3
5
 
4
6
  developer_instructions = """
5
7
  You are a commit-message specialist.
@@ -76,6 +76,13 @@ and reasoning effort. Spawn the generated deployment agent named by those receip
76
76
  standalone run whose ceiling is C3 uses Terra/High; C3 epic children and C3 work with a C4 sibling
77
77
  use Sol/High. Missing profiles or models block with `model_unavailable`; do not fall back silently.
78
78
 
79
+ The transaction must resolve independently before every normal nested `spawn_agent` call, and validate the generated profile name, model, reasoning effort, path, and SHA-256. Append the exact validated receipt, with a non-empty phase and delegation identifier, to `codex_model_routing_receipts` in the selected checkpoint that `SubagentStart` reads. The process must durably flush selected-checkpoint persistence before launch, then call `spawn_agent` only with the resolver-returned `deployment_agent`.
80
+
81
+ Reject generic aliases, ambiguous checkpoints, failed profile validation, failed persistence, late
82
+ receipts, and invalid start attestations. When the start attestation returns `routing_valid: false`,
83
+ reject child output and mutations; do not relax the recorder, authority-store, mutation-gate, or
84
+ stop-gate enforcement.
85
+
79
86
  The production-file result and the model result are independent. File count selects small typed
80
87
  engineer versus large orchestrator topology. The C1-C4 result selects the suffix and pinned model
81
88
  for that already-selected family; it must not change the topology.
@@ -76,6 +76,13 @@ and reasoning effort. Spawn the generated deployment agent named by those receip
76
76
  standalone run whose ceiling is C3 uses Terra/High; C3 epic children and C3 work with a C4 sibling
77
77
  use Sol/High. Missing profiles or models block with `model_unavailable`; do not fall back silently.
78
78
 
79
+ The transaction must resolve independently before every normal nested `spawn_agent` call, and validate the generated profile name, model, reasoning effort, path, and SHA-256. Append the exact validated receipt, with a non-empty phase and delegation identifier, to `codex_model_routing_receipts` in the selected checkpoint that `SubagentStart` reads. The process must durably flush selected-checkpoint persistence before launch, then call `spawn_agent` only with the resolver-returned `deployment_agent`.
80
+
81
+ Reject generic aliases, ambiguous checkpoints, failed profile validation, failed persistence, late
82
+ receipts, and invalid start attestations. When the start attestation returns `routing_valid: false`,
83
+ reject child output and mutations; do not relax the recorder, authority-store, mutation-gate, or
84
+ stop-gate enforcement.
85
+
79
86
  The production-file result and the model result are independent. File count selects small typed
80
87
  engineer versus large orchestrator topology. The C1-C4 result selects the suffix and pinned model
81
88
  for that already-selected family; it must not change the topology.
@@ -76,6 +76,13 @@ and reasoning effort. Spawn the generated deployment agent named by those receip
76
76
  standalone run whose ceiling is C3 uses Terra/High; C3 epic children and C3 work with a C4 sibling
77
77
  use Sol/High. Missing profiles or models block with `model_unavailable`; do not fall back silently.
78
78
 
79
+ The transaction must resolve independently before every normal nested `spawn_agent` call, and validate the generated profile name, model, reasoning effort, path, and SHA-256. Append the exact validated receipt, with a non-empty phase and delegation identifier, to `codex_model_routing_receipts` in the selected checkpoint that `SubagentStart` reads. The process must durably flush selected-checkpoint persistence before launch, then call `spawn_agent` only with the resolver-returned `deployment_agent`.
80
+
81
+ Reject generic aliases, ambiguous checkpoints, failed profile validation, failed persistence, late
82
+ receipts, and invalid start attestations. When the start attestation returns `routing_valid: false`,
83
+ reject child output and mutations; do not relax the recorder, authority-store, mutation-gate, or
84
+ stop-gate enforcement.
85
+
79
86
  The production-file result and the model result are independent. File count selects small typed
80
87
  engineer versus large orchestrator topology. The C1-C4 result selects the suffix and pinned model
81
88
  for that already-selected family; it must not change the topology.
@@ -76,6 +76,13 @@ and reasoning effort. Spawn the generated deployment agent named by those receip
76
76
  standalone run whose ceiling is C3 uses Terra/High; C3 epic children and C3 work with a C4 sibling
77
77
  use Sol/High. Missing profiles or models block with `model_unavailable`; do not fall back silently.
78
78
 
79
+ The transaction must resolve independently before every normal nested `spawn_agent` call, and validate the generated profile name, model, reasoning effort, path, and SHA-256. Append the exact validated receipt, with a non-empty phase and delegation identifier, to `codex_model_routing_receipts` in the selected checkpoint that `SubagentStart` reads. The process must durably flush selected-checkpoint persistence before launch, then call `spawn_agent` only with the resolver-returned `deployment_agent`.
80
+
81
+ Reject generic aliases, ambiguous checkpoints, failed profile validation, failed persistence, late
82
+ receipts, and invalid start attestations. When the start attestation returns `routing_valid: false`,
83
+ reject child output and mutations; do not relax the recorder, authority-store, mutation-gate, or
84
+ stop-gate enforcement.
85
+
79
86
  The production-file result and the model result are independent. File count selects small typed
80
87
  engineer versus large orchestrator topology. The C1-C4 result selects the suffix and pinned model
81
88
  for that already-selected family; it must not change the topology.
@@ -76,6 +76,13 @@ and reasoning effort. Spawn the generated deployment agent named by those receip
76
76
  standalone run whose ceiling is C3 uses Terra/High; C3 epic children and C3 work with a C4 sibling
77
77
  use Sol/High. Missing profiles or models block with `model_unavailable`; do not fall back silently.
78
78
 
79
+ The transaction must resolve independently before every normal nested `spawn_agent` call, and validate the generated profile name, model, reasoning effort, path, and SHA-256. Append the exact validated receipt, with a non-empty phase and delegation identifier, to `codex_model_routing_receipts` in the selected checkpoint that `SubagentStart` reads. The process must durably flush selected-checkpoint persistence before launch, then call `spawn_agent` only with the resolver-returned `deployment_agent`.
80
+
81
+ Reject generic aliases, ambiguous checkpoints, failed profile validation, failed persistence, late
82
+ receipts, and invalid start attestations. When the start attestation returns `routing_valid: false`,
83
+ reject child output and mutations; do not relax the recorder, authority-store, mutation-gate, or
84
+ stop-gate enforcement.
85
+
79
86
  The production-file result and the model result are independent. File count selects small typed
80
87
  engineer versus large orchestrator topology. The C1-C4 result selects the suffix and pinned model
81
88
  for that already-selected family; it must not change the topology.
@@ -76,6 +76,13 @@ and reasoning effort. Spawn the generated deployment agent named by those receip
76
76
  standalone run whose ceiling is C3 uses Terra/High; C3 epic children and C3 work with a C4 sibling
77
77
  use Sol/High. Missing profiles or models block with `model_unavailable`; do not fall back silently.
78
78
 
79
+ The transaction must resolve independently before every normal nested `spawn_agent` call, and validate the generated profile name, model, reasoning effort, path, and SHA-256. Append the exact validated receipt, with a non-empty phase and delegation identifier, to `codex_model_routing_receipts` in the selected checkpoint that `SubagentStart` reads. The process must durably flush selected-checkpoint persistence before launch, then call `spawn_agent` only with the resolver-returned `deployment_agent`.
80
+
81
+ Reject generic aliases, ambiguous checkpoints, failed profile validation, failed persistence, late
82
+ receipts, and invalid start attestations. When the start attestation returns `routing_valid: false`,
83
+ reject child output and mutations; do not relax the recorder, authority-store, mutation-gate, or
84
+ stop-gate enforcement.
85
+
79
86
  The production-file result and the model result are independent. File count selects small typed
80
87
  engineer versus large orchestrator topology. The C1-C4 result selects the suffix and pinned model
81
88
  for that already-selected family; it must not change the topology.
@@ -2,7 +2,7 @@ default_permissions = ":danger-full-access"
2
2
 
3
3
  [mcp_servers.drm-copilot]
4
4
  command = "npx"
5
- args = ["-y", "@danmoisan/drm-copilot-mcp@1.1.4"]
5
+ args = ["-y", "@danmoisan/drm-copilot-mcp@1.1.6"]
6
6
  required = true
7
7
  enabled_tools = [
8
8
  "collect_commit_context",