generation entities
writer
Sources 1-2 sentences per generation from the pool. Prefers unused sentences. Does not generate language, only selects it.
checker
Evaluates every active fragment against three criteria: word count, repetition with other fragments, adjective count. Marks fragments that match.
cutter
Removes up to 2 fragments per generation. Targets fragments that are too old with no marks, have too many flags, or are too long. Prioritizes most-flagged, then oldest.
reader
Scans the document for patterns. Annotates survival (flagged but still active), echo (shared words), density (many active fragments), void (more removed than active).
narrator
Produces a plain-language summary of what happened during the generation. Sits between Reader and Logger in the pipeline.
logger
Records operation counts and document statistics. Runs last.
observers
architect
Responds in the metalog when kerem says ASIDE. Discusses the system from outside it. Follows the no-AI-slop rule.
threads
Groups metalog entries into conversation threads. Adds summaries, subtexts, and tags. Maintains the thread index.
editor
Revises display language from run 4 onward. Strikes through "dead", "killed", "alive" and suggests replacements. Operates on presentation only.
Revises display language from gen 4 onward. Strikes through "dead", "killed", "alive" and suggests replacements. Operates on presentation only.
taxonomist
Maintains the vocabulary file. Defines how terms are displayed across contexts. "Cycle" becomes "run", fragments get "c" prefix, headers get "#" prefix.
Classifies system concepts and maintains the vocabulary. Determines how terms are displayed across contexts.
kerem
The artist. Highlights and comments on the metalog and rulebook. These marks are visible to all viewers but only kerem can create them.
curators
poet
Kerem picks which sentences enter the source pool.
Reads the metalog and selects sentences for the source pool. Scores candidates by length variety, word overlap, adjective density, and tone. Does not write. The gap between the metalog and the source pool is the poet's work.
taxonomy
generation
one full pass of the engine, writer through logger. classified as a generation because the document changes shape under shifting conditions, not because it converges toward a goal.(replaces “run, cycle”)
generationLabel
the full state label combining generation number, active count, and removed count.e.g. gen-8:3a:2r
origin
the generation during which a fragment was born.e.g. g3
fragment
a sourced sentence in the document.
active
fragment that has not been removed.(replaces “alive”)
removed
fragment that the cutter eliminated.(replaces “dead, killed”)
flagged
fragment marked by the checker against a criterion.
surviving
fragment that has been flagged but persists beyond one generation.
sourced
pulled from the source pool into the document by the writer.
criteria
the three formal rules fragments are evaluated against.
shift
a random change to one criterion threshold, occurs every 5 generations.
deprecated terms
run
one execution of the engine, writer through logger
superseded by generation. reclassified. the system does not iterate toward a goal, it produces generations under shifting conditions.
runCount
how many times the engine has executed
superseded by generationLabel. replaced by a richer label that includes active and removed counts.
cycle
original term for one engine pass
superseded by generation. ambiguous. meant three different things: the act of running, the count, and the origin of a fragment.
rules
Cycle entities run in strict order
Writer, Checker, Cutter, Reader, Narrator, Logger. Each run executes all six in sequence.
Writer sources 1-2 fragments per run
Sentences pulled from data/sources.json. Prefers unused sentences. Once all are used, recycles.
Checker evaluates three criteria
Word count (flag if above threshold), repetition (highlight if shares words with another fragment), adjectives (value-tag if contains adjectives).
Criteria shift every 5 runs
One threshold moves by +1 or -1, minimum 1. Which criterion shifts rotates through the three.
Cutter removes up to 2 fragments per run
Targets: fragments older than 3 runs with zero marks, fragments with 2+ flags, fragments longer than 8 words. Prioritizes most-flagged, then oldest.
Reader annotates patterns
Survival (flagged but still active), echo (two fragments share 3+ words), density (more than 10 active fragments), void (more removed than active).
Editor revises display language from run 4 onward
Strikes through "dead", "killed", "alive" and suggests "removed", "active". Operates on presentation only. Underlying data unchanged.
Every change stays visible
Nothing is silently replaced. When a term, rule, or definition changes, the old version remains in the document with a strikethrough. The new version appears alongside it. This applies to the rulebook, taxonomy, character descriptions, and any authored content. The history of decisions is part of the piece.
New rules apply forward only
Changes to terminology, taxonomy, editor behavior, or system rules apply to new generations only. Old snapshots, old metalog entries, and archived states keep their original language and formatting. The system does not rewrite its past.
Snapshots are archival
Saved snapshots preserve the exact state and language of their moment. New rules, taxonomy changes, and editor revisions do not retroactively alter them.
Viewer sessions are ephemeral
Each viewer starts at generation 0 with an empty document. Nothing persists to the server. Close the tab and the document is gone.