BOHICA-LABS / BOHICA-LABS/vsdd-factory

process-gap: BC EC narrowing/widening fix-bursts don't auto-dispatch story-writer for downstream EC-table sibling-fix

Open
#361 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2
Forks
1
Avg merge
6h 43m
Merged PRs (30d)
29

Description

## Symptom
Over three consecutive adversarial passes on a single story (S-6.06 daemon admin handlers in a downstream consumer of vsdd-factory v1.0.0-rc.21), BC edge-case (EC) wording was narrowed in the BC body (`BC-2.05.004` v1.10 → v1.11 → v1.12), but corresponding EC rows in the implementing story body (`S-6.06` EC-008) retained stale "unconditionally" language. Each pass surfaced a new propagation gap:

- Pass 19: BC body VP table missing newly-minted VP row; Traceability Stories row not updated
- Pass 20: BC EC-007 narrowed to "well-formed request" but story EC-008 still said "unconditionally"
- Pass 21: After Pass-20 BC + VP narrowing landed, VP-INDEX row description + story EC-008 STILL said "unconditionally"

Each gap required a fresh-context adversarial pass to surface, then a follow-up fix-burst to close. Cycle time per gap: roughly one full adversarial round-trip.

## Root cause
The orchestrator dispatch policy treats a "spec fix-burst" as a single-agent dispatch (e.g., product-owner alone). When a BC EC is narrowed, downstream EC-table rows in stories that anchor to that BC are not automatically updated. There is no policy that says "when product-owner touches a BC EC, dispatch story-writer in parallel for every story whose EC table cites that BC EC."

## Proposed fix
Codify a sibling-fix propagation rule in the per-story-delivery.md / adversarial-review skill:

> When a BC EC, BC PC, or VP property statement is narrowed or widened, the dispatching orchestrator MUST in the same burst dispatch story-writer to update every story whose Edge Cases table, BC table, or VP table cites the changed element. Failure to do so is a partial-fix regression per S-7.01.

Suggested implementation: extend the product-owner agent's post-edit handoff to emit a "propagation manifest" listing every downstream artifact that cites the changed element (resolvable via grep over `bc_traces:` / `vp_traces:` / EC cross-references). The orchestrator then dispatches story-writer with that manifest.

## Severity
MEDIUM — recurring across cycles, costs ~1 adversarial round-trip per occurrence. Caught only by fresh-context review, not by current adversary policy.

## Reproduction
Any cycle where a BC EC's "unconditionally" / "always" / "never" qualifier is narrowed mid-cycle without story-writer being dispatched in parallel. The drift surfaces on the next adversarial pass.

## Severity rubric tag
process-gap, recurring, MEDIUM, codification-needed

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.