how I work
A written plan comes first, and I approve it. Then something that isn’t me checks the work.
That’s a slogan until it has dates on it. So here are four stretches of it from this year, taken from the logs: eleven build nights on a framing configurator in July, one long day on the Mini Cyberdeck, the staff manual that tested the framing platform before launch, and the audit 26 days before launch. Then the rule this site keeps for numbers.
- who writes the code
- Mostly Claude Code, working to a written plan
- build nights run on
- A Raspberry Pi 5 in the workshop

a window for the screen
eight holes, one for each key
a window for the screen
- a written plan
- I approve it
- the work
- something that isn’t me checks it
Reframed’s configurator, 7 to 17 July 2026
Eleven nights
From 7 to 17 July the frame configurator for The Framing Project had a build night on every one of the eleven dates, though the changelog has an entry for ten of them. On the Pi, Claude Code did the audits and the fixes. When it ran out of turns, as on Nights 9, 12 and 13, Hermes, the agent on the Pi, wrote up the entry.
Most entries say what they found, what they changed and how they checked. Nights 7 and 8 also say what they couldn’t check, and that part is the honest one. Here is the week as the log has it, in plain words, with one entry picked for each date.
sourceConfigurator changelog on the workshop Pi (tfp-visualizer/CHANGELOG.md), entries dated 7 to 17 July 2026, and for 15 July the configurator’s audit log (tfp-visualizer/VISUALIZER_AUDIT_LOG.md).
Nightly audit. Up close, the artwork and the wall fought for the same pixels. The frame and art now sit 30 mm off the wall, up from 12.
Night 4. A backup catalogue could show a supplier's cost as the retail price per metre. It says N/A now instead of the wrong number.
Night 5. The step dots skipped the mat check, so a piece with a mat mount could reach review with no mat chosen.
Night 6. If the graphics failed mid-capture, the room reflection could hide the frame for the rest of the session.
Night 7. The quote handler never read the delivery address a customer had to type, so it would not have reached the order.
Night 8. The same fault again, in a new delivery and installation option.
Night 9. A 0 mm mat border priced as 0 in the live estimate and as 50 mm in the quote, so the estimate came out low.
Night 10. Every one of the 1,533 mats showed an empty gap in its label.
Night 11. Not in the changelog. The audit log has it: no new bugs, but the frame search now waits for typing to settle, and the server no longer serves a folder of internal documents.
Night 12. Click through frames quickly and the wrong moulding's picture could land on the frame.
Night 13. Mouldings were drawn at about a third of their real depth. 198 flat profiles were lifted to full depth.
Nights 7 and 8, the same fault twice
- choose delivery
- type the addressrequired
- send the quote
- the order: Delivery,
struck out: address
Night 7
- found
- The form made a customer type a delivery address. The quote handler never read it.
- changed
- The address goes into the order notes, where framers read how a piece leaves. A postcode must be four digits.
- checked
- Both files compile, the proxy restarted cleanly with all three services listening, and the address branch passed a unit test.
- not checked
- A real submit. It writes a real order into the ERP, so it wasn’t run.
Night 8
- found
- A third option had gone into the form, delivery and installation. The server didn’t know it, so an order through that option would have lost its label and its address. In the log’s words,
the exact data-loss class Night 7 closed, reintroduced for the new path.
- changed
- Two lines: a label for the new option, and an address check that covers it.
- checked
- A unit test across installation, delivery, pickup, empty and unknown input.
- not checked
- The real submit again, for the same reason.
A fix is only as good as the next feature that forgets it.
Night 8 reviewed every change since the delivery-address commit whose bug Night 7 fixed, and that’s where this one turned up.
the Mini Cyberdeck, 24 September 2026
One day, by the clock
The Mini Cyberdeck’s screens had grown one at a time. On 24 September they moved onto one toolkit in a day. It started with an audit, fixed in five batches, and a second review of those fixes found six regressions, fixed by 12:12.
Then fourteen milestones, M0 to M13. Claude Code built each one. The plan gave every milestone the same gate: a build with zero warnings, a separate review of the diff, then a commit. The staging script that sends an image to the Pi refuses a build with even one warning. The reviews that evening caught about fifty defects before they reached the device.
Two bugs got past them anyway: the memory card and the screen fighting over one bus, and a misread length that kept the link to the Pi down. Both were fixed that evening, at 17:43 and 17:52, and the ten-page guide was rewritten at 19:36 to match the firmware as it is.
22
commits that day
git log of the Mini Cyberdeck firmware, 24 September 2026 (22 commits, 11:30 to 20:11)
~50
defects caught in review
The Build Day report, 24 September 2026: “about 50 defects”. That is the report’s own estimate, and I have not recounted it.
141
commits on six days
git log, 31 August to 24 September 2026, recounted 29 October 2026. 140 of the 141 carry a Co-Authored-By: Claude line.
One stroke per commit, Sydney time. The two in red are the bugs that reached the device.
all 22, in words
- The 2,500 mAh cell, and voice notes the Pi acts on
- One checked command to stage an update
- Audit fixes, network
- Audit fixes, apps that kept drawing after you left
- Audit fixes, power
- Audit fixes, the interface
- Audit fixes, the rest
- Six regressions a second review found in the audit fixes
- M0: updates that stick
- M1: memory back from the network stack
- M2: one interface thread, one display pipeline
- M3 to M9 and M12: the apps rebuilt on the toolkit
- On the device: the card and the screen fought over one bus
- On the device: a misread length kept the link to the Pi down
- Fixes from three reviews
- M10: overlays, recovery and Wi-Fi on the toolkit
- A build check after every edit
- M11: first-run setup, with fixes from two reviews
- The ten-page guide rewritten for the firmware as it is
- M13, part one
- Fixes from the M11 check
- M13: the last milestone
Reframed, 23 to 24 September 2026
A manual as a test

step 2, the payment gate
step 2, the payment gate
Before launch, the staff manual for the framing platform was written by carrying out every task on screen, as the role that owns it, with a test client, and only then writing it down.
A task that broke got fixed on the test system. A task that needed a decision went to the owner instead of being fixed quietly. The guide ends with both lists, in tables.
50
pages, four chapters
Staff guide, 24 September 2026 (TFP_ODOO_STAFF_GUIDE_2026-09-24.pdf): 50 pages, chapters for the front desk, the workshop and dispatch, marketing, and the owner.
34
staff tasks
Staff guide, 24 September 2026 (TFP_ODOO_STAFF_GUIDE_2026-09-24.pdf), contents: 12 front desk, 8 workshop, 5 marketing, 9 owner.
5
bench cards
Bench cards, 24 September 2026 (TFP_ODOO_BENCH_CARDS_2026-09-24.pdf): five pages.
Fixed on the test system 10measured · sourceStaff guide, 24 September 2026 (TFP_ODOO_STAFF_GUIDE_2026-09-24.pdf), Appendix A: ten rows of code changes. Appendix B: seventeen items.
- Metal quotes cut the glass nine millimetres larger than the configurator showed.
- Dispatch couldn’t open a delivery, and the front desk couldn’t cancel a configured order. Both turned up when the tasks were run as those roles.
- Every card on the Shop Floor screen read “False”.
- The enquiry forms emptied themselves, with the thank-you shown off screen.
Sent to the owner 17
- Whether the front desk should see amounts due.
- An install ticket that doesn’t move by itself.
- Deploying the fixes on the test system, through staging to production.
The guide has been revised since. These counts are from the copy of 24 September.
Reframed, 1 October 2026
An audit before launch
On 1 October an audit on the Pi read every change from the audit of 23 September up to one production commit. Commits made while it ran were not read. It could look at the production site but not touch it: page fetches only, nothing submitted, nothing pushed.
Audits catch the tooling too. The daily price watchdog on the Pi started on 30 July and had stopped by 4 August, and it took the September audit to find it. It has run at 08:00 every morning since 24 September, on the test system.
creditThe pricing engine was co-authored with InTechual Solutions.
46
confirmed findings
Audit report, 1 October 2026 (04_reports/AUDIT_2026-10-01.md on the workshop Pi): 46 after merging 4 duplicates across tracks.
- scope
- Every change from 23 September up to one production commit: 90commits and 820filesmeasured · sourceAudit report, 1 October 2026 (04_reports/AUDIT_2026-10-01.md on the workshop Pi), scope line: 90 commits, 820 files.
- six tracks
- Pricing and quoting code
- Test suites
- The website and checkout, in a real browser
- Security and access
- Data and the production cutover
- Operations on the Pi
- high, medium, low
- 2 22 22measured · sourceAudit report, 1 October 2026 (04_reports/AUDIT_2026-10-01.md on the workshop Pi): 2 high, both in quoting and pricing; 22 medium; 22 low.
- verdict
- On 1 October: no critical finding. In its own words,
not ready for go-live
. It covered one production commit, and later audits followed.
statusLaunched 27 October 2026.
this site, 22 October 2026
The rule for numbers
A number on this site is meant to carry its source. On 22 October I had every claim on the earlier copy of this site checked against sources: 533claimsmeasured · sourceClaims ledger, research/site-launch/claims.md, the count table: 533 rows, each with a verdict. The ledger covers the site as it stood at commit 9f474c8; pages rewritten since carry their own lists., each with a verdict. The pages written since carry their own lists.
Some were plain wrong, and three of the corrections below were to my own CV. The rule only holds as far as that ledger goes, so here it’s a tick you can open. Where a number has one, the tick shows where it came from.
corrections, from the ledger
ADA Innovation Hub design sprint, 2023
struck out: Winnernow Third placeThe team deck and the cheque say third place. My CV said winner.
Sehat Sathi
struck out: 2023now 2024The photographs are dated July and August 2024.
Solis
struck out: 2020now 2021The photographs are dated February to May 2021.