(Spine Ch. 61.)
“Laziness: The quality that makes you go to great effort to reduce overall energy expenditure.” Larry Wall, Glossary of Programming Perl (1991)
The badge in that README said “1,154 methods / 37,418 assertions.” It had been wrong twice before, and both times the fix was me, by hand, typing a fresh number into a markdown file and feeling productive about it. On 23 August 2026 I sat down to type it a third time. Ninety seconds of actually looking first turned up something that made all three of my fixes worthless before I made them: Windows counted 15 more assertions than Linux and macOS did, on byte-identical code. There was no number I could type into that badge that would be true everywhere somebody read it.
I have a skill called ghostwriter. At 00:56 on 9
September 2026 I pointed it at 53 chapters of this book, watched it
report that agents were running, and went to bed happy. The skill was
gorgeous: tone guidance, citation rules, a whole section on voice, a
lovely paragraph describing what a ghostwriter would do. At
06:12 I came back and the manuscript directory had not changed by a
single byte. Five hours and sixteen minutes, zero files. It read like
instructions and behaved like a mood. My own contribution that morning,
typed with my own hands, was “i dont see the agents running but trust
you if you say so,” which is the dumbest sentence available to a man
with passwordless sudo and a directory listing one keystroke away.
That afternoon I threw the prose out and rewrote it as an executable
Workflow: a research step, a write step, a cite-check step, and a last
step whose only job was to ls -la and wc -w
the file it claimed to have produced and refuse to say “done” without
pasting the output. Smoke test on Ch. 15: about seven minutes, 2,500
words, six arXiv receipts, file on disk. Same model, same me, same
laptop, eight hours apart. The only difference was that the second
version could fail out loud. I have been shipping software since people
put “under construction” GIFs on live production pages, and I wrote a
skill whose entire job was to produce a file and never once checked
whether a file existed.
Bottom line: if you typed the same instruction twice, you already lost. The artifact of good agent work is not the output, it is the script or the skill that produced the output, because that is the only part a reviewer can rerun. Everything else in this book is a lesson. This chapter is where the lessons go so you never have to remember them again.
Two moves, and they are not the same move.
Build the lever is about the work in front of you. Do the first unit by hand to learn the recipe, write the script that does the rest, then rerun it on that unit and diff against your hand work. That diff is the proof. A hand change can only be re-verified by doing it again; a script turns “trust me” into “run this.”
Encode lessons in structure is about the second time. Catch yourself writing the same instruction twice and stop writing instructions. Ask whether the rule can be a lint, a type that makes the bad state unrepresentable, an assertion, or a test that fails CI. Agents copy the surrounding code, so a weak guard becomes next week’s template. If the fix is structural, only ship the structural fix.
Both are worth a chapter in 2026 because the cost of building the lever collapsed. Anthropic reported in May 2026 that more than 80% of code merged into its own codebase was Claude-authored, and the typical engineer merged eight times as much code per day as in 2024. The old excuse, that the tool takes longer than the task, is dead.
Adoption is the part nobody wants to hear. Only 18% of teams use test-driven development, per the State of TDD 2022 survey, after decades of people on stages telling them to. Knowing a practice is good was never the bottleneck. A lever costs something today and pays out on a day you cannot put on a calendar.
commander-in-chief, 23 August 2026. Two hand fixes to that “1,154 methods / 37,418 assertions” badge, two numbers, neither true for longer than a fortnight. That is not maintenance, that is the Hampster Dance: the same loop and noise forever, and everybody who lands on the page assumes somebody meant it.
The split cut the problem in two. Method count can be right: it does not vary by platform, so a test recounts the methods every run and fails if the README disagrees. Assertion count cannot be pinned, so it became floor notation (“37,000+”), a claim that survives contact with Windows. The lesson went into the one place with the authority to say no, not a CONTRIBUTING.md bullet an agent skims past.
7 September 2026, same project, a packed game export inspector. Its first failure was the test rig itself, an untyped array bug. Then the interesting part: I ran the corrected test against an older pack on purpose. It failed there. That second failure was the receipt, because a test that passes on the fixed build and on the broken build is decoration.
The skill that writes the skills, 9 September 2026.
The best lever I own is the one I point at the other levers.
/refresh-resume runs at the end of a session, and its first
step writes nothing: it invokes get-skillz to mine the
session for what would help on a different project next month. Then it
updates the docs the session touched, writes a per-project handoff to
~/.claude/resumes/<slug>-<timestamp>-<pid>.md
so I can /clear without losing state, and, only on days
that genuinely turned, a dated post to blog/: 138 across 17
projects, 73 in airank, one of them the log of the morning my
ghostwriter shipped nothing.
It can fail out loud, which is the only reason I trust it. The
filename suffix is a PID, and $BASHPID does not exist in
zsh, so on macOS it expanded to nothing and produced
slug-20260805-025040-.md with the collision safety gone.
The rule lives in the skill now: read back the path, because a heredoc
to a valid-but-wrong filename is not an error.
The loud failure is doing everything by hand and burning the hours. The quiet one is worse.
You build the lever and it cannot fail.
A skill that only ever succeeds is a mood ring. The ghostwriter that burned 00:56 to 06:12 never errored and never warned, because success and doing nothing emitted the same signal. The fix was not prose about diligence, it was a step at the end that checks disk and dies. Ch. 52 is the long version.
Second quiet failure: the lever encodes the lesson you had, not the one that keeps biting you. The first two README fixes encoded “the number is stale, retype it.” The correct lesson was “the number is unfalsifiable, stop asserting it.” Fifteen assertions of platform drift beat me twice in a row, which is a n00b result for a guy who keeps telling other people to measure first.
Third: you write the lever and leave it in a scratch
directory. A script that is not committed did not happen. On 12
August 2026 an airank jury review caught a timestamp bug it had shipped
itself two rounds earlier: one value came from an Eloquent datetime
cast, the other from a raw SQL alias, so Safari printed “NaN ago” and
Chrome computed five hours wrong in silence. The valuable part was the
rule written down afterward and made checkable: a value from
max(), min(), an alias, or
selectRaw is not a model attribute, so casts do not apply.
Left in the review thread, round four ships it again.
Fourth, the one I owe you, because a chapter about levers that only
shows the good ones is an ad: ~/Projects/ballotnotes. A
civic site where a voter drills from country to state to county to city
and reads every candidate on their ballot. I did not write a script for
that. I built the factory. AI fan-out ingest from the FEC, OpenStates,
the Texas Secretary of State, Denton County and a local paper. Every
extracted fact cross-checked against Exa. Every change through a human
review queue. Octane and Swoole and Horizon on EC2, zero-downtime
Deployer releases. 1,444 commits between 23 April and 5 August 2026, and
the number that stings is 26: twenty-six distinct days with a commit in
them. Call it 150 to 250 hours at six to ten a sitting, an estimate off
commit days and nothing better. Also 267 tags, a cadence with more to do
with how good it feels to cut a release than with anybody waiting.
It shipped, which is what makes it useful here instead of sad.
ballotnotes.com answered 200 when I checked on 9 September 2026, live
since 13 May. The lever works. It is pointed at Justin, Texas. One city,
populated end to end, and one city is where it stayed. The last commit,
5 August, is
fix(test): flush Redis in ImporterHealthPageTest to stop cross-file rate-limit leak.
Not a feature. Not a second city. Upkeep on a machine built to eat every
ballot in America, doing one town. Twice on that README badge I built a
lever smaller than the problem. Here I built one the size of the country
and handed it a town.
Do
Don’t
Ch. 8 built the ladder from PRD down to prompts. This chapter is the last rung, the one that folds back up: every lesson belongs in something executable, or it belongs to whoever remembers it. Ch. 13 is the skill and prompt layer. Ch. 52 is the gate that has to close, which separates a lever from a decoration.
Thesis is Jeremy’s, argument not citation. Principles derive from the
pstack skill set (principle-build-the-lever,
principle-encode-lessons-in-structure) by Lauren Tan
(poteto), packaged as pstack@pstack-claude.
Verified:
~/Projects/commander-in-chief/blog/2026-08-23-the-number-that-could-not-be-right.md~/Projects/commander-in-chief/blog/2026-09-07-the-test-that-had-to-fail-twice.md~/Projects/airank/blog/2026-08-12-the-jury-caught-its-own-regression.md7829761:
~/Projects/aibook/blog/2026-09-09-the-skill-that-wrote-nothing.md/refresh-resume order of operations
(get-skillz first, then docs, then a per-project handoff,
then a blog/ post only when the day turned):
~/.claude/skills/refresh-resume/SKILL.md, read 9 September
2026.$BASHPID trap and read-back-the-path rule, verified
5 August 2026 on /bin/zsh (BASHPID empty,
$$ 68957), tell being a filename ending -.md:
same file.blog/ directories as
of 9 September 2026, 73 in airank. Counted with
ls ~/Projects/*/blog/*.md | wc -l.~/Projects/ballotnotes, 1,444 commits across 26 distinct
commit days, 2026-04-23 to 2026-08-05, 267 tags
(git rev-list --count, git log,
git tag), read 9 September 2026. Live since 2026-05-13 per
its README.md; https://ballotnotes.com
returned HTTP 200 on 9 September 2026. The hour range is an estimate
from commit days, not a tracked figure.What I could not verify: