A shared-universe fiction workspace. A writing prompt becomes a complete story through specialist outline, prose, independent review, and cover assignments:
prompt.md → outline.md → story.md → review.md → title-image.jpg
The stories and universe notes are the product. Production stays in these five artifacts, with Git preserving history and Pages publishing a stored snapshot.
Open the primary checkout in Codex and submit a prompt:
[WP] Every city has a ghost assigned to it. Tonight, ours resigns.
Target: about 3,000 words; close third person; melancholy but hopeful.
Put additional context in a separate paragraph. Attach any visual references to the request. The coordinator prepares a dedicated branch and sibling worktree, then follows story-create through a draft pull request. New stories are non-canon; promotion is a separate user decision. For named replacements and localized edits, see permissions.
- AGENTS.md: authority, permissions, artifact boundaries, worktrees.
- universe/: shared facts; style guide: narrative policy and craft profiles.
- story-create: coordination and completion.
- story-room: outline, review, cover contracts, scaffold, and validation scripts.
- short-story-writing: prose adapter;
other craft skills are pinned references tracked by
skills-lock.json. .codex/agents/: four specialist entry points.- stories/: current and supported bundle packages;
_template/supplies the four-file scaffold. pages/catalog.json,pages/covers/: publication snapshot.pages/timeline.json: curated chronology;universe/remains authoritative.
The Chronology reconstructs one world's long history through Galactic Cycles,
historical eras, and individual stories. An era groups stories by compatible
institutions, technology, magical conditions, and inherited history. Different
societies can coexist within a period; similar forms can recur long afterward.
Cycles are orbital units, so magic's extinction or return can happen within
one. The magic phase belongs to the era, not the entire cycle. An ordinary
story's lack of visible magic does not by itself place its society in the zero.
Each era explains its context and place in the larger succession. Era and
story windows describe possible horizons within a cycle, not measured durations.
Overlapping horizons allow regional contemporaries; a story's location is not
inferred from its position in a displayed list. Each has a placement rationale
in pages/timeline.json.
Grouping and broad succession are editorial proposals; established local
intervals and the worldline backbone constrain them. Exact Galactic dates
remain unresolved. Evidence labels describe established boundaries, constraints,
relative sequences, contextual evidence, or undated frames independently of
proposed placement. Connections distinguish direct sequences, explicitly proposed
historical interpretations, and thematic echoes. Only connections marked
ordering: before impose a relative order.
The overview weaves four recurring histories across the cycles: authority,
public works, extraordinary bodies, and inherited memory. Each stitch opens
its account and the stories supporting it. These are editorial interpretations;
a continuous visual thread does not establish descent, common origin, or a
shared cause. historyThreads stages cite stories placed in their own cycles.
The vertical worldline then shows each cycle's larger history, with magic's
boundaries inside the relevant cycles. Era entries open their stories, historical context, and
local sequences in a focused panel. Each story's “Place in history” disclosure
holds its placement rationale, internal sequence, recorded span, and connections;
older remembered events can reach outside the story's proposed era. Connections
open on demand and distinguish direct links, historical hypotheses, and echoes.
Search finds stories throughout the chronology without creating another timeline.
The same content remains available through native era and story disclosures
when JavaScript is unavailable.
The validator requires complete story coverage, unique era IDs, historical
context for each era, finite windows contained by their eras, valid connection
endpoints and evidence categories, and a feasible partial chronological order
before Pages can build. Both sides of the extinction and return are checked,
including when stories share an orbit with a boundary. History-current anchors
must belong to their cited cycles. Circular or transitively impossible sequences are rejected;
overlapping windows and independent display orders are supported.
Install the Python dependencies, Markdown and Pillow:
python -m pip install -r pages/requirements.txtRun these from the story worktree at the appropriate workflow stage:
pwsh -NoProfile -File .agents/skills/story-room/scripts/Test-Stories.ps1 -Story <slug> -Phase PreReview
pwsh -NoProfile -File .agents/skills/story-room/scripts/Test-Stories.ps1 -Phase Final
python pages/build.py capture <slug>
python pages/build.py checkPreReview checks the current scaffold and declarations. Final checks the completed structure, verdicts, inventory, and decodable cover. Semantic and visual judgment remains with the reviewers. Bundle prose receives only compatible checks.
For tooling changes and a local site preview:
python -m unittest discover -s pages -p "test_*.py" -v
python pages/build.py build --output _siteCapture derives the public prompt on first publication and preserves editorial
catalog text on recapture. capture-all refreshes existing catalog entries only.
Both refuse canon demotion; see Pages rules. GitHub Actions
builds and deploys the stored snapshot after merge; it does not reopen story
sources or run production review.