BOHICA-LABS / BOHICA-LABS/vsdd-factory

process-gap(story-writer+consistency-validator): inputDocuments frontmatter drifts from changed_by_rulings — silent under-listing

Open
#401 1 comment 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 has two related fields:
- `changed_by_rulings: [RULING-...]` (which rulings mandated the current body)
- `inputDocuments: [...]` (which artifacts the story consumes as normative input)

There is no cross-check that every ruling in `changed_by_rulings` also appears (transitively) in `inputDocuments`. Result: a ruling can rewrite AC text but be silently absent from the input-set, causing downstream re-reads (adversary Ln, subsequent story-writer bursts) to miss the normative source.

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

S-7.02 story v1.3: `changed_by_rulings` listed RULING-W6TB-D (heartbeat oracle) as the driver for AC-001b's dual-test formulation, but `inputDocuments` did NOT list RULING-W6TB-D. A Pass-4 mechanical sweep (P4 adjudication commit bd4e5c6 in factory-artifacts) had to add it retroactively, plus insert a DRIFT-S702-INPUT-HASH-DEFERRED entry to cover the sibling input-hash pin.

## Why existing gates miss it

- consistency-validator scopes cross-DOC references (BC↔VP, story↔BC), not intra-frontmatter field coherence
- spec-reviewer reads body prose, not frontmatter cross-fields
- story-writer prompt mentions both fields but doesn't require the ⊆ relationship

## Proposed remediation

consistency-validator adds a rule:
> For every story, `set(changed_by_rulings) ⊆ set(inputDocuments)`. Warn on any ruling that mutated the story body but is absent from inputDocuments.

Story-writer prompt gains an explicit step: "When you cite a ruling in changed_by_rulings, add it to inputDocuments in the same edit."

## Cross-references

- #376 — sprint-state vp_traces owner (same family: frontmatter fields with no cross-check)
- #390 — atomic version cascade

## Severity

MEDIUM. Not a correctness defect on its own, but degrades adversary review by hiding the true normative source-set. Cheap to fix with a static check.

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.