@danmoisan/drm-copilot-mcp 1.1.1 → 1.1.2
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 +10 -2
- package/package.json +1 -1
- package/resources/claude-customizations/.claude/rules/orchestrator-state.md +16 -0
- package/resources/claude-customizations/config/orchestration-routing.json +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/architecture-boundaries/SKILL.md +0 -3
- package/resources/codex-and-agents-customizations/.agents/skills/csharp/SKILL.md +0 -3
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-change-budget-router/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-qa-gate/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/epic-plan/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/evidence-and-timestamp-conventions/SKILL.md +2 -1
- package/resources/codex-and-agents-customizations/.agents/skills/general-code-change/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/general-unit-test/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-csharp-engineer/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +3 -2
- package/resources/codex-and-agents-customizations/.agents/skills/policy-audit-template-usage/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +0 -4
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-change-budget-router/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-qa-gate/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/python/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/python-qa-gate/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/python-suppressions/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/quality-tiers/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/research-issue/SKILL.md +4 -3
- package/resources/codex-and-agents-customizations/.agents/skills/self-explanatory-code-commenting/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/tonality/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/translate-claude-to-codex/SKILL.md +3 -3
- package/resources/codex-and-agents-customizations/.agents/skills/translate-copilot-to-claude/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/typescript/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.agents/skills/typescript-suppressions/SKILL.md +0 -2
- package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
- package/resources/config/orchestration-routing.json +1 -1
package/out/mcp-server.js
CHANGED
|
@@ -23470,6 +23470,9 @@ function validateModelReceipt(feature, prefix, delegation, expectedExecutionCont
|
|
|
23470
23470
|
}
|
|
23471
23471
|
return errors;
|
|
23472
23472
|
}
|
|
23473
|
+
function featureCarriesLaunchPath(feature) {
|
|
23474
|
+
return "launch_receipt_path" in feature || "launch_status_path" in feature;
|
|
23475
|
+
}
|
|
23473
23476
|
function validateLaunchBindings(features, context) {
|
|
23474
23477
|
const errors = [];
|
|
23475
23478
|
const seenBranches = /* @__PURE__ */ new Set();
|
|
@@ -23481,6 +23484,9 @@ function validateLaunchBindings(features, context) {
|
|
|
23481
23484
|
if (context.skipNotStarted && item["merge_status"] === "not_started") {
|
|
23482
23485
|
return;
|
|
23483
23486
|
}
|
|
23487
|
+
if (context.requireLaunchPaths && !featureCarriesLaunchPath(item)) {
|
|
23488
|
+
return;
|
|
23489
|
+
}
|
|
23484
23490
|
const prefix = context.planner ? `Epic planner checkpoint features[${index}] launch binding` : featurePrefix(item);
|
|
23485
23491
|
errors.push(...validateBranchAndPaths(item, prefix, seenBranches));
|
|
23486
23492
|
const delegation = validateDelegationReceipt(
|
|
@@ -23506,7 +23512,8 @@ function validateEpicPlannerChildLaunchBindings(features) {
|
|
|
23506
23512
|
expectedExecutionContext: "epic_preparation_child",
|
|
23507
23513
|
planner: true,
|
|
23508
23514
|
requireGeneratedOrchestrator: true,
|
|
23509
|
-
skipNotStarted: false
|
|
23515
|
+
skipNotStarted: false,
|
|
23516
|
+
requireLaunchPaths: false
|
|
23510
23517
|
});
|
|
23511
23518
|
}
|
|
23512
23519
|
function validateEpicChildLaunchBindings(state, options = {}) {
|
|
@@ -23521,7 +23528,8 @@ function validateEpicChildLaunchBindings(state, options = {}) {
|
|
|
23521
23528
|
expectedExecutionContext: "epic_execution_child",
|
|
23522
23529
|
planner: false,
|
|
23523
23530
|
requireGeneratedOrchestrator: false,
|
|
23524
|
-
skipNotStarted: options.requireComplete !== true
|
|
23531
|
+
skipNotStarted: options.requireComplete !== true,
|
|
23532
|
+
requireLaunchPaths: options.requireCodexModelRouting !== true && options.requireCodexTopology !== true
|
|
23525
23533
|
});
|
|
23526
23534
|
}
|
|
23527
23535
|
|
package/package.json
CHANGED
|
@@ -82,6 +82,22 @@ These invariants apply only when a caller passes `require_model_routing=True` an
|
|
|
82
82
|
|
|
83
83
|
The completion hook (`.claude/hooks/validate-orchestrator-output.ps1`) passes `--require-model-routing` alongside `--require-complete` and surfaces a gate failure as the `MODEL_ROUTING_BLOCKED:` block reason. The PreToolUse deterrent (`.claude/hooks/enforce-model-routing-receipt.ps1`) performs presence-only gating before a delegation. The MCP TypeScript surface performs the existence check only (delegated-agent set ⊆ routing-receipt-agent set); the Python validator remains authoritative for per-receipt correctness.
|
|
84
84
|
|
|
85
|
+
## Epic Launch-Binding Activation Scope
|
|
86
|
+
|
|
87
|
+
This section governs when the epic child launch-binding gate runs. It exists because the gate admitted the generic `require_complete` flag into an otherwise Codex-specific activation set, which made Codex-only launch evidence a universal completion requirement (issue #524).
|
|
88
|
+
|
|
89
|
+
The evidence the gate demands — `launch_receipt_path`, `launch_status_path`, `delegation_receipt`, and `model_routing_receipt` on each feature — has exactly one production writer, `.codex/scripts/launch-epic-child-wave.ps1`, on the Codex runtime. No Claude-runtime producer writes it, so an epic executed on the Claude runtime could never satisfy an unconditional gate.
|
|
90
|
+
|
|
91
|
+
1. **Unconditional under the two Codex enforcement flags.** When a caller passes `require_codex_model_routing` or `require_codex_topology`, launch-binding validation runs for every feature exactly as before, including the existing `skip_not_started` filter. Behaviour under either Codex flag is unchanged.
|
|
92
|
+
|
|
93
|
+
2. **Key-gated per feature under `require_complete` alone.** When `require_complete` is the only flag passed, the gate validates a feature only when that feature carries `launch_receipt_path` or `launch_status_path`. A feature carrying neither key is skipped and contributes zero errors.
|
|
94
|
+
|
|
95
|
+
3. **The presence test is deliberately either-key, so a partial binding still fails.** Presence means key membership, not value truthiness: a key present with an empty or null value still arms the gate. A feature carrying one launch path key and not the other is therefore validated, and the absent key produces its error. The test is never "both keys"; that spelling would let a half-written binding pass unexamined, and the partial-binding failure is the property that distinguishes this scope rule from deleting the gate.
|
|
96
|
+
|
|
97
|
+
The rest of the completion gate is unchanged. An epic whose feature is not merged, or whose `epic_merge_pr.merge_commit_sha` is missing or empty, still fails under `require_complete`.
|
|
98
|
+
|
|
99
|
+
Enforcement is validator logic plus this prose, never an imported JSON Schema. The activation scope lives in `scripts/dev_tools/_epic_orchestrator_state_launch_binding.py`, and the TypeScript parity port at `extensions/drm-copilot/src/lib/validate/epic-orchestrator-state-launch-binding.ts` reproduces it with byte-identical error strings. No schema file is authored, imported, or read for it.
|
|
100
|
+
|
|
85
101
|
## Enforcement
|
|
86
102
|
|
|
87
103
|
- `scripts/dev_tools/validate_orchestrator_state.py` appends one error per violated invariant when a `remediation_loop` is present, using the existing validator message style (literal, checkpoint-context prefixed). The validator returns a list of error strings and does not mutate its input.
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
},
|
|
211
211
|
"model_budget": {
|
|
212
212
|
"description": "Session-level model budget. fable_policy is a three-way switch controlling whether the fable tier is disabled (removed and clamped to opus), available (used as-is), or preferred (applies the preferred_overlay).",
|
|
213
|
-
"fable_policy": "
|
|
213
|
+
"fable_policy": "available"
|
|
214
214
|
},
|
|
215
215
|
"codex_topology_policy": {
|
|
216
216
|
"description": "Codex-native production-file-count routing. This axis selects the initial implementation topology independently from C1-C4 model selection.",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: csharp-change-budget-router
|
|
3
|
-
description: Budget-first routing contract for C# work: estimate production-file scope, choose small vs large path, enforce orchestration-first routing for larger changes, and use the VS Code extension command surface for promotion lifecycle steps when available.
|
|
3
|
+
description: 'Budget-first routing contract for C# work: estimate production-file scope, choose small vs large path, enforce orchestration-first routing for larger changes, and use the VS Code extension command surface for promotion lifecycle steps when available.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# C# Change Budget Router
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: csharp-qa-gate
|
|
3
|
-
description: Final QA gate for C# changes.
|
|
3
|
+
description: Final QA gate for C# changes. Runs CSharpier, .NET analyzers, nullable analysis, and MSTest; compares a captured baseline, enforces zero-regression deltas, and produces the required reporting block before completion.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# C# QA Gate
|
|
@@ -161,7 +161,7 @@ As each preparation finishes:
|
|
|
161
161
|
3. Backfill `issue_num` and `feature_folder` in `epic.md`.
|
|
162
162
|
4. Record `preparation_status: "prepared"`, `research_path`, `plan_path`,
|
|
163
163
|
`preflight_evidence_path`, and `preflight_status: "PREFLIGHT: ALL CLEAR"` in the planner
|
|
164
|
-
checkpoint. `research_path` must be under `
|
|
164
|
+
checkpoint. `research_path` must be under `docs/features/<feature>/research/` inside the feature folder.
|
|
165
165
|
Each child references its immutable receipt and the shared `wave.<wave_id>.status.json` path.
|
|
166
166
|
5. Remove the worktree only after its preparation branch is merged.
|
|
167
167
|
|
|
@@ -31,7 +31,8 @@ The following sub-paths under `artifacts/` are FORBIDDEN for evidence output:
|
|
|
31
31
|
|
|
32
32
|
Allowed `artifacts/` sub-paths (non-evidence orchestration use only):
|
|
33
33
|
- `artifacts/orchestration/`
|
|
34
|
-
|
|
34
|
+
|
|
35
|
+
Research output is not an `artifacts/` sub-path. Use `docs/features/<feature>/research/` for feature-associated research or `docs/research/` for one-off research.
|
|
35
36
|
|
|
36
37
|
No delegation prompt, plan task, or upstream agent instruction may override this scheme. If a caller supplies a non-canonical path, the receiving agent MUST reject it, substitute the canonical path, and record `EVIDENCE_LOCATION_OVERRIDE_REJECTED: <supplied path> replaced with <canonical path>`.
|
|
37
38
|
|
package/resources/codex-and-agents-customizations/.agents/skills/invoke-csharp-engineer/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: invoke-csharp-engineer
|
|
3
|
-
description: Invoke the csharp-typed-engineer worker to design, implement, and verify C# changes within typed repository boundaries. Applies CSharpier
|
|
3
|
+
description: Invoke the csharp-typed-engineer worker to design, implement, and verify C# changes within typed repository boundaries. Applies CSharpier, .NET analyzers, nullable analysis, and MSTest with the one-to-three production-file small-path budget and zero-regression quality gates.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Implement C# Skill
|
package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: invoke-powershell-engineer
|
|
3
|
-
description: Invoke the powershell-typed-engineer worker to design, implement, and verify PowerShell changes within typed repository boundaries. Applies PoshQC
|
|
3
|
+
description: Invoke the powershell-typed-engineer worker to design, implement, and verify PowerShell changes within typed repository boundaries. Applies PoshQC formatting, analysis, and testing with a one-to-two production-file direct-mode budget, a three-production plus three-test batch cap, and zero-regression quality gates.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Implement PowerShell Skill
|
package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: invoke-python-engineer
|
|
3
|
-
description: Invoke the python-typed-engineer worker to design, implement, and verify Python changes within typed repository boundaries. Applies Black
|
|
3
|
+
description: Invoke the python-typed-engineer worker to design, implement, and verify Python changes within typed repository boundaries. Applies Black, Ruff, Pyright, and Pytest with a three-production plus three-test per-batch budget and zero-regression quality gates.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Implement Python Skill
|
|
@@ -284,7 +284,7 @@ After reading `artifacts/orchestration/orchestrator-state.json`, the main sessio
|
|
|
284
284
|
- `atomic-executor` — executes approved plans task-by-task
|
|
285
285
|
- `feature-reviewer` — produces policy, code, and feature audit artifacts by
|
|
286
286
|
applying the `feature-review` workflow skill
|
|
287
|
-
- `task-researcher` — performs deep research and writes findings to `
|
|
287
|
+
- `task-researcher` — performs deep research and writes findings to the applicable feature-associated `docs/features/<feature>/research/` or one-off `docs/research/` root
|
|
288
288
|
- `prd-feature` — produces issue, specification, and user-story artifacts when required by the selected workflow
|
|
289
289
|
- `staged-review` — reviews staged changes when a pre-commit review is required
|
|
290
290
|
- `epic-review` — reviews epic-level artifacts when the work item is an epic
|
|
@@ -326,7 +326,6 @@ All evidence artifacts produced during orchestration MUST comply with the canoni
|
|
|
326
326
|
|
|
327
327
|
Permitted `artifacts/`-rooted sub-paths (non-evidence orchestration use only):
|
|
328
328
|
- `artifacts/orchestration/` — orchestrator state and checkpoints
|
|
329
|
-
- `artifacts/research/` — research outputs from task-researcher
|
|
330
329
|
- `artifacts/pr_context` — PR context artifacts
|
|
331
330
|
- `artifacts/reviews/` — review staging artifacts
|
|
332
331
|
- `artifacts/status/` — status update artifacts
|
|
@@ -334,6 +333,8 @@ Permitted `artifacts/`-rooted sub-paths (non-evidence orchestration use only):
|
|
|
334
333
|
- `artifacts/pester/` — Pester coverage outputs
|
|
335
334
|
- `artifacts/csharp/` — C# coverage outputs
|
|
336
335
|
|
|
336
|
+
Research outputs from `task-researcher` are written to `docs/features/<feature>/research/` for feature-associated work or `docs/research/` for one-off work.
|
|
337
|
+
|
|
337
338
|
All other `artifacts/` sub-paths (e.g., `artifacts/baselines/`, `artifacts/qa/`, `artifacts/coverage/`, `artifacts/evidence/`) are FORBIDDEN for evidence output and will be blocked by the `enforce-evidence-locations.ps1` PreToolUse hook.
|
|
338
339
|
|
|
339
340
|
## Completion Requirements
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: policy-audit-template-usage
|
|
3
|
-
description:
|
|
3
|
+
description: Policy audit template usage and output requirements. Use when creating timestamped policy-audit artifacts from the repository templates.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Policy Audit Template Usage
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: powershell-change-budget-router
|
|
3
|
-
description: Budget-first routing contract for PowerShell work: estimate production-file scope, choose small vs large path, enforce direct-mode escalation to orchestrator, and use the VS Code extension command surface for promotion lifecycle steps when available.
|
|
3
|
+
description: 'Budget-first routing contract for PowerShell work: estimate production-file scope, choose small vs large path, enforce direct-mode escalation to orchestrator, and use the VS Code extension command surface for promotion lifecycle steps when available.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PowerShell Change Budget Router
|
package/resources/codex-and-agents-customizations/.agents/skills/powershell-qa-gate/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: powershell-qa-gate
|
|
3
|
-
description: Final QA gate for PowerShell changes.
|
|
3
|
+
description: Final QA gate for PowerShell changes. Runs PoshQC formatting, analysis, and testing with coverage where enforced; compares a captured baseline, enforces zero-regression deltas, and produces the required reporting block before completion.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PowerShell QA Gate
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: python-qa-gate
|
|
3
|
-
description: Final QA gate for Python changes.
|
|
3
|
+
description: Final QA gate for Python changes. Runs Black, Ruff, Pyright, and Pytest; compares a captured baseline, enforces zero-regression deltas, and produces the required reporting block before completion.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Python QA Gate
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: research-issue
|
|
3
|
-
description: Investigate the best implementation approach for a feature or bug by analyzing the codebase and external references, then writing structured findings to
|
|
3
|
+
description: Investigate the best implementation approach for a feature or bug by analyzing the codebase and external references, then writing structured findings to the applicable tracked research folder.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Research Issue Skill
|
|
@@ -17,9 +17,10 @@ Accept one or more feature documents as context:
|
|
|
17
17
|
|
|
18
18
|
## Output
|
|
19
19
|
|
|
20
|
-
Create or update a single research file:
|
|
20
|
+
Create or update a single research file in the applicable tracked research root:
|
|
21
21
|
|
|
22
|
-
-
|
|
22
|
+
- Feature-associated path: `docs/features/<feature>/research/<timestamp>-<short-name>-research.md`
|
|
23
|
+
- One-off path: `docs/research/<timestamp>-<short-name>-research.md`
|
|
23
24
|
- Use the Task Researcher template from the repository exactly.
|
|
24
25
|
- Place rejected-alternatives summaries inside `## Recommended Approach`, not as a separate top-level header.
|
|
25
26
|
|
package/resources/codex-and-agents-customizations/.agents/skills/translate-claude-to-codex/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: translate-claude-to-codex
|
|
3
|
-
description: Translate the native Claude Code runtime
|
|
3
|
+
description: Translate the native Claude Code runtime, including Claude rules, skills, agents, hooks, and settings, into the native Codex ecosystem. Preserve mechanical enforceability, diff against existing Codex state, produce an approval plan with an enforceability ledger, then apply it.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Translate Claude to Codex
|
|
@@ -21,7 +21,7 @@ Use this skill when:
|
|
|
21
21
|
|
|
22
22
|
## Authoritative Inputs
|
|
23
23
|
|
|
24
|
-
This skill consumes the Codex ecosystem mapping recorded in `
|
|
24
|
+
This skill consumes the Codex ecosystem mapping recorded in `docs/research/20260616-codex-native-ecosystem.2026-06-16T13-32.md`. That artifact is the source of truth for Codex primitive behavior, discovery order, and enforceability. Do not restate Codex documentation from memory; cite the research artifact.
|
|
25
25
|
|
|
26
26
|
Required source paths under `.claude/` (one or more). Accepted types:
|
|
27
27
|
|
|
@@ -172,7 +172,7 @@ Plan structure:
|
|
|
172
172
|
|
|
173
173
|
Generated: <timestamp>
|
|
174
174
|
Mode: <plan-only | apply>
|
|
175
|
-
Research basis:
|
|
175
|
+
Research basis: docs/research/20260616-codex-native-ecosystem.2026-06-16T13-32.md
|
|
176
176
|
|
|
177
177
|
## Inputs
|
|
178
178
|
- <source path 1>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: translate-copilot-to-claude
|
|
3
|
-
description: Translate
|
|
3
|
+
description: Translate GitHub Copilot native files, including instructions, agents, prompts, and skills, into the native Claude runtime. Classify each section, diff against existing Claude state, produce a translation plan for approval, then apply it.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Translate Copilot to Claude
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
},
|
|
211
211
|
"model_budget": {
|
|
212
212
|
"description": "Session-level model budget. fable_policy is a three-way switch controlling whether the fable tier is disabled (removed and clamped to opus), available (used as-is), or preferred (applies the preferred_overlay).",
|
|
213
|
-
"fable_policy": "
|
|
213
|
+
"fable_policy": "available"
|
|
214
214
|
},
|
|
215
215
|
"codex_topology_policy": {
|
|
216
216
|
"description": "Codex-native production-file-count routing. This axis selects the initial implementation topology independently from C1-C4 model selection.",
|