Skip to content
Julian De Leon
Writing

Why Coding Agents Need a Process

4 min read

Coding agents write code well, but each session starts without context or a fixed way of working. The agent re-reads the stack, guesses the test command, and decides on its own whether to plan, build, or review.

Branch is an open source CLI I built for this. It scans a repo and installs an idea-to-ship workflow as agent skills.

The problem#

Without a process, three things happen:

  • Context is lost. What the agent learned about the repo in one session is not available in the next.
  • Steps are skipped. Asked for a feature, the agent writes code first. It does not check whether the feature is worth building, write a plan, or define how to verify each step.
  • Results vary. The same request produces different work on different days.
[ PATH ]
prompt
code
plan
build
ship

A longer prompt does not fix this, because it has to be written again every session. Branch stores the process in the repo instead.

Skills#

A skill is a Markdown file with instructions that the agent loads when a task matches. Branch installs seven commands, one per stage:

[ WORKFLOW ]
  1. startwrite the repo context
  2. ideacapture or pressure-test it
  3. planbreak it into verifiable steps
  4. buildimplement one step at a time
  5. reviewbugs, security, ready to ship
  6. shippreflight, pr, release
  7. reflectretro and context refresh

Called with no input, each command asks one question. Called with input, it routes directly, for example /branch-build fix login redirect loops. The skills enforce these rules:

  • Pushback asks six questions one at a time and ends with a verdict: build, shrink, or drop.
  • Plan writes steps that each name the files they touch and how to verify them, riskiest first.
  • Build implements one unchecked step, runs the repo's own checks, and marks the step done.
  • Review drops any finding it cannot tie to a concrete input.
  • Ship asks for confirmation before pushing, opening a PR, or publishing.
[ AGENT ]
> /branch-plan add rate limiting
→ ran branch-plan-feature
wrote .branch/plans/2026-09-12-rate-limiting.md
> /branch-build
→ ran branch-build plan
step 1 verified and checked off
> /branch-ship pr
→ ran branch-preflight
Preflight: PASS

Context#

branch init scans manifests, lockfiles, CI and deploy config, and env var names. It does not open .env files or send data anywhere. This is the output on this site's repo:

[ INIT ]
$ bunx @anturno/branch init
◇  Scanned portfolio
   Frameworks: Next.js, React, Tailwind CSS
◆  .branch/context.json created
◆  13 skills in .claude/skills
◆  CLAUDE.md: branch block updated
└  Next: run /branch-start

/branch-start then has the agent read the scan and key source files and write .branch/CONTEXT.md: stack, commands, conventions, and gotchas. Every command reads this file first.

[ CONTEXT ]
repo
scan
context.json
agent
CONTEXT.md
commands

branch scan reports what changed since the last scan, and /branch-reflect updates CONTEXT.md.

Files#

Ideas, plans, and retros are saved in .branch/. A plan written in one session can be built in a later one without restating it.

[ FILES ]
  • .branch
  • context.jsonscan
  • CONTEXT.mdstack and conventions
  • ideas/pushback verdicts
  • plans/steps and status
  • retros/weekly review
  • activity.jsonlcommands run
Tree with 7 nodes

The retro skill reads git history, the activity log, and plan status, then reports what shipped, what slipped, and one change to try next.

Result#

[ SESSION ]
agentbranch
  • knows the repo
  • checks the idea
  • plan on disk
  • verified steps
  • confirms push

Skills are files in the repo, so they are versioned and editable. branch update refreshes them and keeps the files you changed.

bunx @anturno/branch init --launch