Measure the loop. The Founder-to-Builder Activation Loop as runnable, attributable code. Feed it a founder cohort, get back the activation funnel, time-to-second-build, the leaky-bucket flag, and the product-qualified accounts ready for a named GTM owner.
Most evangelism dies of an attribution problem: you can fill a room, but you can't prove the room turned into Claude logos. This repo is the answer to that problem in code. It scores a cohort the same way every run, names the biggest leak, and hands you the one number worth your name: qualified PQA handoffs, with time-to-second-build as the leading indicator. It watches the leaky bucket because the hardest growth problems are not the empty top of the funnel, they are the leaks that fast growth widens.
- Problem it solves: activation is the number-one growth problem in AI, and the hardest part is proving it. A funnel on a slide is a memo. A funnel you can run is a demo.
- Run in under 5 minutes:
python -m activation_loop examples/cohort.json- stdlib only, no dependencies. - Production lesson it encodes: tie activation to net-new logos. Reach is not a result. A second build is.
This is the instrument behind the deck's activation-loop slide, and the sibling of the rest of the founder-to-builder demo set: claude-startup-linter diagnoses the company, claude-prompt-to-production builds the product, claude-pitch-deck-linter builds the raise, claude-agent-linter hardens the agent, and claude-operator-loop operates the loop. This repo measures the activation that operator-loop then runs on.
git clone https://github.com/cfregly/claude-activation-loop && cd claude-activation-loop
python -m activation_loop examples/cohort.json # the readout
python -m activation_loop examples/cohort.json --json # machine-readable
python -m activation_loop examples/cohort.json --min-activation 0.4 # CI gate
python tests/test_metrics.py # the test suiteEach founder account carries the loop stages it reached and the day it reached them (day 0 is the touchpoint), plus a spend trend:
{"name": "acct_02", "spend_trend": "up",
"reached": {"touchpoint": 0, "signup": 0, "first_call": 1,
"first_build": 3, "second_build": 10, "production": 22}}The stages are the loop: touchpoint, signup, first API call, first working build, second build, weekly active, production, GTM handoff.
The readout is the whole loop, split into activation and retention.
Activation
- The funnel: count, share of the top, and conversion from the previous stage, for every loop stage.
- Activation rate: first working build over signup.
- Time-to-second-build: the median, and the best early predictor of who becomes a logo.
- Biggest drop-off: the real activation leak, with the selective handoff gate excluded on purpose.
Retention (the half the renewal turns on)
- Second-build retention: came back to build again, the best early predictor.
- Engagement retention: builders who became weekly-active, the leading indicator of paid retention.
- Expansion to production: weekly-active builders who reached production, the renewal.
- Leaky-bucket and engagement-leak flags: a strong top of funnel with a weak second build, or builders who never return weekly. Acquisition poured into low retention compounds to near zero.
- Biggest drop-off: the real activation leak, with the selective handoff gate excluded on purpose.
- PQAs newly ready to hand off: accounts in production with a rising spend trend that have not been handed off yet. Sustained usage is the trigger, not a vibe.
- The number you own: qualified PQA handoffs, with time-to-second-build as the leading indicator.
python -m activation_loop cohort.json --min-activation 0.4 || exit 1The same evals-before-vibes discipline you would give an agent's behavior, applied to a program. A cohort below the activation bar fails the build.
Packaged as a Claude Skill in skills/activation-loop/SKILL.md. Install it as a Claude Code plugin with /plugin marketplace add cfregly/claude-activation-loop then /plugin install activation-loop@activation-loop-plugins, or upload the skills/activation-loop/ folder in the Claude app under Settings > Skills (see Anthropic's skills guide). Then say "measure my activation cohort" or "where is my funnel leaking." Claude runs the readout, names the leak, and lists the accounts ready for a GTM handoff.
The readout is only as honest as the cohort you feed it. It measures the loop you record. It does not collect the events or verify that a build was real. The thresholds (the leaky-bucket flag, the activation bar) are defaults to argue with, not laws. Small cohorts move on a single account, so read each rate alongside its count.
MIT. All cohort data in examples/ is fictional.