Work/How it learnsTerms explained in the pattern
OPERATIVY: marketing knowledge, distilled into plays, judged by the drafts they produce.
OPERATIVY drafts social posts for a brand overnight. It works from a library of plays, short marketing rules distilled from the work of leading practitioners. Every draft records which plays shaped it, and the operator approves or rejects the draft. On that record, plays are kept, rewritten or retired.
Under the hood
The loop, stage by stage
The unit of learning is a marketing play: a rule with a version history, not prompt text.
-
Knowledge in
Leading marketing practitioners, hoarded verbatim: newsletters, books, talks, threads. Readers fan out over the corpus and write knowledge items, which are spot-checked for fidelity, then reduced to play candidates. The distillation is a documented process run with Claude Code, with a human decision point at the end of every pass.
How it is built- A corpus of hundreds of files per practitioner: newsletters, books, talks, threads.
- Four intake tracks by trust: the master corpus, discovery scouting by external agents, directed scouting, and external skill repositories, which are sanitised first.
- About 1,000 knowledge items, reduced to about 160 play candidates.
-
A play is a routing signal plus directives
Each play has a short description the selector reads and a body the drafting model reads, with the channels, brand stages and intents it applies to. Every edit is snapshotted, so a draft can always be traced to the exact version that shaped it.
How it is built- Each play carries a short description for the selector, a body for the drafting model, its channels, brand stages and intents, whether it is always injected or judged, a priority, its sources, and a status: pending, active, rejected or retired.
- Append-only version history: every edit is a new version.
-
Selection per draft
A deterministic filter on channel, stage and goals, then a model acting as creative director picks one angle sentence and at most one play for each of eight jobs. It sees how often each play was used recently, the candidate order is shuffled so it stops re-picking the first, and one draft in ten deliberately withholds an always-on rule so the rule's effect can be measured.
How it is built- The selection prompt is versioned and run cold. Eight jobs: hook, structure, angle, positioning, value, engagement, register, trust. A cap on moves, one novelty move at most, a token budget. The code re-checks every rule rather than trusting the model.
- The holdout rate is one in ten; the withheld play is logged as a holdout.
- A bug the data caught: one prompt version defined only six of the eight jobs, so two jobs were never picked for two months. Fixed in the next version, with a regression test.
-
The draft and its provenance
Two passes: a scaffold, then a rewrite in the brand's voice rules, with an on-brand score as a gate. The briefs the model actually saw are stored word for word. Every post carries the draft id in its tracking link.
How it is built- The overnight pipeline runs idea, draft and image.
- A usage row records play, version, draft, why it was picked in fifteen words or fewer, and which pass used it. Both briefs are kept with the draft.
- The morning package: idea, draft and a generated image, ready for review when the operator wakes up.
-
Results come back through the funnel
Every post carries its draft id in the tracking link. Downstream events, from analytics or from the product's own imports, are matched back to the draft, and through the draft to the plays and versions that shaped it. That is the second signal, the one from outside the operator's taste.
How it is built- The draft id travels in the tracking link on every post.
- Bring-your-own-funnel: stages and events from analytics or the product's own imports, each matched to a draft and versioned.
- Token budgets and cost telemetry per organisation sit alongside, so a play's cost can be weighed against what it returns.
-
Verdicts and results accrue to plays
The operator approves, edits and approves, or rejects, and the funnel reports what each post brought back. Both are joined to the plays that shaped the draft, per play and per version, with holdouts split out. A preflight flags plays that never get used and plays that lose more than they win, and the operator answers a short decision request: keep, revise or retire.
How it is built- Usage joins to verdicts and funnel events in the same module that writes them.
- The preflight flags never-used plays after enough opportunities, high-rejection plays once the sample is large enough, and plays past their review-by date: months for channel plays, longer for universal ones.
- Revised plays come back as pending and are activated by hand.