Skip to main content
ariefrse.my
HomeSkillsProjectsAI WorkWritingContact
Resume
All writing

Note · Agentic engineering

I built my agent workflow into a tool so it stops being optional

Knowing the right process and following it under deadline are different skills. One of them can be automated.

September 14, 2026 · 6 min read

Most of the notes in this garden are variations on the same three lessons. Write the plan before the code. Verify the outcome, not the machinery. Write the mistake down where the next session will read it.

I know all three. I have written all three up. And I still skip them when a task looks small and the day is short.

So I stopped treating them as things to remember and turned them into a set of commands. It is called Shipline. It lives in my Claude Code config and works in any project on the machine.

What it actually does

Six phases, and three places where it stops and waits for me.

plan  ->  build  ->  verify  ->  test  ->  retro  ->  deliver
  |                               |                      |
I approve                  I run the test          I permit
 the plan                      script              the commit

The gates are the entire point. An agent that pauses for approval is not slower in any way that matters, because the alternative is reviewing a thousand lines after the fact and pretending that is the same thing.

Four documents or it is not done

Every piece of work produces the same set, and the agent is told that a missing one means the work is incomplete rather than nearly complete.

FileWhat it has to contain
plan.mdOrdered steps, acceptance criteria a stranger could judge, risks, and what is explicitly out of scope
testscript.mdNumbered cases I run by hand, failure paths included
retro.mdThe actual error, the actual fix, and the command that proved it
runbook.mdCold-start instructions for someone who has never opened the repo

The test script matters more than it looks. The agent does not grade its own work. If the only verification is the thing that wrote the code telling me it checked, I have a confidence report, not a test.

The rule that does the most work

Never mark a phase complete without evidence. Paste the real command output, not a summary of it. "Tests pass" is a claim. The output is a fact.

The part that compounds

Every retrospective has to answer one question: what rule, written down in advance, would have prevented this?

If there is an answer, it becomes a numbered guardrail in a project file, phrased as a standalone instruction to whoever reads it next. Those load back into context before every future plan and build. The file is append-only.

- id: G4
  title: Check the full config precedence chain before debugging
  severity: warning
  discovered_in: S02
  injection: >
    When configuration does not take effect after editing appsettings,
    check the precedence chain BEFORE changing code: user secrets,
    then environment overrides, then appsettings.{Environment}.json.
    User secrets persist across sessions and are invisible to git grep.

This is the CLAUDE.md footguns idea with the collection step made mandatory instead of remembered. A mistake that costs an hour costs it once.

If that file is still empty after four or five pieces of work, it does not mean nothing went wrong. It means the retros are being written to look good.

What I deliberately left out

I adapted this from a heavier framework that had eight specialist agent personas, confidence scores and an evidence-validation protocol. All of it read impressively and none of it did any work. It was documentation describing documentation.

What survived is small: a config file that is the single source of truth, three artifacts per story plus a runbook, gates that actually stop the agent, and the guardrails loop.

I also made a point of keeping my own habits out of the tool. Commit style, date format, how far it may go on a remote, emoji, whether every story gets a branch: all of that is a config block that starts empty and permissive. Someone else installing it gets the pipeline and none of my preferences. A workflow that smuggles in its author's taste as though it were engineering is a worse workflow.

What I learned

Knowing the right process and following it under deadline are different skills, and only one of them can be automated. Encoding the discipline as commands removes the moment where I get to decide that this task is small enough to skip it.

The gates are not friction. They are the part I was skipping.

agentsworkflowcontext-engineeringshipline

Share

XLinkedInWhatsAppThreads

Related

  • Teaching AI assistants to remember past mistakesAgents forget between sessions. The repo does not. Every regression a reviewer catches becomes a constraint the next session starts with.
  • Write the plan before the codeOne day of writing notes bought a 196-file MVP the next day, because the agent spent zero time guessing what I meant.
  • Running agents in parallel is about waiting, not typingThe productivity is not in agents typing faster. It is in never sitting idle while something runs.
  • An HR platform where seven in ten commits came from an agentSeven in ten commits came from an agent. Zero in ten decisions about what "correct" means for the business did.

© 2026 Muhammad Arief Roseli

GitHubLinkedInSnapInvois