03 / FORGE OS
The operating system behind everything I run — a written record every agent works from, tickets with definitions of done, checks that actually fail. Building it in public; the parts that generalize become products.
What it is
Forge OS is five things. A vault: a folder of plain markdown files that every agent reads before it works and writes to when it is done, so the agents share one memory instead of each keeping its own. A ticket board where every ticket has a definition of done that is an artifact — a row, a screenshot, a query result — not a sentence. A small set of scheduled agents that research, draft, and report. An independent review on every pull request, by a model that did not write the code. And a short working agreement the agents boot from, which is where the rules below live.
Two people run three businesses on it. The agents are real. The roster on a slide was never the point.
Why it exists
I work 4–8 AM. One person cannot hold the state of three businesses in his head, so the vault holds it, and the agents work from the vault instead of from memory. That was the first reason.
The second took longer to learn. A monitor that checks whether a job is configured will report green forever, whether or not the job did anything. A check that only runs when a key is present will pass on the day the key is wrong. A report is not a result. Presence is not health. Most of what is in Forge OS exists to make silence impossible — to force every process to say, in writing, what it examined and what it found, including when the answer is nothing.
Proof
These are copied from the working agreement the agents read. Each one was written after something broke.
A sync that ran leaves an artifact.
Nothing may claim a job happened without a closed row saying what it examined and what it found.
Every AI action cites its evidence.
No evidence, no row. A finding with nothing behind it is not a finding.
Never render an unmeasured value as a measured one.
Every check is measured, unavailable, or not applicable — with a reason on the last two. Silence never implies nothing happened.
A check that cannot fail in the direction of the bug is not a check.
Before trusting a verification, say what defect it exists to catch and what it would show if that defect were present. If the answer is "the same thing it shows now," it is decorative.
Evidence has a timestamp.
A proof about a system is only valid for the configuration it observed. Ask when it was observed and what has changed since.
"We can do it" is not "we have done it."
A definition of done that asks whether something was done is not satisfied by showing it would work.
A job that succeeds at doing nothing looks exactly like a job that works.
For every scheduled job, ask what row it writes on a tick with nothing to do. If the answer is none, its green carries no information.
Proof
On 2026-08-22 a scheduled job in production had run 96 times in 24 hours and returned 200 every time. The table it existed to fill had zero rows across all eight days it had been running. Its greens were being cited as proof the deployment worked. That one was caught by reading a count. The week after it surfaced seven more, in a stack that was supposed to be mature. Each one and what it taught:
The backup reported success for three days while a stale lock file failed every commit underneath it.
Alert on the last commit date, not on whether the cron fired.
A decision to stop gating clients by industry sat in one document for three days while every agent’s system prompt still taught the old rule.
A wrong system prompt does not produce one wrong answer. It produces a wrong agent, in a voice as confident as a correct one.
Four reports in one session asserted on a proxy — a substring count, a parser that passed, a document that was not the contract — and called it the thing.
Measure the artifact. A proxy that agrees with you proves the proxy agrees with you.
A script stripped the footer from a minified page by line, deleted the whole document, and returned a confident zero.
A zero has to be checked as hard as a hit.
Five tickets sat open with the work already shipped; three items were specced that another ticket had already delivered.
Nothing moves to Done on a claim. It moves on a check against production, pasted into the ticket.
A client had been getting leads from a site we had told them twice, in writing, produced none. The form went to their inbox; we had never asked.
If you are responsible for an outcome you need to see the outcome. A report with no feedback loop is a guess.
A sync could assign a lead to nobody — silently, and in a way that survived both the alerting and the reconciliation built to catch it.
Alerting is not monitoring. The failure the monitor exists for is the one it cannot see.
None of these threw an error. That is the whole point. The fixes are in the rules above, and the tickets that produced them are still open where the fix is not finished. That footnote stays on the page.
Follow
What shipped, what broke, what it cost. Plain, specific, and dated.
Follow the build on LinkedIn →