Summary
config/blast-radius.json was pushed down verbatim from the .claude governance payload (PR #544) and describes that payload's own directory layout rather than TaskMaster's. As a result the parallel orchestration surface produces a complete conflict graph (zero parallelism) while simultaneously failing to detect real collisions on TaskMaster's build-level shared surfaces.
Environment
- OS/version: Windows 11 Pro 10.0.26200
- Python version: n/a - the blast-radius port in TaskMaster is PowerShell (
.claude/lib/blast-radius/*.psm1)
- Command/flags used:
Get-BlastRadius, Test-BlastRadiusConflict from .claude/lib/blast-radius/BlastRadius.psm1
- Data source or fixture:
config/blast-radius.json at commit 2073f717
Steps to Reproduce
- Check out
main at 2073f717 (or later).
- Import
.claude/lib/blast-radius/BlastRadius.psm1.
- Call
Get-BlastRadius for two items in unrelated lanes touching unrelated C# files (for example issue 480 touching a QuickFiler source file and issue 287 touching a ToDoModel source file).
- Call
Test-BlastRadiusConflict on the resulting pair.
- Separately, call
Get-BlastRadius for two items that both edit coverage.config and Directory.Build.targets.
Expected Behavior
- Step 4: two items editing unrelated C# projects should report
conflict=False, allowing them to be colored into the same cohort and executed concurrently.
- Step 5: two items editing the same root build files should report those files in their shared-surface sets and report
conflict=True with a shared-surface reason.
Actual Behavior
-
Step 4 reports conflict=True reasons=[module_overlap]. Get-BlastRadius always appends the mandatory feature-folder glob docs/features/active/<name>/** (BlastRadius.psm1:171), and module docs maps to docs/**. Every item therefore carries module docs, every pair overlaps, the conflict graph is a clique, and Welsh-Powell yields one cohort per item. A 59-item run would execute fully serially. Observed pairs:
A(480 QuickFiler.cs) vs B(287 ToDoModel.cs) truly independent conflict=True reasons=[module_overlap]
A(480) vs E(468) same QuickFiler .csproj conflict=True reasons=[module_overlap]
-
Step 5 reports empty shared-surface sets. TaskMaster's real root shared surfaces are absent from shared_surfaces, and under the F1a rule a separator-free root token is admitted only as an exact member of that list, so it is dropped silently:
C(512) paths: [docs/features/active/2026-08-11-c-512/**] shared: []
D(494) paths: [docs/features/active/2026-08-11-d-494/**] shared: []
The real collision is invisible, masked only incidentally by the degenerate docs edge. Correcting the module map alone would turn this into a reported false negative.
-
Additionally, none of the nine production or nine test C# project directories appear in modules, so C# work attributes to no module. tests/ in TaskMaster contains only scripts/ (PowerShell), not the C# test projects.
Logs / Screenshots
Impact / Severity
Blocker for the parallel orchestration surface specifically: the surface is unusable in TaskMaster until the truth table reflects this repository. The current state is fail-closed on parallelism (serial execution, which is safe but delivers nothing) and fail-open on build-surface collisions (which is not safe once the clique is fixed).
Source
From: docs/features/potential/2026-08-11-blast-radius-config-not-ported-to-taskmaster.md
Summary
config/blast-radius.jsonwas pushed down verbatim from the.claudegovernance payload (PR #544) and describes that payload's own directory layout rather than TaskMaster's. As a result the parallel orchestration surface produces a complete conflict graph (zero parallelism) while simultaneously failing to detect real collisions on TaskMaster's build-level shared surfaces.Environment
.claude/lib/blast-radius/*.psm1)Get-BlastRadius,Test-BlastRadiusConflictfrom.claude/lib/blast-radius/BlastRadius.psm1config/blast-radius.jsonat commit2073f717Steps to Reproduce
mainat2073f717(or later)..claude/lib/blast-radius/BlastRadius.psm1.Get-BlastRadiusfor two items in unrelated lanes touching unrelated C# files (for example issue 480 touching aQuickFilersource file and issue 287 touching aToDoModelsource file).Test-BlastRadiusConflicton the resulting pair.Get-BlastRadiusfor two items that both editcoverage.configandDirectory.Build.targets.Expected Behavior
conflict=False, allowing them to be colored into the same cohort and executed concurrently.conflict=Truewith a shared-surface reason.Actual Behavior
Step 4 reports
conflict=True reasons=[module_overlap].Get-BlastRadiusalways appends the mandatory feature-folder globdocs/features/active/<name>/**(BlastRadius.psm1:171), and moduledocsmaps todocs/**. Every item therefore carries moduledocs, every pair overlaps, the conflict graph is a clique, and Welsh-Powell yields one cohort per item. A 59-item run would execute fully serially. Observed pairs:Step 5 reports empty shared-surface sets. TaskMaster's real root shared surfaces are absent from
shared_surfaces, and under the F1a rule a separator-free root token is admitted only as an exact member of that list, so it is dropped silently:The real collision is invisible, masked only incidentally by the degenerate
docsedge. Correcting the module map alone would turn this into a reported false negative.Additionally, none of the nine production or nine test C# project directories appear in
modules, so C# work attributes to no module.tests/in TaskMaster contains onlyscripts/(PowerShell), not the C# test projects.Logs / Screenshots
Attached minimal logs or snippet
Snippet - the committed config as of
2073f717:{ "version": 1, "shared_surfaces": [ ".claude/settings.json", "config/orchestration-routing.json", "config/blast-radius.json" ], "shared_surface_globs": [], "modules": { "claude-runtime": [".claude/**"], "config": ["config/**"], "docs": ["docs/**"], "tests": ["tests/**"] }, "over_breadth_fraction": 0.25 }Impact / Severity
Blocker for the parallel orchestration surface specifically: the surface is unusable in TaskMaster until the truth table reflects this repository. The current state is fail-closed on parallelism (serial execution, which is safe but delivers nothing) and fail-open on build-surface collisions (which is not safe once the clique is fixed).
Source
From: docs/features/potential/2026-08-11-blast-radius-config-not-ported-to-taskmaster.md