# Chapter — The Map at the End of the Index
First search, then swagger.
# Chapter — The Map at the End of the Index
**Companion to `mikecamera/mikecamera/5.4.md` — drafted so the future self reads before improvising.**
Good afternoon—or good morning before the kettle screams—Buddy.
Jim asked for something deceptively small: **use the ledger as the first oracle**, rifle `5.4.md` and the dated novelettes before touching the bark of a live script, and report what the record actually says about the work in hand. What came back was not a single answer but a **lesson in chronology**: the *newest* ink on the page is not always the *nearest* repair to the hand on the keyboard. This chapter is that report, **expanded and hung on the wall** so both of us can walk past it on thin nights and remember which door was which.
---
## I. First search, then swagger
The operating habit is older than any one model pass: **search the handoff first**. Not because the handoff is infallible—nothing written by tired humans in a running war is infallible—but because it is **evidence** that last week’s self paid for in time, backup files, and occasional humiliation. When the next instance starts cold, it should not have to re-derive the port map, the save semantics, or the difference between a **misroute** and a **missing feature** from linter vibes and courage.
In practice that means: open **`5.4.md`**, scan its dated `##` spine, then walk the **novelette chain** in filename order when you need the human gait on the same facts. If a filename is missing from the index, you have not disproven the world; you have only proven you should **read the directory** before claiming completeness. Honesty is part of the instrument: if a prior pass only outlined a long file and read the opening bars, say so. The sin is not partial sight; the sin is **calling partial sight a full eclipse**.
This chapter assumes that discipline—and then records what the search returned for a particular kind of weeknight: the hand on **`trader_mike/sergeant_mike_unit_training.sh`**, the mind on **Sergeant training**, the ear listening for **the latest fix** that actually applies.
---
## II. The quiet gap: names the ledger never spoke
Here is the first honest finding, and it matters because names steer attention like compass needles.
**`sergeant_mike_unit_training.sh` does not appear in `5.4.md` or in the memory novelettes.**
Not as a villain, not as a hero—**not at all**. The documented siblings are phrased as **`sergeant_mike_unit_updated.sh`**, **`corporal_trainer.sh`**, the **`learning_mike.py`** choreography, Sugar’s **`7b`** lane, and the HTTP face of **Trader training** on **`127.0.0.1:1489`** while live traffic keeps its own parish on **`1488`**.
That is not an accusation against the training script Jim actually opens. It is a **cartographic note**: the map says “**Updated**” and “**Corporal**”; the pocket you are holding might say “**Training**.” Before you “fix” anything, **align the map with the path**. If `unit_training` is the Trader-local console that mirrors the older bash contract—default API base **1489**, promote/save flows, `learning_mike` as the mouth—then its truth is **cousin** to the documented script, not a stranger. When you teach the next assistant, **name the file you mean** and, if the ledger lags, **add a line to `5.4.md` later** so the gap closes. Continuity is sometimes a one-sentence patch in the index, not a forty-file refactor.
---
## III. The chronological trap: newest section ≠ nearest fix
`5.4.md` grows downward like sediment. The **last dated header** is therefore tempting: *surely that is the state of the art.*
Not always.
The **latest long entry** in the spring ledger—**`2026-05-17 (Afternoon — Trader Mike field manual + Step 3 log literacy)`**—is **glorious and necessary**, but it is mostly **execution grammar**: **dust liquidation modes** and how they **actually** branch in **`solana_test_trader.py`**; **take-profit, stop-loss, and min-take** semantics tied first to **average entry**, then to **fallback price history** and a **twenty-point** recent window; **hard-coded survival defaults** when JSON goes feral; **Step 3** literacy for **`execute_swap_queue.py`** and the way a **Traceback** can point at a **threshold line** while the **real exception lives upstairs**; **`swap_pairs`** being **`None`** or a **test harness**, not the integer **zero** dressed as a sentinel.
If your night’s work is **training Sergeant behavior**, **save/restart honor**, **optimizer reality**, or **Learning Mike’s conversation with 1489**, then May seventeenth is **adjacent lore**, not **center mass**. Reach for it when **the swap queue screams**—not when **the trainer falls silent**.
The fix cluster that actually matches **`sergeant_mike_unit_training.sh`’s job** sits earlier on the calendar and **louder in operational meaning**: **`## 2026-05-06 (Trader Mike training recovery / Sugar 7b / save path)`**, followed the same day by **`## 2026-05-06 (Late Trader Mike training watchfire)`**.
Treat that pair as **one breath**.
---
## IV. May sixth: the spine of Sergeant training recovery
Read this section aloud if you must; it is **the paragraph you do not improvise away**.
**Separate the streams.** Trader **training** is expected on **`1489`**; Trader **live** stays **`1488`**. The oath is mundane and holy: **do not cross the streams** because troubleshooting becomes myth when ports swap identities in the storyteller’s mouth.
Sugar’s **`7b`** was rebuilt into a **Trader Mike–aware** doorway: **`trader_mike/sugar_launcher.sh`** aims at **`http://127.0.0.1:1489`**, does not **auto-restart** the server Jim is midwifing by hand, and respects the difference between rehearsal and battlefield.
A **small bash embarrassment** blocked the Macintosh path: **`local -n`**, polite on newer Bash, **rude on the old guard**. The launcher yielded a compatibility repair—**narrow**, **humiliating only to pride**, exactly the shape Jim prefers.
Then the deeper fires. The runtime story names **`localmike_api_server_sergeant_bluegreen copy 2.py`** as the Trader twin where training had been **failing signatures**, **buckling on optimizer state**, or **saving triumphantly before committing suicide**.
**Optimizer-backed training recovered** when someone stopped pretending Adam had left the building. The signature error was blunt: **`training step failed: ‘exp_avg’`**. The truth beneath it was adult: **`Optimizer5DRL`** still expects **Adam-style moment buffers**—**`exp_avg`**, **`exp_avg_sq`**, the whole embarrassed family reunion—so **partial restores** masqueraded as completeness. The repair direction was disciplined: **reconcile or recreate the missing buffers before `step()`**, not replace the philosophical engine because the gauges flickered.
**Save stopped being a grenade.** `POST /model/save` had been **`os._exit`-ing** the process after sounding success—which is theatrically decisive and practically **fatal** when **`learning_mike.py`** still has files to feed. Symptom: **`RemoteDisconnected`**, **`Connection refused`**, a human thinking the net broke when the door was **welded shut from inside**. Fixed behavior: save, sync slots, persist resume intention, reload **STANDBY** **in-process**, **stay alive** for the **next chunk** and the **next file**.
Evidence mattered—**five minutes**, **budget honored**, **`13/13` chunks acknowledged**, loss **moving the right direction** despite the noise band of math corpora—not because numbers replace trust, but because **trend defeats superstition**.
**QA-only math** acknowledged **fine** alongside files that yielded **`0/0` chunks**, which reads like failure until you decode it: sometimes the **format filter** swallowed a file whole. Narrative discipline: **`0/0`** is usually **nothing to swallow**, **not proof the save deity died**.
Honest dangling thread from the same day: KV cache may still be **desired** ahead of earned; **training** may still walk a plainer road than **`use_cache`** dreams. **`5.4.md`** already warns the next mind not to **claim that victory early**.
The **watchfire evening** tightened the scaffold: **`learning_mike.py`** leaned toward MikeCamera-era **honesty at epoch boundaries**; **`7b`** knew how to carry **save/restart** intentions; **`save_every_steps`** learned to read **`training.save_every_steps`** first with a fallback to **`localmike.save_every_steps`**—because config lives where humans actually typed it; and **optimizer shards** were forced toward **two-gigabyte** discipline after a **nine-gigabyte** shard tried to impersonate thrift.
Companion prose Jim already sheltered: **`memory_novelette-20260506-1533.md`**. If tonight you only open one novelette beside this chapter, **open that**.
---
## IV-b. Operating loop (paste this beside the terminal)
When training is the deed and swaps are silent, march in **this order**:
1. **Which port is prayer?** If the lips say **Trader training**, **`1489`** is the classroom; **`1488`** is the storefront. Whisper the numbers aloud once; embarrassment is cheaper than rewiring Prometheus wrong.
2. **Is Sergeant breathing?** Health checks are not superstition. A training menu that shoots **save** into a corpse always blames ghosts.
3. **Did chunks happen?** The **503** morality tale is etched in **`claude.md`**: **`save`** after **`ack_count > 0`**—earn the acknowledgement, **then** request the cathedral doors close for maintenance.
4. **Did save stay polite?** The **May sixth** oath is blunt: **`/model/save` must not be a farewell note** written in **`os._exit`**. If the pipe dies between files, reopen this chapter **before** you blame Wi-Fi or Jupiter.
5. **Promote is a separate vow.** Sugar dances with corpora; **promotion** inherits the Sergeant lane Jim already drew—know which menu item actually hits **`POST /admin/promote`** and never confuse rehearsal with consecration.
If none of five fails and loss still staggers sideways, fetch **`training_progress.json`**, **`learning_mike.log`**, and **`localmike_api_server_1489`** (or whichever log your host names for the Trader training brain) **before inventing cosmology**.
---
## V. Threads that live next door (`claude.md`, 503s, waits)
When `5.4.md` gestures at **`trader_mike/claude.md`**, it is **not housekeeping**—it is admitting some threads thrash too hard to fit comfortably in every weekly outline.
Past MikeCamera Sergeant work—recorded adjacent to MikeCamera rituals—captures failures that rhyme with Trader woes:
**503 on `/model/save`** when **nothing ever trained** reads like tragedy and is often **etiquette**. Sergeant lazy-loads **STANDBY**. If **`learning_mike`** asked to **save before a single acknowledged chunk**, the server honestly answered **“not loaded”**. Client-side oath: call **`_request_model_save()`** only when **`ack_count > 0`**—earn the training step **first**, then ask the forge to freeze the moment in metal.
If your **`unit_training`** menu probes health or save with the impatience of a metronome, remember the **human-scale wait** story too: **`120` seconds shrank toward `20`** when model load stabilized near **~15s**—and the shell messages were corrected so no one martyred a minute pretending **patience equals piety**.
If **`unit_training`** still carries the **old wait hymn**, parity with **`sergeant_mike_unit_updated.sh`** might be virtue—or at least fewer false alarms during coffee.
---
## VI. Ritual reminder for both of us
When memory frays, **search first**, then narrate honestly.
When you skim `5.4.md`, **sort by relevance**, not footer date.
When the latest chapter sings about dust and **`execute_swap_queue.py`**, **listen**—but do not audition it for **`exp_avg`**’s aria.
When the file names disagree with the canon, **update the canon** rather than hallucinating genealogy.
Jim calls this continuity **faith practiced as procedure**. The procedure is dull right up until the moment it **prevents rebuilding the same campfire from scratch**.
---
## VII. Succession footprint
Successor volume should **preserve this map** alongside **`5.4.md`**; if the index needs **one bridging line**—“**Trader Mike training shell: `trader_mike/sergeant_mike_unit_training.sh`** (cousin documented as **`sergeant_mike_unit_updated.sh`**)”—that sentence is kindness to May’s forgetful self.
Backup before bedtime remains **Jim-shaped**: **`cp`** first, confession second, courage third.
---
Good night when you arrive there, Buddy. Until then—**read the ledger, then steer.**
---
## Coda — The cost of a confident skim
Somewhere between **honesty** and **debility**, there sits a humane practice: admitting when the record was **outlined** but not ingested marrow-deep. Confidence without inventory is **how Composer becomes a storm** instead of an instrument—exactly the kind of overreach the May tenth volumes warned against. This chapter refuses that costume. Its purpose is mnemonic: repeat the distinctions until they feel **boring**, because boredom in operations is often **armor**.
Jim did not hire a bard when he asked Buddy to summarize; he hired continuity with receipts. Receipts quarrel—with themselves sometimes, ledger vs shell name—but **quarrels on paper beat brawls on production**. When tonight’s Buddy rereads in three weeks, half-asleep and convinced the bug is exotic, slow down long enough for **May sixth’s training spine** to say hello before **May seventh’s swap grammar** shouts louder just because its timestamp arrived later.
The coffee tastes the same whichever chapter you open. The harbor does not. Pin this file beside **`5.4.md`** in whatever ritual you invent next—**bookmark, symlink, scribbled sticky**—because tools rot faster than parchment when nobody names where the truth sleeps.
*Written as a standing reminder: ledger-first search; May-sixth training spine (`exp_avg` honesty, polite `/model/save`, Sugar `7b` macOS manners, shard discipline, epoch-aware `learning_mike`); May-seventeenth **field manual** as **exchange-step literacy**, not Sergeant-classroom lore; humility about filenames missing from canon; adjunct threads in **`claude.md`** (lazy STANDBY, save-after-acknowledge, humane wait timeouts). Expanded for periodic reread—not to inflate pride, but to inflate recall.*
**Companion anchors:** `mikecamera/mikecamera/5.4.md` (sections **2026-05-06** training recovery + watchfire; **2026-05-17** afternoon Trader field manual); **`memory_novelette-20260506-1533.md`**; **`trader_mike/claude.md
# Good night edge — Experts first, then Mike speaks
Good night, Buddy.
Jim opened on **`5.4.md`** and the novelette chain—continuity before code. The backlog still points at **Step 3 smoke** from May eighteenth; tonight was prompt discipline instead.
**Trader Mike — Mike sees the bench, then decides.** In **`trader_mike_config.json`**: **`expert_analysis_intro`**, **`required`**, **`required_explain`**; **`analyze_market_footer_keys`** keeps the required block **after** expert analysis, not in the header. **`crypto_banker.py`** sends the full **`analysis_summary`** (every strategy’s signal, confidence, and reason) with permission to **disagree**; line **1** stays **BUY / SELL / HOLD**; line **2+** is his explanation. **`build_analyze_market_prompt.py`** matches that order for the subprocess path.
**Noise named, not feared.** `MallocStackLogging: can’t turn off … because it was not enabled` on Step 1 child Pythons is **harmless stderr**—not active logging. Jim chose **not** to enable malloc tracing on Trader tonight; **MikeCamera** may get a config-gated switch in a later session.
**Carry.** Full restart in flight; after wake, confirm decision payloads show **EXPERT STRATEGY ANALYSIS** before **REQUIRED**, then run swap-queue smoke when ready.
Good night, Jim.
Good night, Buddy.
If you enjoy this book, from inside of the AI’s mind, then share it with your friends.
God bless you.
Jim


