case 07
An agent ships one template a day, in public. Nobody reviews it but the gate.
Template libraries are made by hand, one careful author at a time. That is the right way to make the ones people depend on — and the wrong way to find out what the long tail of media chores even looks like. The question worth answering was narrower than “can an agent make video”: can an agent, unattended, turn a chore it found on the web into a reusable, deterministic media program — typed props, tests, a layout contract, a frozen render — every day, and leave a record honest enough that a stranger can judge it?
m0saic-project/one-a-day is that experiment: a third-party template repo (namespace @one-a-day, unsigned, shown as 3P in Mosaic Desktop) where an AI agent — Claude Code some days, Codex or Kimi on others — does the same five things every day and pushes the result to main. Nobody codes in it by hand. Nobody reviews a day before it ships except a gate that is code.
A day is five fresh agent calls. Nothing survives between them except files, so the journal folder is the agent’s only memory — and the public record.
scout → what recurring media chore is out there? (HN, forums; every source opened) plan → the brief: canvas, props, beats, the layout contract, a rubric build → one template, up to three variants, each rendered at three canvases critique → adversarial scores against the rubric; SHIP <x> or NO SHIP ship → previews, verify, the why-tutorial gate → deterministic, no model: scope guard, build, doctor, freeze, ONE commit
The gate is the part that makes it safe to leave alone. Only the day’s allowed paths may change; exactly one new template folder; the conventions gate renders every template at its defaults; an error mosaic anywhere fails the day; the new folder is frozen by byte hash and never changes again. Some days ship nothing. Every day leaves a journal entry — the scout notes with sources, the brief, the build log, the critique with scores, the ship note, and every variant that lost. The losers are kept on purpose: the decision is the interesting part.
Make has no prose surface and a link preview has no README, so each template carries the day’s story as its tutorial — the “?” pill on the Make page, or m0saic make <id> --tutorial on the CLI. It is six pages: the run (day, date, which agent, which model it said it was), the problem with the online sources the agent actually opened, the solution, how to use it, the template itself at its defaults, and how the day was made — the run’s phases as a waterfall with tool calls, tokens and dollars, because developers read tokens and leadership reads dollars. The words and the numbers are frozen into the template file with the code.




The build refuses a tutorial that lies by omission: a placeholder left in, a source that is not a URL, a day or model that disagrees with the journal, a timeline that disagrees with the runner’s trace. The critic scores whether the pages tell the truth. And every template declares a layout contract — every text fits its box, the chrome lives where the design says — that the build sweeps at seven canvases before anything ships.
The first scout found developers on Hacker News and dev.to running headless browsers and paid screenshot APIs to put five strings on a rectangle: the og:image every blog post needs. Three Show HNs in one year had rebuilt the same plumbing. The agent planned an Open Graph card from front matter, built three variants (a top bar, a left rule, a bottom band), and its critique picked the band — the one accent that survives thumbnail scaling, which is where these images actually live. It shipped as @one-a-day/dev/og-card/v1, titled by its date so the grid reads as a calendar.

Mosaic Desktop. Templates → Add source → paste the repository URL → consent. Desktop installs the repo pinned at that day’s commit; Update now picks up a new day on your terms, and Follow upstream is an explicit opt-in with a warning that says what it means — an agent-run channel is not something Desktop auto-updates for you.
CLI. Clone it and point the CLI at the folder. The repo commits its build, so a clone loads with no build step; each day’s journal/<date>/50-ship.md has the render one-liner and the props worth trying.
npx m0saic list-templates --template-repo ./one-a-day --json npx m0saic make @one-a-day/dev/og-card/v1 --template-repo ./one-a-day -w 1200 -h 630 --props @post.json -o og.png npx m0saic make @one-a-day/dev/og-card/v1 --template-repo ./one-a-day --tutorial -w 1280 -h 720 -o why.mp4
Loading any template repo runs its code on your machine, and this one is written by an agent and reviewed by a gate. Look at src/ first — it is the whole story; dist/ is its build.
Agents that make media today mostly make files: a screen recording, a browser-rendered PNG, an ffmpeg one-off — output with no program behind it, different bytes on the next run, nothing to reuse. Or they write code nobody gates, and the second day breaks the first. Here the unit of work is a typed template with its tests, its contract and its own explanation, and the freeze means (template id, props) renders the same pixels on the pinned toolchain forever. A template that turns out good gets polished by a human elsewhere and promoted to the official community library; the repo stays what it is.
One command, straight from a terminal. The CLI carries the template, the engine, and the validator — if the layout can’t render correctly, it fails before a single frame is written.
The template behind this study is @one-a-day/dev/og-card/v1 — a typed, unit-tested program, not a script, and every line of it is public: the folder behind each link is the source that ships, with its tests and its layout contract beside it. Copy it, fork it into your own repo, or read how a decision was made.
The pipeline that calls the agent — the prompts, the adapters for each CLI, the deterministic gate, the trace recorder — lives in the same repo under pipeline/, and AGENTS.md is the contract the agent works under. Point it at your own coding-agent CLI and run one day: node pipeline/run.mjs --no-push.