Course · Codex · Daily workflow
You've reached the end: the week on budgetcli, and where to go next
That’s the course. Nothing new happens on this page - it’s the whole week, looked back at, with the numbers finally reconciled against the promise chapter 1 made before you’d installed anything.
What each chapter left you able to ask
Section titled “What each chapter left you able to ask”Strip away the tool-specific mechanics and every chapter handed you one question you can now ask that you couldn’t before:
- Getting started - what actually happened when I approved that edit, and does the diff match what I asked for?
- Sessions & context - is this still the same line of work, or does the next task want a clean window?
- Approvals & sandbox - how far can this run reach on its own, and where does it have to stop and ask?
- Rules - have I written this down yet, or am I about to explain the same three facts again?
- Models & effort - does this task’s shape actually earn the extra thinking, or is the pattern already decided?
- Subagents - does this search belong in the window that has to hold the answer, or in someone else’s?
- Skills - is this a fact Codex should always hold, or a procedure it should run on recognition?
- Extending Codex - does Codex need more reach here, or does something in this loop need to be able to say no?
- Automation - what replaces me, stage by stage, when nobody’s at the keyboard to catch the wrong turn?
- Daily workflow - do these reflexes fire on their own now, or am I still assembling them from parts?
The whole ledger, replayed
Section titled “The whole ledger, replayed”Every chapter since the first change scored its move on the same four questions - tokens, turns, blast radius, recurrence. Here is the complete ledger, all eleven rows, abbreviated so it still fits on one page:
| # | Move | Tokens | Turns | Blast radius | Recurs? |
|---|---|---|---|---|---|
| 1 | Read-only question (ch 1) | ~3,900 est. | 1 | None | No |
| 2 | Fix the CSV date bug (ch 1) | ~2,100 est. | 4 | Money-adjacent, briefly drifted | Partly |
| 3 | Manage a week of context (ch 2) | Kept under budget, ~450x back via compaction | +1 per boundary check | None | No |
| 4 | Fence + profile the six-file refactor (ch 3) | ~5,500 est. | 6 / 0 / between, by dial | Workspace + 2 opened doors | Partly |
| 5 | Write AGENTS.md, the three facts (ch 4) | ~284 est., every session | 0 - reads automatically | None | Yes |
| 6 | Route effort + model to task shape (ch 5) | ~5,120 est. | 1, at the matched corner | None new | Partly |
| 7 | Delegate, fan out, gate the merge (ch 6) | ~900 to parent; 58,860 stayed isolated | ~9 (2 delegate + 1 dispatch + 6 sequential merge) | 3 files, 3 workers, gated one at a time | Partly |
| 8 | Onboard a bank via import-bank-csv (ch 7) | ~360 est. (stub + body) | 2 | Money-adjacent, still reviewed | Yes |
| 9 | Connect the fx server over MCP (ch 8) | ~127 est. per turn, standing charge | 1 for the conversion | None on its own | Yes, whether used or not |
| 10 | Gate ledger writes with a hook (ch 8) | 0 | 0 added | Shrinks to nothing on the one pattern matched | Yes, holds unattended |
| 11 | Automate the report, unattended (ch 9) | ~5,120 est. | 1, from outside | Everything the sandbox allows | Yes, automatically |
The spoiler, reconciled
Section titled “The spoiler, reconciled”Chapter 1 promised two numbers before you’d installed anything: 11 turns and three float-bug reintroductions on a cold Monday, against 2 turns and zero reintroductions by Friday. The ledger above is what Friday is made of, but the promise was never about the whole ledger - it was about one task, run twice, a week apart: onboarding a fourth bank’s CSV.
Monday: no AGENTS.md, no profile, no skill, dials set by hand or not at all. 11 turns, and the float-money bug came back three times because nothing told Codex the rule, and nothing caught it faster than a human reading every line of a diff.
Friday: the 32-line AGENTS.md from chapter 4 (~284 tokens, paid every session, carrying the rule that stops the float bug recurring at all) plus the budget-build profile from chapter 3, drilled into a reflex in this chapter, take the same job to 6 turns and 0 reintroductions - the exact checkpoint chapter 7 measured before it built anything new. The import-bank-csv skill from chapter 7 takes it the rest of the way, from 6 to 2, by packaging the five import steps so you stop re-narrating them.
11 minus 5 minus 4 lands on 2. It matches. The honest edge of that arithmetic is worth re-reading if the tidiness above sounds too clean: the 5 and the 4 were measured as a rule-plus-profile combination and a skill addition, not as four independently isolated techniques, and the effort dial from chapter 5 shows up in tokens spent, not in this turn count at all.
What this costs you now
Section titled “What this costs you now”Every fix in this course charged something, and this one is no exception - it just charges later. An AGENTS.md is a snapshot of what was true about budgetcli the week you wrote it; the day a new rule enters the codebase and nobody updates the file, you’re back to explaining it by hand, and you won’t notice until the agent gets it wrong. A profile is a snapshot of how much you trusted a piece of work when you named it; the day budget-build’s reach stops matching how you actually work, the profile is quietly wrong until you edit it. A skill is a snapshot of one procedure at one moment; the day a fifth bank shows up in a shape the skill never saw, you’re the one who has to notice, extend it, and re-teach it - the same way you built it in the first place.
None of that is a defect in the plan. It’s the plan’s own shape, restated: every fix in this course replaced a cost you paid every session with a cost you pay only when the world underneath it moves. That’s a better trade almost every time. It is not a trade that ends. Maintaining the three files you built this week is now part of running budgetcli, the same way the code itself is.
Two places to go from here
Section titled “Two places to go from here”For the spec-level other half - Foundations. This course was a story: one repo, one week, each primitive introduced exactly when the work demanded it. That’s the right way to learn the moves, but it deliberately stayed light on the exhaustive “what is this primitive and every option it takes” view. Foundations is that view - lookup-shaped, authoritative, the place to go when you need the complete option list for hooks or the precise discovery order for AGENTS.md rather than the slice the story needed. It’s the same picture from the other side: this course taught you the practice; Foundations is the reference.
For the other tools you work across - the sibling courses. Most engineers don’t live in one agent, and the habits you just built transfer. The Claude Code course already exists and runs on this same teach-by-doing spine - one repo, one week, the primitives introduced as the work needs them - so if Claude Code is in your rotation, it’s the same journey told in that tool’s idiom. And the OpenCode course is next, built on the identical structure; when it lands it’ll teach the same instincts a third way. The primitives are universal even though every tool spells them a little differently - learn the discipline once and you carry it across all of them.
The whole job
Section titled “The whole job”Strip away the tool and every chapter taught one thing. AI coding agents are extraordinary at the general - broad, fast, fluent across languages - and blind to the particular: they don’t know your codebase, your conventions, your domain, or that on budgetcli money is integer cents and never a float. You are the inverse - slower, narrower, but you know all of that cold. Every move in this course was a way to hand the agent the context it was missing: rules that persist it, skills that package it, profiles that bound it, prompts that aim it.
That’s the discipline. Not prompting tricks, not a clever command - closing the gap between what you know and what the agent knows, on purpose, every time. The week on budgetcli is done. Now go close it on the repo that’s actually yours.