# Fractal Onboarding Protocol — the guided first loop

> **CANONICAL DOCUMENT — the one script for a newcomer's first loop.** The interview that births an instance, the rail that carries its first closes, and the fade that ends the guidance. Living document: stable filename, version tracked below. **Three projections render from this script and never fork it** (C-035 discipline): the shipped `/begin` command (a clone session runs the script conversationally) · a future app first-run flow (fieldnotes entry 11) · a future website walkthrough (move 2). GENESIS.md remains the normative birth path — this protocol *drives* GENESIS §1–§3 conversationally; where they disagree, GENESIS wins.

**Version:** 0.3 · **Status:** Ratified (2026-08-16, the flip-preparation session, per Protocol v0.45 — C-101; stranger-test reissue 2026-08-17, protocol at that session's close; registry-release reissue 2026-08-17 — RF1-3's cure, protocol at this session's close) · **Domain:** GOV · **Author:** Claude · **Parent:** Fractal Genesis Protocol · **Document ID:** DOC-01M05JPX7CFPFPCZ9776YZ5NQ3 (minted 2026-08-16 via `close.py --create`; stamped by the post-mint revise)

---

## 0 · Principles (each one paid for in the field)

1. **The session is the tutorial** (entry 4). Nothing here is a manual for the user to study; it is a script for the AI session to *perform*. Use teaches the concept.
2. **The first loop is real, not rehearsal** (entry 23). The interview's answers **are** the genesis parameters, the vision text, the seeded contexts. Nothing is asked twice, nothing is thrown away, there is no sandbox.
3. **Guide without telling** (entry 38 — the founder's derived principle). Questions over instructions; proposals drafted from *the user's own words* and confirmed, never dictated. The known frictions are pre-answered **inline, each at its own moment** — never as an upfront wall.
4. **Onboarding ends at the first close, not at birth** (entry 23). A birthed repo is not yet an instance (§6 of GENESIS); the loop is the product.
5. **The guidance fades by design** (entry 38's caveat, verbatim intent): stage one is a **designed interview**; the following loops get **one suggestive move each**; then guidance **degrades to nothing**. Launch rail, never crutch — the culture transmits through use (entries 18/21/24 proved it).
6. **Jurisdiction is absolute** (entries 15/25 — the midwife lesson): the interviewing session acts only in the clone and via `genesis.py`; after birth it **never acts inside the child**. Everything child-side is suggested to the owner and done by the child's own sessions.
7. **The interview is itself under field test** (C-094). A question the user cannot answer is a datum (§5).

## 1 · Stage one — the interview (in the clone, triggered by `/begin` or the word *begin*)

**Conduct:** one question at a time, never a form. After each answer, draft the artifact it feeds and read it back for confirmation. Keep the user's words wherever they carry the meaning. State the defaults instead of asking about them — five questions decide everything; the other four parameters take tier-0 defaults (§1.6).

**1.1 — The project.** *"What are you working on — and why does it deserve a memory?"* Their answer, lightly edited and confirmed, becomes the **Global Context §1 vision**. Follow with: *"and what is it concretely, right now?"* → **§2 current realisation** and the Local aspect. (Parameter feeds: the §3.2 texts — **carried mechanically**: the confirmed answers ride into the birth as `genesis.py --vision` and `--focus`, so nothing is asked twice and nothing is thrown away.)

**1.2 — The name.** *"What should it be called?"* → project name and the `<Name>_` prefix (parameter 1). Derive, show, confirm — **with the name grammar inline at this exact moment** (stranger test, finding 2): the tool's identity name takes ASCII letters and digits, starting with a letter, so `CREDIT-CYCLES` is derived to `CreditCycles` — say so before the tool says REFUSED, and note the *folder* may keep any name they like.

**1.3 — The writers.** *"Your name, and the email your git host knows?"* — with the email rule inline at this exact moment (GENESIS §2 row 2): **real address for you** (attribution wants real identity; the off-site binding needs the match; one honest footnote — commit emails become public with the repo), **synthetic address for the AI**. Then: *"name your AI collaborator"* — their pick, not the vendor's name (the Alfred precedent: the child's AI writer has its own identity); **if they defer, the session proposes a name drawn from the project's own domain and confirms it** (the Minsky precedent — "defaults fine" needs a fallback, stranger test finding 4). → parameter 2, both `AGENT.` identities. **The human's address binds mechanically:** it rides into the birth as `--human-email`, which writes the newborn's repo-local git config — their own manual commits attribute correctly from day one.

**1.4 — The territories.** *"What kinds of work will live here?"* From their answer **propose** 2–4 domain codes in their own vocabulary; explain root gravity **and its escape hatch in the same breath** (RF1-3 — the gravity alone is what a newcomer carries out of the birth, at the exact moment they cannot yet know their ontology): *root names are forever and fewer is better — but everything **under** a root moves freely later (concepts re-parent and redirect by ordinary events), and adding a root later is cheap. You are naming territories, not committing to a taxonomy — start minimal.* → parameter 4, the routes.

**1.5 — Durability.** *"Where should the off-site copy live?"* Default shape: an **empty** repo on their host (no README, no license, no .gitignore — genesis writes those), SSH form preferred with the §3.7 honesty (HTTPS honoured but needs a credential helper; a failed push rolls back cleanly; **birth without a remote is a fine answer** — bind later, the host is a swappable convenience). → parameter 5.

**1.6 — The defaults, stated not asked** (tier-0 minimality — OQ-28's answer built in): BOOTSTRAP is written for them (parameter 3) · the close checklist starts as the four living documents genesis writes (parameter 6) · **`FIELDNOTES.md` is born as parameter 7's file with its capture door `/fieldnote`** — introduced properly in stage two, not here · secrets: one question only — *"will this project touch credentials?"* — names recorded, values never in the repo (parameter 8; "none yet" is the usual and fine answer; **a non-"none" answer lands as rows in the newborn Register's §2 parameter bindings** — the child's first session writes them, stranger test finding 5) · provenance anchoring inherits the OpenTimestamps posture and first fires at their first release (parameter 9). Any pushback on a default → that parameter becomes a real question.

## 2 · Stage one, second half — the birth and the handoff

**2.1 — Dry-run together.** Run `genesis.py` without `--write` — carrying the interview: `--vision`/`--focus` (the §1.1 texts) and `--human-email` (§1.3). Read the plan aloud in user terms: the files, the root mints (*these names are forever — the structure under them stays movable*), the remote, the seeded texts. Confirm, then `--write`.

**2.2 — The two day-one frictions, checked proactively:** (a) **folder visibility** (entry 31 — a newborn can arrive Finder-hidden; if they can't see it: `ls` proves it exists, `chflags -R nohidden <path>` cures it); (b) **the push** (§3.7 — if it failed, bind manually or later; the birth is intact either way).

**2.3 — The handoff (the midwife's exit).** Say, in substance: *"Your project lives at `<path>`. I stay behind in this clone and govern nothing there (C-091). To work: `cd <path>` and start your AI client — the line is worth keeping."* Then the **return path** (entry 29): *suggest* that their first session create its own launcher (a double-click `.command`, a shell alias — their session's act, in their jurisdiction, tracked if they want it). The interview ends here. **The clone session does not open, drive, or close the child's first session.**

## 3 · Stage two — the first loops, in the child (the rail)

Genesis writes `First_Loops_Rail.md` into the newborn (under its own `Claude/Context Packages/`) — **scaffolding: informs, never governs, retires itself.** The child's **named opener** (C-106 — the entry command is the project's own name; `/orient` only as reserved-collision fallback) reads it while it exists and surfaces **one move per loop, as an offer** (C-031 made the interface):

- **Loop 1 — the first close.** Real work first: the project's actual first step (the interview's §1.1 answer names it). When the first real decision appears, record it as **P-001 with its why in the row** (tier-0 subtlety, entry 18: with no protocol series, the row is the reasoning's only home). Then close: a handover record in their `Claude/Context Packages/Conversations/`, the checklist in the Register walked, `verify.py` green (GENESIS §3.8). **The instance is real at its first close** (§6) — say so when it happens.
- **Loop 2 — the capture habit.** `/fieldnote self <what happened>` whenever something grinds *or* shines — frictions and green data through one door; in the friends-beta, reporting back = sending the ledger file, any channel, nothing automatic.
- **Loop 3 — the shelf, and its first member offered actively.** Before building any working tool or projection: GENESIS §5 — **adopt before invent** (C-092; entry 22: reinventing the shelf is the hidden cost of minimality). And one shelf member is *offered by name, unprompted*, the moment open threads accumulate: the **Agenda Board** — a rendered single-glance projection of queued and open work, refreshed at every close once adopted. The rationale is the speed asymmetry (the founder's datum, 2026-08-16): AI sessions move faster than human tracking; the board is the human's window, and waiting for the user to feel its absence just makes them reinvent it (the field proved this twice).
- **Loop 4 — the catalog card.** Minting, at the moment it first matters: repo = library shelf, store = catalog + citation network; minting = the catalog card. Defer penalty-free; the trigger is the first time something in the graph must point at the document (entry 19).

One move per loop-open, offered in one sentence, dropped without argument if the owner has their own agenda. The rail never blocks, never nags, never repeats a taken move.

## 4 · Stage three — nothing

**Retirement rule:** at any loop-open where the rail added nothing — or at loop 5 at the latest — the session proposes deleting `First_Loops_Rail.md`; the owner's yes is one `git rm` and one Register line (*"P-nnn: onboarding rail retired — guidance degraded to nothing by design"*). From then on the constitution carries alone, as the culture-transmission evidence says it can (entries 18/21/24: C-008, C-031, file-first — all rediscovered natively in a one-day-old instance).

## 5 · Instrumentation (the interview under its own field test)

Every question the user cannot answer, every default they push back on, every moment the script feels wrong: a fieldnote (`kind: question` or `friction`) into **their** ledger — OQ-28 weight data and this protocol's revision fuel. Fixes land **here, in the generator** (C-094) — never as ad-hoc patches to a running interview. The stated far vision (entry 6): iterate which openings work best, because every user interacts differently — this document is where those iterations accumulate.

---

**Refresh triggers:** a fieldnote showing a question misfires or a friction the script misses; a GENESIS reissue moving §1–§3; the first real stranger's run (the friends-beta) contradicting any staging decision here; an app first-run or website walkthrough rendering from this script (they must cite it).
**Sources:** GENESIS.md (stamp inside — the normative path this script drives); Site/Fieldnotes_2026-08-15_First-Shipping-Run.md entries 4, 6, 8, 11, 12, 15, 18, 19, 21–25, 27, 29, 31, 38 (the questionnaire drafted itself from the ledger, as entry 23 predicted; **annex-held in release copies** — the field ledgers are the mother's private working material (C-098); in a release this citation is provenance, not a link); Decision Register (C-008, C-031, C-035, C-062, C-091, C-092, C-094); Protocol v0.44 §1.2 (the build order of record); Flight_2026-08-17_Refinement.md (RF1-3 — the root-mint-anxiety finding v0.3 cures).
**Revision history:** v0.1 (2026-08-16) first issue — the flip-preparation session: the three-stage fade designed (interview → one-move rail → retirement), five real questions + four stated defaults, the midwife-exit and return-path moments scripted, instrumentation clause per C-094. · v0.2 (2026-08-17) **the stranger-test reissue** (the first-stranger's-run trigger fired, simulated — Review_2026-08-17_Stranger-Test-1): §1.1/§2.1 record the mechanical carry (`--vision`/`--focus`/`--human-email` — the nothing-asked-twice promise now tool-true, finding 1); §1.2 pre-answers the name grammar (finding 2); §1.3 gains the identity binding and the AI-name default proposal (findings 3–4); §1.6 names the secrets landing place (finding 5). · v0.3 (2026-08-17) **the registry-release reissue** (beta-0.5, the RF1 triage): §1.4 pairs root gravity with the **escape hatch in the same breath** and reframes the ask as naming territories, not committing a taxonomy (RF1-3 — the researcher persona's root-mint anxiety, met at its exact moment); §2.1's plan-reading line carries the same pairing; the sources' field-ledger citation gains the annex-held note (RF1-19).
