NXLV Research
← CanonicsQuickstartDownload Markdown source

Quickstart: Zero to first canon event in 15 minutes

This walks an operator through setting up the Canonics (formerly the Canon–Epoch Framework, CEF) reference implementation and declaring a first real canon event. It assumes the terminology and operations defined in the paper (Canonics: Versioning the Frame, Not the Facts, Position paper (preprint) · July 2026): fact, invariant, canon event, epoch, understanding, regime, canon distance (κ), blast radius, the severity ladder L1–L5, DECLARE / RETRIEVE / REPROCESS / SCAN, and the Canon Review. Nothing here is a new concept — it is the paper's reference architecture (§4.6) operated end to end.

Fifteen minutes gets you through steps 1–6. Step 7 is a standing commitment, not a one-time task.

1. Copy the workspace template

Copy reference-implementation/workspace-template into your own workspace. This gives you the minimal file-based substrate the paper specifies in §4.6 — a convenience, not part of the claim itself (paper §4.1, §9 item 5):

/00_system/
  CURRENT_CONTEXT.md      # regime per domain — injected into every agent's system prompt
  CURRENT_EPOCHS.yaml     # derived epoch state per domain
  CANON_LOG.md            # canon chain (constitution + amendments)
/01_raw/                  # immutable facts, chronological
/02_understandings/       # derived, epoch-stamped, VERSIONED
/03_invariants/           # trans-epochal commitments
/04_decisions/             # active / superseded / historical
/05_canon_review/         # scan findings, meeting minutes, instrumentation metrics

Nothing here requires a graph database or vector store to start — discipline of interpretation precedes sophistication of retrieval (paper §4.6).

2. Fill /03_invariants with your trans-epochal commitments

An invariant (Definition 2) is an assumption you declare to survive all epoch transitions: identity, values, non-negotiable principles. Invariants are the hard core of your knowledge base in Lakatos's sense — they are the rarest and most consequential thing to change (changing one is Level 5 on the severity ladder, §4.2).

Write a handful of short files in /03_invariants — not a strategy document, just the things that are true regardless of which operating model, team size, or market you're in this quarter. If you're unsure whether something is an invariant or a current strategic posture, put it in /04_decisions instead: invariants should be genuinely rare.

3. Define your domains

𝔻 partitions your knowledge space — venture A, venture B, personal, health, and so on (paper §4.2, "Domains"). Epochs run per domain, unaligned: a canon event in one domain does not transition another unless that domain is explicitly named in the canon's blast radius. Pick domain names now, because every canon event you declare later will need to state which domains it touches.

4. Point your agent at agents/CLAUDE.md or agents/AGENTS.md

Whichever agent substrate you use — Claude Code, an OpenAI agent, or another file-based tool — its always-on instructions must load the current regime, not retrieve it. This is heuristic H8 from the paper: "Because retrieval-visible updates are frequently ignored, the current regime summary belongs in always-on instructions (system prompt / CLAUDE.md), not in retrievable storage. Foreground, don't file." Point your agent's system-prompt file (agents/CLAUDE.md for Claude Code, agents/AGENTS.md for other agent runtimes) at 00_system/CURRENT_CONTEXT.md so every session starts from invariants + the canon chain + the current regime — "read the constitution and its amendments, not the congressional record" (paper §4.6, "Cold start").

5. Ingest a few raw records with /ingest

/ingest appends new facts to /01_raw, extracts and derives understandings, and stamps them with epoch, domains, and source facts (paper H1, "Write path"). Stamping must cost you nothing manually — if metadata requires discipline, the system dies, so let /ingest do the stamping.

Remember Definition 1: a fact is immutable and append-only — (content, t_event, t_recorded, source, domains). Facts are never rewritten, only re-read under different lenses. Feed in a handful of raw records (notes, transcripts, decisions) to get your first understandings stamped under your workspace's initial epoch.

6. Declare your first real canon event with /new-canon

The workspace template ships with an example canon event in CANON_LOG.md, marked:

# EXAMPLE — replace with your first real canon

This is the paper's Appendix A worked example (the venture_a operator who moves from a team-based to a solo operating model, C-2026-07-VA-solo, L3). It exists to show the shape of a real entry — id, t_effective, t_declared, declarer, level, diff (retires / introduces), blast_radius (domains + secondary + assumption categories), and summary. Do not leave it in place: run /new-canon and replace it with your own first canon event.

/new-canon is an interactive DECLARE (paper §4.4): it asks what changed, when it took effect, which domains it touches, and which assumptions are retired versus introduced. For anything at severity L3 or above, the paper requires out-of-band human confirmation — a declaration a chat transcript alone cannot produce (paper §6). Once declared: the current epoch in each affected domain closes, a new epoch opens with the folded regime, every understanding with κ ≥ 1 is marked stale (not rewritten), CURRENT_CONTEXT.md is regenerated, and the signed canon is appended to CANON_LOG.md.

Use the canon promotion test (§4.3) if you're unsure whether something is worth declaring: a canon event changes the answers to questions that do not mention it. If a fact fails that test, however dramatic it feels, it's just a fact — not a canon.

7. Schedule your first Canon Review

The Canon Review (§5) is not optional tooling advice — it is a first-class component of the framework. Put it on the calendar now, before day-to-day use displaces it:

Honest expectations

Before you start operating this workspace day to day, hold these three things firmly, because they are the framework's own non-claims, not caveats bolted on afterward: