[etm]
module 012v1.0· updated 2026-04-19

Autonomous Build Loop

Your agent picks the next task, ships it, pings you — on a 30-minute cycle

01 / 07

See it work

Placeholder — real preview will be a time-lapse of BUILD_STATE.md checking off tasks + a Telegram thread of ship pings.

02 / 07

Is this for me?

Yes, if you have a big project that lives on a punch list (an app, a site, a content series, a course) and you want an agent to work through the list on its own. You write the plan once; the agent pulls the next task every 30 minutes, builds it, commits, and pings you on Telegram.

03 / 07

What you need

  • A Mac or PC
  • Claude Code installed — Pro or Max plan, long autonomous sessions eat credits (Module 01 walks you through install)
  • Module 08 (Autonomous Agent on Telegram) completed — this module EXTENDS that one
  • A git repo for the project the agent will work on
  • A willingness to let code be committed without your eyes on every line
time · 1 hour to set up. Then it runs forever.coding · no

This is the module for shipping while you're asleep. Not for every project — only ones where the punch list is clear and the moves are mostly executional, not strategic.

in the armory · tools that power this module
04 / 07

Do it

  1. step 1 / 6

    Install the build-loop skill

    Generate install command below → copy → Terminal → enter. Lands in ~/.claude/skills/autonomous-build-loop/. Contains:

    • BUILD_PLAN.template.md — your strategic north-star (written once)
    • BUILD_STATE.template.md — live task queue (edited every fire)
    • cron-prompt.template.txt — the prompt your agent wakes up to every 30 min
    • setup-loop.sh — bootstraps the above into your project folder
  2. step 2 / 6

    Write BUILD_PLAN.md — the north star

    In your project, run:

    bash ~/.claude/skills/autonomous-build-loop/setup-loop.sh
    

    This creates BUILD_PLAN.md in your repo. Open it. Write ONCE:

    • Project goal (one sentence)
    • Tech stack / constraints (so the agent doesn't add random deps)
    • Definition of done (what 'shipped' means)
    • Non-goals (what the agent must NOT do)

    Keep it under 100 lines. The agent reads this every fire — long = expensive + drifty.

  3. step 3 / 6

    Write BUILD_STATE.md — the live queue

    The skill creates BUILD_STATE.md with four sections:

    ## In Progress
    _nothing — first cron fire pulls from Next Up_
    
    ## Next Up
    1. [task title] — [1-line scope + success criteria]
    2. [task title] — ...
    
    ## Completed
    (agent appends here as tasks ship)
    
    ## Blockers
    (agent moves blocked items here; escalates to you)
    
    ## Consecutive Failures Counter
    count: 0
    

    Seed Next Up with 5-20 tasks. Each one should be scoped so an agent can do it in 15-60 min. 'Build a landing page' = bad scope. 'Add a 3-section pricing table w/ monthly/annual toggle' = good scope.

  4. step 4 / 6

    Wire the cron on your project's agent (from module 08)

    Open your project agent's config.json (the agent you spawned in module 08). Add:

    "crons": [
      {
        "name": "autonomous-build-loop",
        "interval": "17,47 * * * *",
        "prompt": "<paste cron-prompt.template.txt here>"
      }
    ]
    

    The prompt tells the agent: read BUILD_STATE → decide → execute → verify (tsc+build) → commit → ping Loya. Every 30 min. Forever.

    Restart the agent so the cron registers.

  5. step 5 / 6

    Set stop conditions + blockers

    The skill's cron prompt has three automatic brakes:

    • PAUSED: true in BUILD_STATE → silent NO-OP. Flip this anytime to pause the loop without killing the agent.
    • Consecutive Failures ≥ 3 → auto-pause + ping. If 3 fires in a row fail (build broken, tests fail, task incoherent), agent stops and asks for help.
    • Queue empty → ping once, then NO-OP. Agent tells you when there's no more work.

    This means you can leave it running for days. Worst case: it stops cleanly and tells you why.

  6. step 6 / 6

    Watch the pings, intervene when asked

    Every 30 min, the agent pings you:

    ✅ task 5/20 — pricing table shipped. Monthly/annual toggle wired. Tests pass. 5/20.

    You skim, you approve (or don't), you go back to your day. When it hits a blocker:

    ⚠️ blocked on task 12 — needs your Stripe API key. Paused. Ping me when unblocked.

    You add the key, reply unblocked, it picks back up. Over a week, 200 tasks can ship. Your job is reviewing + occasional unblocking, not executing.

05 / 07

Make it yours

Apply the loop to different project types
  • Building a SaaS? Queue tasks as atomic features (endpoints, pages, tests). Run the loop overnight, review the diffs in the morning.
  • Writing a course? Queue each module as a task. Agent drafts → you polish → ship. Cuts course-production time 5x.
  • Content series? Queue each episode as a task (research → draft → generate → caption → queue-for-post). Full production pipeline, hands-off.
  • Agency project delivery? Queue per-client-site as tasks. Loop ships 1-2 per day. Pair with module 07 (landing-page-agency) for the full automated agency.
06 / 07

Stuck?

  • Agent keeps failing on the same task — Consecutive Failures hits 3.

    Your task scope is too big or ambiguous. Read the agent's reason for failing (in the ping). Break that task into 2-3 smaller ones. Reset the counter. Retry.

  • Agent commits broken code / skips the tsc+build verify step.

    Your cron prompt isn't enforcing verification. Check `cron-prompt.template.txt` has the explicit STEP 4 VERIFY block with `tsc --noEmit` + `npm run build` required before commit. If the agent claims 'build clean' but didn't run it, add a post-check that greps the commit diff for actual test output.

  • Agent pings too often / not at all.

    Cron interval is the issue. `*/30 * * * *` fires at :00 and :30 (risk: everyone on the planet hits Claude at the same minute → rate limits). Use `17,47 * * * *` instead — off-beat, reliable, rate-limit-friendly. The skill's template uses this by default.

  • BUILD_STATE.md is getting huge, slowing every cron fire.

    Prune the Completed section monthly — move old entries into an archive file (`BUILD_STATE.completed-2026-Q2.md`). The agent should only need the last 5 completed entries for context.

  • Agent goes rogue — rewrites files you didn't ask it to.

    Your BUILD_PLAN.md's 'non-goals' section is missing or weak. Add explicit negatives: 'Do NOT touch [file paths]. Do NOT introduce new deps. Do NOT push to main — only commit locally.' Agents respect explicit boundaries far better than implicit ones.

💰 money moves that use this

all money moves →
07 / 07

Next up

module 01
Seedance 2.0 — Cinematic Clips

You've shipped the whole path. Loop back to 01 and revisit it with your new tools — your Seedance work plugs into your autonomous agent, which pulls daily intel from X, which feeds your content pipeline, which ships via the build loop. The stack is the product. Rebuild your OWN empire one cycle in.

open module →