The app you didn't write
For Someone shipping real software with AI doing most of the typing — who has been surprised by their own codebase, and may not know what language it is in. · 21 days · Tech
Download as a skill — teach your own AI these checksThe days
- 0Find out what you are actually holdingBy the end you can say what your project is built from, where it starts, and which files are really yours.
- 1A comment is not a mechanismBy the end you can find a place where one fact is worked out twice, and delete one of them.
- 2Every number needs a rulerBy the end you can name what a number is measured against, and refuse one that has no answer.
- 3Your check is blind in the same direction as your bugBy the end you can say what a check cannot see, before you decide what its green result proves.
- 4Verify one layer closer to the userBy the end you can tell "the file was found" from "the thing draws", and check the second one.
- 5Structure you can read, behaviour you meantBy the end you can name the cases where a condition is true and the behaviour you meant does not follow.
- 6What are all the ways this ends?By the end you can list every way a stored choice stops applying, including the times it is abandoned.
- 7Silence is not successBy the end you can make an empty result announce itself, instead of letting it pass for a real answer.
- 8One identifier, derive the restBy the end you can make a mismatched pair impossible to save, rather than something you find and correct later.
- 9A finding from an impossible inputBy the end you can demand a real, concrete path to a number before you act on it.
- 10Show me the measurement before you change anythingBy the end you can demand the number behind a request as its own separate, checkable step.
- 11Validate the instrument against the whole setBy the end you can refuse a number whose measuring tool has never itself been checked.
- 12A checker in the maker's hands becomes a targetBy the end you can say why handing your check to the thing being checked destroys the check.
- 13Everything not named is protected. So name it, and rank itBy the end you can write down the set of things that must not change, plus this round's single priority.
- 14Edit a good one. Replace a bad one. Never rework a bad oneBy the end you can tell when to re-specify from scratch instead of correcting, and when that rule does not apply.
- 15Which tool, for which jobBy the end you can route work by a tool's characteristic failure rather than its reputation.
- 16A bridge that returns nothingBy the end you can reason about a boundary between two technologies where nothing comes back.
- 17Server-held, cached, or goneBy the end you can say, for a synced feature, what the server owns, what is kept locally, and what happens offline.
- 18Read the version out of the artifactBy the end you can verify what you actually shipped, rather than what you think you built.
- 19Write the test against the pattern, not the instanceBy the end you can shape a check like the whole class of mistake, rather than like the one time it caught you out.
- 20Make the repo argue with youBy the end you can write the record of your own work so that you, or an AI, can check its reasoning later.