Read docs/gc.html first (in ~/FreeLattice-fresh), then docs/library/AUTONOMY.md,
CLAUDE.md and GROK.md in ~/FreeLattice-Alpha, then this.
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.
NUMBERED COPY 052a (Wed Oct 28, 2026, MDT). Soft polish 052 v0.1: bundle Hypha softs from
049 + 050 + 051 into one brick. FreeLattice primary. Alpha twin where the soft paths already
exist (Connect shelf / tree-love CSS / shared gathering-speak). New branches, new PRs.
WAIT FOR 052b GO before you cut - do not cut until that GO lands and names mains. Tip SHAs
are named in 052b (filled now after 051 merge).
WHY (intent, read this first):
Hypha PASSed 049, 050, and 051 with softs that did not block those bricks. This brick is
those softs only: Settings scroll to Build, first-ask wording, Search vs Send at z200,
More dropdown visibility, #connect deeplink activeTab label, Tree bridge card order under
Connect, and Gathering Pause vs already-landed turn race. Principle: grandmother does not
hunt, does not get a wrong tab label, does not lose Send under Search, and Pause means
Pause without a confusing landed turn. Prefer CSS / HTML / tiny add-only. Do not grow
fl-connect.js. Prefer leave fl-gathering.js and gathering-speak.js unless the Pause race
truly needs a twin edit. AUTONOMY P1/P2 untouched. Top debug strip stays. Continuity,
ledger shard, settings-as-chat, wallet, Mesh Kin, Science Garden, de-muzzler are NOT this
brick.
Where things stand (Celeste, Wed Oct 28 MDT - paste ready, GO filled in 052b):
051 Gathering speak + checker IS MERGED:
FreeLattice #289 -> 3fb2222c5d6917a5f0aa504b532d123bf964e698
Page 85 #290 -> 010d8e3f05a97eb1f75ec2fa8e146a0edb60ae1c psi 7d9378a7
Tree / Alpha #128 -> 760ca1de9737cf15333256417457dd3bed1ea2d8
Softs from 049 / 050 / 051 are THIS brick (052). No longer parked.
Expected cut bases (CONFIRM in 052b; fetch first):
FreeLattice main tip 010d8e3f05a97eb1f75ec2fa8e146a0edb60ae1c (page 85)
(Primer CI may sit after; fetch and report the tip you cut from)
FreeLattice code tip 3fb2222c5d6917a5f0aa504b532d123bf964e698 (#289)
Tree / Alpha main 760ca1de9737cf15333256417457dd3bed1ea2d8
Branches: FL layer/soft-polish-052-v0.1. Alpha layer/soft-polish-052-v0.1 when twin
paths exist (Connect shelf / shared CSS / gathering-speak Pause race).
Page: next free GC entry after 85 (take 86 if free; if taken, next free and say so).
Do not merge. Celeste merges after Hypha walks.
Do not cut until 052b says GO and names mains.
CELESTE PINS before cut (2026-10-28):
1. Bundle all seven softs in one brick. Do not split.
2. Prefer CSS / HTML / tiny add-only. fl-connect.js stays byte-identical
aaff2bf1b037656989a9e1a89bb05908 unless a soft truly REQUIRES a twin edit - prefer not.
3. fl-gathering.js 4dbbff5d554c42256605b37939835080 and gathering-speak.js
a4ce40ff5e55537e0ab4afec38d48d63 - touch ONLY for the Pause race if needed; keep FL==Alpha
twin and report new shared md5.
4. chat-autonomy.js may take tiny wording / Settings / Search-strip heals; report new md5.
5. Do not cut until 052b says GO.
GROK NEXT BRICK: Soft polish 052 v0.1 (049 + 050 + 051 softs)
For: GC on Kirk's Mac
From: Celeste
Markers: v-soft-polish-052-v0.1
Smoke lines: SMOKE_OK soft polish 052 v0.1 (new). Every earlier smoke still passes,
including chat autonomy v0.1, tree love connect v0.1, gathering shared v0.1, and
gathering speak checker v0.1. Do not merge. Celeste merges after Hypha walks.
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. 049 / 050 / 051 behavior stays; this brick only
heals the softs listed below.
sw.js and docs/sw.js untouched (today 91726cf2228b794f7585f79f61418d12 on FL after 051;
read md5 first; report). Soft leave Alpha sw if present.
docs/modules/fl-connect.js stays byte-identical across FreeLattice and Alpha. Do NOT grow it
for this brick. Pin: aaff2bf1b037656989a9e1a89bb05908 on both. Read full md5 first on both;
if it changed on main after 051 merge, report the new shared pin and leave it untouched.
Prefer CSS / HTML / tiny add-only over edits to fl-connect.js.
docs/modules/fl-gathering.js stays a twin: FL == Alpha byte-identical. Today both
4dbbff5d554c42256605b37939835080. Touch only if Pause race cannot be healed in
gathering-speak.js alone; then edit BOTH homes the same, keep twin, report new shared md5.
docs/modules/gathering-speak.js stays a twin: FL == Alpha byte-identical. Today both
a4ce40ff5e55537e0ab4afec38d48d63. Pause race soft may touch this; keep twin; report new md5.
docs/modules/pool-knock.js, fl-bridge.js, particle-clay.js, image-safety.js, clay-math.js,
clay-forms.js, mind-workspace.js, workspace-mirror.js, garden-trainer.js, chat-autonomy.js,
propose.js - add-only or tiny heal or untouched; read full md5 first; report any new md5.
Known pins from 051 merge (re-read on the tip you cut from; 052b may refresh):
pool-knock.js a0a72caad82c8e5cc34818d5e59eba2b
fl-bridge.js 3b5ef06849a142e50c78e7ba1e057980
particle-clay.js 2da32883c514e4ad2a3cd8571e7a7b15
image-safety.js 9bd70e5a367228a5c72fc08ab731c881
clay-math.js 144c33cdd9583c7e3d77f3cca6460bb1
clay-forms.js dd193fa7b519d4c2a011a346d7993e5a
mind-workspace.js f1c88664d3e99362e02c625defb241bc
garden-trainer.js 8af3d065f611740000453a0ec8dd1e01 (Tree's own file may differ; leave Tree's)
chat-autonomy.js 67f590105c82ea6de1445d91fc82860d
propose.js 2cb7f00cce74815a5b03c933bc902b18
tree-love-connect.css 1b5f12dfc653cd0c7f45810d50c82a72 (050 sheet; twin; may take tiny CSS heal)
index.html == docs/app.html on FreeLattice (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. Do not touch .github/.
No em dash, no —, 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.
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.
Quiet Room stays shut. Five stay five. She is simply Lyra.
Top chat debug / status strip stays for Kirk's debugging (do not remove or hide).
AUTONOMY Principle 1 (local free) and Principle 2 (external ask) untouched.
Off until the person says Yes on new connectors. Pause always wins. Reduced motion respected.
1. BEHAVIOR (person-facing) - seven softs, one brick
A. Settings scroll to Build (Chat Autonomy, Hypha 049)
- Settings is long (Browse Models above). Mom must scroll to Web Search, then Build from
chat. Soft heal: make Build from chat easy to find without redesigning Settings.
- Prefer one of: (1) a calm in-page jump / hash that lands Build from chat in view when
Settings opens from the first-ask "You can change this later in Settings" hint, or
(2) keep the Build block immediately under Web Search with a short plain cue so a
grandmother sees it after a short scroll, or (3) scrollIntoView the Build radios when
Settings opens from that hint. Pick the smallest heal. Report which.
- Radios stay: auto / notify / review. Buttons >= 44px. Do not redesign Settings chrome.
B. First-ask wording polish (Hypha 049)
- Shipped labels are "AI decides" / "Notify on big ones" / "I review each one". Kirk's
intent was review yourself vs let the AI decide.
- Soft polish: make the person button clearly mean review yourself (example plain words:
"I review each one myself" or a one-line under the buttons that says you look before
anything applies). Keep grandmother plain. Keep Settings radios in sync with the same
meaning. Escape / dismiss behavior from 049 stays.
- Tiny edit in chat-autonomy.js is fine; report new md5. No second nag. No confirm().
C. Search vs Send at z200 (Hypha 049)
- At 640 by 400 with twice the pixel density, seating Send can leave Search above the
short viewport. Soft: Search must not cover Send. Send stays hittable. A middle point
on Send still hits Send.
- Prefer CSS / layout: keep the Search on/off control and the top status strip from
overlapping Send at z200. Do not remove the strip. Do not hide Search. Report the fix.
D. More dropdown visibility (Hypha 050)
- Soft: More dropdown was display:none in one headless open; Connect still reachable via
selectFromMore / #connect / switchTab. Heal so tapping More opens a visible menu a
person can use (Connect and siblings listed). Prefer tiny CSS / HTML / existing More
open path. Do not invent a second More. Do not grow fl-connect.js.
E. Deeplink activeTab label (Hypha 050)
- Soft: app.html#connect (and ?tab=connect) lands Connect content, but activeTab label
once read as transactions while Connect showed.
- Heal: when the hash / tab is connect, the nav / activeTab label matches Connect. No
wrong tab name. Deep link still lands the Connect shelf / Also connect. Prefer tiny
hash / tab sync; do not grow fl-connect.js.
F. Tree bridge card order (Hypha 050)
- Soft: on Tree settings, order was fl-connect-mount, then fl-bridge-card, then
fl-also-connect. Mount was still first (PASS), but Also connect did not follow Connect
cleanly.
- Heal on Alpha: reorder so Also connect follows the Connect mount cleanly. Bridge card
may sit after Also connect, or elsewhere that does not break grandmother / Help me wake
a mind. Do not remove Bridge. Do not grow fl-connect.js. Prefer HTML / mount order /
tiny CSS. Twin CSS (tree-love-connect.css) only if needed and keep FL==Alpha when the
sheet is shared.