@danmoisan/drm-copilot-mcp 1.0.21 → 1.0.23
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 +1730 -139
- package/package.json +1 -1
- package/resources/claude-customizations/.claude/agent-memory/epic-orchestrator/MEMORY.md +5 -1
- package/resources/claude-customizations/.claude/agent-memory/epic-orchestrator/feedback_commit_push_memory_before_pr.md +48 -2
- package/resources/claude-customizations/.claude/agent-memory/epic-orchestrator/feedback_no_sendmessage_tool.md +35 -0
- package/resources/claude-customizations/.claude/agent-memory/epic-orchestrator/feedback_worktree_isolation_branches_from_main.md +45 -0
- package/resources/claude-customizations/.claude/agents/parallel-orchestrator.md +257 -0
- package/resources/claude-customizations/.claude/agents/parallel-planner.md +183 -0
- package/resources/claude-customizations/.claude/hooks/enforce-epic-invocation-origin.ps1 +23 -11
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-abandon-gate.ps1 +259 -0
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-cohort-barrier.ps1 +499 -0
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-drift-gate-helpers.ps1 +302 -0
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-drift-gate.ps1 +359 -0
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-worktree-removal-gate.ps1 +244 -0
- package/resources/claude-customizations/.claude/lib/bash/compute-cohorts.sh +143 -0
- package/resources/claude-customizations/.claude/lib/bash/compute-concurrency-batches.sh +122 -0
- package/resources/claude-customizations/.claude/lib/bash/parallel-cohorts.sh +330 -0
- package/resources/claude-customizations/.claude/lib/bash/parallel-common.sh +238 -0
- package/resources/claude-customizations/.claude/lib/bash/parallel-items-validate.sh +244 -0
- package/resources/claude-customizations/.claude/lib/bash/parallel-manifest-validate.sh +187 -0
- package/resources/claude-customizations/.claude/lib/bash/parallel-yaml-emit.sh +340 -0
- package/resources/claude-customizations/.claude/lib/bash/parallel-yaml-scan.sh +335 -0
- package/resources/claude-customizations/.claude/lib/bash/validate-parallel-manifest.sh +134 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadius.psm1 +379 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusConfig.psm1 +491 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusExtraction.psm1 +490 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusGlob.psm1 +429 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusValidation.psm1 +366 -0
- package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +184 -0
- package/resources/claude-customizations/.claude/rules/shell.md +7 -2
- package/resources/claude-customizations/.claude/settings.json +28 -0
- package/resources/claude-customizations/.claude/skills/parallel-add/SKILL.md +152 -0
- package/resources/claude-customizations/.claude/skills/parallel-close/SKILL.md +93 -0
- package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +971 -0
- package/resources/claude-customizations/.claude/skills/parallel-plan/SKILL.md +461 -0
- package/resources/claude-customizations/.claude/skills/parallel-remove/SKILL.md +176 -0
- package/resources/claude-customizations/.claude/skills/parallel-run/SKILL.md +56 -0
- package/resources/claude-customizations/config/blast-radius.json +16 -0
- package/resources/claude-customizations/config/orchestration-routing.json +355 -0
- package/resources/claude-customizations/pack-manifests/core.json +32 -1
- package/resources/codex-and-agents-customizations/.codex/config.toml +1 -1
- package/resources/config/orchestration-routing.json +22 -0
- package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +29 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: parallel-run
|
|
3
|
+
description: Execute a previously planned parallel run by replaying the committed parallel-kickoff artifact through the parallel-orchestrator agent. Use after /parallel-plan has prepared the run (manifest, per-item folders, research, specs, atomic plans, preflight clearance, seeded cohorts) and the user is ready to execute end-to-end.
|
|
4
|
+
argument-hint: "[parallel-slug]"
|
|
5
|
+
context: fork
|
|
6
|
+
agent: parallel-orchestrator
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Parallel Run Skill
|
|
10
|
+
|
|
11
|
+
A user invocation (`/parallel-run <parallel-slug>`) forks the `parallel-orchestrator` agent to
|
|
12
|
+
execute a parallel run that `parallel-planner` has already prepared. The parallel slug (or a path
|
|
13
|
+
under `docs/features/parallel/`) for this run is:
|
|
14
|
+
|
|
15
|
+
$ARGUMENTS
|
|
16
|
+
|
|
17
|
+
## Procedure
|
|
18
|
+
|
|
19
|
+
1. Resolve the parallel home. A bare slug resolves to `docs/features/parallel/<parallel-slug>/`; a
|
|
20
|
+
path argument resolves to its containing parallel run folder.
|
|
21
|
+
2. Resolve the committed kickoff artifact
|
|
22
|
+
`docs/features/parallel/<parallel-slug>/parallel-kickoff.md`. Discovery is a single local path
|
|
23
|
+
lookup in the invoking worktree. This surface has no integration branch, so there is no
|
|
24
|
+
integration ref to fetch, no ref-existence probe to run, and no ref-reading fallback to attempt:
|
|
25
|
+
the durable copy of the kickoff artifact is committed by `/parallel-plan` on the planner branch
|
|
26
|
+
`parallel/<parallel-slug>-plan` and is reachable from the checkout that invokes this skill.
|
|
27
|
+
- STOP without delegating anything when that path does not exist. Report that the run has no
|
|
28
|
+
committed kickoff artifact: the user must run `/parallel-plan` first (or, for a run whose
|
|
29
|
+
manifest was authored manually, invoke `/parallel-orchestrate <manifest-path>` directly).
|
|
30
|
+
- Do not synthesize a kickoff prompt, do not fall back to the planner's working copy under
|
|
31
|
+
`artifacts/orchestration/`, and do not launch a partial run in place of the STOP.
|
|
32
|
+
3. Execute the kickoff artifact's `## Invocation Prompt` section as the run objective, applying the
|
|
33
|
+
`parallel-orchestrate` skill procedure and the `## Prepared-Run Execution` section of
|
|
34
|
+
`.claude/agents/parallel-orchestrator.md`: each item's child `Agent(orchestrator)` delegation
|
|
35
|
+
resumes at atomic execution from that item's committed `plan-path` rather than re-running
|
|
36
|
+
promotion, research, or planning. Feature-document authoring and preflight clearance are
|
|
37
|
+
likewise not repeated: those outputs are already committed and preflight-clear on each item's
|
|
38
|
+
own pushed feature branch.
|
|
39
|
+
4. Honor existing checkpoint state: if `artifacts/orchestration/parallel-orchestrator-state.json`
|
|
40
|
+
already tracks this `parallel_slug`, resume per the `parallel-orchestrate` skill's resume
|
|
41
|
+
procedure instead of restarting, re-deriving durable ground truth from
|
|
42
|
+
`git worktree list --porcelain`, `git branch`, and `gh pr view --json state,mergedAt,headRefOid`
|
|
43
|
+
before acting on any recorded value.
|
|
44
|
+
|
|
45
|
+
## Scope
|
|
46
|
+
|
|
47
|
+
This skill adds no procedure of its own beyond kickoff-artifact resolution. Cohort consumption and
|
|
48
|
+
ordering, the cohort barrier, `max_concurrency` slot filling, the per-item branch and worktree
|
|
49
|
+
lifecycle, the child kickoff parameter, model selection, per-item merge to `main` on green,
|
|
50
|
+
per-item merge-conflict handling, worktree cleanup, `parallel-status.md` maintenance, checkpoint
|
|
51
|
+
persistence, and mode-dependent completion are governed entirely by the `parallel-orchestrate`
|
|
52
|
+
skill (`.claude/skills/parallel-orchestrate/SKILL.md`).
|
|
53
|
+
|
|
54
|
+
There is no final integration pull request on this surface, and no fan-in step follows the items:
|
|
55
|
+
each item's pull request targets `main` directly and is merged individually by
|
|
56
|
+
`parallel-orchestrator` after its checks are durably confirmed green.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"shared_surfaces": [
|
|
4
|
+
".claude/settings.json",
|
|
5
|
+
"config/orchestration-routing.json",
|
|
6
|
+
"config/blast-radius.json"
|
|
7
|
+
],
|
|
8
|
+
"shared_surface_globs": [],
|
|
9
|
+
"modules": {
|
|
10
|
+
"claude-runtime": [".claude/**"],
|
|
11
|
+
"config": ["config/**"],
|
|
12
|
+
"docs": ["docs/**"],
|
|
13
|
+
"tests": ["tests/**"]
|
|
14
|
+
},
|
|
15
|
+
"over_breadth_fraction": 0.25
|
|
16
|
+
}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"routes": {
|
|
5
|
+
"small": {
|
|
6
|
+
"description": "Minor-audit path for work inside the applicable language budget.",
|
|
7
|
+
"codex_topology_requirement": {
|
|
8
|
+
"receipt_key": "codex_topology_receipts",
|
|
9
|
+
"required_execution_context": "standalone",
|
|
10
|
+
"required_route": "small",
|
|
11
|
+
"delegation_agent_source": "resolved_language_typed_engineer"
|
|
12
|
+
},
|
|
13
|
+
"required_agents": [
|
|
14
|
+
"atomic-planner",
|
|
15
|
+
"atomic-executor",
|
|
16
|
+
"feature-review"
|
|
17
|
+
],
|
|
18
|
+
"required_skills": [
|
|
19
|
+
"orchestrate",
|
|
20
|
+
"feature-promotion-lifecycle",
|
|
21
|
+
"atomic-plan-contract",
|
|
22
|
+
"acceptance-criteria-tracking",
|
|
23
|
+
"pr-context-artifacts",
|
|
24
|
+
"pr-base-branch-merge-base"
|
|
25
|
+
],
|
|
26
|
+
"required_mcp_tools": [
|
|
27
|
+
"new_potential_entry",
|
|
28
|
+
"potential_to_issue",
|
|
29
|
+
"new_active_feature_folder",
|
|
30
|
+
"collect_pr_context",
|
|
31
|
+
"validate_orchestration_artifacts"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"large": {
|
|
35
|
+
"description": "Full feature or bug path for work outside small-path budget.",
|
|
36
|
+
"requires_pr_gate": true,
|
|
37
|
+
"required_agents": [
|
|
38
|
+
"task-researcher",
|
|
39
|
+
"prd-feature",
|
|
40
|
+
"atomic-planner",
|
|
41
|
+
"atomic-executor",
|
|
42
|
+
"feature-review",
|
|
43
|
+
"pr-author"
|
|
44
|
+
],
|
|
45
|
+
"required_skills": [
|
|
46
|
+
"orchestrate",
|
|
47
|
+
"feature-promotion-lifecycle",
|
|
48
|
+
"atomic-plan-contract",
|
|
49
|
+
"acceptance-criteria-tracking",
|
|
50
|
+
"pr-context-artifacts",
|
|
51
|
+
"pr-base-branch-merge-base"
|
|
52
|
+
],
|
|
53
|
+
"required_mcp_tools": [
|
|
54
|
+
"new_potential_entry",
|
|
55
|
+
"potential_to_issue",
|
|
56
|
+
"new_active_feature_folder",
|
|
57
|
+
"collect_pr_context",
|
|
58
|
+
"validate_orchestration_artifacts"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"remediation": {
|
|
62
|
+
"description": "Review-triggered remediation loop.",
|
|
63
|
+
"required_agents": [
|
|
64
|
+
"atomic-planner",
|
|
65
|
+
"atomic-executor",
|
|
66
|
+
"feature-review"
|
|
67
|
+
],
|
|
68
|
+
"required_skills": [
|
|
69
|
+
"orchestrate",
|
|
70
|
+
"atomic-plan-contract",
|
|
71
|
+
"acceptance-criteria-tracking",
|
|
72
|
+
"pr-context-artifacts"
|
|
73
|
+
],
|
|
74
|
+
"required_mcp_tools": [
|
|
75
|
+
"collect_pr_context",
|
|
76
|
+
"validate_orchestration_artifacts"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"preparation": {
|
|
80
|
+
"description": "Epic preparation path driven by epic-planner: promotion, research, feature documents, atomic planning, and preflight clearance only. Atomic execution, PR authoring, and CI monitoring are out of scope and deferred to the epic execution phase, so this route requires no CI gate at completion.",
|
|
81
|
+
"requires_ci_gate": false,
|
|
82
|
+
"required_agents": [
|
|
83
|
+
"task-researcher",
|
|
84
|
+
"prd-feature",
|
|
85
|
+
"atomic-planner",
|
|
86
|
+
"atomic-executor"
|
|
87
|
+
],
|
|
88
|
+
"required_skills": [
|
|
89
|
+
"orchestrate",
|
|
90
|
+
"feature-promotion-lifecycle",
|
|
91
|
+
"atomic-plan-contract"
|
|
92
|
+
],
|
|
93
|
+
"required_mcp_tools": [
|
|
94
|
+
"new_potential_entry",
|
|
95
|
+
"potential_to_issue",
|
|
96
|
+
"new_active_feature_folder",
|
|
97
|
+
"validate_orchestration_artifacts"
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
"parallel": {
|
|
101
|
+
"description": "Parallel path for scheduling independent items into blast-radius cohorts across parallel worktrees; each item PRs to main independently with no integration branch.",
|
|
102
|
+
"requires_pr_gate": false,
|
|
103
|
+
"required_agents": [
|
|
104
|
+
"orchestrator",
|
|
105
|
+
"pr-author"
|
|
106
|
+
],
|
|
107
|
+
"required_skills": [
|
|
108
|
+
"parallel-orchestrate",
|
|
109
|
+
"orchestrate",
|
|
110
|
+
"feature-promotion-lifecycle",
|
|
111
|
+
"atomic-plan-contract",
|
|
112
|
+
"acceptance-criteria-tracking",
|
|
113
|
+
"evidence-and-timestamp-conventions",
|
|
114
|
+
"pr-context-artifacts",
|
|
115
|
+
"pr-base-branch-merge-base"
|
|
116
|
+
],
|
|
117
|
+
"required_mcp_tools": [
|
|
118
|
+
"collect_pr_context",
|
|
119
|
+
"validate_orchestration_artifacts"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
"epic": {
|
|
123
|
+
"description": "Epic path for scheduling a dependency graph of child features across parallel worktrees with fan-in via a shared integration branch.",
|
|
124
|
+
"requires_pr_gate": true,
|
|
125
|
+
"required_agents": [
|
|
126
|
+
"orchestrator",
|
|
127
|
+
"pr-author"
|
|
128
|
+
],
|
|
129
|
+
"required_skills": [
|
|
130
|
+
"epic-orchestrate",
|
|
131
|
+
"orchestrate",
|
|
132
|
+
"feature-promotion-lifecycle",
|
|
133
|
+
"atomic-plan-contract",
|
|
134
|
+
"acceptance-criteria-tracking",
|
|
135
|
+
"evidence-and-timestamp-conventions",
|
|
136
|
+
"pr-context-artifacts",
|
|
137
|
+
"pr-base-branch-merge-base"
|
|
138
|
+
],
|
|
139
|
+
"required_mcp_tools": [
|
|
140
|
+
"collect_pr_context",
|
|
141
|
+
"validate_orchestration_artifacts"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"model_policy": {
|
|
146
|
+
"description": "Judgment-based complexity-band model selection. This block governs only the delegation model tier. It is not a route input, and route is not an input to model selection.",
|
|
147
|
+
"tier_order": [
|
|
148
|
+
"haiku",
|
|
149
|
+
"sonnet",
|
|
150
|
+
"opus",
|
|
151
|
+
"fable"
|
|
152
|
+
],
|
|
153
|
+
"complexity": {
|
|
154
|
+
"scale": "C1 trivial or mechanical change with no behavior effect. C2 localized feature or bug change confined to a small surface. C3 cross-cutting change that alters an invariant, contract, or behavior across module boundaries. C4 novel, ambiguous, or research-heavy change requiring the most capable tier; C4 is reached only by judgment and is never floor-forced.",
|
|
155
|
+
"signals": [
|
|
156
|
+
{
|
|
157
|
+
"name": "classifier_or_model_logic",
|
|
158
|
+
"floor": true,
|
|
159
|
+
"anchor": "Changes to classifier engines, scoring, or model-affecting logic (T1 modules)."
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"name": "auth_or_token_handling",
|
|
163
|
+
"floor": true,
|
|
164
|
+
"anchor": "Changes to authentication, token handling, or other security-sensitive paths."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "concurrency_or_ordering",
|
|
168
|
+
"floor": true,
|
|
169
|
+
"anchor": "Introduces or modifies concurrency, ordering, or state-transition invariants."
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "cross_module_contract_change",
|
|
173
|
+
"floor": true,
|
|
174
|
+
"anchor": "Alters a public contract or schema consumed across module boundaries."
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"name": "single_file_localized_edit",
|
|
178
|
+
"floor": false,
|
|
179
|
+
"anchor": "A localized edit confined to one file with no cross-cutting effect."
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"name": "mechanical_rename_or_move",
|
|
183
|
+
"floor": false,
|
|
184
|
+
"anchor": "A mechanical rename, move, or formatting change with no behavior change."
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "docs_or_comment_only",
|
|
188
|
+
"floor": false,
|
|
189
|
+
"anchor": "A documentation-only or comment-only change."
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"complexity_to_model": {
|
|
194
|
+
"C1": "haiku",
|
|
195
|
+
"C2": "sonnet",
|
|
196
|
+
"C3": "opus",
|
|
197
|
+
"C4": "fable"
|
|
198
|
+
},
|
|
199
|
+
"preferred_overlay": {
|
|
200
|
+
"description": "Applied only under fable_policy preferred. Changes only the C3 cell to fable, and only for the listed agents. No other agent and no other band is affected.",
|
|
201
|
+
"agents": [
|
|
202
|
+
"atomic-planner",
|
|
203
|
+
"prd-feature",
|
|
204
|
+
"feature-review",
|
|
205
|
+
"task-researcher"
|
|
206
|
+
],
|
|
207
|
+
"band": "C3",
|
|
208
|
+
"model": "fable"
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"model_budget": {
|
|
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": "preferred"
|
|
214
|
+
},
|
|
215
|
+
"codex_topology_policy": {
|
|
216
|
+
"description": "Codex-native production-file-count routing. This axis selects the initial implementation topology independently from C1-C4 model selection.",
|
|
217
|
+
"execution_contexts": [
|
|
218
|
+
"standalone",
|
|
219
|
+
"epic_preparation_child",
|
|
220
|
+
"epic_execution_child"
|
|
221
|
+
],
|
|
222
|
+
"language_budgets": {
|
|
223
|
+
"python": {
|
|
224
|
+
"direct_mode_enabled": true,
|
|
225
|
+
"max_production_files": 3,
|
|
226
|
+
"max_test_files": 3,
|
|
227
|
+
"logical_agent": "python-typed-engineer"
|
|
228
|
+
},
|
|
229
|
+
"powershell": {
|
|
230
|
+
"direct_mode_enabled": true,
|
|
231
|
+
"max_production_files": 2,
|
|
232
|
+
"max_test_files": 3,
|
|
233
|
+
"logical_agent": "powershell-typed-engineer"
|
|
234
|
+
},
|
|
235
|
+
"csharp": {
|
|
236
|
+
"direct_mode_enabled": true,
|
|
237
|
+
"max_production_files": 3,
|
|
238
|
+
"max_test_files": 3,
|
|
239
|
+
"logical_agent": "csharp-typed-engineer"
|
|
240
|
+
},
|
|
241
|
+
"typescript": {
|
|
242
|
+
"direct_mode_enabled": false,
|
|
243
|
+
"max_production_files": 0,
|
|
244
|
+
"max_test_files": 0,
|
|
245
|
+
"logical_agent": "typescript-engineer"
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"orchestrator_logical_agent": "orchestrator",
|
|
249
|
+
"epic_child_contexts": [
|
|
250
|
+
"epic_preparation_child",
|
|
251
|
+
"epic_execution_child"
|
|
252
|
+
],
|
|
253
|
+
"forced_root_personas": [
|
|
254
|
+
"epic-planner",
|
|
255
|
+
"epic-orchestrator"
|
|
256
|
+
],
|
|
257
|
+
"parallelism": {
|
|
258
|
+
"default_max_parallel_features": 4,
|
|
259
|
+
"hard_max_parallel_features": 8
|
|
260
|
+
},
|
|
261
|
+
"escalation_precedence": [
|
|
262
|
+
"epic_child_context",
|
|
263
|
+
"invalid_estimate",
|
|
264
|
+
"cross_language",
|
|
265
|
+
"unsupported_language",
|
|
266
|
+
"cross_cutting",
|
|
267
|
+
"direct_mode_disabled",
|
|
268
|
+
"production_budget_exceeded"
|
|
269
|
+
],
|
|
270
|
+
"receipt_key": "codex_topology_receipts"
|
|
271
|
+
},
|
|
272
|
+
"codex_model_policy": {
|
|
273
|
+
"description": "Codex-native deployment profiles. Complexity selects model and reasoning independently from the file-count route; exact model slugs are mandatory and unavailable profiles do not fall back silently.",
|
|
274
|
+
"profile_order": [
|
|
275
|
+
"c1",
|
|
276
|
+
"c2",
|
|
277
|
+
"c3",
|
|
278
|
+
"c3-elevated",
|
|
279
|
+
"c4"
|
|
280
|
+
],
|
|
281
|
+
"execution_contexts": [
|
|
282
|
+
"standalone",
|
|
283
|
+
"epic_preparation_child",
|
|
284
|
+
"epic_execution_child"
|
|
285
|
+
],
|
|
286
|
+
"logical_agent_aliases": {
|
|
287
|
+
"feature-review": "feature-reviewer"
|
|
288
|
+
},
|
|
289
|
+
"complexity_to_profile": {
|
|
290
|
+
"C1": {
|
|
291
|
+
"suffix": "c1",
|
|
292
|
+
"model": "gpt-5.6-luna",
|
|
293
|
+
"model_reasoning_effort": "low"
|
|
294
|
+
},
|
|
295
|
+
"C2": {
|
|
296
|
+
"suffix": "c2",
|
|
297
|
+
"model": "gpt-5.6-terra",
|
|
298
|
+
"model_reasoning_effort": "medium"
|
|
299
|
+
},
|
|
300
|
+
"C3": {
|
|
301
|
+
"suffix": "c3",
|
|
302
|
+
"model": "gpt-5.6-terra",
|
|
303
|
+
"model_reasoning_effort": "high"
|
|
304
|
+
},
|
|
305
|
+
"C4": {
|
|
306
|
+
"suffix": "c4",
|
|
307
|
+
"model": "gpt-5.6-sol",
|
|
308
|
+
"model_reasoning_effort": "max"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"c3_elevated_profile": {
|
|
312
|
+
"suffix": "c3-elevated",
|
|
313
|
+
"model": "gpt-5.6-sol",
|
|
314
|
+
"model_reasoning_effort": "high",
|
|
315
|
+
"activation": {
|
|
316
|
+
"operator": "any",
|
|
317
|
+
"execution_contexts": [
|
|
318
|
+
"epic_execution_child",
|
|
319
|
+
"epic_preparation_child"
|
|
320
|
+
],
|
|
321
|
+
"orchestration_complexity_ceiling": "C4"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"ceiling_transition_policy": {
|
|
325
|
+
"monotonic": true,
|
|
326
|
+
"receipt_key": "ceiling_transition",
|
|
327
|
+
"affected_delegation_ids_required_on_increase": true
|
|
328
|
+
},
|
|
329
|
+
"forced_personas": {
|
|
330
|
+
"epic-planner": {
|
|
331
|
+
"suffix": "",
|
|
332
|
+
"model": "gpt-5.6-sol",
|
|
333
|
+
"model_reasoning_effort": "ultra"
|
|
334
|
+
},
|
|
335
|
+
"epic-orchestrator": {
|
|
336
|
+
"suffix": "",
|
|
337
|
+
"model": "gpt-5.6-sol",
|
|
338
|
+
"model_reasoning_effort": "ultra"
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"generated_agent_families": [
|
|
342
|
+
"orchestrator",
|
|
343
|
+
"atomic-planner",
|
|
344
|
+
"atomic-executor",
|
|
345
|
+
"feature-reviewer",
|
|
346
|
+
"task-researcher",
|
|
347
|
+
"prd-feature",
|
|
348
|
+
"pr-author",
|
|
349
|
+
"python-typed-engineer",
|
|
350
|
+
"powershell-typed-engineer",
|
|
351
|
+
"csharp-typed-engineer",
|
|
352
|
+
"typescript-engineer"
|
|
353
|
+
]
|
|
354
|
+
}
|
|
355
|
+
}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
".claude/agents/legacy-parity-analyst.md",
|
|
15
15
|
".claude/agents/migration-coverage-reviewer.md",
|
|
16
16
|
".claude/agents/orchestrator.md",
|
|
17
|
+
".claude/agents/parallel-orchestrator.md",
|
|
18
|
+
".claude/agents/parallel-planner.md",
|
|
17
19
|
".claude/agents/prd-feature.md",
|
|
18
20
|
".claude/agents/requirements-reconciler.md",
|
|
19
21
|
".claude/agents/runtime-characterization-analyst.md",
|
|
@@ -31,6 +33,11 @@
|
|
|
31
33
|
".claude/hooks/enforce-feature-folder-order.ps1",
|
|
32
34
|
".claude/hooks/enforce-model-routing-receipt.ps1",
|
|
33
35
|
".claude/hooks/enforce-orchestration-preimplementation-gate.ps1",
|
|
36
|
+
".claude/hooks/enforce-parallel-abandon-gate.ps1",
|
|
37
|
+
".claude/hooks/enforce-parallel-cohort-barrier.ps1",
|
|
38
|
+
".claude/hooks/enforce-parallel-drift-gate.ps1",
|
|
39
|
+
".claude/hooks/enforce-parallel-drift-gate-helpers.ps1",
|
|
40
|
+
".claude/hooks/enforce-parallel-worktree-removal-gate.ps1",
|
|
34
41
|
".claude/hooks/enforce-pr-author-skill.epic-base-branch.ps1",
|
|
35
42
|
".claude/hooks/enforce-pr-author-skill.ps1",
|
|
36
43
|
".claude/hooks/enforce-prd-feature-before-planner.ps1",
|
|
@@ -77,6 +84,12 @@
|
|
|
77
84
|
".claude/skills/identify-session-id/SKILL.md",
|
|
78
85
|
".claude/skills/make-skill-template/SKILL.md",
|
|
79
86
|
".claude/skills/orchestrate/SKILL.md",
|
|
87
|
+
".claude/skills/parallel-add/SKILL.md",
|
|
88
|
+
".claude/skills/parallel-close/SKILL.md",
|
|
89
|
+
".claude/skills/parallel-orchestrate/SKILL.md",
|
|
90
|
+
".claude/skills/parallel-plan/SKILL.md",
|
|
91
|
+
".claude/skills/parallel-remove/SKILL.md",
|
|
92
|
+
".claude/skills/parallel-run/SKILL.md",
|
|
80
93
|
".claude/skills/policy-audit-template-usage/SKILL.md",
|
|
81
94
|
".claude/skills/policy-compliance-order/SKILL.md",
|
|
82
95
|
".claude/skills/pr-author/SKILL.md",
|
|
@@ -93,6 +106,24 @@
|
|
|
93
106
|
".claude/skills/update-status/SKILL.md",
|
|
94
107
|
".claude/lib/model-routing/ModelRouting.psm1",
|
|
95
108
|
".claude/lib/orchestrator-state/OrchestratorState.psm1",
|
|
96
|
-
".claude/lib/orchestrator-state/OrchestratorStateCompletion.psm1"
|
|
109
|
+
".claude/lib/orchestrator-state/OrchestratorStateCompletion.psm1",
|
|
110
|
+
".claude/lib/blast-radius/BlastRadiusExtraction.psm1",
|
|
111
|
+
".claude/lib/blast-radius/BlastRadiusGlob.psm1",
|
|
112
|
+
".claude/lib/blast-radius/BlastRadiusConfig.psm1",
|
|
113
|
+
".claude/lib/blast-radius/BlastRadiusValidation.psm1",
|
|
114
|
+
".claude/lib/blast-radius/BlastRadius.psm1",
|
|
115
|
+
".claude/rules/parallel-orchestration.md",
|
|
116
|
+
".claude/rules/shell.md",
|
|
117
|
+
".claude/lib/bash/compute-cohorts.sh",
|
|
118
|
+
".claude/lib/bash/compute-concurrency-batches.sh",
|
|
119
|
+
".claude/lib/bash/parallel-cohorts.sh",
|
|
120
|
+
".claude/lib/bash/parallel-common.sh",
|
|
121
|
+
".claude/lib/bash/parallel-items-validate.sh",
|
|
122
|
+
".claude/lib/bash/parallel-manifest-validate.sh",
|
|
123
|
+
".claude/lib/bash/parallel-yaml-emit.sh",
|
|
124
|
+
".claude/lib/bash/parallel-yaml-scan.sh",
|
|
125
|
+
".claude/lib/bash/validate-parallel-manifest.sh",
|
|
126
|
+
"config/orchestration-routing.json",
|
|
127
|
+
"config/blast-radius.json"
|
|
97
128
|
]
|
|
98
129
|
}
|
|
@@ -97,6 +97,28 @@
|
|
|
97
97
|
"validate_orchestration_artifacts"
|
|
98
98
|
]
|
|
99
99
|
},
|
|
100
|
+
"parallel": {
|
|
101
|
+
"description": "Parallel path for scheduling independent items into blast-radius cohorts across parallel worktrees; each item PRs to main independently with no integration branch.",
|
|
102
|
+
"requires_pr_gate": false,
|
|
103
|
+
"required_agents": [
|
|
104
|
+
"orchestrator",
|
|
105
|
+
"pr-author"
|
|
106
|
+
],
|
|
107
|
+
"required_skills": [
|
|
108
|
+
"parallel-orchestrate",
|
|
109
|
+
"orchestrate",
|
|
110
|
+
"feature-promotion-lifecycle",
|
|
111
|
+
"atomic-plan-contract",
|
|
112
|
+
"acceptance-criteria-tracking",
|
|
113
|
+
"evidence-and-timestamp-conventions",
|
|
114
|
+
"pr-context-artifacts",
|
|
115
|
+
"pr-base-branch-merge-base"
|
|
116
|
+
],
|
|
117
|
+
"required_mcp_tools": [
|
|
118
|
+
"collect_pr_context",
|
|
119
|
+
"validate_orchestration_artifacts"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
100
122
|
"epic": {
|
|
101
123
|
"description": "Epic path for scheduling a dependency graph of child features across parallel worktrees with fan-in via a shared integration branch.",
|
|
102
124
|
"requires_pr_gate": true,
|
|
@@ -114,6 +114,35 @@
|
|
|
114
114
|
# changed production surface is not excluded from coverage.
|
|
115
115
|
'.codex/hooks/enforce-epic-child-worktree-binding.ps1'
|
|
116
116
|
'.codex/hooks/enforce-epic-planning-only.ps1'
|
|
117
|
+
# Issue #447 added the .claude-resident PowerShell blast-radius library, the
|
|
118
|
+
# two-language mirror of scripts/dev_tools/compute_blast_radius.py and its
|
|
119
|
+
# helper modules. The set is split across five files only to satisfy the
|
|
120
|
+
# 500-line limit; measured here so no new production module is excluded from
|
|
121
|
+
# coverage.
|
|
122
|
+
'.claude/lib/blast-radius/BlastRadiusExtraction.psm1'
|
|
123
|
+
'.claude/lib/blast-radius/BlastRadiusGlob.psm1'
|
|
124
|
+
'.claude/lib/blast-radius/BlastRadiusConfig.psm1'
|
|
125
|
+
'.claude/lib/blast-radius/BlastRadiusValidation.psm1'
|
|
126
|
+
'.claude/lib/blast-radius/BlastRadius.psm1'
|
|
127
|
+
# Issue #440 added the two parallel enforcement hooks (the Layer 1 cohort
|
|
128
|
+
# barrier and the worktree removal gate) and extended the invocation-origin
|
|
129
|
+
# hook with the parallel-agent family; measured here so no new or changed
|
|
130
|
+
# production hook is excluded from coverage.
|
|
131
|
+
'.claude/hooks/enforce-parallel-cohort-barrier.ps1'
|
|
132
|
+
'.claude/hooks/enforce-parallel-worktree-removal-gate.ps1'
|
|
133
|
+
'.claude/hooks/enforce-epic-invocation-origin.ps1'
|
|
134
|
+
# Issue #446 added this Layer-1 parallel drift-gate PreToolUse hook; measured here so
|
|
135
|
+
# the new production hook is not excluded from coverage.
|
|
136
|
+
'.claude/hooks/enforce-parallel-drift-gate.ps1'
|
|
137
|
+
# Issue #446 remediation cycle 1 split the seven shape-and-derivation helpers out of
|
|
138
|
+
# that hook into this dot-sourced sibling module; measured here so the Coverage
|
|
139
|
+
# Exclusion Policy's no-production-file-excluded rule still holds after the split.
|
|
140
|
+
'.claude/hooks/enforce-parallel-drift-gate-helpers.ps1'
|
|
141
|
+
# Issue #442 added this PreToolUse abandon-gate hook, which guards the destructive
|
|
142
|
+
# parallel abandon disposition; measured here so the new production hook is not
|
|
143
|
+
# excluded from coverage. The test suite dot-sources the file (guarded body) so
|
|
144
|
+
# line attribution is valid.
|
|
145
|
+
'.claude/hooks/enforce-parallel-abandon-gate.ps1'
|
|
117
146
|
)
|
|
118
147
|
# Optional: don't fail the run on coverage percentage
|
|
119
148
|
CoveragePercentTarget = 0
|