Skip to main content

Valenar Story Layer Governance

This rule governs the Valenar story layer and the local-agent scaffolding that authors or audits it. Story files are narrative surfaces, not truth storage. The story layer is explicitly outside the lore-tree prefix scheme and outside runtime / .secs / Generated / host / server / client ownership.

Read Order

Before editing or auditing this scope, read these files in order:

  1. docs-site/content/valenar/lore/adr/ad-0003-story-content-layer-and-agent-audit.md
  2. docs-site/content/valenar/story/README.md
  3. docs-site/content/valenar/story/templates/story-entry-template.md
  4. The relevant files under docs-site/content/valenar/story/indexes/
  5. docs-site/content/valenar/implementation/pr-llm-story-authoring-pipeline.md
  6. Every authority file named in touched_lore, plus any cited lh-* row and any cited caution surface under docs-site/content/valenar/lore/local/

If those files disagree, the story README and ADR 0003 define the boundary, while the cited authority files define what is true and what exposure is legal.

Ownership Boundary

  • Story prose is non-canon by default. It may depict rumor, omission, bias, propaganda, partial witnesses, and deliberate concealment.
  • Canon truth lives in ul-*, ud-*, gl-*, lh-*, and gd-* authority files. Story files may cite those authorities but must not silently rewrite them.
  • Story files must not claim .secs syntax, Generated provenance, runtime mechanics, compiler lowering, or engine behavior.
  • Do not move gd-* files into docs-site/content/valenar/lore/ and do not invent a dedicated story filename prefix in this scope.

Frontmatter And Acceptance Discipline

  • Every story entry must follow the field contract in docs-site/content/valenar/story/README.md and the reusable template in docs-site/content/valenar/story/templates/story-entry-template.md.
  • canon_delta is mandatory on every entry, including none.
  • branch is mandatory on every entry, including linear.
  • downstream_hooks are mandatory. Flavor-only story artifacts are not ready for acceptance in Valenar's playable-lore chain.
  • accepted/ is for story artifacts that passed story, reveal, and branch audits and have their related index rows updated. Acceptance does not promote the artifact's claims into canon by itself.

Reveal Discipline

  • exposure_tier must not exceed the cited lh-* authority rows.
  • revealed_to_player records what the player actually learns; it may be lower than the allowed ceiling, but never higher.
  • bible-only facts stay hidden. Story prose may not leak them by tone, implication, or omniscient framing.
  • When a story file touches a caution surface such as gl-game1-demon-remains.md, gl-game1-old-hero-traces.md, or gl-game1-false-king.md, the relevant audit notes must explain why the entry stays within the allowed reveal tier.

Branch And Index Discipline

  • Every accepted entry must have matching rows in entity-index.md, timeline-index.md, reveal-ledger.md, and branch-ledger.md.
  • If canon_delta.status is not none, the entry also requires a matching row in canon-delta-log.md.
  • Branch-sensitive entries must name the decision boundary, prerequisites, consequence surfaces, and any rejoin rule. No branch-dependent consequence may remain implicit.
  • The story entry, its audit block, and every referenced ledger row must agree on entry_id, branch scope, reveal ceiling, and downstream consequences.

Agent And Skill Rules

  • Dedicated write-capable story-author roles are committed under .github/agents/valenar-story-author.agent.md, .claude/agents/valenar-story-author.md, and .codex/agents/valenar-story-author.toml.
  • The Copilot story-agent family under .github/agents/valenar-*.agent.md follows the same story-layer boundary as the Claude and Codex story agents.
  • Story auditors, reveal auditors, branch auditors, librarians, and verifiers are read-only by instruction and by tool / sandbox shape where the platform supports it.
  • Read-only roles report defects; they do not patch them inline.
  • The story-author role is the only write-capable story role. Its write surface is limited to the target story file plus the matching rows in entity-index.md, timeline-index.md, reveal-ledger.md, branch-ledger.md, and canon-delta-log.md. It must not edit ../lore/, gd-*, .secs, Generated, runtime, Host, Server, Client, tests, or scripts as part of story acceptance.
  • Story-author roles must read the story README, template, five indexes, pipeline doc, target file or destination, and every authority named in touched_lore before writing. Copilot story agents additionally read .github/copilot-instructions.md and .github/instructions/valenar-docs-wave.instructions.md.
  • Story-author roles must run the committed structural validator and then hand off to the read-only auditor lanes. They must not self-approve as canon promoter, reveal auditor, branch auditor, or final verifier.
  • Deviations from the write boundary, authority set, or reveal ceiling must be recorded explicitly rather than absorbed into prose or index rows.
  • Do not create a generic writer agent that both authors story and updates canon. Story drafting and canon promotion are separate responsibilities.
  • Do not invent canon names, cosmology facts, deferred proper nouns, runtime mechanics, or provenance just to satisfy a story prompt.

Deferrals And Non-Goals

  • Truth-layer updates remain separate lore/design waves.
  • Runtime / Journal / .secs / Generated support remains separate code waves.
  • Additional automation may be added later, but this scope must remain usable with plain Markdown, local skills, and read-only audit agents.
  • Root AGENTS.md and CLAUDE.md do not need story-specific expansion when the local rule, ADR, story README, and Valenar docs already carry the boundary.

Valenar Atomic Rename, No-Fallback, And Story-Authoring Discipline

  • Atomic Valenar renames are one-way. Remove the retired form from every live surface touched by the wave. Do not keep fallback wording, compatibility aliases, redirect stubs, or dual old/new vocabulary.
  • Historical, audit, recovery, and research docs may mention retired terms only when they are explicitly marked legacy or provenance-only. Those mentions are never current canon, UX, runtime, or governance vocabulary.
  • In this scope, live story, guidance, agent, and validation surfaces must not leave active Core Base, CoreBase, found-core-base, NexusCore, gd-core-base, Voice Readback, voiceText, spoken-readback, narration-safe, spoken-copy schema terms, or Find the Nexus framing. Preserve the Camp, Core, and Settlement distinction.
  • Journal and story prose stay single-authored. Do not add or preserve a second authored voice, spoken-readback, narration-safe, or duplicated prose channel.
  • Rename cleanup is not permission for unrelated lore invention, reveal escalation, or deferred-cosmology commits. Anti-invention and reveal ceilings remain in force.
  • Story prose remains non-canon by default. Accepted artifacts, audit passes, or synchronized ledgers do not implicitly promote truth into lore or design authorities.
  • Every story artifact requires explicit canon_delta, including none. When canon_delta.status is not none, route it to docs-site/content/valenar/story/indexes/canon-delta-log.md and a separate truth-layer follow-up. Do not update authority files inline.
  • The story-author role is the only write-capable story role. Its write surface is limited to one target story artifact plus matching rows in entity-index.md, timeline-index.md, reveal-ledger.md, branch-ledger.md, and canon-delta-log.md. It must not edit lore authorities, gd-*, .secs, Generated, runtime, Host, Server, Client, tests, scripts, or validation tooling.
  • Story auditors, reveal auditors, branch auditors, canon librarians, and story verifiers are read-only.
  • Structural validation is necessary but not sufficient. Waves touching this scope must run the story validator and repo-scoped grep guards for forbidden live tokens relevant to the wave. Read-only audit and verifier lanes rerun the grep guards independently and fail if validator evidence or guard coverage is missing.
  • This scope fails if a banned live token survives in a live surface, if old and new terminology remain in parallel, if a redirect stub or compatibility alias remains active, if story prose is treated as canon by implication, or if required canon_delta routing is missing.