Mark Pallas fixture as reference only
This commit is contained in:
parent
89e91c1906
commit
e9ea7ece5f
9 changed files with 78 additions and 24 deletions
|
|
@ -34,7 +34,9 @@ Each fixture entry records:
|
|||
care, class, logistics, species/body affordance, trade, memory, personhood,
|
||||
technology, legitimacy, or infrastructure.
|
||||
- `tonal_modes`: prose modes the fixture contributes to the corpus.
|
||||
- `training_targets`: organs this fixture can train or review.
|
||||
- `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`.
|
||||
- `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.
|
||||
|
|
@ -54,6 +56,13 @@ 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.
|
||||
|
||||
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.
|
||||
|
||||
## Report Shape
|
||||
|
||||
`npm run coverage:status` validates the ledger and prints:
|
||||
|
|
@ -62,6 +71,7 @@ caveats, but the caveats should be visible instead of hidden under the nice rug.
|
|||
- progress toward the 100-150 broad target
|
||||
- status, timeline lane, story type, collision-axis, tonal-mode, and subject
|
||||
counts
|
||||
- training-usability counts
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ The active path is a source-grounded branching-scene data loop:
|
|||
|
||||
## Live Fixture
|
||||
|
||||
Pallas Species Strikes is the current accepted-as-draft interactive-fiction
|
||||
scaffold:
|
||||
Pallas Species Strikes is the current reference-only interactive-fiction story
|
||||
fixture:
|
||||
|
||||
- `examples/lore-grounding/pallas-species-strikes.awakened-labor.v0.json`
|
||||
- `examples/agent-state.pallas-species-strikes.v0.json`
|
||||
|
|
@ -85,8 +85,11 @@ It starts in ordinary AU Bloom cavity-shell maintenance texture, introduces the
|
|||
major participants before branch-only deepening, then escalates through Nara-7's
|
||||
coordinated hazard refusal, baseline rigger solidarity pressure, supplier
|
||||
liability framing, AU dry-operation cephalopod shell-artery leverage, and a
|
||||
folded recognition/safety climax. Treat it as coordinator/IF scaffold training
|
||||
data, not raw responder gold.
|
||||
folded recognition/safety climax. Treat it as a reference for well-shaped,
|
||||
source-grounded story and illustrated IF presentation. It is not training-ready
|
||||
data for the responder, projector, appraiser, mutator, relationship updater,
|
||||
coordinator, branch compiler, or reviewer organs because it lacks exact
|
||||
stage-shaped input/output receipts.
|
||||
|
||||
Kappa geometry to preserve: Service Ring Kappa names this specific standardized
|
||||
industrial spoke manifold service ring, a bounded local access loop around a
|
||||
|
|
@ -139,7 +142,8 @@ steering surfaces unless the user explicitly asks for archaeology.
|
|||
|
||||
Use the corpus coverage ledger to choose the next Aetheria fixture from the
|
||||
100-150 broad coverage target. Current coverage begins with Pallas Species
|
||||
Strikes as the first accepted-as-draft row.
|
||||
Strikes as a draft, reference-only row, so accepted training-ready coverage is
|
||||
still effectively empty.
|
||||
|
||||
## Warnings
|
||||
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ the room.
|
|||
|
||||
## Current Live Example
|
||||
|
||||
Pallas Species Strikes is the active accepted-as-draft coordinator/IF scaffold:
|
||||
Pallas Species Strikes is the active reference-only story fixture:
|
||||
|
||||
- `examples/lore-grounding/pallas-species-strikes.awakened-labor.v0.json`
|
||||
- `examples/agent-state.pallas-species-strikes.v0.json`
|
||||
|
|
@ -95,9 +95,11 @@ Pallas Species Strikes is the active accepted-as-draft coordinator/IF scaffold:
|
|||
- `experiments/pallas-species-strikes/pallas-species-strikes.branch-and-fold-clean-run.v0.md`
|
||||
- `experiments/pallas-species-strikes/pallas-species-strikes.visual-scene-review.v1.json`
|
||||
|
||||
The fixture is not raw responder gold. It is scaffold data for coordinator,
|
||||
branch compiler, IF review, visual planning, lore grounding, and future corpus
|
||||
shape.
|
||||
The fixture is not training-ready data for Ghostlight's model stages. It was
|
||||
coordinator-authored without the exact projected-context, sandboxed responder,
|
||||
appraisal, mutation, relationship-update, and true branch-compiler receipts
|
||||
those stages require. Keep it as a reference for story shape, grounding,
|
||||
branch-and-fold presentation, visual planning, and future fixture expectations.
|
||||
|
||||
## Pruned Receipts
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ not carry live next-action lists.
|
|||
`examples/ink/pallas-species-strikes.branch-and-fold.v0.training.json`,
|
||||
`examples/visual/pallas-species-strikes.branch-and-fold.v0.visual.json`,
|
||||
and `experiments/pallas-species-strikes/` receipts.
|
||||
- Treat it as accepted-as-draft coordinator/IF scaffold training data, not raw responder gold.
|
||||
- Treat it as reference-only story-shape and grounding material, not training-ready data for any soft organ.
|
||||
- Preserve the lessons it established: ordinary-life onboarding, branch-and-fold discipline, material state variables, source-backed lore elaboration, visual segmentation, scene-set need for illustrated replay, and review before acceptance.
|
||||
|
||||
4. Generalize the loop.
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
"collision_axes",
|
||||
"tonal_modes",
|
||||
"training_targets",
|
||||
"training_usability",
|
||||
"artifacts",
|
||||
"review",
|
||||
"economy_hooks",
|
||||
|
|
@ -98,6 +99,17 @@
|
|||
"collision_axes": { "$ref": "#/$defs/nonemptyStringArray" },
|
||||
"tonal_modes": { "$ref": "#/$defs/nonemptyStringArray" },
|
||||
"training_targets": { "$ref": "#/$defs/nonemptyStringArray" },
|
||||
"training_usability": {
|
||||
"type": "object",
|
||||
"required": ["overall"],
|
||||
"additionalProperties": {
|
||||
"enum": [
|
||||
"training_ready",
|
||||
"reference_only",
|
||||
"not_training_data"
|
||||
]
|
||||
}
|
||||
},
|
||||
"artifacts": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "type": "string", "minLength": 1 }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"schema_version": "ghostlight.corpus_coverage.v0",
|
||||
"coverage_id": "ghostlight-aetheria-corpus-coverage-v0",
|
||||
"coverage_targets": {
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
"entries": [
|
||||
{
|
||||
"fixture_id": "pallas-species-strikes-awakened-labor-v0",
|
||||
"status": "accepted_as_draft",
|
||||
"status": "draft",
|
||||
"timeline_lane": "historical_grounded",
|
||||
"canon_status": "single_history",
|
||||
"story_type": "flashpoint_story",
|
||||
|
|
@ -51,14 +51,10 @@
|
|||
"ordinary work texture"
|
||||
],
|
||||
"training_targets": [
|
||||
"coordinator",
|
||||
"branch_compiler",
|
||||
"if_artifact_reviewer",
|
||||
"narrative_reviewer",
|
||||
"lore_grounding_reviewer",
|
||||
"spatial_geometric_reviewer",
|
||||
"visual_scene_continuity_reviewer",
|
||||
"technology_item_manifest"
|
||||
"story_shape_reference",
|
||||
"lore_grounding_reference",
|
||||
"branch_and_fold_reference",
|
||||
"visual_planning_reference"
|
||||
],
|
||||
"artifacts": {
|
||||
"lore_digest": "examples/lore-grounding/pallas-species-strikes.awakened-labor.v0.json",
|
||||
|
|
@ -86,7 +82,22 @@
|
|||
"industrial_spoke_manifold_service_ring"
|
||||
],
|
||||
"open_lore_gaps": [],
|
||||
"notes": "Current accepted-as-draft scaffold. Use as a shape reference for source grounding, branch-and-fold, review, visual planning, and item-hook capture; do not treat as raw responder gold."
|
||||
"notes": "Reference-only fixture. Pallas is useful as an example of a well-shaped, properly grounded story scaffold and visual/IF presentation target. It was coordinator-authored without exercising the projected-context, sandboxed responder, appraisal, mutation, relationship-update, or true branch-compiler machinery, so it must not be counted as training-ready data for those stages.",
|
||||
"training_usability": {
|
||||
"overall": "reference_only",
|
||||
"story_shape_and_grounding": "reference_only",
|
||||
"lore_grounding_compiler": "not_training_data",
|
||||
"coordinator_story_runtime": "not_training_data",
|
||||
"projector": "not_training_data",
|
||||
"character_responder": "not_training_data",
|
||||
"participant_appraiser": "not_training_data",
|
||||
"state_mutator": "not_training_data",
|
||||
"relationship_perception_updater": "not_training_data",
|
||||
"branch_compiler": "not_training_data",
|
||||
"if_artifact_reviewer": "not_training_data",
|
||||
"narrative_lore_spatial_visual_reviewers": "not_training_data",
|
||||
"technology_item_manifest": "not_training_data"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,3 +46,4 @@
|
|||
{"ts": "2026-05-04T11:20:03+00:00", "type": "visual-doctrine", "status": "ok", "note": "Generated environment images are accepted only as concept/material reference for illustrated IF. Multi-angle or branch-consistent replay needs a durable scene-set/blockout/layout source with named cameras and staging slots; imagegen should paint over camera-specific visual input rather than preserve room topology from memory."}
|
||||
{"ts": "2026-05-04T12:31:39+00:00", "type": "maintenance", "status": "ok", "note": "Pruned obsolete prototype fixture receipts, removed stale runner scripts and image-provider experiment tooling from the live workspace, moved old experiment notes out of active evidence, and kept Pallas Species Strikes as the current accepted-as-draft fixture."}
|
||||
{"ts": "2026-05-04T12:52:20+00:00", "type": "implementation", "status": "ok", "note": "Added corpus coverage ledger seam: state/corpus-coverage.json, schema reference, validator/status command, state:status coverage summary, and initial Pallas Species Strikes coverage row. Coverage status now reports 1/100-150 accepted fixtures and gap signals for future-branch, founding-era, and day-in-life coverage."}
|
||||
{"ts": "2026-05-04T13:05:46+00:00", "type": "correction", "status": "ok", "note": "Downgraded Pallas Species Strikes in the coverage ledger to draft reference-only material. It is no longer counted as accepted training coverage; training_usability now marks it as reference_only overall and not_training_data for model stages because exact stage-shaped receipts were not generated."}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,9 @@ mission:
|
|||
trust, concern, irritation, respect, boundaries, and expectations from
|
||||
evidence rather than generic friendliness.
|
||||
active_fixture: >
|
||||
Pallas Species Strikes is the current accepted-as-draft historical fixture.
|
||||
Pallas Species Strikes is the current reference-only historical fixture:
|
||||
useful for story shape, grounding, and presentation expectations, not
|
||||
training-ready machinery output.
|
||||
Call of the Void and Elysium-era gameplay remain procedural consumer targets.
|
||||
|
||||
hard_boundaries:
|
||||
|
|
@ -166,5 +168,5 @@ data_flow:
|
|||
- If state grows faster than understanding, cut it back.
|
||||
|
||||
current_status:
|
||||
summary: Pallas Species Strikes is the current accepted-as-draft branch-and-fold IF fixture. The live workspace has been pruned to remove old prototype fixture receipts, stale runner tools, and model-runner experiment debris after their lessons were distilled into the architecture docs, state, evidence, and git history. The next build step is corpus-scale coverage rather than further archaeology.
|
||||
summary: Pallas Species Strikes is the current reference-only branch-and-fold story fixture. It is useful as a grounded story-shape example, but it was coordinator-authored without exercising Ghostlight's exact projected-context, sandboxed responder, appraisal, mutation, relationship-update, or true branch-compiler machinery. The next build step is training-shaped fixture generation guided by the corpus coverage ledger.
|
||||
next_action: Use the corpus coverage ledger to select the next Aetheria fixture from the 100-150 broad coverage target.
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ VALID_STORY_TYPES = {
|
|||
"trade_life_story",
|
||||
}
|
||||
VALID_REVIEW_STATUSES = {"not_run", "accepted", "accepted_as_draft", "needs_revision", "rejected", "blocked"}
|
||||
VALID_TRAINING_USABILITY = {"training_ready", "reference_only", "not_training_data"}
|
||||
REQUIRED_REVIEW_KEYS = {"schema", "narrative", "lore", "spatial", "visual", "if_artifact"}
|
||||
REQUIRED_ARTIFACTS_FOR_ACCEPTED = {"lore_digest", "agent_state", "coordinator", "ink", "training_sidecar"}
|
||||
|
||||
|
|
@ -94,6 +95,7 @@ def validate_entry(entry: Any, path: str) -> list[str]:
|
|||
"collision_axes",
|
||||
"tonal_modes",
|
||||
"training_targets",
|
||||
"training_usability",
|
||||
"artifacts",
|
||||
"review",
|
||||
"economy_hooks",
|
||||
|
|
@ -115,6 +117,12 @@ def validate_entry(entry: Any, path: str) -> list[str]:
|
|||
require_string_array(entry["collision_axes"], f"{path}.collision_axes", nonempty=True)
|
||||
require_string_array(entry["tonal_modes"], f"{path}.tonal_modes", nonempty=True)
|
||||
require_string_array(entry["training_targets"], f"{path}.training_targets", nonempty=True)
|
||||
usability = entry["training_usability"]
|
||||
require(isinstance(usability, dict), f"{path}.training_usability must be an object")
|
||||
require_keys(usability, {"overall"}, f"{path}.training_usability")
|
||||
for key, value in usability.items():
|
||||
require_string(key, f"{path}.training_usability key")
|
||||
require(value in VALID_TRAINING_USABILITY, f"{path}.training_usability.{key} is invalid")
|
||||
require_string_array(entry["economy_hooks"], f"{path}.economy_hooks")
|
||||
require_string_array(entry["open_lore_gaps"], f"{path}.open_lore_gaps")
|
||||
|
||||
|
|
@ -146,6 +154,8 @@ def validate_entry(entry: Any, path: str) -> list[str]:
|
|||
warnings.append(f"{entry['fixture_id']}: accepted fixture has fewer than two represented subjects")
|
||||
if entry["story_type"] == "future_branch_story" and entry.get("canon_status") != "branch_local":
|
||||
warnings.append(f"{entry['fixture_id']}: future_branch_story should usually be canon_status branch_local")
|
||||
if entry["training_usability"].get("overall") == "training_ready" and entry["status"] not in ACCEPTED_STATUSES:
|
||||
warnings.append(f"{entry['fixture_id']}: training_ready fixture is not accepted or accepted_as_draft")
|
||||
return warnings
|
||||
|
||||
|
||||
|
|
@ -174,6 +184,7 @@ def summarize(document: dict[str, Any], entries: list[dict[str, Any]], warnings:
|
|||
story_counts = Counter(entry["story_type"] for entry in entries)
|
||||
collision_counts = Counter(axis for entry in entries for axis in entry["collision_axes"])
|
||||
tonal_counts = Counter(mode for entry in entries for mode in entry["tonal_modes"])
|
||||
usability_counts = Counter(entry["training_usability"]["overall"] for entry in entries)
|
||||
subject_counts = Counter(subject for entry in entries for subject in entry["primary_subjects"] + entry["secondary_subjects"])
|
||||
accepted_entries = [entry for entry in entries if entry["status"] in ACCEPTED_STATUSES]
|
||||
accepted_count = len(accepted_entries)
|
||||
|
|
@ -202,6 +213,7 @@ def summarize(document: dict[str, Any], entries: list[dict[str, Any]], warnings:
|
|||
append_counter("Story types", story_counts)
|
||||
append_counter("Top collision axes", collision_counts)
|
||||
append_counter("Tonal modes", tonal_counts)
|
||||
append_counter("Training usability", usability_counts)
|
||||
append_counter("Subjects represented", subject_counts)
|
||||
|
||||
major_story_types: dict[str, set[str]] = defaultdict(set)
|
||||
|
|
|
|||
Loading…
Reference in a new issue