Six AI Agents plan, write, buy and judge. Deterministic code publishes, spends and
enforces the ceilings. One human approves everything — by merging one pull request a day.
Marketing is judgement, execution, and the decision to put the
brand's name behind something. Most "AI marketing" blurs all three into one assistant with
a publish button. This platform keeps them apart: Agents propose. Code executes. One
human decides. That is why it runs unattended, every day, and never embarrasses anyone
at 3am.
The loop, in one picture
Plan → posts → a human decides → publish → results feed the next plan. Everything else on
this page is a detail of this one loop.
Green is judgement, blue is deterministic code, amber is the human. Nothing crosses from Creative to Producer without passing through the amber box.
Agent — judgementProducer — codeHuman — approval
The cast
Agents proposeProducer executesCMO decides
The CMO · one personOwns the brand and budget. Approves everything by merging one pull request a day.
The Producer · codeNever an LLM. Publishes, spends, enforces the ceilings, retries, logs. The only thing that touches the outside world.
Between them sit seven Agents —
each a Claude session bound to a schema. An Agent can only ever propose.
AnalystReads the funnel, says what's working, with numbers. Daily; the whole month on Sunday.
StrategistWrites next week's plan and names where ad money should go. Sundays.
CreativeTurns a brief into a finished post: copy, card, video. Code calls the model — no session.
Media BuyerProposes an ad. Cannot spend. Only runs when there's room under the ceilings.
Performance AnalystWrites the post-mortem: promised vs. delivered, Winner or Loser. Moves the next budget.
Chief of StaffWrites the weekly briefing: headline numbers, what worked, what needs a human.
Market ResearcherStudies one country at a time: what people there play, which games would land, which new ones to build. On request, never scheduled.
Why it is different
Five rules the code enforces — not habits anyone has to keep.
1An Agent cannot touch anything
Code gathers its inputs; the session only writes an answer file; code validates it against
a schema before anything becomes state. Every rule that costs money lives in the
validator, never the prompt.
Every rule that costs money lives in accept, in code — the budget ladder, the ceilings, the copy rules. A persuasive model cannot talk its way past a schema.
2Approval is one pull request
One checklist: every post and ad awaiting a decision, full text and exact media, all
pre-ticked. Merging is the approval. Untick what you don't want.
Untick anything you do not want. Merging decides everything at once — Posts and ads alike.
Every proposal reaches your phone. Fifteen minutes of silence is consent.
Untick, merge, or close within fifteen minutes — otherwise it merges itself as it stands.
3The money rules are frozen in code
$10/day per ad, $25/day total, two running at once. Config can lower
these, never raise them — and a Media Buyer that argues well gets the same budget as one
that argues badly.
Rule
What it does
Who enforces it
Opening bid
$5/day for any game's first ad. Always.
accept, in code
Earning more
Only a Winner on the same game + angle may double, capped at $10.
accept, in code
Two Losers
Two Losers in a row → next proposal must be $0, with a reason.
accept, in code
Kill rules
<3 clicks, >$1/click, or <0.25% CTR from day 2 → paused early.
The Producer, daily
Sanity alerts
>120% of plan billed, or 24h with zero impressions → CMO told same day.
The Producer, daily
Currency
Refuses to launch if currency and conversion rate disagree.
The launcher, in code
Launch order protects against a crash costing money: created paused → written to
the ledger → targeted → switched on last. A failure anywhere leaves it paused and unbilled.
4Every ad is a three-day trial that always ends
Nothing runs open-ended. The post-mortem is mandatory input to the next
proposal — its Winner/Loser label moves the budget. A good ad doesn't run longer;
it earns a new, better-funded one.
The loop closes on the dashed green line: a Post-mortem is the mandatory input to the next proposal, and its label is what moves the budget.
5It is judged on Players, not impressions
A Player is 30 real seconds of play, not a click. Every link carries its
channel, angle and post id, so "did that post bring anyone who actually played?" has a real
answer — one the Analyst reads every morning.
The proof
A public ledger of every post published and every ad run — what it said, cost, earned.
The Producer writes it after every run. No line was typed by a person.
Marketing is the first function. The shape isn't specific to marketing.
Agents propose. One deterministic Producer executes. One person decides by merging. Finance
can propose, not pay. Support can draft, not send. Engineering can open a PR, not merge it.
Kreeda is building this out, function by function.
MarketingSix Agents plan, write, buy and judge. The Producer publishes and spends. The CMO merges.Running today
FinanceAgents forecast, reconcile and propose. Code moves nothing. The CFO merges.The same shape
SupportAgents read, triage and draft. Code sends only what was ticked. The COO merges.The same shape
EngineeringAgents design, implement and review. Code runs the tests. The CTO merges.Already how software is built
Want this running for your brand?
Built by one person and a team of Agents. Running today — every post and ad above went
through it. Write and say which brand.
For operators — how it runs, hour by hour, and what needs a person
A day, hour by hour
No server, no daemon. Four timers on one Mac wake it five times a day; each run does one job
and stops. Three are the Producer alone; one — the morning — is where the Agents think; and
the first, before anyone is up, is a reporter that emails the day's Campaign numbers.
Amber dot: the reporter — reads every Channel's numbers and emails the CMO, spends and publishes nothing. Green dot: a run where Agents think. Blue dots: the Producer alone. The three Publish runs are the three Windows a Post can be scheduled into, converted to your clock.
Sunday adds a fifth run at 21:30, the Planning Cycle: next week's Plan, the
Briefing, and Monday/Tuesday's Posts filled and waiting for a tick.
08:12 Campaign report, by email09:00 Morning desk14:30 Publish18:30 Publish22:30 PublishSun 21:30 PlanningWhen asked Market researchAny time The CMO merges
Two runs have no timer. The Market Researcher studies one country when asked
(run-cycle.sh market-research LK) and writes its report into the repository for the
Product head, with a copy to the CEO by email. And a Campaign the CMO decides on in conversation is
proposed, reviewed and launched the same hour — the Review still opens, still waits its fifteen minutes,
and the Caps still apply; only the calendar is skipped.
Who acts when
The same day, by actor: read a row for what one participant does, a column for who's involved at one moment.
The Channels are only touched from the blue cells, and a blue cell only publishes what an amber decision already approved.
Where it runs: one Mac
Everything runs on one laptop — not because the cloud can't, but because every run here is
something the operator can watch, stop, or read the log of, without asking anyone.
The dashed box is the only machine involved. Nothing outside it holds state; GitHub holds a copy that the laptop pushes.
Timer
Fires
Runs
com.kreeda.marketing.desk
09:00 daily
claude -p with the Morning desk prompt
com.kreeda.marketing.publish
14:30, 18:30, 22:30
node cli.js cycle publish --live
com.kreeda.marketing.planning
Sunday 21:30
claude -p with the Planning prompt
The laptop has to be awake.
Asleep at 14:30? macOS runs it on wake — late, not lost. Logs:
~/Library/Logs/kreeda-marketing/. The cloud routines still exist, switched off.
Where things are stored
Four places, one job each — so a marketing run can't rewind live data, and vice versa.
Where
What lives there
Who writes it
main
Games, site, code — plus marketing/ledger/ and marketing/traffic/, snapshots rewritten every Publish run, never read back.
People, in PRs · the Producer for those two directories
marketing-state
Everything the system knows: queue, ad ledger, proposals, metrics, run logs, briefing. Shares no history with the code.
The Producer, only
marketing-review
Nothing — one empty commit so the PR has something to merge. Approving is a decision, not a file change.
The Producer
GitHub release media
Every rendered video and card. Not in git — the file previewed is byte-for-byte the file published.
The Creative
A Post's life
Every post moves through the same states, and every move is checked — an earlier version
skipped this and published some things twice.
A failed post is retried at the next opportunity for up to three days. After that it expires and the Strategist fills the gap next week.
Decisions on the record
The CMO's calls, dated, as the system carries them. Each one lives in a prompt, a rule or an
ADR — never only in someone's memory — so a run made next month makes the same call.
13 Sep 2026Drift goes to the US and Canada. A three-day, $10/day Facebook Trial on the angle that won in India — "the battery is the health bar" — rewritten for North America and carried by a real gameplay frame. Launched the same day it was decided; judged on Players against a promise made before the money moved. Rocket Builder's renewal waits for the next free slot.
13 Sep 2026A Campaign report every morning. The CMO is emailed every paid Campaign's numbers at 08:12 IST, read live from the Channels, with what the kill rules would do. The same run delivers any Alert and the Briefing.
13 Sep 2026New markets get a researcher. A seventh Agent studies one country at a time — what people there play, which Games would land, which new Games to build — and files a report the Product head can commission from. Sri Lanka first.
13 Sep 2026Traffic is public. Sessions and Players by hour, day, week and month, at /marketing/traffic/, rewritten with every Publish run.
12 Sep 2026Run it yourself; ask only for money. A "yes" in conversation is an approval. The system posts, proposes and launches within the Caps on its own and brings the CMO only the questions that cost money — a Cap, a funding instrument, a new paid Channel.
12 Sep 2026X paid is on hold. No X Campaign is proposed or approved, even once the account can bill. Organic Posts on X continue.
7 Sep 2026Facebook first. Paid money goes to Facebook, where two Trials earned it (Drift 12.8% CTR, Rocket Builder 18.0%, about $0.005 a Player). Doubling to $10/day is earned by a Winner on the same Game and angle, never granted.
What needs a person
Short by design, and safe to skip — nothing here is "or something breaks", only "or nothing happens".
Most daysRead the Review. Pre-ticked. Untick or close within 15 minutes, or it merges itself.
Every morningRead the Campaign report. One email: every paid Campaign, its numbers, what the kill rules say, and a "Needs you" line that is usually "Nothing."
Sunday nightRead the Briefing. Only its last section asks anything.
OnceKeep the laptop awake at run times — or accept a late run on wake.
When toldAct on an Alert. One thing only a person can fix; the system works around it until then.
NeverEdit state by hand. The Producer is the only writer — the run log says why.
Why build it this way?
An agent that can publish can embarrass you at 3am. One that can spend can spend all of
it. So judgement stays separate from anything that touches the outside world — and that
waits behind one box a person has to tick.