BOHICA-LABS / BOHICA-LABS/vsdd-factory
bug(orchestrator+po+architect): parallel agent bursts make contradictory architectural decisions independently when their work has semantic coupling
- Dominant language
- Rust
- Stars
- 2
- Forks
- 1
- Avg merge
- 6h 43m
- Merged PRs (30d)
- 29
Description
## Summary
In Wave 3 planning on switchboard-blue, the orchestrator dispatched `vsdd-factory:product-owner` and `vsdd-factory:architect` in parallel for Wave 3 spec refresh. The agents' tasks were FILE-DISJOINT (PO: BCs/VPs/taxonomy; architect: ARCH docs) — file-race avoidance worked.
But the two agents made **incompatible semantic decisions** on a shared question:
- **Shared question:** What error code should the wire-layer HMAC failure return?
- **PO chose:** reuse existing `E-ADM-002` (currently "HMAC verification failed" in the taxonomy). PO's BC-2.05.008 cited `E-ADM-002`.
- **Architect chose:** mint new `E-ADM-016` (new code, distinct semantic for wire-integration failures). Architect's ADR-009 cited `E-ADM-016`.
The orchestrator did not detect the conflict until the post-burst consistency-validator surfaced it. A corrective dispatch was required to align them (user chose architect's path).
## How this differs from #260-class file-race bugs
File-race bugs (P20, vsdd-factory#260) are about commits co-mingling. This is different: the agents DID their work in separate files without race conditions, but their work had **semantic coupling** that wasn't visible to either of them.
PO didn't know architect was minting E-ADM-016. Architect didn't know PO was reusing E-ADM-002. Both made their own defensible choices in isolation.
## Mitigation suggestions
1. **Pre-burst decision tree:** before dispatching parallel agents, orchestrator identifies the SEMANTIC COUPLING POINTS in the burst (e.g., "if a new BC is being minted, who owns the error-code mint decision?"). Orchestrator pre-decides or pre-asks the user before dispatching.
2. **Serialize when semantically coupled:** even though files are disjoint, run agents sequentially with the second agent receiving the first's output as context.
3. **Coordination metadata in dispatch:** pass each agent a "shared decisions" block describing what the OTHER parallel agent might choose, so they can defer or align.
## Reproduction
Switchboard-blue session `b8690230-7b5d-4e57-b71c-8b9ffeee3d9a`. Wave 3 planning. Commits `e6aa5ba` (combined PO+architect output — see also P20 for the file co-mingling aspect).
## Related (this batch)
- drbothen/vsdd-factory#272 — P19: architect hallucinated internal/ packages
- drbothen/vsdd-factory#273 — P20: parallel agent burst commit co-mingling
- drbothen/vsdd-factory#274 — P21: ADR amendment + code update drift across revisions
Contributor guide
Assessment
This issue has not been assessed yet.