The Document That Listed Its Own Flaws

2026-10-14 · 4 min read

A limitation you have not written down is still a limitation. It just picks a worse moment to be found.

The chapter I almost didn't write

I spent a week reading my own source code and writing down what it actually does. Not what I meant it to do. What it does.

The last chapter is titled Not implemented, or traces only. Nine rows. An iOS build whose configuration files are still sitting there, never once compiled. A function written end to end that no line of code ever calls. A Redis database wired into the deployment that nothing in the application touches. An email-and-password login whose server endpoints are complete and whose button does not exist.

I keep FocusBottle open while I work — pick 25, 50 or 90 minutes, no account, no settings, light particles in a bottle that dim as your attention drifts. It is the least talkative app I own, which is exactly why I trust it to tell me the truth about a workday. A quiet app has to be an accurate one, because there is nothing else to go on.

Putting a line number next to it changed everything

Once implemented and nearly implemented sit in the same table with a file and a line number beside each, they stop being the same thing. A finished function nobody calls is not a feature that is almost done. It is furniture. You cannot ship it, and you cannot count it, and now you can see that clearly because you had to write down where it lives.

Then came the limitations. Sixteen of them, and I did not enjoy any of them. One reads, in effect: the privacy page says the app does not keep stories, illustrations or audio on a server, and the server keeps all three.

The row I retyped four times

That row is the one I rewrote four times before I could leave it in. It would have been easy to drop. It is an internal document. Nobody was going to audit it, and the sentence that was already on the website was friendlier.

But a limitation you have not written down is still a limitation. Leaving it out does not make it smaller. It only moves the moment of discovery to a customer, or a lawyer, at a time you did not choose.

What made the honest row possible was a rule I set on page one: record only what is actually implemented, and give everything else its own chapter. That rule is the whole trick. It means we planned it has nowhere to hide, and it is basically done is not a category. There is a table for what works and a table for what does not. Nothing in between.

Why the bottle can be quiet

FocusBottle can be this quiet because it does not claim anything it does not do. It does not sync, it does not ask for an account, and it does not need a server to know that you sat still for 25 minutes. The particles dim while it is happening, and then the session is over.

A product that only claims what it does never has to argue with you. Neither does a document. I would rather ship the smaller, accurate version of both than defend the larger one.

Field noteshonestyindie devproductfocus
"Only record what is actually implemented. Everything else gets its own chapter."
Pick 25 minutes and let the light tell you before you decide you were focused.