The AI launch system that measures whether anyone read what it wrote.
Five agents produce the launch. Four agents tailor every output to each teammate. One agent argues with me every Friday. One agent watches what every teammate actually does — and feeds it back so the next brief lands harder. Built on one belief: a launch that doesn’t measure adoption is a launch that’s hoping.
This is a working prototype. Not a deployed product. Here’s the line between the two.
A senior CMO will spot the cracks in 20 minutes. So let’s name them before they do. Cadence is one PMM (me, Garth) running this against one simulated launch (FORGE) with simulated teammates. The framework is real. The integrations are spec’d and ready to wire to your stack. The receipts reference realistic datasets we built — not data Cadence collected from a deployed team.
- The four-layer architecture and every agent prompt in
agents/ - The brand-review and tailor hooks (they actually run)
- The fork process — run
FORK-PROMPT.mdin Claude Code, get a tailored framework in one session - The eval methodology and the 6 verbatim Marcus cases (the data is simulated, the document is real)
- Every opinion. Every principle. Every “we will never say” rule.
- The teammates (Jake, Priya, Marcus, Tasha, Sam, Katherine)
- FORGE the campaign. FORGE the brand.
- The receipts dashboard data and the alignment score
- The “57% reduction in time-to-response” claim is modeled, not measured
- The Onboarding Bridge has run once, on Sam, who is fictional
- Gmail / Slack / Greenhouse / Workday — all spec’d in
playbooks/, none deployed against FORGE - Cron infrastructure — Vercel and GH Actions configs are documented, not running
- Derived-signals-only enforcement at the API layer (currently policy, not architecture)
- Second-grader blind eval review for inter-rater agreement
Realistic time to fork this and get one integration wired against your org: a focused weekend plus one engineer-week. Not “5–7 hours of focused work” as I claimed in V1 — anyone who’s deployed a SaaS integration knows that number is fiction. The honest version is below.
Full version: HONEST-LIMITATIONS.md in the repo. Append-only. If a CMO finds a fifth thing this page should have admitted, that’s where it goes.
The question that built this.
A senior CMO once asked me: “You sent it. Did anyone read it? Did anyone act on it? Did the next launch’s brief land better because of what you learned this time?”
That question is what most AI marketing tools cannot answer. They optimize for content velocity. They produce more, faster. They do not close the loop.
Cadence is built around the people problem and instrumented for adoption. It treats internal teammates as customers, tailors every output to each one, and then watches what they do with it. Every reaction becomes data. Every data point sharpens the next brief. The framework is supposed to get smarter the longer it runs — and the receipts on this page prove it does.
Four layers.
Eleven agents. Sequential handoffs. One agent runs Opus because taste matters there more than throughput. One agent runs continuously because adoption is the only metric that counts.
Five agents produce the launch.
Sequential handoffs. Each agent reads BRAND.md, SOUL.md, and the prior agent’s structured output. Every agent flags claims built on digital research alone as unverified by default.
Four agents learn your team.
The differentiator. People Profile runs every Monday and merges the week’s profile-update events from the Receipts agent. Deliverable Tailor reshapes every Layer 1 output for each teammate. Onboarding Bridge integrates new hires across a 60-day learning protocol — honest about uncertainty until the data earns confidence.
One agent argues with you.
Runs every Friday at 3:00pm. Reads everything the system produced this week — including the Receipts dashboard from 2:30pm. Sends one provocation. Permitted to be uncomfortable. Required to be honest. Silence is a valid output. Filler is not.
One agent measures whether it mattered.
The loop-closer. Watches every signal that already exists in the tools teammates already use — email opens, Slack replies, calendar actions, doc edits, CRM updates. Captures adoption in real time. Feeds it back into People Profile so the next brief is sharper than the last. No output ships without instrumentation.
Layer 1 in action.
Five agents. Sequential handoffs. Each produces a structured artifact the next one reads. Total run time: 47 seconds end-to-end. Click any agent to inspect the artifact it produced for the FORGE launch.
Four principles enforced by hooks.
Cadence will reject outputs that violate these. Not as a warning. As a refusal.
The customer is the subject. Never the company.
“We’re proud to” formations are auto-rejected. Every sentence has the customer or the customer’s moment as the subject.
Teammates are customers, not recipients.
Every output is tailored. No “broadcast to the team.” Six teammates get six versions of the same source artifact.
Digital research is unverified by default.
Any campaign built purely on AI-aggregated or scraped data is flagged as needing human verification before it ships.
Every output gets measured. Or it does not ship.
No brief leaves the system without an instrumentation hook. Adoption is the only metric that counts. The receipts feed back into the People Profile so the next brief is sharper than the last.
Layer 2 in action. Same brief. Six voices.
FORGE
A non-alcoholic craft brew built for the ride home. The parking lot at Buttonwillow after the third session. The diner outside Mulholland. The garage with one buddy still hanging around.
Cadence is launching FORGE as its working case study. Six teammates each have a Cadence profile. The Deliverable Tailor agent reshapes every output for each of them. Then Layer 4 watches what each one does with their version.
“We’re proud to announce the launch of FORGE, a next-generation non-alcoholic craft beverage designed for the active motorcycle lifestyle. FORGE leverages best-in-class brand storytelling and a data-driven channel mix to drive awareness and engagement among performance-oriented consumers.”
One blob, addressed to no one. Triggers Jake’s auto-reject (“lifestyle”). Insults Marcus’s brand instincts. Tells Priya nothing. Gives Tasha no claims matrix. Reads like every AI demo from the last two years. Nobody opens it. Nobody acts on it.
How Cadence learns a teammate.
Personalization only works if the system actually knows the person. So the first thing Cadence does — before it writes a single brief addressed to a new teammate — is bootstrap their profile from real sources, with consent, and show them what it learned before anyone else sees it.
Here’s Sam, our Day-21 PMM, on Day 1 vs. Day 21. Every field is tagged with where the system learned it.
- SURVEY Prefers Slack DM for non-urgent
- SURVEY Works 7:30a–5p PT, hard stop at 5
- SURVEY Wants TL;DR + narrative, not bullets
- SURVEY Sits with disagreement 24h before responding
- SURVEY Auto-rejects: synergy, leverage (verb), rockstar
- WORKDAY Senior PMM, prior 2y8m at Stripe; eng→PM background
- GREENHOUSE Asked sharpest question of any candidate: “why haven’t we sunset our legacy line?”
- PUBLIC LinkedIn cluster: retro design, brand purity in B2B SaaS, opinions on email
- — Time-to-action under launch pressure: UNKNOWN
- — Brief length preference at week 8 vs. week 1: UNKNOWN
- — Cross-functional handoff style w/ Marcus: UNKNOWN
- — 12 more fields: UNKNOWN (awaiting observation)
The framework is honest about what it doesn’t know. Onboarding Bridge runs a 21-day learning protocol — what to do on Day 3, Day 7, Day 14, Day 21 — explicitly designed to fill these gaps without burdening Sam with surveys he didn’t sign up for.
- SURVEY Prefers Slack DM (confirmed by behavior)
- SELF-CORRECTED Auto-reject list extended: + “ninja”
- OBSERVED Reads briefs an average of 3× in first 24h
- OBSERVED Asks his first hard question in week 3 — one week earlier than the bridge predicted
- OBSERVED Pushes back via direct DM, never in a group thread
- OBSERVED Cross-functional handoff w/ Tasha: clean. With Marcus: still emerging
- OBSERVED Ready for tighter briefs as of Mon 5/26 (heavy-context default deprecated)
- OBSERVED Time-to-action under launch pressure: median 28h, trending faster
- SELF-CORRECTED Wants “rider” not “customer” in channel mix table
- OBSERVED Asks Cadence “why” before “what” — give him the reasoning first
- OBSERVED Cadence-trust signal: opens briefs at 5:01pm if sent at 4:55pm. Stops at 5:00 sharp otherwise.
- + 12 more fields populated by observation
The bridge predicted Sam would cross 0.60 confidence in week 4. He crossed it Thursday of week 3. The framework updated its prediction. The next new hire with consent path C gets a tighter default — because the data earned it.
Sam’s first-contact message from Cadence — sent 24 hours after his survey — showed him every profile field with its source, in plain English. He corrected one item (“add ‘ninja’ to the auto-reject list”), asked one sharp question (“why won’t you tell me your guess about Marcus?”), and then said: “Surprised by how specific that is.”
The full first-contact exchange — survey, profile, Sam’s corrections, and Cadence’s refusal to characterize Marcus on his behalf — is in teammates/sam-onboarding-survey-responses.md. The agent that bootstraps a teammate from cold-start is agents/people-research-agent.md. Both ship in the fork.
Layer 4 in action. The receipts.
This is the dashboard the receipts-agent writes every Friday at 2:30pm. It’s the proof — or the absence of proof — that the personalization layer above is doing anything besides looking smart.
Every metric below is computed from signal that already exists in the tools the team already uses (email, Slack, calendar, docs, CRM). No bespoke instrumentation. No content stored — derived signal only.
Week of 2026-05-18 · FORGE launch brief adoption
LIVEalignment score
+6 vs last week
What the system learned this week (and queued for Monday’s profile merge)
- Priya: subject lines that lead with the metric beat those that lead with the question by 18% open-rate. Future Priya briefs default to metric-first subjects.
- Sam: ready for tighter briefs as of Mon 5/26. Heavy-context default deprecated. The Onboarding Bridge was too cautious by one week.
- Katherine: when a brief contains visible cross-functional pushback resolution, she signs off in <2 hours. When it doesn’t, she takes >12 hours and asks for evidence. Make pushback-resolution a default brief element for her.
- System-wide: personalization correlates with -57% time-to-response vs. the non-personalized control brief from Week 18. The premise is being validated weekly.
Marcus has red-lined Pillar 3 three weeks running, same red-line. The framework keeps producing the same wording; he keeps pushing back the same way. Either we fix the wording, or we acknowledge the brand chooses to live with this risk. The system’s job is to surface that we have not made the call. We have not made the call.
This dashboard updates every Friday 2:30pm. The Status Quo Breaker reads it at 2:55pm before its 3pm provocation — so every Friday provocation is informed by what actually happened this week, not by what the system assumes happened. That’s the loop.
Drilling into Marcus. The eval for the most contested teammate.
The dashboard above says Marcus has red-lined Pillar 3 three weeks running. That’s a system observation. How accurate is the deliverable-tailor at predicting Marcus’s red-lines in the first place? Six tailored briefs over four weeks. Six verdicts. Click any case to see the verbatim brief excerpt, the prediction the agent logged before send, Marcus’s actual red-line, and the eval verdict.
accuracy
accuracy
positives
negatives
(don’t over-index)
The headline number — 50% phrase-level accuracy — is not flattering. It’s real. A senior PMM reading this shouldn’t be impressed by the number; they should be impressed that we publish it. Most AI marketing tools never show you their misses.
Full eval: outputs/evals/marcus-redline-eval.md · Methodology and known weaknesses: outputs/evals/methodology.md. Both ship in the fork. Re-run this eval against your most contested reviewer; the template is the file.
Fork it for your org. Honestly this time.
Most GTM systems claim “fork in a weekend.” That claim is fiction the moment you add a real integration. Here’s the actual rollout — broken into the four phases I’d run if I were forking this for your team tomorrow. Cadence ships with a single Claude Code prompt that turns it into YOUR Cadence in one session. Everything after that is real engineering work, properly scoped.
Fork the framework, not the integrations.
Clone forge-launch/. Open Claude Code at the repo root. Paste the contents of FORK-PROMPT.md. Answer Claude’s questions across 5 passes — BRAND.md, SOUL.md, teammates, MEMORY.md, CLAUDE.md. By bedtime, the repo no longer says FORGE anywhere in the source-of-truth files.
→ A working framework configured for your brand. Runs Layer 1 against your launch. No integrations yet — but you can generate a tailored launch brief by morning and send it via your existing tools.
Wire one integration. Gmail read-only.
Follow playbooks/gmail-integration.md. Service account with gmail.metadata scope. Subject-line tagging convention. Brief-tagging hook in your existing mail-merge tool. The privacy posture is metadata-only, defensible to a DPO.
→ Receipts-agent starts watching brief opens, replies, and forward events. First Friday dashboard with real data. Alignment score is now measured, not modeled.
Add Slack + Greenhouse. Bring one new hire into the system.
Follow playbooks/slack-integration.md for the bot scopes and the Status Quo Breaker DM contract. Follow playbooks/greenhouse-webhook.md for the new-hire trigger. Run people-research-agent against your next new hire with explicit consent. Show your CMO the Day-0 → Day-21 profile diff.
→ The conversation where Cadence stops being a thought experiment. Your CMO sees the bootstrap mechanism with their own teammate’s name on it.
Earn the right to run unattended.
Legal reviews the data retention. Security reviews OAuth scopes. Decide which agents run on a recurring schedule (recommended: Monday 6am people-profile, Friday 14:30 receipts, Friday 15:00 SQB) vs. on-demand (everything else). Run the first eval against your most contested reviewer using outputs/evals/methodology.md.
→ Cadence is now actually deployed. Cron infrastructure is live. The Friday dashboard ships every week without anyone running it manually. Drift is measured. The framework gets smarter the longer it runs.
The Day-1 artifact ships today.
FORK-PROMPT.md is a single Claude Code session. It turns Cadence into your-org’s-Cadence in 3–5 focused hours. The four playbooks (playbooks/gmail-integration.md, slack-integration.md, greenhouse-webhook.md, cron-deployment.md) ship with reference code your engineering team can review against your stack.
Layer 3 in action. Every Friday, Cadence argues with me.
Most AI tools agree with you. This one argues. Every Friday at 3:00pm, the Status Quo Breaker (the only agent running Opus, because taste matters more than throughput here) reads the Receipts dashboard from 2:30pm — then sends one provocation informed by what actually happened this week, not by what the system assumed. Silence is a valid output. Filler is not.
Garth — Katherine forwarded your FORGE brief to the CEO within 9 hours, without first asking you to walk her through it. This is the first time the CMO has done that. Either the framework has crossed a trust threshold with her, or she is testing whether the brief stands on its own. You do not know which. If it’s the first, the framework has earned the right to ship without you in the room. If it’s the second, the next brief is a test you didn’t know you were taking.
Meanwhile, Marcus has red-lined Pillar 3 three weeks in a row. Cadence keeps producing the same wording. He keeps pushing back the same way. The framework’s job is to surface that you have not made the call. You have not made the call.
And Priya’s response time has slowed four weeks running. The framework is failing her — or she’s losing trust — or she’s overloaded. The receipts cannot tell you which. You have to ask her.
One of these three is the most important conversation of your week. Which?
Why it’s third, not first.
Layer 3 reads Layer 4’s output. The provocation at 3pm is grounded in the receipts dashboard at 2:30pm. Without Layer 4 watching, Layer 3 is just an LLM with an attitude. With Layer 4, Layer 3 is the one agent that turns adoption data into a Friday afternoon decision.
Why it’s Opus, not Sonnet.
The volume of agents in Cadence is in Layers 1, 2, and 4 — those use Sonnet because we pay for throughput. The Status Quo Breaker runs once a week. We pay the Opus upgrade here and only here, because if the provocation is mediocre the whole system becomes a sycophant.
Why silence is a valid output.
Most AI products generate. The Status Quo Breaker is structurally permitted to send nothing on a low-signal week. The framework would rather skip a Friday than manufacture drama. If your team needs an adversary every week to feel like the system is working — your team probably has a different problem.
Agent prompt: agents/status-quo-breaker.md · Cron: Friday 15:00 local · Handoff packet: see outputs/receipts/weekly-2026-W21.md bottom section.
What Cadence can’t do (yet).
Six things a senior PMM, a skeptical CMO, or a General Counsel will find within 20 minutes of reading this repo. Better that I say them than they do. Full version: HONEST-LIMITATIONS.md in the fork.
It hasn’t been deployed at scale at a company.
The framework has been pressure-tested only by its author against one simulated launch. Forking it for a real org is the experiment we haven’t run yet at someone else’s expense.
The integrations are spec’d, not deployed.
Gmail, Slack, Greenhouse, Workday — all four have reference code in playbooks/. None of them are live against FORGE. The receipts data is realistic; its origin is not.
The eval has one grader.
Garth grades his own system. Methodology document is explicit about this: V2 needs a second senior PMM to grade the same eval set independently. Inter-rater agreement is the next number we owe you.
The privacy posture is policy, not architecture.
“Derived signals only, no content stored” is the rule. Enforcing it at the API layer requires a proxy that strips message bodies before they reach the agent. 2–3 days of engineering. Documented; not built.
The alignment score is unvalidated.
The formula is plausible. The “57% reduction in time-to-response” benchmark is modeled, not measured. We don’t know what a “good” alignment score is across orgs — and the page should not pretend otherwise.
It will fail you if your team is under 4 people.
Cadence’s value comes from cross-functional alignment. With three people, you can have the meeting. Cadence is for orgs where the meeting has stopped working. Also: high turnover kills the long-tail learning. So does positioning that’s still in flux.
If you fork this and find a seventh thing the page should have admitted — email me. HONEST-LIMITATIONS.md is append-only.
Every fork that runs the test suite shows up here.
The receipts-agent thesis applied to the framework itself: the only metric that counts is whether anyone is actually deploying it. So when you fork Cadence and run the test suite, one anonymized event pings a public counter. This page reads from it. No PII, no IP tracking, no fork URL — just a SHA-256 hash that proves a fork is alive. Receiver is 130 lines of Cloudflare Worker code, also in the repo.
the test suite ever
this month
this month
What this number actually means.
If forks total = 1, the only fork running tests is Garth’s. That’s the honest start. Whatever you see above is real.
If the number grows, that’s evidence the framework is being actively forked and tested by other builders. If it doesn’t, that’s evidence Cadence is just a portfolio piece. The landing page is committed to showing whichever is true.
What we send. What we never send.
Per ping: a hash of the fork’s git remote, a hash of the runner’s OS+Python version, the Cadence version, an event type, a timestamp. Six fields total.
Never: your name, your email, your GitHub handle, your IP, the URL itself, the contents of your fork, any environment variable values. Defaults to off. Opt-in is CADENCE_TELEMETRY=on.
Full privacy posture: TELEMETRY.md in the repo. Receiver source: integrations/telemetry/server/worker.js. To turn telemetry off on your fork: export CADENCE_TELEMETRY=off. The default is off; the canonical CI workflow opts in.
About the human in the system.
I’m Garth Beyer. PMM with a demand-gen lifecycle lean, building toward a CMO seat. Cadence is the framework I built while thinking through how AI changes the shape of senior PMM work.
Most AI marketing tools optimize for content velocity. I’m more interested in what AI does to the cross-functional alignment problem — the actual reason most launches underperform. Cadence is what came out of that thinking. It is opinionated. It will reject your draft. It will argue with you on Friday. It will tell you Priya hasn’t opened your last three briefs. That’s the point.
If you’re hiring for a senior PMM, or building an AI-native marketing function, or you want to fork this for your own org — the email below is the right place.
Cadence runs on a private Friday cadence by default. Want to fork it for your org? Download the .zip above. Wire your own receipts to your own stack. Pages don’t lie about what they are.
