Tejas Patel
Tejas Patel
write to
tjs13.9@gmail.com
theme

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 sketch model of a handheld case cut from a clear plastic box: eight drilled holes in a 4 by 2 grid for the keys and a rectangular window cut for the screen, lying on a black phone case.

a window for the screen

eight holes, one for each key

a window for the screen

A plan you can hold: a clear box cut as a sketch model for the Mini Cyberdeck, with a window for the screen. 2 September 2026.

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).

  1. 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.

  2. 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.

  3. Night 5. The step dots skipped the mat check, so a piece with a mat mount could reach review with no mat chosen.

  4. Night 6. If the graphics failed mid-capture, the room reflection could hide the frame for the rest of the session.

  5. Night 7. The quote handler never read the delivery address a customer had to type, so it would not have reached the order.

  6. Night 8. The same fault again, in a new delivery and installation option.

  7. 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.

  8. Night 10. Every one of the 1,533 mats showed an empty gap in its label.

  9. 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.

  10. Night 12. Click through frames quickly and the wrong moulding's picture could land on the frame.

  11. Night 13. Mouldings were drawn at about a third of their real depth. 198 flat profiles were lifted to full depth.

One entry chosen for each date from the configurator changelog, 7 to 17 July 2026. The log has six more, on 8 and 9 July. The 15 July row is from the audit log.

Nights 7 and 8, the same fault twice

  1. choose delivery
  2. type the addressrequired
  3. send the quote
  4. the order: Delivery, struck out: address
On the Pi build of the configurator, a customer who did every step would have sent an order with nowhere to ship to: the server only read the delivery choice.

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

  1. The 2,500 mAh cell, and voice notes the Pi acts on
  2. One checked command to stage an update
  3. Audit fixes, network
  4. Audit fixes, apps that kept drawing after you left
  5. Audit fixes, power
  6. Audit fixes, the interface
  7. Audit fixes, the rest
  8. Six regressions a second review found in the audit fixes
  9. M0: updates that stick
  10. M1: memory back from the network stack
  11. M2: one interface thread, one display pipeline
  12. M3 to M9 and M12: the apps rebuilt on the toolkit
  13. On the device: the card and the screen fought over one bus
  14. On the device: a misread length kept the link to the Pi down
  15. Fixes from three reviews
  16. M10: overlays, recovery and Wi-Fi on the toolkit
  17. A build check after every edit
  18. M11: first-run setup, with fixes from two reviews
  19. The ten-page guide rewritten for the firmware as it is
  20. M13, part one
  21. Fixes from the M11 check
  22. M13: the last milestone

Reframed, 23 to 24 September 2026

A manual as a test

The top of the guide's recipe for dispatch and the payment gate: four numbered steps, and the warning shown when a client still owes money.

step 2, the payment gate

step 2, the payment gate

document One page of the guide, cropped: the recipe for dispatch and 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
  1. Pricing and quoting code
  2. Test suites
  3. The website and checkout, in a real browser
  4. Security and access
  5. Data and the production cutover
  6. 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 place

    The team deck and the cheque say third place. My CV said winner.

  • Sehat Sathi

    struck out: 2023now 2024

    The photographs are dated July and August 2024.

  • Solis

    struck out: 2020now 2021

    The photographs are dated February to May 2021.