← Sebastián Allende

How I build software with coding agents

Coding agents are my main workflow: over 2,600 AI-assisted commits on a production ERP alone. The agent writes a lot of the code. I own the decisions, and this process is what makes that safe.

The process

  1. Start from the project's rules

    Every repo has a short file that says how to install it, how to test it and what not to touch. The agent reads it first, then checks the branch and any uncommitted work. Here is a real one.

  2. Plan before risky work

    Anything large, or anything touching payments, production, tax documents or personal data, gets a written plan that I approve before a single file changes.

  3. Build in small, verifiable steps

    Each block of work is small enough to check, and the tests run after each one. On some projects a hook runs type checks and unit tests automatically whenever the agent finishes.

  4. Test without touching anything real

    Tests use no real network, credentials or data. The ERP's critical flows are backed by about 180 test files, plus PostgreSQL invariants that block inconsistent data.

    odoo-rag
    $ uv run pytest -q10 passed in 0.16s$ gh run list -R Ssebv/odoo-rag -L 1 --json conclusion,status -q '.[0]'{"conclusion":"success","status":"completed"}

    Replay of real commands.

    GitHub Actions showing a successful CI run for odoo-rag
    Continuous integration on the public repo.
  5. Measure what tests can't

    A passing test does not tell you whether an AI answer is good. For that I build evaluations and compare options on the same questions. In Odoo RAG, that is how I learned translation mattered more than hybrid search.

    Recall@5, all questions
    Keyword73%
    Vector67%
    Hybrid73%
    Hybrid + translation82%
    Recall@5, Spanish questions
    Keyword40%
    Vector20%
    Hybrid50%
    Hybrid + translation90%
  6. Review, and check claims against the code

    Changes get a code review before they are committed, and a security review if they touch authentication, payments or personal data. It applies to what I write about my work too: a review found that my own article said a monitor ran every six hours, while the code said daily. I corrected the article.

  7. Ship in stages

    Changes go through staging before production, and production deploys avoid business hours. For the ERP migration, I compared the result against a pre-upgrade baseline: invoices, orders and deliveries were identical.

  8. Watch it in production

    A daily health check runs over 40 detectors, with urgent alerts every 30 minutes. I wrote about what it found, including the detector of mine that was confidently wrong.

What the agent can't do alone

  • Push to the ERP's production or staging branches.
  • Send email: it only writes drafts.
  • Read secret files or force-push: those commands are blocked by rule.
  • Make the calls that are hard to undo: those stay with me.