Cheaper
The foreman decides, so a cheap model can build.
Works through your tickets overnight without drifting: every job starts fresh from files. A cheap model does the heavy coding, so your Claude Code limit lasts far longer.
Pick a ticket, then say go
.In a fresh session, one line: /goal autonomous run: <opener>, until done or stoppedBefore bed, one line: /goal night shift: jobs 13, 17, until done or stopped
Reads the ticket and your code, and writes a plan.Plans, and answers its own planning questions with its recommended pick.A shift manager opens a fresh AI session for each job and starts it for you.
Nothing, if Orca links the panes. Otherwise paste one line per step.Nothing: Orca passes each step to the builder.Nothing: Orca passes each step to the builder.
Splits the plan into small steps. A cheaper model builds each one, tests first.Splits the plan into small steps. A cheaper model builds each one, tests first.Splits the plan into small steps. A cheaper model builds each one, tests first.
Nothing. It carries on.Nothing. It carries on.Nothing. It carries on.
Two separate reviews, then checks every requirement has proof.Two reviews, then the proof check. Anything that fails gets fixed, not a stop.Two reviews, then the proof check. Anything that fails gets fixed, not a stop.
Open the PR
, then merge
when you’re happy with the proof.Nothing to say: your goal covers the PR, up to three automated reviews, and the merge.Covered by each job’s goal.
Opens the pull request. Say greploop
and it runs up to three automated reviews.Opens the PR, runs the reviews, merges.Opens the PR, runs the reviews, merges.
OK the next ticket.Read the PR and the report: every answer it gave itself is listed, so you can reverse it.Read the morning report.
Closes the job, saves what it learned, suggests the next ticket.Closes the job, saves the records, and stops. It never starts the next job.Closes the job, and the next one starts. Several jobs done by morning.
Topped outEach merged job adds a floor. When the whole goal is built, the building tops out.
When the whole goal is built: a record of what was done and what’s left, plus three to five ideas for the next goal.
Whenever you’re ready. In every mode, the AI stops when the goal is built and never picks the next one itself.
A fresh board for the new goal, and the job loop starts again.
Every word is yours. Nothing passes go
, open the PR
, greploop
or merge
without you, and the next ticket waits for your yes.
It moves on without you only on an explicit grant: an autonomous run for one job, or a night shift. Any other standing goal grants nothing.
It asks you only where a step is yours: the ones listed in RULES.md, putting something off, the next ticket. Technical choices it makes itself, on evidence, and writes down what it turned down.
It still stops and waits, one line saying why, on: the same check still failing after two fixes; a security problem or an unresolved critical finding; the automated review under 5/5 after three rounds; spend reaching your cap. After a stop it goes on only on your word.
Your goal never covers tracker moves, messages, edits outside the ticket’s files, migrations, a force push, a fourth automated review, spend over the cap, or starting the next job.
The shift ends at any stop in a job, when the whole goal is built, at the spend cap, or when a job passes 16 hours. The night shift, in full ↓
Get the package. Needs git, Node and Python.
git clone https://github.com/kaithoughtarchitect/toppingout Then, in Claude Code, in your repo:
Read <path to the package>/skills/f-setup/SKILL.md and follow it /f-setup installs what’s missing, profiles your repo and asks only what it can’t find. It never overwrites or commits.
Site ruleDo not distract the builder. It only builds what’s drawn.
Named for the day a building's last beam goes on. Here, it's the day every job on a board is done: the project tops out, and the next one starts from it.
The foreman decides, so a cheap model can build.
Two separate reviews and a checklist. “Done” has to be proven.
Hand it a list at night. Wake up to merged jobs.
A new session picks up where the last one stopped.
CautionInspectors on site. Do not feed.
Your idea becomes clear decisions.
RuleNo question left open.
The whole plan, before any code.
RuleEvery decision made first.
Other AI models check the plan.
RuleIt passes before it is split.
The plan becomes jobs, in order.
RuleNothing written until you say go.
A fresh foreman reads the notes, then the code.
RuleWhere they disagree, the code wins.
One small task at a time, test first.
RuleA test that breaks stops the work.
Two reviews: a fresh AI session, then an AI from another company.
RuleBoth run, always.
The work goes up as a pull request.
RuleOnly on your word, or your /goal.
Greptile reviews it; findings get fixed.
RuleThree rounds at most.
Merged, then checked against what was reviewed.
RuleOnly on your word, or your /goal.
Every requirement checked, notes left for the next job.
RuleNothing left for later.
NoticeSorry for the noise. We’re building your app while you sleep.
List the jobs before bed. Wake up to merged work.
/goal night shift: jobs 11, 12, 13A failed check stops the shift, so nothing broken merges. Name the jobs, or say 3 jobs, auto-pick and it picks them. How it works →
Site recordLessons forgotten on this site000
Sessions forget. Topping Out writes down what each job learned and where it stopped, and the next session starts there.
the job fileThe plan, the decisions and the work orders, kept current as the job runs.
/f-signoff, to write the cards and the handover.foreman/handovers/Where the job ended, what is owed, and a short quiz.
/f-signoff, every job.foreman/handovers/OPENER-JOB-<N>.txtSix lines that start the next job.
/f-signoff, every job.foreman/projects/<slug>/BOARD.jsonEvery job's state, and which job comes next.
/f-board, one event at a time.board.html; each close, to pick the next job.skills/f-card/ and /f-signoff step 3.2A lesson is found, checked for a twin, shown to you, then filed.
/f-card any time; /f-signoff at the close.foreman/logbook/Every lasting lesson as a card, with its evidence.
/f-card any time; /f-signoff at the close./f-shift at every job start; /f-search any time.logbook_index.md every live card: its type, summary, impact and clusterlogbook_links.md the typed links between them/f-archive keeps the best-linked and most recent cards live, so the faded ones go first. An example, not a real Logbook.skills/f-search/Finds the cards on a topic.
/f-archive-search.skills/f-context/A cold read of a repo, with its matching cards.
/f-shift already does this for each job.skills/f-catchup/Writes cards for past jobs that never got any.
skills/f-dream/Merges repeated lessons and spots repeat mistakes.
AGENTS.md or CLAUDE.md, and RULES.mdLessons that keep coming back, made firm rules.
/f-distill, with your approval.foreman/logbook/archived/Old cards moved aside, with an index to find them.
/f-archive, by itself past 250 cards./f-archive-search, when a search finds nothing.Not accepted“Trust me, it’s done” is not a test result.
The agent that made a mistake would be the one judging it.
ProofSo an AI from another company checks the work cold. It once caught a race condition the foreman had passed.
Source: Foreman Playbook, "The one idea"
A prompt asks. A check proves.
ProofEach test must fail before the code and pass after it, and every requirement needs evidence before the job closes.
Source: METHOD.md sections 7 and 10
Merging and pushing reach beyond your machine.
ProofThey wait for you. On a night shift, your /goal line is the OK, for those jobs only.
Source: RULES.md, "Acts that need the owner's exact word"
More steps per job. Less of your time.
ProofA cheap model on a flat subscription does the building, the checks catch problems first, and jobs run while you sleep.
Source: the Requirements page; the night shift above
No. It is plain text files in your own repo.
ProofStop using it, and the plans, the lessons and the board stay.
Source: SETUP.md, "What Topping Out adds to your repo"
The shift stops, and says why.
ProofA red check, a failed walkthrough or a security finding halts it.
Source: the night shift above
Its report is never taken on its word.
ProofEvery requirement needs a pass with evidence, or the job does not close.
Source: METHOD.md section 10, the acceptance ledger
Yes. It adds files and overwrites nothing.
ProofSetup adds one foreman/ folder and a short profile of your project.
Source: SETUP.md section 1
Expected to, not yet verified.
ProofIt is tested on Windows 11. The installer and checks are Node and Python, and the work orders are Bash.
Source: SETUP.md section 9, "Tested setup"
Site accessAuthorised plant only. Bring your own, and you maintain it.
My own setup, shared as it is. I can only support what I use.
Windows 11, with Claude Code as the foreman. macOS and Linux are expected to work, not yet verified.
ComingA cloud option.
/f-setup Update later: replaces the files your repo didn't adapt and lists the ones it did; it waits while a job is open.
This is the installer from SETUP.md section 1, the same on Windows, macOS and Linux. Fill in the two paths, run the dry run, then the install. It copies only what is missing and writes an install receipt.
PKG="<path to the Topping Out package>"; REPO="<path to your records repo>"
node "$PKG/skills/f-setup/install.mjs" --repo "$REPO" --dry-run # what it would copy, and what it keeps
node "$PKG/skills/f-setup/install.mjs" --repo "$REPO" # copy what's missing, never overwriteThen write the repo profile (templates/REPO-PROFILE.md) and the test adapter, and check the install:
python .claude/skills/f-board/test_render_board.py Only for an AI agent built on LangChain, LangGraph or Deep Agents. /f-setup asks first, and installs it only on yes. Topping Out itself needs none of it.
Version 0.7.29, pinned.
Comes with Deep Agents.
Comes with LangChain. The skeleton adds its SQLite and Postgres checkpoints.Works with LangChain’s open-source tools. The logos are LangChain’s own, shown as supplied; no partnership or endorsement is implied. The docs and the package the add-on cites are fetched at install, not shipped.
Most of the method is instructions the agents follow; a few checks are scripts that refuse.
(RULES.md), plus your coding tool's own permission prompts. The package ships no hook
An agent with push rights and pre-allowed commands can push; nothing in the package blocks it technically. SETUP.md §5 suggests a hook for migrations only, and SETUP.md §7 asks you to pre-allow git push, gh pr create and gh pr merge for an autonomous run.
The merged commit's tree must equal the reviewed and tested tree (METHOD.md §10 step 3), and skills/f-signoff/endgame.mjs verify-merge refuses a close whose merge isn't on the main branch
The tree comparison is not scripted, and verify-merge checks only that the merge commit is on main (and runs because /f-signoff calls it); an edit after the final re-run invalidates the acceptance and is caught only if the foreman re-runs, as the rules require.
endgame.mjs keeps a lock file; the planning skills and work order 1 run its check and stop while it exists
An agent that skips the check call isn't stopped.
scripts/cross-review-dispatch.mjs seats the reviewer on another vendor's CLI, in a separate process, from a brief (/pack-review)
The foreman writes the brief, so it chooses what the reviewer is pointed at and told (the reviewer can also read the checkout, read-only); seats exist only for Claude and codex foremen; this is separation, not adversarial isolation.
The acceptance ledger lists every requirement and check with its evidence, and /f-signoff refuses unless every row is PASS. A change to the ask is recorded in the owner's own words (METHOD.md §2)
The ledger is written and checked by agents; a wrong PASS is caught only by the reviews or by you.
skills/f-signoff/names-check.mjs checks every staged record at the records push and exits non-zero on a hit
It runs only when the foreman calls it at the records push; it checks only the names in your names file, and skips allowed contexts and rendered board pages.
CautionViewing platform. Mind your head.
















Two lines: install, then set up.
1Anywheregit clone https://github.com/kaithoughtarchitect/toppingout Read <path to the package>/skills/f-setup/SKILL.md and follow it Each floor is a section of this page. A project tops out when every job on its board is done.