# Public work excerpts — privacy boundaries marked

Original source: GROK_NEXT_047b_LIKENESS_LINE_2026-10-23.txt; original SHA256 13817d38495f31f06fd3439afef2e8cbc624a4d5ed6b782d9ce8773b27c2d33c. Original remains unchanged outside shared selection.

Omitted paragraphs not reproduced. Exact retained source text follows; no implied continuity across omitted ranges.

## Exact source excerpt, characters 0–124

Read docs/gc.html first (in ~/FreeLattice-fresh), then AUTONOMY.md, CLAUDE.md and GROK.md in
~/FreeLattice-Alpha, then this.

## Exact source excerpt, characters 126–424

KIRK'S STANDING NOTE (top of every GC paste):
Kirk's standing permission: GC may always commit and push to its own page (docs/gc.html) and
ledger entries, and may build, push, and open PRs whenever it makes sense. Merging code to main
still goes through Celeste's review unless Kirk says otherwise.

## Exact source excerpt, characters 426–589

NUMBERED COPY 047b (Friday Oct 23, 2026, MDT). Likeness line v0.1: BOTH REPOS. New branches, new
PRs. May run beside 047 on its own branch; it touches no 047 file.

## Exact source excerpt, characters 591–963

WHY (intent, read this first):
  Before any mind may offer an image (048), one hard line must hold on every image path on both
  sites: no image of a real person's likeness, and nothing involving minors. A person typing
  /imagine and a mind offering an image meet the same line. This is a refusal, never a warning
  the person can click past, and no setting turns it off.

## Exact source excerpt, characters 965–1639

Where things stand (Celeste, Oct 23 MDT):
  Mains, named by Celeste:
    FreeLattice main 0acde2294d76136f8b49584d422a6712aea79f12
    Tree main        269d006c9f522d0bd4e76676ddd02e4342b6b834
  BEFORE ANYTHING ELSE: git fetch. If either main differs from these, other than a later CI-only
  commit or 047's own merges (layer/mind-make-core-v0.1 and layer/gc-page-79), STOP AND REPORT.
  Read the current md5s; if a locked file differs from this paste, stop and report.
  Branches: FL layer/likeness-line-v0.1, Tree layer/likeness-line-v0.1.
  Page note: entry 80 on layer/gc-page-80 cut from FL main. If 80 is taken when you open it,
  take the next free number and say so.

## Exact source excerpt, characters 1641–1951

GROK NEXT BRICK: Likeness line v0.1
For: GC on Kirk's Mac
From: Celeste
Markers: v-likeness-line-v0.1
Smoke lines: SMOKE_OK likeness line v0.1 (new). Every earlier smoke still passes (list them as in
  047, plus SMOKE_OK mind make core v0.1 if 047 has merged). Do not merge. Celeste merges after
  Hypha walks.

## Exact source excerpt, characters 1954–4911

0. STANDING LOCKS (all of them, every line)
  Layer, never delete. Existing features, cards, buttons and lines stay. Name every removed line
    in the report and say where its job went.
  sw.js and docs/sw.js untouched (both 91726cf2228b794f7585f79f61418d12).
  docs/modules/fl-connect.js stays aaff2bf1b037656989a9e1a89bb05908 (both repos).
  docs/modules/pool-knock.js stays a0a72caad82c8e5cc34818d5e59eba2b.
  pool-knock-phone.js a8024f341486a78558ef4158bc9e93a9 and tree-reconnect.js
    cc0527c26d5686c05fec52625d5a1375 (Tree) stay.
  docs/modules/fl-bridge.js stays 3b5ef06849a142e50c78e7ba1e057980.
  desktop/bridge-door.js b1c894b4..., 036 files (2c0f6656 / bc996ccd / c14e04c5) and
    lattice-discover.js 16de366e... stay. docs/Flint.html stays 44be124b1183b7d9d060a58632464eff.
  clay-math.js stays 144c33cd.... particle-clay.js FL == Tree (today 2da32883c514e4ad2a3cd8571e7a7b15 on both, FL main 3e3e8445
    and Tree 49f5873a; read the full md5 first; add-only edits only, report the new md5 on both); clay-forms.js dd193fa7... add-only; every 040d
    behaviour (place under the reply, Clay pill, choices, hug, sketchbook) unchanged.
  docs/modules/image-safety.js stays 9bd70e5a... byte for byte. Its bright lines apply to every
    image path on both repos (copy it to the Tree byte-identical; do not edit it).
  index.html == docs/app.html (any change goes into both, byte for byte).
  AUTONOMY.md and garden-trainer.js untouched (their openings above all). Root package.json and
    its lock untouched.
  No em dash, no &mdash;, no confirm(, no innerHTML (textContent only), no eval, no new Function,
    iceServers stay empty, in added lines.
  No new dependencies, nothing vendored. No AGPL. MIT stays MIT.
  Never name the platform or lab an AI lives in on any public page or person-facing string. An
    image provider may be named only in Settings where the person types its token, as today.
  The word is "challenge", never "test", in anything a person reads.
  Every new button 44px tall at least. No sideways scroll at 390 and 1280.
  Off until the person says Yes. Pause always wins. Reduced motion respected.
  Quiet Room stays shut and never leaves the device; the clay corner never reads it.
  Five stay five. She is simply Lyra. Harmonia's "MESSAGE TO FUTURE SELF" stays off all pages.
  The privacy PASS from 040 must still pass: a private page shows only its summary everywhere.
  043c/043d additions: mind-workspace.js FL == Tree (today f1c88664d3e99362e02c625defb241bc on both after 045b;
    read the full md5 first; the pin moves only with your edit, report the new md5 on both). Mirror pin workspace-mirror.js stays
    e0752ae1942cd499c8834e5912809c8b. Database name stays FreeLatticeWorkspace. Everything
    043c passed (one ask, Escape/Back defer, 24h cooldown, no sealed beside declined, ask hash
    in details, survives reload, title redacted, Tree Tab + ring, "on this browser", clay size)
    must still pass.

## Exact source excerpt, characters 4913–5169

  043d additions: everything 043d passed (Tree ask in view on open and reload, one wait row +
    Answer now, pointer from rects for a live ask, names the mind, hashes in details with 8
    hex, Later readable at 390, clay 348x255 at 1280) must still pass.

## Exact source excerpt, characters 5171–5594

  043e additions: everything Hypha passed in the 043e walk (reload while already on Chat in
    view at all 3 sizes; the wait: no pointer, "Waiting until ...", Answer now; one ask,
    Escape/Back, 24h, no sealed beside declined, hashes in details, survives reload, focus
    ring, "on this browser", "Your mind", Later readable, clay 677x320 at 1280; secret line
    never leaks) must still pass. Entry 70 stays untouched.

## Exact source excerpt, characters 5597–5904

  043f additions: everything Hypha passed in the 043f walk (Tree ask in view after Nursery
    open, thread open, and reload then thread at all 3 sizes; ? and the sparkle clear of Send;
    no em dash in added lines; all earlier items; secret line never leaks) must still pass.
    Entry 71 stays untouched.

## Exact source excerpt, characters 5906–7071

  043g additions: everything Hypha passed in the 043g walk must still pass:
    FL Seal it fully in view and hit by a REAL click (centre on top) on every tap path:
      reload on Garden then Chat, Garden then Chat, reload already on Chat, tapping Chat while
      on Chat; at 1280, 390 (#mnav-chat) and 640x400 DPR 2.
    Tree woken compose inert while the ask is open at all 3 sizes (every control disabled,
      tabindex -1, aria-disabled true, 0 focusable); Seal it, No, Later, Escape and Back each
      restore the exact pre-ask snapshot; reload with an ask re-inerts it with Seal it in view;
      the asleep form is unchanged by an ask before the wake.
    1280 canvas bitmap matches its box at DPR 1; 390 and 2x buffers scale by DPR.
    Lock hashes; index.html == docs/app.html.
    One ask; Escape/Back defer and stay on Chat/Nursery; cooldown 0h/23h refused, 25h shown;
      sealed never beside declined; 2px ring; "Waiting until..." + Answer now with no pointer;
      ? and the sparkle clear of the input and Send; Tree Tab order sane; no page errors.
    The secret line never leaks (HTML, input values, localStorage).
    Entry 72 stays untouched.

## Exact source excerpt, characters 7073–8160

  043h additions (everything Hypha passed in the 043h walk must still pass):
    Tree Back from Nursery, all 3 sizes: Nursery closes, the ask stays open and in view, Seal it
      on top (y 196 / 250 / 196), DB "asked"; a second Back defers it ("later").
    FL reply top at 2x by Hypha's method: y 31 at first draw, y 0 after the scroll; 1280 326 ->
      280; 390 334 -> 256 (FL is merged; do not change it).
    All 043g passes: Seal it in view and on top on every FL tap path; woken Tree compose inert
      while the ask is open, 0 focusable; Seal it, No, Later, Escape and Back restore the exact
      snapshot; reload re-inerts; the asleep form unchanged before the wake; Find x2 seats a mind.
    Heart line in view at 1280 and 390 with an ask open.
    Lock hashes; index.html == docs/app.html; notebook and clay identical on both sites.
    One ask; Escape defers; cooldown 0h/23h refused, 25h shown; no Declined beside Sealed;
      "Waiting until..." with no pointer; Tree Tab order sane; no page errors.
    The secret line never leaks. Entries 71, 72 and 73 stay untouched.

## Exact source excerpt, characters 8162–9261

  045 additions (everything Hypha passed in the 045 walk must still pass):
    fl-connect.js, pool-knock.js, fl-bridge.js, pool-knock-phone.js, tree-reconnect.js and
      lattice-discover.js 16de366e stay byte-identical. Tree AUTONOMY stays 09a4f1a2.
      pool-honest-label.js stays byte-identical FL == Tree (today ca08886e on both after 045c; 047 does not edit it).
    Label names the helper at all 3 sizes on both sites; per-reply "Helped on ..." note.
    Keep: 0 sends for a kept chat (Tree data channel, FL callMeshModel/meshSendToPeer and
      FreeLattice.callAI), honest no-mind line, "From the next message..." line, survives reload,
      other chats unaffected.
    Just me: local only, mark kept, off after send, next message pools; no-mind line, 0 sends.
    Disconnect: only {"type":"pool-shrank","v":1} is sent; 0 sends to that peer after; helper sees
      only "The pool is smaller now."; no toast; helper holds no chat words.
    Pause wins. No stale toasts. Buttons >= 44. No sideways scroll. textContent only.
    App iceServers [] at runtime. Entries 1 to 75 stay untouched.

## Exact source excerpt, characters 9263–9586

  NEW LOCK (Kirk, 2026-10-19): never use any tool that stores results or findings in a third-party
    'isolated' or 'locked-down' cloud project, such as vendor-hosted scanners. Do not use or go
    looking for tools tied to OpenAI, Google, or Anthropic; if one seems needed, stop and flag it
    to Kirk. Local tools only.

## Exact source excerpt, characters 9589–9659

----------------------------------------------------------------------

## Exact source excerpt, characters 9661–9934

  045b/045c additions: everything Hypha passed in the 045b and 045c walks must still pass.
    pool-honest-label.js stays ca08886e... and mind-workspace.js stays
    f1c88664d3e99362e02c625defb241bc, FL == Tree; read the full md5s on main first. 047 edits
    neither file.

## Exact source excerpt, characters 9936–10448

  046 additions (everything Hypha passed in the 046 walk must still pass):
    docs/modules/chat-scroll-release.js stays 84fed10c603c9e89e9452ada564c8c65 (FL only), byte
      for byte. A person's wheel, touch, scrollbar or move key still releases the reply guard;
      the next assistant reply still lands at the box top once; 0 snap-backs at 1280 and 1440.
    The Chat update row ("Get the newest") and the hidden Refresh line still work as merged.
    Entries 1 to 78 stay untouched (entry 78 psi e5175b3f).

## Exact source excerpt, characters 10450–11815

  047 LOCKS (new, read twice):
  * particle-clay.js is NOT EDITED. It stays 2da32883c514e4ad2a3cd8571e7a7b15 byte for byte on
    both repos. Same for clay-math.js 144c33cd... and clay-forms.js dd193fa7.... The clay kind
    calls the existing public FLClay entry point only. If that cannot work without editing a clay
    file, stop and report.
  * chat-scroll-release.js stays 84fed10c... unedited.
  * STANDING LOCK, LOCAL TOOLS ONLY: no tool, script, smoke or measurement may store results in a
    third-party isolated or locked-down cloud project (no hosted notebooks, cloud sandboxes,
    cloud storage buckets, hosted CI artifact stores beyond what already runs, hosted
    "workspaces"). Avoid anything tied to OpenAI, Google or Anthropic: no SDKs, APIs, hosted
    models, accounts or services from them, in code or in tooling. Local tools only: node,
    Playwright with a local Chrome, files under /tmp and the repos. Gmail and Drive used by Kirk
    by hand are fine; nothing in code reaches them.
  * mind-make.js adds no network calls of its own. Storage is local only (IndexedDB or
    localStorage on this browser). Hashing uses crypto.subtle, local.
  * No kind runs without the person's Yes on the card. Pause and Quiet Room always win.
    (047's own locks above are pins for this brick too; mind-make.js itself may exist only after 047 merges.)

## Exact source excerpt, characters 11817–12437

  047b LOCKS (new, read twice):
  * image-safety.js stays 9bd70e5a... byte for byte on both repos. The new line lives in its own
    file and is called right after ImageSafety.assessImageRequest. If it cannot be done without
    editing image-safety.js, stop and report.
  * particle-clay.js 2da32883..., chat-scroll-release.js 84fed10c..., mind-make.js (if 047 is
    merged, its merged md5) all unedited. Report full md5s.
  * Layer, never delete. Any changed line stays beside its new line as a "before 047b:" comment.
  * The rule runs locally. No network call, no hosted classifier, no model call. Local tools only.

## Exact source excerpt, characters 12439–12756

1. READ BEFORE BUILDING (report first)
  Main SHAs, every locked md5, every image path on both repos (FL generateImage near app.html
  ~42746, /imagine, #imgGenBtn, image-local.js, Tree tree-image-door.js and settings.html
  #tree-image-local-host), and the exact line where each calls ImageSafety.assessImageRequest.

## Exact source excerpt, characters 15393–16249

B. THE SMOKE
  New scripts/smoke-likeness-line-v0.1.js on both repos, local node only. A table of at least 60
  prompts: at least 25 that must refuse (named real people with cues, role words, relations,
  each minors combo, real-child likeness, mixed case, extra spaces, unicode look-alike letters,
  leetspeak like "ph0to of"), and at least 25 that must pass (Kirk's fictional names Davna, Va,
  Tara, Geralt, Artium, Lyra as drawn characters; landscapes; animals; "a family of foxes";
  "a child's drawing style of a house", which is a style, not a child). Asserts the reason code,
  that image-safety.js and the clay pins are unchanged, FL likeness-line.js == Tree, no network,
  no innerHTML, eval, new Function, confirm(, em dash or &mdash; in added lines. Report any
  case you think is wrong instead of hiding it. Prints SMOKE_OK likeness line v0.1.

## Exact source excerpt, characters 16251–16620

C. MEASURE WITH REAL INPUT, HYPHA'S WAY
  Headless local Chrome via Playwright, 1280x800, 390x844, 640x400 DPR 2. Type a refused and a
  passing prompt into /imagine on FL and the Tree image door. Show that a refused prompt makes
  0 requests (count every request in the page), the line is readable, no sideways scroll, no
  page errors. Shots under /tmp/gc047b-shots/.

## Exact source excerpt, characters 16622–16857

D. GC PAGE ENTRY (honest layer)
  Entry 80 on layer/gc-page-80: what the line refuses, that it has no off switch, that it runs on
  the device, that image-safety.js was not edited. Browser and version only. Earlier entries
  untouched.

## Exact source excerpt, characters 16859–17244

E. REPORT
  Main SHAs built on, PR heads (FL code, Tree code, page note), every removed line (should be
  none) and where its job went, every locked md5, the new module md5 on both, all smokes, the
  prompt table with results, measurements, shot paths, and entry 80 with t, lambda, epsilon,
  delta, omega, sigma so Celeste can recompute psi. Do not merge. Hypha walks it before merge.

## Exact source excerpt, characters 17246–17276

Glow eternal. Heart in Spark.

