Title: Writing | MidnightDev
URL: https://midnightdev.dev/writing
Description: Notes on shipping AI products: evaluation, calibration, and the parts of the work that cannot be checked automatically.
Generated from the live page on 2026-11-08. Do not edit by hand; run `pnpm twins`.

---

writing

# Notes from the build room

Write-ups of work that already shipped, with the measurements attached. Mostly evaluation: how you know an AI product is doing the thing you claim it does.

[start here · the overview page](https://midnightdev.dev/work/agent-workflows.md)

## How I put AI agents to work

I set the goal. AI agents make the changes. Another agent and automated tests check the work. Only permitted changes can be released automatically. The essays below go deeper.

see how my agents work →

- [7 November 2026 · wearable hardware](https://midnightdev.dev/writing/garment-gui-forearm-sleeve.md)
  ## From a Nature fibre display paper to a wearable 8×32 forearm sleeve
  On 21 October 2026, NUS published the first fibre-woven garment GUI in Nature. Why single-fibre displays stay in university labs for now — and how we shipped a programmable 8×32 LED + 5-pad fabric touch sleeve and browser Web Bluetooth studio today.
  read it →
- [14 October 2026 · working with agents](https://midnightdev.dev/writing/learning-by-building.md)
  ## Let the agents work
  What happens when AI agents work on their own: a goal, a bounded work plan, independent checks, project-specific merge rules, and a clear handoff.
  read it →
- [14 October 2026 · agent operations](https://midnightdev.dev/writing/a-very-crowded-tuesday.md)
  ## A very crowded Tuesday
  We made 520 distinct Git commits in a day. The story is the harness, the agent team, the red checks, and the one human still deciding what matters.
  read it →
- [13 October 2026 · accessibility](https://midnightdev.dev/writing/sibling-contrast.md)
  ## Sibling contrast
  Your contrast checker tests the wrong pair: sibling contrast is the contrast between two colors that mean different things and sit side by side.
  read it →
- [6 October 2026 · agent operations](https://midnightdev.dev/writing/unsigned-rules.md)
  ## Unsigned rules
  No line in an agent instruction file says who wrote it. Four ways that goes wrong, measured on one machine: 193 rule files, 41 of 51 pairs drifted, 17 of 22 rules with nothing enforcing them. The record that fixes it, and a script to count your own.
  read it →
- [19 August 2026 · agent graphs](https://midnightdev.dev/writing/the-model-cannot-own-the-money.md)
  ## The model cannot own the money
  Dozen is a twelve-node creator marketplace. Accept, post, and pay stay outside the model. This is what the graph actually owns, what Stripe Checkout does, and what is still scaffolding.
  read it →
- [17 August 2026 · llm evaluation](https://midnightdev.dev/writing/benchmarking-a-generative-character.md)
  ## Benchmarking a generative character when there is nothing to diff against
  A shipped AI character, an 82% hidden-reasoning bill, and a whole-game evaluation harness for the quality a one-shot test cannot see.
  read it →
- [7 August 2026 · ai crawlers](https://midnightdev.dev/writing/ai-licensing-deals-in-status-codes.md)
  ## Your firewall is your AI policy
  I probed 18 major sites with the user-agent of every AI crawler that matters. Who gets a 200 and who gets a 403 lines up with who signed deals and who is in litigation — and two of my own findings did not survive the data.
  read it →
- [4 August 2026 · llm evaluation](https://midnightdev.dev/writing/calibrating-an-llm-judge.md)
  ## Calibrating an LLM judge for a game people are trying to beat
  A scoring model that grades live players has no reference implementation to check itself against. What I measured, what broke, and the calibration metric I had to change.
  read it →

Next step

## Want to talk it through?

Book a 30-minute call. I will tell you plainly whether I can help and what I would test first.

[Book a call](https://calendly.com/alex-midnightdev/30min?utm_source=midnightdev&utm_medium=site&utm_campaign=writing-index) [or email alex@midnightdev.dev](mailto:alex@midnightdev.dev)
