Build1 distinct publisher3 min readUpdated
One operator's Monday script counts files per production line and joins them to a revenue log. It flagged an ASMR line at zero output three days after the same line showed 14 files a week.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
The interesting thing about the script described in the dev.to post is that it does not watch the jobs at all. It counts files in each line's output directory, then reads a revenue log (`revenue.jsonl`) and a line-definition file to decide what those counts mean [7]. Nothing in that design asks a process whether it is alive. A dead job has no opinion to offer, which is exactly why the count is the signal: absence shows up as a number going down.
There are two failures in the scheme and they are not symmetric. Zero files means the line stopped [3]. Files above zero with revenue at zero means the line is running and losing money, and that is the case the state file tracks, as a count of consecutive zero-revenue weeks [8]. Only the second one bills you while it happens: a single prompt run is a few yen, but hundreds of files a week across fourteen lines add up, and the author's point is that without per-line numbers there is no cost-cutting decision to make [5]. Five of the lines named in the post already account for at least 189 files a week [13], so neither the spend nor the exposure is spread evenly across the fourteen.
A weekly report also has a weekly worst case. At 14 files a week, a stopped ASMR line could swallow a full week of output before Monday's report mentions it, roughly 14 files gone [14]. The author's actual catch was faster: the first report is dated 2026-07-03 and the flag appears on 2026-07-06, three days later [2][3]. That sits oddly against the stated schedule, which is `launchd` firing twice on Mondays, at 8:20 and 13:20 [6]. Either the early cadence was denser than weekly or one of those reports was not a scheduled run. It matters because the three-day catch is the number readers will remember, and the design only guarantees seven.
The refusal to stop anything automatically is the load-bearing constraint. A flagged job is killed only when the operator cannot answer what it is for, who benefits, how much it earns, and when to cut it, and the script itself never intervenes [9]. The stated reason is that an automatic stop cannot be audited afterwards and a false positive could take out the top earner [10]. The same logic cuts back at the detector: in a file count, a silently dead line and a deliberately paused one look identical [7], so the report can only ever hand over a fact and a date.
The habit argument is the part that generalises past one Mac. The author says a weekly spreadsheet never survived as a habit, so the report is generated and dropped where he will see it with nothing to fill in [11][12]. Everything here rests on one operator's account of his own setup, including the ¥1.2M a month [1]. The transferable piece is not the shell script. It is choosing the unit (a line), the metric (files out and money in), and a schedule that arrives whether or not anyone remembers to look.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
In the first report, dated 2026-07-03, the ASMR line was producing 14 files a week and was marked green.
In the report dated 2026-07-06, three days later, the ASMR line was at 0 files a week and flagged with a warning; the author says he had not stopped it deliberately and would not have noticed without the report.
The author says a single Claude API prompt run costs a few yen, that the monthly bill adds up once 14 lines generate hundreds of files a week, and that if you cannot immediately say which line is not earning you cannot make a cost-cutting decision.
The script reads revenue.jsonl (the revenue log), revenue-gate.conf (the line definitions), and each line's output directory, counting files.
The script updates revenue-gate-state.json, a counter of consecutive zero-revenue weeks, generates a Markdown report, and copies it to ~/Desktop/Revenue Gate/ and to an Obsidian vault at briefs/revenue-gate/.
The script never stops anything itself; a job flagged for KILL is stopped only if the operator cannot answer what it is for, who is happy, how much it earns, and when to cut it, and the judgment is left to the human.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single self-reported build log with concrete mechanism, no external corroboration
The mechanism side is unusually specific for a personal post: the Monday 8:20/13:20 launchd trigger, the three-column conf with fourteen rows, the JSON Lines revenue record shape, the consecutive-zero-revenue state file, the two report destinations, and a verbatim in-code KILL comment. That specificity is internally consistent and lifts evidence above bare assertion. It remains one author, one machine, one publisher: no script source, no report artifact, no job log for the ASMR failure, and no independent confirmation of the revenue or cost claims.
One self-hosted operator; no third-party use disclosed
The only disclosed usage is the author's own Mac running the script across fourteen configured lines, plus one concrete report event on 2026-07-06. No other users, contributors, repository, download or install signal, team deployment, or downstream adopter appears anywhere in the supplied source, so adoption is measurable but essentially at the floor.
Mechanism modest and shown; revenue and cost framing overstated relative to proof
The framing runs ahead of the evidence in two places: the ¥1.2M/month revenue and 14-line scale are presented as the payoff of the monitoring habit while remaining wholly self-asserted, and API cost pressure motivates the whole design although the script ingests no cost data and no bill is shown. The core technical claim is more restrained than the framing and is credibly demonstrated — a weekly per-line file count did surface a silent stop — which keeps the gap moderate rather than large. Counting files also proves nothing about output usefulness, and the weekly cadence's detection lag is left unstated.
Self-promotional first-person income post; no vendor sponsorship disclosed
The author is the builder, the operator and the sole witness, publishing on a developer platform with a headline personal-income figure and a name-brand hook — a structure that rewards impressive numbers and a tidy success narrative. Nothing in the source indicates paid placement, vendor relationship, or a commercial product being sold, and the technical detail is offered freely rather than gated, so the incentive is reputational and audience-building rather than transactional.
Confident on mechanism, weak on outcomes and generality
Confidence is asymmetric. What the script does — schedule, inputs, state counter, report destinations, no-auto-stop rule — can be read off reproduced configuration and code and is fairly reliable. What the post implies about results is not: revenue, cost pressure, per-line earnings and the claim that this practice sustains the reported business rest on one interested self-report with no artifact, no second publisher, and a sample of one operator and one detected failure.
build
launchd Tells You Nothing When a Job Dies, So Your Revenue Reports It Instead1 distinct publisher
build
Your script exited 0 because the file no longer existed: macOS evicted it to iCloud1 distinct publisher
build
26 launchd jobs, one log directory: how scheduled automation rots quietly1 distinct publisher
build
A cost monitor overcounted 4.9x, then went dark for a week when set -e did its job1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 23, 2026