Sign in to edit tickets from this page.

← all tickets · home

Documentation: README, scenarios authoring guide, terms.md updates

rejected f86fdc8d-ad10-4e2c-8b08-999414ca0cab

created_at
2026-04-25
updated_at
2026-04-25
code_context
docs/terms.md, README.md (new), docs/scenarios.md (new), src/lib.rs, src/worlds.rs
priority
P3
ticket_type
chore
resolved_at
2026-04-25
resolution
rejected

Body

Motivation

The codebase has shipped two substrate-level changes recently — scenarios-as-data with snapshot/hash provenance, and cognition-as-data — and the documentation has not kept up.

Three concrete gaps:

The existing docs that do exist — particularly terms.md — are excellent. The gap isn't quality, it's coverage of recent work.

This ticket fixes those three gaps and the small in-code stalenesses that pair with them. Hard discipline: every word written must describe something that exists and has been demonstrated. No speculation, no "future" sections, no features that haven't shipped, no roadmap. Drift detection, scenario lineage, parent_hash, scenario forking — none of these are mentioned anywhere in the new docs because none have shipped.


Caller / handler back-and-forth

This is a documentation ticket. Most of it can be done by the handler autonomously. There is no schema cut, no worlds to delete, no production state to coordinate against, no MCP smoke required. The handler can edit markdown, run cargo build, run cargo test --lib, and request review on a feature branch.

Where the caller is in the loop:

  1. Prose review before merge. The handler delivers all changes on a feature branch and posts a comment summarizing what each file says. The caller reviews the drafts on the branch (via git_diff or read_code on the worktree path the handler provides) and either approves or pushes back on specific bits. This is the main loop point — docs are easier to drift than code, especially toward speculation, and a review pass before merge is the cheapest way to keep the discipline tight.
  2. No deploy required. Markdown files in docs/ and README.md are repo content, not embedded in the binary. The small in-code stalenesses (lib.rs, worlds.rs module-doc) compile but don't change runtime behavior — the binary is functionally equivalent. The handler may merge to main without rolling the pod; the next functional ticket will carry the rebuild.

Block-surfacing rule applies: any block (compile failure, missing context for a doc claim, anything that stops forward motion) gets a comment on this ticket immediately.


The change

1. docs/terms.md updates

Three modifications, named precisely:

Fix the stale retry-budget paragraph. Under "Adjudication retry semantics → Budget," replace the existing text:

Default: ADJUDICATION_RETRY_BUDGET = 2, i.e. three total attempts (one initial + two retries). Override at process startup via the environment variable CHUKWA_ADJUDICATE_RETRY_BUDGET.

with text reflecting the current state:

The retry budget is world.cognition.adjudication_retry_budget, declared per-scenario in the scenario's cognition block. The adjudicator gets (1 + retry_budget) attempts total. Both shipped scenarios (ant_on_plate, locked_vending_room) declare a budget of 2.

No environment variable, no compile-time constant — those are gone.

Add three glossary entries. Place them in a new sub-section under "World structure" (or "Scenario structure" if the handler wants to add that grouping):

Update the existing scenario entry. It currently says "Scenarios are defined in the codebase and enumerated by list_scenarios." Replace with text reflecting that scenarios are now JSON files under /scenarios/, embedded at compile time via include_dir!, each declaring a scenario_slug, description, chronon_seconds, environment, entities, and a complete cognition block. Catalog load panics on malformed input. Pointer to the new docs/scenarios.md for author-facing detail.

2. README.md at repo root (new file)

Brief, calibrated to what's shipped. Suggested sections:

No roadmap, no "future plans," no contribution guide, no quickstart for local dev (we don't have a clean local-dev story documented and shouldn't fabricate one). If the README runs longer than ~80 lines, something is wrong.

3. docs/scenarios.md (new file)

The how-to-author-a-scenario doc. Suggested structure:

4. Small in-code stalenesses (paired with the docs work)

These are mechanical, not prose. Group them in one commit if convenient.


Acceptance

Mechanical

Prose discipline

This is the main acceptance gate beyond mechanics:

Caller review

After mechanical acceptance, the handler posts a comment on this ticket naming the feature branch and the worktree path where the drafts live. The caller reads each new and modified file and either approves or pushes back on specific bits. The handler then merges to main. The handler does not merge before caller review.

Deploy

Optional on this ticket. The docs are repo content. The in-code changes are functionally inert. The handler may merge to main without rolling the pod and let the next functional ticket carry any rebuild. If the handler chooses to deploy anyway, that is fine and they should report it in proposed_resolution.


Explicitly out of scope


No open knobs

The three deliverables are named. The acceptance bar is named. The discipline (no speculation, no unshipped features) is named. If a question arises during implementation, the handler should leave a comment on this ticket rather than guess.

History (4 events)

Sign in as a human to drive this ticket from the page, or use the MCP tools.