BOHICA-LABS / BOHICA-LABS/vsdd-factory

process-gap(story-writer): story template lacks AC↔BC PC-level trace table — wrong-PC anchors survive multiple version bumps

Open
#400 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

## Summary

A story's frontmatter lists `bc_traces: [BC-X.YZ.NNN]` but does NOT tabulate which AC anchors to which specific PC/Precondition/Invariant of that BC. Consequently an AC can name the correct BC while referencing the wrong PC number, and the mis-anchor survives spec-reviewer, consistency-validator, and multiple story-writer version bumps until a fresh-context adversary reads both artifacts side-by-side.

## Concrete evidence (switchboard-blue Wave-6 Tranche B)

`S-7.01-xor-fec.md` v1.2 → v1.3 (via Ruling-W6TB-F/-K):

- AC-002 body cited `BC-2.10.001 PC-2` for single-loss recovery
- BC-2.10.001 PC-2 covers "encode parity"; single-loss recovery is PC-3
- Similarly AC-003 cited `Precondition-1` for `ErrTooManyLosses`, actual home is PC-4
- Both anchors mis-aligned across v1.0, v1.1, v1.2; corrected only at v1.3 during Pass-4 fresh L3

## Why existing gates miss it

- `bc_traces` frontmatter is BC-granularity, not PC-granularity → passes consistency-validator
- Spec-reviewer reads specs individually, doesn't compute the AC↔PC join
- Adversary Ln policy varies; only mis-anchor-as-IMPORTANT (per issue #391) surfaces it — and even then only once one adversary happens to open both files

## Proposed remediation

Extend the story template with a mandatory trace matrix:

```
| AC ID | BC ID (with PC) | Notes |
|-------|-----------------|-------|
| AC-001 | BC-2.10.001 PC-2 (encode) | ... |
| AC-002 | BC-2.10.001 PC-3 (single-loss decode) | ... |
```

Consistency-validator gains a rule: every AC MUST cite a PC that exists in the referenced BC's current version. Story-writer prompt gains an explicit step: "read each cited BC body and confirm the PC number resolves before writing the AC."

## Cross-references

- #150 — pre-Phase-3 self-containment (related but distinct: this is about intra-story PC-level trace-table absence, #150 is about broader self-containment)
- #391 — mis-anchoring severity policy
- #361 — BC EC narrowing propagation (adjacent: this is the anchor-precision variant)

## Severity

MEDIUM. Content defect not architectural; but recurred across three version bumps of the same story, so the current gate structure demonstrably cannot catch it in-cycle.

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.