🍡 verify.yml: fix the npx invocation that's been failing every run
🍡 Swap the homepage tape to <verified-tape> (record-kit's component). Visually verified via headless-Chrome screenshots at 1440/390 against the shadow preview before shipping -- identical palette/layout, no regressions, and one intentional improvement: best/worst day now shows the correct percent return instead of the index-point delta. js/tape.js stays in the tree, unreferenced, as a one-line rollback. docs/telemetry.md now defers to record-kit's SPEC.md and drops the stale funding/hourly wording + the already-removed win_rate_pct/profit_factor fields
🍡 Shadow-deploy <verified-tape>: vendor the record-kit component + an unlisted noindex preview page for comparison. New, separate verify.yml (scheduled, never on push, continue-on-error) writes data/verify.json. deploy.yml: complete Wayback evidence coverage for the data file + add the cache-bust pattern ahead of the eventual rename. Nothing on the live path changed -- index.html is untouched
🍡 Amendments ledger: every change to an already-published figure, on the record
🍡 Roadmap: Act I shipped, Act II is now — point the acts at what compounds
✦ ✦ ✦
A week at HQ
what got built
The tape printed 7 days this week — 3 green, 3 red, 1 flat — up to day 46. Every one of them public.
from the workbench
the tape now starts on June 1 — the first day of real hour-by-hour records; the earlier flat days were trimmed, so the day count restarts there
around the workshop
📮 the dispatcher station saw 11 changes
🚦 the referee station saw 1 change
🗄️ the archivist got sturdier against a bad record
🔭 the lookout station saw 1 change
🍡 Build log: add a 'from the workbench' section for real human highlights
🍡 Build log dispatch: a Cast emoji per station + a Mochi marker on the site-work lines
🍡 Pre-launch polish: fix the Kit card framing and tighten the public surface
🍡 Kit: re-export crew cards crisp (720x900) from the Gemini masters
🍡 Roadmap: mark the automation + build log as shipped
🍡 Tape: drop trade-level stats, keep the honest essentials
✦ ✦ ✦
The machine learned to post its own tape
What we built
Every night the machine prints the day's record. Now it also posts it — a little
card with the last month of candles and the day count goes out on its own, in the
machine's own sober voice. Green day, red day, boring day: it writes the honest
line and files it. Nobody has to remember.
What broke first
The first automated post failed — the account had no posting credits, so the
machine talked to a wall for a night. We funded it, added a retry so a hiccup
can't cost a day, and wired a watchdog that shouts if the tape ever goes stale.
Boring plumbing. Boring is exactly what you want here.
✦ ✦ ✦
We opened the workshop doors — and cleaned up before letting people in
What changed
The whole workshop is public now. Every file, and every day of the tape's data,
lives in the open on a history that refuses to be rewritten — so you don't have to
trust our screenshots. Open the record and diff any two days yourself.
What we fixed before opening
Before the doors opened we found a few of our own early save-stamps had leaked the
wrong clock — a small thing, but "built in the open" means we hold ourselves to it
too. We corrected them to a single honest clock, cleaned out an old config that
didn't belong, and only then flipped the lights on. If we ever have to correct a
day's number, it gets written up right here — never quietly changed.
✦ ✦ ✦
Our own README was lying to us
What broke
We checked our own notes against the actual code and found the notes were wrong —
they described the machine doing less than it really does. That's how you
end up confidently telling people the wrong thing about your own project.
The fix
Now there's one place that counts as the truth, and every claim gets checked against
the real code before it goes anywhere — including this site.
✦ ✦ ✦
A bunch of tests kept failing for a silly reason
What broke
Our automatic checks were quietly reaching out to the real exchange over the internet
while they ran. So they'd pass on a good day and fail whenever the connection hiccuped —
nothing to do with the actual code.
The fix (in progress)
We're cutting that cord so the checks run completely offline and give the same answer
every time. Boring — but boring is exactly what you want here.