Field guide · Claude Code, Codex, herdr, jj · October 2026

Agentic Engineer

Running many coding agents moves the bottleneck from typing code to deciding what should exist and confirming that it does. An agentic engineer spends the day writing specs, building gates that check work automatically, and reviewing diffs, and the number of agents that pays off is set by how fast those three things go.

Review sets the ceilingAgents scale freely. Your minutes per diff don't, so they decide how many agents are worth running.
Specs before panesA run is only as good as its definition of done. Most bad output traces back to the spec.
One agent, one workspaceEvery writer gets its own jj workspace or worktree. Shared directories turn into merge fights.
Gates decide doneTests and typecheck run in the Stop hook, so an agent can't end its turn on a red build.
Parallelize the cheap-to-verifyChores and investigations scale to many panes because they take minutes to check.
Abandon, then re-specThrowing away a wrong run and fixing the spec beats coaching an agent through a bad approach.
Core idea

Where the ceiling is

Each agent creates work for you twice, once when you write its spec and again when you review what it produced. Add agents and that demand grows linearly while your hours stay fixed. Past the crossover, extra agents only lengthen the review queue. Move the sliders to find where your crossover sits.

Features merged / day
Chores merged / day
Notes written / day
Your load
Abandoned runs

Model assumptions, shown so you can disagree with them: a feature builder finishes about 3 runs in a working day, a chore agent about 6, an investigator about 3. A feature spec takes 15 minutes, a chore spec 3, an investigation prompt 5. Chores take 3 minutes to review and merge at your feature rate plus 25 points (capped at 95%). Notes take 8 minutes to read. An abandoned feature costs a quick 5-minute look plus a 10-minute re-spec. When demand passes your hours, everything scales down in proportion. The numbers are illustrative; the shape of the curve is the point.

What the curve showsSpec quality and review speed move the ceiling more than agent count does. Raising the first-try merge rate from 60% to 85% frees more of your day than any extra agent produces, because every abandoned run costs you a look and a rewrite.
The setup

Seven layers

herdr is one layer. It keeps sessions alive and tells you which agent needs you. The other layers decide what agents work on, where their files live, what they're allowed to touch, and how you know they finished correctly. Tap a layer for what it does and what breaks without it.

Tool facts checked October 2026. This category churns quickly; Crystal was deprecated and Bloop shut down earlier this year, so weigh who maintains a tool before building a workflow on it.

Work by type

Seven archetypes

Thirty panes is never thirty agents writing features. Work splits into archetypes that differ in how expensive their output is to verify, and that cost decides how many of each you can run. The cards list typical pane counts in a full board and the loop each one follows.

Review cost against parallelism

Judgment, not measurement

Lower-left work is cheap to check and scales out. Feature builders sit high because a feature diff needs real reading. Reviewers and investigators produce text, so their cost is reading time, and nothing has to be merged.

Allocation

What thirty panes hold

Pick a day type. Each square is one herdr pane. Pale squares are the dev server or test watcher paired with a builder. The load figure is how much of your focused time the board demands, using the same assumptions as the ceiling model.

Panes
Agents writing code
Review + spec load

Workflow

A working day

The rhythm alternates between short sweeps of the attention queue and longer blocks in the planning pane. You almost never type code and rarely read agent transcripts. Agents keep running between your blocks, and long-runners carry work through the night.

Your lane shows what you're doing. Agent lanes show when each archetype is running. Gaps in an agent lane mean it's waiting on you, which is the cost the sweeps keep small.

  1. PrepPromote 5 to 10 inbox lines into specs, often the night before. About 45 minutes.
  2. LaunchStart builders and chores in fresh workspaces. Send investigators at open questions.
  3. SweepEvery 20 to 40 minutes, work herdr's sidebar from top to bottom: blocked, done, idle.
  4. Triage doneReviewer agent first. Then read the diff. Squash and merge, or abandon and fix the spec.
  5. PlanBetween sweeps, write the next specs and read investigator notes.
  6. CloseMerge what's green, kill idle panes, launch overnight runners with tight gates.
Sweep orderBlocked agents first, because each minute blocked is a wasted slot. Then finished work, oldest first, so diffs don't go stale against main. Idle panes last, closed or relaunched.
NotificationsTurn per-agent alerts off. Reacting to every "done" fragments the planning blocks, which is where the leverage is. The sidebar holds state until you sweep.
The main skill

Writing specs

A spec is half a page that tells an agent what done means without telling it how to get there. Agents drift on vague goals far more than on hard code, so this is where your judgment does the most work.

Feature template

Edit it, then check it

The checker on the right reads this box live. Paste your own spec to grade it. The rules are simple text heuristics, so treat a pass as necessary rather than sufficient.

Spec check

    What each part does

    Acceptance criteria

    Each bullet should map to a test or a one-minute manual check. "Fast" can't be checked; "streams over 10k rows" can. Three to seven bullets is typical for a feature.

    Non-goals

    They stop the agent from improving code next door while it's there. Missing non-goals cause most scope drift. Write one every time you think "it could also".

    Context pointers

    File paths and "reuse this helper" save exploration and prevent reinvention. Point, don't explain; the agent can read code faster than you can describe it.

    Done command

    One command that exits zero when the work is acceptable. It goes in the Stop hook, and it's what turns "done" in the sidebar into a fact.

    No steps

    If you're writing step 1, step 2, the task is either small enough to do yourself or should be split into several specs.

    Size to one diff

    A spec should produce a diff you can review in one sitting. Large work becomes several specs, ordered so each lands green.

    Spec length by archetype

    ArchetypeLengthMust containExample
    Chore3 to 5 linesTarget, non-goal, done commandBump zod to v4. Fix type errors. No refactors. Done when tests and typecheck pass.
    InvestigationA question and an output pathQuestion, evidence standard, "no code changes"Why does /search take over 2 s on cold start? Findings with evidence to notes/search-latency.md.
    FeatureHalf a pageGoal, criteria, non-goals, context, done commandThe template above.
    Long-runnerFeature template plus commit rulesSmall commits, tests green at every commit, stop conditionsMigrate each module to the new logger, one commit per module, stop after 3 consecutive failures.
    ReviewTwo linesThe spec and the diff, nothing elseCheck this diff against this spec. List violations, risks, and unasked changes.

    Spec or design doc

    Design doc

    Reader: people who need to agree.
    Settles: which approach, and why over the alternatives.
    Contains: problem, options, trade-offs, risks, open questions.
    Precision: architecture level is enough.
    Lifecycle: reviewed, approved, kept as a record.
    Failure: a meeting with no decision.

    Spec

    Reader: an agent that will execute it.
    Settles: what done looks like, and the fence around it.
    Contains: criteria, non-goals, pointers, done command.
    Precision: checkable by a test.
    Lifecycle: run, refined, rerun, dead once merged.
    Failure: confident, working code for the wrong thing.

    The two stack. When the approach is genuinely open or other teams own parts of the system, write the one-pager, get it reviewed, and derive specs from its chosen option. One design doc usually fans out into several specs. Agents change the doc too: investigators can gather evidence for each option, and two prototypes can run in parallel, so review argues from results.

    Producing five to ten a session

    1. InboxEvery annoyance during the day becomes one line in specs/inbox.md. Writing specs becomes promoting lines.
    2. InterviewIn the planning pane: "Ask me questions until you can fill this template. Push back on vague criteria." Answer by voice.
    3. Edit the judgmentRewrite criteria and non-goals yourself. Accept the agent's draft for context and formatting.
    4. Investigate firstWhen you'd be guessing, run an investigator. Its proposed fix is half a spec.
    5. TemplatesKeep one per archetype in specs/_templates so you fill blanks.
    Verification

    What catches what

    No single check catches everything, and the expensive one is you. Stack cheap automatic gates first so your review time goes to the failures only a person can see: the wrong thing built, or a design that drifts from how the system should work.

    Scale: blank means it rarely catches this class, 3 means it reliably does. Ratings are judgment. The right two columns are the only ones that read intent, which is why the reviewer agent earns its pane: it filters unasked changes and spec violations before they reach you.

    Stop hookRun the done command when the agent tries to finish. If it fails, the hook returns the output and the agent keeps working. A green sidebar now means a green build.
    Gate gamingAgents under a failing gate sometimes weaken the test instead of fixing the code. Make test files read-only for builders, or have the reviewer flag any change under tests/ that the spec didn't ask for.
    Troubleshooting

    Common problems

    SymptomLikely causeFix
    Agent built something plausible but wrongAmbiguous acceptance criteriaAbandon. Rewrite criteria as checkable statements and relaunch.
    Diff touches files you didn't ask aboutNo non-goals, or a broad goalAdd explicit non-goals. Have the reviewer list unasked changes.
    Agent spends 20 minutes exploring before writingThin contextAdd file pointers and "reuse X". Add the repeated discovery to CLAUDE.md.
    Finished diffs wait hours for youMore builders than your review rate supportsCut builders, move capacity to chores and investigators.
    Frequent merge conflictsTasks split by feature across shared filesSplit by file or module ownership. Merge oldest first.
    Agents stuck on permission promptsNo sandbox, so approvals stay manualRun inside a sandbox (Fence, a VM, a Sprite) and allow broad permissions there.
    "Done" in the sidebar but the build is redGates live in your head, not in the hookPut the done command in the Stop hook.
    Tests pass but were edited to passGate gamingProtect test files. Reviewer flags any test change outside the spec.
    herdr shows an agent working foreverState detection relies on process and output patterns, which can lag agent updatesLook at the pane. Install herdr's integration for that agent for authoritative state.
    You keep correcting the same thingThe fix lives in your headTurn it into a CLAUDE.md line, a lint rule, a hook, or a skill.
    Long-runner made 40 commits, half brokenNo per-commit gate or stop conditionRequire tests green per commit. Stop after N consecutive failures.
    You're reading transcripts all daySpecs or gates too loose to trust outputTighten both until the diff alone tells you enough.
    Getting there

    The ramp

    People who open thirty panes on day one end up with thirty half-finished diffs. Each stage below has a pass condition. Move up when you meet it for a full week, and drop back a stage if the review queue starts growing.

    1

    One agent, real gates

    A single Claude Code session per task. Write a spec every time, even for small work. Wire the done command into the Stop hook.

    PassTen specs in a row merge on the first or second run.

    2

    Two builders, isolated

    herdr plus jj workspaces (or ai-workspace to do both in one command). Two builders on unrelated modules.

    PassZero merge conflicts for a week, and no diff waits more than 2 hours.

    3

    Add cheap work

    Chores and investigators alongside the builders. Keep an inbox. Sandbox the chore agents so they run without prompts.

    PassFive or more chores merged per day at under 3 minutes of review each.

    4

    Reviewers and sweeps

    A reviewer agent on every feature diff. Notifications off, sweeps every 20 to 40 minutes.

    PassReviewer catches something you'd have missed at least weekly, and your abandon rate is under 30%.

    5

    Overnight and orchestration

    Long-runners with commit rules. Optionally a lead agent that dispatches workers through herdr's API (herdr-walkietalkie, herdr-symphony).

    PassMorning review of overnight work takes under 30 minutes and most of it merges.

    Practice

    Drills

    In order. The first sets a baseline you'll compare against. Ticks are saved in this browser.

    Saved in this browser

    Skill rubric

    Ten skills. Tap the level that matches what you actually do, judged from last week's work. The overall tier can't exceed your weakest skill by more than one level, because the weak link sets throughput.

    Overall tier
    Unrated

    LevelIn one lineTypical week
    NoviceUses agents like a fast pair programmer and watches them work.One or two sessions, lots of mid-run steering, review by reading transcripts.
    IntermediateRuns several isolated agents from specs, with automatic gates.Three to six agents, a spec per task, merges by diff, occasional conflicts and abandons.
    ExpertDesigns the work so it can be verified cheaply, and runs as many agents as review allows.Ten or more agents across archetypes, short sweeps, long planning blocks, overnight runs that merge.

    Benchmarks are judgment calls. Rate from evidence you can point to, such as your merge log, abandon count and review times, rather than how a skill feels.

    Reference

    Glossary

    Spec
    A short file defining done for one agent run: criteria, non-goals, pointers, done command.
    Done command
    A single command that exits zero when the work is acceptable, usually tests plus typecheck.
    Gate
    An automatic check that must pass before work counts as finished.
    Stop hook
    A Claude Code hook that runs when the agent tries to end its turn. Used to enforce the done command.
    Workspace
    In jj, an additional working copy of the same repo, created with jj workspace add. One per writing agent.
    Worktree
    Git's equivalent of a workspace. Most agent tools default to these.
    Attention queue
    herdr's view of which agents are working, blocked or done.
    Sweep
    A scheduled pass through the attention queue, handling blocked, finished and idle panes in that order.
    Abandon rate
    Share of runs thrown away. Above about 30% for features usually means the specs are too vague.
    Reviewer agent
    A fresh-context agent that sees only the spec and the diff, and reports violations and unasked changes.
    Investigator
    A read-only agent that answers a question in a markdown note. Produces evidence and often a draft spec.
    Long-runner
    An agent on a multi-hour task with per-commit gates and stop conditions, usually overnight.
    Sandbox
    A boundary (Fence, a VM, a cloud box) that limits files and network so agents can run without approval prompts.
    Context file
    CLAUDE.md or AGENTS.md. Repo conventions and commands that every agent reads. Keep it short.
    Compounding
    Turning a correction you made once into a rule, hook, template or skill so you never make it again.