Find the keystone
Skill zakelfassi/skdd-commons/packs/2026-07-growth-circle/find-the-keystone
Derive a product's keystone metric — who × does-what × N times × window — by working backwards from engaged users, then stress-test it for causation and gameability before anyone reorganizes around it. Use when a team asks "what's our North Star", when activation work has no target, when an existing keystone was adopted from a blog post rather than cohort evidence, or when GROWTH.md has an Aha but an empty Keystone.From its SKILL.md
npx -y skills add zakelfassi/skdd-commons --skill find-the-keystoneAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.0 KB, 785 tokens by cl100k_base, as published. Nobody here has run it
Find the Keystone
Work backwards from your most engaged users to one metric that operationalizes core value — then try to break it before you build on it.
Gate
Requires gate: aha = open in GROWTH.md (non-empty ## Aha, not
NONE FOUND). If closed, stop and run name-the-aha first — a keystone
without a named aha is a number in search of a meaning.
Inputs
GROWTH.md(## Aha), and event/cohort data: analytics export, SQL access, or server logs. No data → stop, route toinstrument-the-truthfor a minimal keystone-path event trail, resume after first light.
Steps
-
Define "engaged" from the aha, not from activity. Pick the behavior that IS repeated core value delivery (weekly voice note sent, not weekly app open). Select a broad cross-section of users who sustain it.
-
Path backwards. For each engaged user, reconstruct the first N days: what did they do, in what order, how fast? Contrast with a matched cohort that signed up and died. You're hunting the earliest common fork.
-
Compress to the four fields.
who × does-what × how-many-times × within-window. If it needs a fifth clause, it's a dashboard, not a keystone. Prefer legible-to-everyone over statistically maximal. -
Try to kill it — correlation first. The classic critique: the early behavior may be the symptom of intent, not the cause of retention. Design the cheapest causal probe — an experiment that pushes marginal users over the threshold and watches whether retention follows. Pre-register it in the experiment ledger; set causal-probe status.
-
Try to kill it — gameability second. Red-team: how would a well-meaning team inflate this number while destroying value? (Auto-add connections. Prompt pressure.) Write the top 2 gaming vectors next to the metric — they are the anti-Goodhart tripwires.
-
Write the spec with a sunset. To
## Keystone: the four fields, derivation evidence, causal-probe status, gaming vectors, and a review date (default: 2 quarters). Setgate: keystone = open. A keystone without planned obsolescence is Goodhart fuel.
Conventions
- One keystone. Contexts may read it differently (
reset-for-context), but the product has one center of gravity at a time. - Never adopt a keystone by analogy ("we're like Slack, so 2,000 messages"). Analogy proposes; only your cohorts dispose.
- Legibility is load-bearing: if the whole team can't recite it, it can't do its actual job, which is organizing people.
Edge Cases
- Too few users to cohort. Say so. Output a provisional keystone tagged
hypothesis, restrictrun-the-loopto activation-only experiments, and set the review to "at 500 engaged users". - The causal probe fails. A success of the method. Log the busted candidate in the lore ledger with its epitaph and return to step 2 for the next common fork.
- Two candidates tie. Pick the one the team can recite and affect.
- Sunset date passed. Re-run steps 1–5 against fresh cohorts before any other growth work; a stale keystone silently closes its gate.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.