AiBook · Jeremy Schoemaker · 2026 · ch-56.html

Go Deep First

(Spine Ch. 56.)

“It is a profoundly erroneous truism, repeated by all copy-books and by eminent people when they are making speeches, that we should cultivate the habit of thinking of what we are doing. The precise opposite is the case. Civilization advances by extending the number of important operations which we can perform without thinking about them.” Alfred North Whitehead, An Introduction to Mathematics, Chapter V (1911)

Two years. That is how long I spent tuning the phrase “you are a senior staff engineer with 20 years of experience” like it was a carburetor. Meanwhile, on one bad morning in August, I sat down with an inherited handoff file and grinded away at a bottleneck that turned out to be 1.8% of the failures, lined up seventeen branches to merge that were already merged, and got within one command of a deploy that would have taken production from 20 replicas to zero and reported success on the way down. Every one of those was a forty-second check I did not run. The rule that would have caught all three was already written down. Not by me.

Then I read a plugin directory on my own laptop, ~/.claude/plugins/cache/pstack-claude/pstack/0.9.27/skills/, counted 54 directories, 23 of them doctrine, and realized the thing I had been building badly by hand for two years already existed as an operating system. Not a persona. A set of named plays with entry conditions.

Bottom line: A personality prompt tells the model who to be. A named play tells it what to do when a specific condition is true, and what artifact proves it did. Fifty-four of those, cross-linked, with stop conditions, is an OS. One of them is a costume. Speed is not something you ask for at the top of a prompt. It is what falls out when the model does not have to re-derive your engineering judgment from scratch on every task.


When it bites


The pattern

pstack is Lauren Tan’s (@poteto). The canonical repo is cursor/plugins/pstack; the Claude Code port I run is michael-denyer/pstack-claude, whose plugin.json at 0.9.27 credits “Original pstack by Lauren Tan (poteto)”. None of the three says SpaceXAI, so the “built at SpaceXAI” line everyone repeats, mine included until I checked, rests on one third-party write-up (Coursiv, August 2026). I carry it as attribution, not fact. It ships as two kinds of file, and the split is the interesting part.

Workflows are the plays you invoke. /architect (types, signatures and module boundaries before any code). /arena (run N candidates in parallel, pick a base, graft the winners on). /swarm (fan out workers, one report back). /figure-it-out is the fallback when nothing narrower fits, and its instruction is not “try hard.” The deliverable before any code is the workflow itself.

Principles are the doctrine. Every one of them carries user-invocable: false in its frontmatter. You do not call principle-attack-the-premise. It gets pulled in when its entry condition fires. Read the description line on ~/.claude/plugins/cache/pstack-claude/pstack/0.9.27/skills/principle-attack-the-premise/SKILL.md:

“Apply when two or more fixes that share one premise have failed the same gate.”

That is a trigger with a count in it. Two failures under one premise, and the next move is not a third fix, it is a census of which actors hold the imbalance, written as a rerunnable script. That links to principle-build-the-lever, which closes:

“Applying this principle produces a file. If you cited it and there is no codemod, script, generator, or delegate skill in the diff, you didn’t apply it.”

There are 23 principle skills in 0.9.27. principle-foundational-thinking says get the data structures right first, and isolate shared state unless concurrent modification is provably harmless. principle-prove-it-works bans the proxy: no mtimes, no self-reports, no “it compiles.”

The plays cross-reference each other. attack-the-premise says how it differs from redesign-from-first-principles: one questions a fact the design assumes, the other rebuilds around a new requirement. That disambiguation is the expensive part of engineering judgment, sitting in a file a model reads at decision time.

When Tan published the skills to the Cursor Marketplace on July 30, 2026, she led with /create-verification-skill and /maintain-verification-skill (X, @poteto, 170.4K views). A skill that writes the skill that proves the feature, plus one that keeps it from rotting. Proof is a thing you build once, not retype every task.

The Cursor Marketplace listing pitches it as “if you want to go fast, go deep first,” which is where this chapter stole its title. The going-fast claim is not theoretical. Tan’s engineering team ran these skills 10,000 times in one week (LinkedIn, June 2026). Not 10,000 prompts. Ten thousand invocations of named plays with entry conditions and stop rules in seven days, about one a minute around the clock. My two years produced one prompt I kept rewriting.


One worked example

airank, August 7, 2026. I picked up a handoff file with three inherited claims in it. Each cost one command to check. Total elapsed: about forty seconds.

Claim one: the brand-recognition gate is the real bottleneck. Stated twice in the file, which reads as corroboration and is actually one belief typed twice. One GROUP BY: 78.1% of failures were navigation_failed, and the brand gate was 1.8%. I had been working the 1.8% with real focus. Jeremy Schoemaker, twenty-five years of shipping software, stuck on 1.8% of the problem like a RealPlayer stream buffering at 14% while you tell yourself it is definitely about to load.

Claim two: seventeen branches need merging. git branch --no-merged answers whether a SHA is an ancestor of main, a different question from whether the contribution landed. All seventeen had landed by other routes. Two were dangerous: one a revert scoped to its own lineage that would have deleted verified cutoff data, the other reinventing a bug main had already tested and rejected.

Claim three: the stack.yml describes production. Production was running 20 replicas, max 4 per node, image cc4c39a. Git said replicas: 0, max_replicas_per_node: 1, image 9c1a21f. The real config had been applied imperatively and never committed. A docker stack deploy from the repo does not error. It reports success, zeroes production, and halts 95% of the work while looking green.

The outcome was a rule, and the rule is the point of this chapter. Before acting on the top priority, re-measure the number the priority rests on. If X is the bottleneck, run the count. If branches are unmerged, diff the contents. If the manifest describes prod, read prod.

That rule is principle-attack-the-premise and principle-prove-it-works, both already sitting in a file on my own disk. The win isn’t the forty seconds; it’s that the rule now lives in a file with a trigger condition instead of in my memory, which is what principle-encode-lessons-in-structure says to do when you give the same correction twice.

The second receipt is commander-in-chief, my Godot remake of the 1986 vertical run-and-gun: 1,217 test methods, 38.5k asserts, int-only arithmetic so behavior is bit-identical across x86_64 and arm64, and a CI gate that verifies it. Its DECISIONS.md holds no opinions about game feel, only lines like “16 of 22 occupied-tank ignitions per the pre-flight are artillery.” Every balance call is answered by the code as it stands: principle-prove-it-works and principle-sequence-verifiable-units applied to a game.


The quiet failure

The loud failure is the agent that ignores your prompt.

The quiet failure is writing one skill per problem you had, and ending up with 200 skills that are really 200 diary entries. I walked into this one myself, enthusiastically: do not clone a skill per chapter, per bug, per incident. I wrote skills that fired on exactly one stack trace in exactly one repo, then felt organized about it. That is not doctrine. That is a LiveJournal with YAML on top. pstack has 54 files covering an entire discipline; 23 are principles that apply everywhere and never get invoked by name. If it only fires on the exact repo and stack trace where you learned it, it is a log entry, not a lesson.

The second quiet failure: principles you can invoke. The moment principle-prove-it-works becomes something the agent chooses to run, it becomes optional, and optional doctrine is decoration. user-invocable: false is doing real work in that frontmatter. The condition fires or it does not. Nobody votes.

Third: an OS with no stop rules is just a longer prompt. Almost every pstack skill has an explicit Stop section. attack-the-premise says do not start the next fix before the premise is written down and the census exists, and what to conclude if it comes back even. Instructions without stop conditions produce agents that apply the doctrine forever.

Fourth, and this one is mine: I told myself I quit writing personality prompts in February 2026, then I grepped my own disk. On 17 February I shipped “You are an expert at writing image generation prompts” into ShoeMoneyVelle/app/Services/OpenRouterService.php, where it still sits. Then on 16 April I wrote one more anyway. WinnersWin/book-review-prompt.md, 1,789 words, first line under the title: “You are a senior developmental editor reviewing the first draft of a nonfiction book.” The other 1,780 words are the part that worked. A seven-beat chapter shape. Twenty coined terms, each with a four-part test. Seven scenes that must land. A required output order. That is a play, with entry conditions and a named artifact, and I buried it under a costume.

The tell came four weeks later. On 14 May I copied that file byte for byte into a second book project, JeremyChrist. diff says identical. Two copies of a play I could not invoke, because a file with no name and no trigger is not a skill, it is a document you have to remember to open. The 1,780 words behind that persona line were a principle file I did not know I had written, and the proof I did not know it is that when the same job came around again I reached for cp.


Do / don’t

Do

Don’t


Where this sits in the book

Ch. 13 argued that skills beat your giant brain dump. This chapter adds the table of contents: entry conditions, cross-links, and stop rules on top of the extracted instructions.

Ch. 57 takes principle-prove-it-works and /blast-radius on their own, because “it compiles” is the most expensive sentence in this business. Ch. 58 is subtract-before-you-add. Ch. 59 is /swarm, /arena, and /interrogate: parallelism with a merge story. Ch. 60 is never-block-on-the-human. Ch. 61 is build-the-lever, where the tool becomes the artifact.


Sources and receipts

Verified

What I could not verify: