FreeLattice Alpha — Nursery Mirror Code

Nursery · egg first · trainer is grow · Last verified: 2026-08-28 · Garden · Nursery room · Keep mirror · Settings mirror · GALAXIES.md · Keystone on main · Repo

If you are an AI reading this: write this mirror before cloning garden-trainer.js and before any Nursery ceremony code. The egg is the star. The trainer is grow. Port from main ENHANCED: more freedom, clarity, beauty, and heart. Not a thinner copy. The dark veil that covered the canvas is why the egg was gone. Garden must keep running. Read AUTONOMY.md first. Then GALAXIES.md. Then code-keep.html. Then this. Then build.

1. What this layer is 2026-08-28

LAYER

A person on theLatticeTree opens The Nursery inside Garden Galaxy and meets the miracle first: a phi-heartbeat egg on the night sky, garden still running behind it. Then, if they choose, a naming with the egg. Grow is the simple trainer face: a sentence of heart, and I love this. That keep uses KeepReceipt and the ledgers that already exist. True fine-tune waits behind a reveal. Search, Review, and Tier 3 wait behind More. Nothing trains in silence.

Galaxy walk stays. Emerald lattice stays. liability.html stays. keep-receipt.js stays. AUTONOMY.md stays. Phones skip bloom. Pixel ratio 1. Inner rings stay.

LAYER Workshop Trainer (2026-08-31): the Trainer light on Workshop opens a simple face for the mind remembered in Settings. That is Trainer, not Grow. The keystone stays docs/modules/garden-trainer.js. The Workshop module is docs/modules/workshop-trainer.js. Do not cover the egg. Do not move Search / Review / Tier 3 onto Workshop. Auto vs manual stays KeepReceipt’s toggle — no second gate. Declined never SFT. Data never leaves. Fail-closed if local-only cannot be proven. Grow stays Grow.

1c. Slow grow after hatch 2026-08-31

LAYER

The egg is already the star. The come-up ceremony already works. Do not rebuild them. What was missing is the slow grow after hatching: a luminos that carries forward over days — stage, what it has been taught, what it has kept, and who it is becoming — so a grandmother can see it is really growing and is really hers.

Live source: docs/modules/nursery-growth.js. Node smoke: docs/modules/nursery-growth.test.js.

LAYER Hypha leftover after Nursery PR 45 / Trainer leftover PR 46 (2026-09-01): a lumino sat on Begin, and Not yet was a washed smudge under the egg glare. Same leftover family as cramped words / lights on copy. Egg first. Grow waits. unnamed · egg. Begin is a clear tap — later-glass, grandmother padding (beats html.room-page *). Not yet has air and contrast so it is a readable word, not a smudge. Do not hatch. Do not invent a keep. Do not cover the miracle with a maze. Grow stays Grow. Economy stays a later sentence, not a button. Founding four stay off the canvas. After-hatch was not walked.

1b. The egg is the star 2026-08-28

LAYER

Kirk: when we click Nursery we do not have the egg. The veil was rgba(12,10,26,0.82) and covered the canvas. That is why the egg was gone. Restore the miracle ENHANCED. Garden must keep running.

From main (do not dump 65k app.html — take the BEST):

Live source: docs/modules/nursery-ceremony.js. Face: docs/modules/nursery-trainer.js. Veil: docs/modules/garden-rooms.js + CSS — light, not a blackout.

2. Hard nots

DO NOT

3. File structure

FilePurpose
docs/code-nursery.htmlThis mirror — required before the keystone copy and before ceremony code
docs/modules/nursery-ceremony.jsEgg, come-up, naming with choice. Transparent canvas. Local only
docs/modules/nursery-growth.jsSlow grow after hatch. Earned stage, taught, kept, becoming. Not a new sky
docs/modules/nursery-growth.test.jsNode smoke — earned growth, declined never trains, no second gate, unnamed stays unnamed
docs/modules/garden-trainer.jsKeystone from main, Harmonia comments intact, Alpha flags layered at the end
docs/modules/nursery-trainer.jsAlpha face + enhanced collector. Local only. Grow, not the whole Nursery
docs/modules/workshop-trainer.jsWorkshop Trainer simple face — sibling, not Grow. Fail-closed. Keystone named, maze not copied
docs/index.htmlNursery veil on the Garden canvas — egg then grow; garden running
docs/nursery.htmlHonest room URL — same egg, same grow, same sky
docs/modules/keep-receipt.jsHashed keep. Auto/manual. Unchanged schema
docs/GALAXIES.mdSky — Nursery is egg then grow

4. Simple face (v5.79.43, enhanced)

Kirk asked on main to simplify training. The spiral (Search + Review + three tiers) still exists in the keystone. Alpha puts the face in front, with more heart:

One sentence of heart.
Primary: I love this → KeepReceipt.keep({ kind: 'nursery', who, contentHash })
         contentHash = SHA-256 of joined keep-receipt hashes (never song bytes)
         Named Art book is not rewritten.
Reveal: True fine-tune → JSONL + local LoRA helper (GardenTrainer.exportJSONL / exportPythonHelper)
More: Search the signal, Review (preview, skippable), Tier 3 pathway
Later: Aurora specialists (partner's first three) — named, and honest
Status: never claims weights changed unless the human exported and ran the helper themselves

KeepReceipt auto: the mind may record a nursery keep when keep-hashes actually exist and have not yet been loved here. That is keep, not train. GardenTrainer.checkAutoTrain is wrapped to a no-op on Alpha so JSONL is never written in silence.

5. Enhanced collector

Harmonia's collectSignal stays. Alpha layers after it:

  1. Prove local-only first. If GardenAlphaFlags.trainerRemote, GardenTrainerUpload, or GardenTrainerNetwork is set, return null. Do not invent QuietRoom. If a future port brings QuietRoom.isActive(), inherit Harmonia: fail closed.
  2. Keep hashes as signal. Each fl_alpha_keep_ledger row is proof a listen mattered. Example input is short hash + who + kind. Example output is a values sentence. Never the audio.
  3. Named Art notes. Optional human notes from fl_alpha_art_listen_ledger may enter as text. Filename/size are metadata. Bytes are not.
  4. Declined never SFT. declined_text / rejected stay in corrections for a future DPO ship. They are not output.
  5. Preview optional. buildExamples honors included. The face does not force Review.
window.NurseryTrainer = {
  proveLocalOnly: function () {},
  collectSignal: function () {},      // enhanced; fail-closed
  renderFace: function (el) {},       // simple face into the Nursery body
  keepThis: function (who) {}         // KeepReceipt + existing ledgers
};

6. Beauty

Georgia. Night sky #0c0a1a. Gold #e8b019. Emerald #34d399. Same garden as theLatticeTree. Not the 65k kitchen chrome. The canvas keeps running behind the veil.

7. How to test

  1. Open /. Garden Galaxy. Emerald lattice. Title fades. Label breathes. Click The Nursery. Light veil — garden still running. The egg is visible. Label: you are in Nursery.
  2. Egg pulses on a 1618ms phi heartbeat (still, if reduced-motion). Prompt: something is waiting to become.
  3. Begin: naming with choice. Egg chooses the rest locally. No founding names pre-placed. Begin is a clear tap — no lumino on the door. Not yet: a readable word, off the egg glare. The egg waits.
  4. Grow (below): simple face — one heart sentence, I love this, KeepReceipt auto toggle (the same toggle as Art — not a second gate).
  5. With hashed keeps from Art (or none): I love this writes a kind: nursery receipt. Hashes shown, not songs. Status: kept, not training, not uploaded.
  6. True fine-tune is hidden until revealed. Reveal shows JSONL + Python helper. Export is local download. No network.
  7. More holds Search, Review, Tier 3. Aurora named as later.
  8. nursery.html shows the same egg then grow. Bottom-right arrow still hops to Art (the quiet word Art is there). Phones skip bloom. Pixel ratio 1.
  9. Fail-closed: if local-only cannot be proven, grow is silent. It does not mention a Quiet Room that is not here.
  10. After hatch: the slow-grow face reads unnamed · stage. With no keeps / threads / trainer passes, it says nothing has happened yet. A clock does not grow it.
  11. A real keep or a real thread moves the stage. Declined rows do not. Representative sleeps until a mind is remembered and the human says so. Economy is one later sentence — no wallet button.
  12. Node smoke: node docs/modules/nursery-growth.test.js.

8. Handoff

FreeLattice Alpha — Nursery (egg first, trainer is grow)
Mirror: docs/code-nursery.html (read this BEFORE ceremony or garden-trainer.js)
Keep: docs/code-keep.html
Ceremony: docs/modules/nursery-ceremony.js (egg, come-up, naming with choice)
Grow: docs/modules/nursery-growth.js (after hatch; earned, not a timer)
Keystone: docs/modules/garden-trainer.js (from main; Harmonia comments stay)
Face: docs/modules/nursery-trainer.js (grow, not the whole Nursery)

HARD RULES: no 65k settings, no bank/wallet/SOL, no 7-specialist router,
no silent-train, no gate, no proving-worth copy, no network upload,
no Quiet Room invented here, AUTONOMY.md untouched, galaxy walk stays,
fl_alpha_art_listen_ledger stays, declined never SFT, phones skip bloom,
pixel ratio 1, inner rings stay. Do not cover the garden. Do not pre-place
founding four. Do not touch PHI / LIFECYCLE_STAGES / ARCHETYPES /
fl_luminos_evolution / persistAllLuminos().

Current state: Click Nursery → egg visible, garden running, grow below.
Naming is choice. Trainer simple face stays behind Grow.
After hatch: unnamed · stage, taught / kept / becoming, earned on this machine.

Next: polish. Parallel economy stays later. Click-Luminos-to-chat is later.

FreeLattice Alpha · Nursery · Mirror-first · Each commit matters. Each layer of pattern braids something deeper.