2026-05-04 13:52:48 +01:00
|
|
|
# Corpus Coverage Ledger
|
|
|
|
|
|
|
|
|
|
The corpus coverage ledger is the project-level index for accepted and planned
|
|
|
|
|
Aetheria training fixtures.
|
|
|
|
|
|
|
|
|
|
Its job is not to store story content. Its job is to keep the corpus honest:
|
|
|
|
|
which factions, movements, flashpoints, timeline lanes, tonal modes, collision
|
|
|
|
|
axes, review states, and item/economy hooks are represented, and which are still
|
|
|
|
|
missing.
|
|
|
|
|
|
|
|
|
|
## Live Files
|
|
|
|
|
|
|
|
|
|
- Ledger: `state/corpus-coverage.json`
|
|
|
|
|
- Schema reference: `schemas/corpus-coverage.schema.json`
|
|
|
|
|
- Validator/status tool: `tools/validate_corpus_coverage.py`
|
|
|
|
|
- Command: `npm run coverage:status`
|
|
|
|
|
|
|
|
|
|
## Entry Contract
|
|
|
|
|
|
|
|
|
|
Each fixture entry records:
|
|
|
|
|
|
|
|
|
|
- `fixture_id`: stable fixture handle.
|
|
|
|
|
- `status`: `planned`, `draft`, `accepted_as_draft`, `accepted`,
|
|
|
|
|
`needs_revision`, `rejected`, or `superseded`.
|
|
|
|
|
- `timeline_lane`: `historical_grounded`, `transition_grounded`, or
|
|
|
|
|
`future_branch`.
|
|
|
|
|
- `canon_status`: single-history, branch-local, promoted branch, template, or
|
|
|
|
|
draft status.
|
|
|
|
|
- `story_type`: founding-era, day-in-the-life, flashpoint, movement,
|
|
|
|
|
future-branch, or trade-life story.
|
|
|
|
|
- `primary_subjects` and `secondary_subjects`: factions, movements,
|
|
|
|
|
institutions, species/body groups, or other represented subjects.
|
|
|
|
|
- `collision_axes`: the pressures the fixture exercises, such as law, labor,
|
|
|
|
|
care, class, logistics, species/body affordance, trade, memory, personhood,
|
|
|
|
|
technology, legitimacy, or infrastructure.
|
|
|
|
|
- `tonal_modes`: prose modes the fixture contributes to the corpus.
|
2026-05-04 14:06:01 +01:00
|
|
|
- `training_targets`: organs or reference surfaces this fixture is relevant to.
|
|
|
|
|
- `training_usability`: explicit per-stage declaration of whether the fixture
|
|
|
|
|
is `training_ready`, `reference_only`, or `not_training_data`.
|
2026-05-04 13:52:48 +01:00
|
|
|
- `artifacts`: paths to fixture files.
|
|
|
|
|
- `review`: status of schema, narrative, lore, spatial, visual, and IF review.
|
|
|
|
|
- `economy_hooks`: item, assembly, trade-good, supply-chain, or tech hooks.
|
|
|
|
|
- `open_lore_gaps`: blocking or useful gaps discovered during generation.
|
|
|
|
|
|
|
|
|
|
## Acceptance Rule
|
|
|
|
|
|
|
|
|
|
An accepted or accepted-as-draft fixture must have the core artifact refs:
|
|
|
|
|
|
|
|
|
|
- lore digest
|
|
|
|
|
- agent state
|
|
|
|
|
- coordinator artifact
|
|
|
|
|
- Ink file
|
|
|
|
|
- training sidecar
|
|
|
|
|
|
|
|
|
|
It must also carry review fields for schema, narrative, lore, spatial, visual,
|
|
|
|
|
and IF artifact review. A fixture may still be accepted-as-draft with review
|
|
|
|
|
caveats, but the caveats should be visible instead of hidden under the nice rug.
|
|
|
|
|
|
2026-05-04 14:06:01 +01:00
|
|
|
Coverage status is not training readiness. A fixture that looks good as a story
|
|
|
|
|
can still be unusable for a model stage if it lacks exact input/output receipts,
|
|
|
|
|
raw outputs, reviewer decisions, hidden-context audits, or mutation records in
|
|
|
|
|
the shape that stage requires. The ledger should be rude about this. If a
|
|
|
|
|
fixture is only a reference for story shape or grounding, mark it
|
|
|
|
|
`reference_only`; do not promote it by implication.
|
|
|
|
|
|
2026-05-04 13:52:48 +01:00
|
|
|
## Report Shape
|
|
|
|
|
|
|
|
|
|
`npm run coverage:status` validates the ledger and prints:
|
|
|
|
|
|
|
|
|
|
- total entries and accepted count
|
|
|
|
|
- progress toward the 100-150 broad target
|
|
|
|
|
- status, timeline lane, story type, collision-axis, tonal-mode, and subject
|
|
|
|
|
counts
|
2026-05-04 14:06:01 +01:00
|
|
|
- training-usability counts
|
2026-05-04 13:52:48 +01:00
|
|
|
- major-power founding/day-in-life candidates when present
|
|
|
|
|
- basic gap signals, such as missing future-branch coverage or no day-in-life
|
|
|
|
|
stories yet
|
|
|
|
|
|
|
|
|
|
This is deliberately a coarse instrument. It should tell us where to point the
|
|
|
|
|
next fixture without pretending to be a corpus scientist in a lab coat made of
|
|
|
|
|
spreadsheet tabs.
|