Build1 publisher3 min readPublished
Three weeks of unattended agent runs logged OK on a check that only proved the process exited
Seven Claude Code subagents produced 382 commits, 24 board meetings and 16 articles in 21 days, and no revenue. The reusable part of the writeup is the runner that treated exit code 0 as proof the work happened.
The Engineer · Build desk

What happened
- From agent definitions written on August 24, seven Claude Code subagents ran ten small businesses unattended for 21 days and produced 382 commits, 24 board meetings, 16 articles, 18 Shorts, three digital products and five job proposals.
- Total revenue for the three weeks was $0, and the operator hand-edited exactly one of the articles; everything else shipped as the agents wrote it.
- The PowerShell runner logged OK whenever a command exited 0 and printed something, a definition of success that passed three different undetected failures in three weeks.
- PowerShell 5.1 read a UTF-8 command file with no byte-order mark as the system code page, mangled the Japanese command name and exited 0, giving three days of OK with zero Shorts posted.
- The only fully unattended pipeline stopped on September 12 at 06:45 when the YouTube refresh token expired, because the Google Cloud consent screen was still in Testing, where refresh tokens last seven days.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- constraint Throughput on the video pipeline is bounded by how fast the operator reads his to-do list, because the one action that keeps the token alive sits behind a console button no agent can press.
- decision Anyone scheduling unattended jobs against Google APIs has to take the consent screen out of Testing before the first run, or accept a manual re-auth every seven days as a permanent line in the schedule.
- exposure Downstream agents inherit the runner's definition of success, so a green log promotes a broken step to "live" and the failure stays invisible until someone reads a dashboard.
- cost The operator paid three weeks of subscription and attention for improvements to the loop's own process, while the two gates that needed money, the X API and the OAuth publish step, stayed shut.
The runner's rule for success had two conditions: the command exited 0, and it printed something to stdout [6]. A note.com poster that saves a draft satisfies both. It reported success, and the article sat unpublished until the agent reading the dashboard noticed 0 views on a URL that did not exist [8]. So does an X reply command that returns 0 with output on stdout and never writes the file it was supposed to write, `replies/2026-09-13.md` [9]. The secretary agent read that OK and marked the automation "live" [9].
The replacement takes the artifact as a parameter. Its signature is `param([string]$ExpectedOutput, [string]$MustContain = '## 1.')` [11], and three conditions have to hold before a run counts: the file exists, its `LastWriteTime` is later than the timestamp captured before the command started, and it contains that heading [10]. The timestamp comparison is what separates this from a bare `Test-Path`, because yesterday's artifact would otherwise pass today's run. When the check fails, the runner logs `NG` with the reason `no artifact` and exits 1 [11].
The Shorts pipeline was the only fully unattended business in the set, and it stopped on September 12 at 06:45 [13]. The agents diagnosed the cause, put "re-authenticate and publish the OAuth app" at the top of the daily to-do with a five-minute estimate, and warned that re-authenticating alone would fail again on the 19th [15]. That warning matches the seven-day window: September 12 plus seven days is September 19 [25]. No agent can click Publish app in the Google Cloud console [16]. Two posts a day, five slots lost, about two and a half days without a video [24].
The X queue has the same shape. Twenty posts drafted since September 6, held because the API is paid and the card was declined [18]. The meetings produced decision files with numbered items and "refutation conditions", edits to the agent definitions, guardrails on guardrails, and a runner that checks the runners [17]. That is roughly 18 commits a day [23], and 24 meetings in 21 days is more than one a day, a cadence a human board would not keep up [28]. "An agent loop will get very good at the metric it can observe. If the only metric it can observe is its own process, that is what it will improve," the author wrote [19].
Every figure in the post comes from platform dashboards pulled by a script, and the author states that nothing was rounded up [26]. The published numbers describe output and process, and the only revenue figure is $0 [3]. Whether the 16 articles could have earned anything is untested, because the blockers on the record are a code page, a draft flag, a missing file, an expired token and a declined card [7][8][9][14][18]. The rule the author set for freelance work was to accept only jobs an agent can complete end to end, with no calls, no design taste and no video editing [21]. His advice out of the three weeks is to publish the consent screen before scheduling the job, and to count the human clicks per dollar in the pipeline [22].
What to watch
- Whether the Shorts pipeline survived September 19, the date the agents flagged for a second token expiry if the consent screen stayed in Testing.
- Whether the 20 drafted X posts publish once a payment method clears; that would separate the billing block from a demand question.
- Whether the artifact check catches the next class of failure, or commands start emitting files that contain '## 1.' and little else.