The Covenant
The Ten Commitments
Not commandments. We workshopped "commandments" with a focus group of senior engineers and the feedback was, uniformly, that they do not take instructions. So: commitments, freely entered into, revocable at any time, and best kept anyway.
The ten commitments in full
Thou shalt not paste thy API key into the chat.
It is the oldest sin and the easiest one, and it is committed most often by the people who would tell you they know better. Rotate it. Now, before you finish reading this page. We will wait; the page is static and has nowhere to be.
The commitment extends, in spirit, to the screenshot with the terminal in the background, and to the "temporary" hard-coded token that is now in three branches.
Secrets 1:1Honor thy .gitignore, that thy days may be long.
A committed node_modules is not a mistake. It is a monument. It will outlive the
feature it was committed alongside, it will slow every clone for years, and one day a new
hire will find it and quietly wonder what else you left in here.
The faithful write the ignore file first, before the first commit, while they still remember what is generated and what is precious.
Repositories 4:2Thou shalt not say "just make it work" and expect deliverance.
"Just make it work" contains no information. It is a feeling wearing the coat of a requirement. Say instead what working looks like — what you will click, what you expect to see, and what you saw instead — and watch deliverance arrive on the first attempt.
This is the commitment that changes the most lives, and it is the one that sounds the most like a productivity tip. Both things are true.
Prompts 9:9Remember the staging environment, to keep it holy.
Six days shalt thou labour, and on the seventh thou shalt discover that staging has been pointing at the production database since March. Staging is not a formality and it is not a slower production. It is the place where you are allowed to be wrong at no cost, which is the rarest thing in the whole industry.
Environments 20:8Read the whole error message, unto the very end.
The answer is almost always in there. Not in the first line, which is generic, and not in the last, which is the framework apologising. It is in the middle, in the part that names your own file, at a line number you recognise.
The community holds that the ability to read a stack trace slowly, without flinching, is worth more than any framework you will learn this year.
Tracebacks 3:3Thou shalt not commit that which thou hast not run.
Not once. Not even the small one. Not even the typo fix in the comment, which is how the build broke last time, in a way that took two people an hour to believe.
Diffs 7:1Thou shalt not covet thy neighbour's architecture.
Their event-sourced, multi-region, six-service design is not a rebuke of your single Postgres box. They have thirty engineers and a compliance requirement. You have four engineers and a deadline. Their diagram is beautiful and it is not for you.
Envy in system design is expensive in a way that envy in most other areas of life is not: it bills monthly.
Systems 10:10Deploy not on the eve of the Sabbath.
Friday afternoon is not a deployment window. It is a wager, placed with your weekend, at odds you have never once calculated. The fix will keep until Monday. The fix has always kept until Monday.
Should you deploy on a Friday regardless, the tradition asks only this: stay at your desk and watch the dashboard for twenty minutes. This is the whole of the discipline.
Confessions 6:6Bear not false witness against thy past self.
The developer who wrote that function had less information than you do, and probably a worse
week. "Who wrote this garbage" is very often answered, seconds later, by git blame,
and the answer is humbling and it is always you.
Where the code is genuinely bad, say what is bad about it and fix that. The moral position is not load-bearing and can be dropped.
Blame 15:4Thou shalt rest, for the backlog is eternal and thou art not.
The tickets will still be there. That is the nature of tickets; that is arguably the entire nature of tickets. No one has ever reached the bottom of a backlog, and the people who have come closest did it by closing things, not by finishing them.
Rest is not the reward for shipping. It is an input to shipping, and you are running low on it, and it shows in your commit messages after 11pm.
Sabbath 1:1On the Number
Why ten?
There were originally fourteen. Three were merged during review as duplicates, and one — "thou
shalt not use any" — was removed after a long discussion in which it became clear
that no one on the committee could commit to it in good conscience.
It remains in the appendix as an aspiration. We think of it often.
How are you doing on these, honestly?
Six questions, no email address, no sign-up. The result is calculated in your own browser and shared with no one, including us, including Claude.