Projects
Shipped things first, because those are the ones I can stand behind. What comes after is the honest part: a list of things in progress, some of which will land and some of which won’t.
Shipped
- plimsoll
A macOS disk triage toolkit: diagnose disk-pressure freezes, reclaim space safely, and get warned before it happens again. Named for the Plimsoll line — the mark on a hull showing how heavily a ship may safely be loaded. Cross it and you founder, which is roughly what a Mac does at 93% full.
It exists because of a real incident: a MacBook Air stalling under watchdog timeouts with the drive serving a sustained 18 MB/s of pagein thrash. The SSD was fine — zero media errors, 0% endurance used. The disk was 93% full, Time Machine had not completed a backup in 62 days, and nothing anywhere said so. The full writeup names the three tools that misled me and the four monitoring mistakes I made afterwards: the postmortem.
brew tap donco-labs/tap brew trust --formula donco-labs/tap/plimsoll brew install plimsollThat middle line isn’t boilerplate. Homebrew 6.0 refuses third-party formulae until you trust them, because a formula is arbitrary Ruby that runs on install.
--formulatrusts this one and not the whole tap. Repo and docs → Latest release → - cadence
Sleep and recovery tracking built on the Oura API, self-hosted end to end. The interesting part isn’t the charts — it’s that health data this granular is worth keeping somewhere I control rather than renting space in someone else’s analytics pipeline. Private repo; nothing to link yet.
- This site
No JavaScript, no third-party fonts. A content security policy strict enough that it broke itself once — which turned into a post. How it’s made →
In beta
- Jolly List
A Christmas shopping app: set a season budget, split it across the people you buy for, and move each gift from idea to ordered to wrapped to given. It tracks pace against your shopping deadline, groups what is left to buy by store, imports from the share sheet and from order history, and hides a gift from the person it is for when a list is shared. Data stays in your own iCloud, with no account, no analytics and no server of mine.
It is in beta and I am looking for TestFlight testers. What it does, and how to get in touch →
On the horizon
No dates. Some of this is running already and just isn’t written up; some is a directory with three files and an opinion in it.
- Skills, tools and agents
The scaffolding around spec-driven development: reusable skills, hooks that hold an agent to a written specification, and small tools that make the loop tighter. Most of this already runs on my own machine every day and none of it is written up yet, which is the wrong way round.
- Home automation
Sensors, schedules and presence. The wiring turned out to be the easy part — the hard problem is deciding what should happen without being asked, and how wrong that can go before someone in the house starts resenting the lights.
- A game, in Godot
Small on purpose. Mostly an experiment in whether I can finish one, which is a different skill from starting one and I have ample evidence of only the second.
- repo-radar
Fast local summaries of a repository — what changed, what’s big, what’s rotting. Built spec-first, which is most of why I trust it. It binds to loopback by design and may well stay a local instrument; publishing it would invert the thing that makes it useful.
- More writing than code
Several post-mortems are already sitting in repo docs where nobody reads them, which is most of what this site is for. After that: what a specification has to contain before an agent can be held to it, and what that changes about building software. See writing for where that’s heading.