OKR Builder Skill
Write ambitious, measurable OKRs that connect product work to company strategy. Avoid vanity metrics, output-focused key results, and objectives that sound like task lists.
Reads from / Writes to the Brain
If a professional-brain (brain/) exists, ground in it instead of re-asking for what you already know:
- Read first:
context.md (metric definitions), knowledge/strategy.md (where the product is going), and any open hypotheses/. Run python3 ../professional-brain/scripts/brain_query.py ./brain "<objective theme>" and carry each fact's provenance tag through — don't set a key result off a [hunch] as if it were [data].
- 📥 Propose to the Brain: after producing, propose logging the chosen objectives + KR targets as a
decisions/ record (the period's bet) and any new metric definitions to knowledge/, each provenance-tagged. Show them, get a yes, then write with ../professional-brain/scripts/brain_write.py … --commit (append-only, dry-run by default).
Working from a brief
You will often get a short brief without every detail (no baselines, no exact numbers). Always deliver a complete, specific OKR set anyway — do not stop to ask questions and do not leave bracketed placeholders like [target]. Where a baseline or number is missing, infer a realistic value from the brief and the domain, and mark it (assumed — confirm). A clearly-labelled assumed baseline (e.g. "activation 40% (assumed) → 60%") is always better than a blank or an invented-as-fact figure.
Deeper Materials
references/bad-okr-gallery.md — six realistic bad OKRs with diagnosis and rewrite (disguised roadmap, unfalsifiable objective, sandbagging, uncontrollable KR, metric zoo, missing guardrail), ending in a 5-question diagnostic. Use it when reviewing existing OKRs — match against the gallery before writing feedback.
templates/okr-worksheet.md — a fill-in worksheet whose columns enforce the quality gates (baseline source, drift test, control test, guardrail) plus a pre-committed quarter-end scoring rubric. Offer it when a team wants to draft OKRs themselves.
OKR Fundamentals
Objective: Qualitative, inspiring, time-bound. Answers "where are we going?"
Key Result: Quantitative, specific, measurable. Answers "how will we know we've arrived?"
The Test for a Good KR
- Can it be scored 0.0–1.0 at the end of the period?
- Does it measure outcome, not output? ("Revenue from new customers increased by 30%" not "Launch 3 features")
- Is it ambitious but achievable? (Aim for 70% attainment as the gold standard)
- Is it within the team's control?
Common OKR Anti-Patterns to Flag and Fix
| Anti-Pattern |
Example |
Better Version |
| Task masquerading as KR |
"Launch onboarding redesign" |
"New user activation rate increases from 42% to 65%" |
| Vanity metric |
"Get 10,000 app downloads" |
"30-day retention for new users reaches 40%" |
| Binary KR |
"Ship API v2" |
"API v2 adopted by 80% of active integrations" |
| Too many KRs |
6+ per objective |
Max 3–4 KRs per objective |
| No baseline |
"Improve NPS" |
"NPS increases from 32 to 50" |
Always flag anti-patterns and offer a rewrite.
Output Format
[Quarter] OKRs — [Team/Product Area]
Objective 1: [Inspiring, qualitative statement]
Why this matters: [1–2 sentence strategic context]
| # |
Key Result |
Baseline |
Target |
Measurement Method |
| KR1 |
[Measurable outcome] |
[Current state] |
[Target] |
[How measured] |
| KR2 |
[Measurable outcome] |
[Current state] |
[Target] |
[How measured] |
| KR3 |
[Measurable outcome] |
[Current state] |
[Target] |
[How measured] |
Owner: [Name/Role]
Check-in cadence: Weekly
Repeat for each objective. Recommend 2–4 objectives per team per quarter.
Scoring Guide to Include
At quarter end, score each KR:
- 0.7–1.0 = Excellent (0.7 is the "sweet spot" — if all KRs score 1.0, they weren't ambitious enough)
- 0.4–0.6 = Made progress but missed
- 0.0–0.3 = Missed — needs retrospective discussion
Inputs (infer any not provided — label assumptions)
- Team or individual the OKRs are for
- Quarter and year
- Company or product North Star metric (OKRs should connect to this — if not given, infer a plausible one and label it (assumed))
- Top 3 priorities or goals for this quarter (rough notes are fine)
- Any existing OKRs to review or improve (optional)
Guidelines
- Connect OKRs to the company/product North Star; if it isn't given, infer a plausible one and label it (assumed) rather than asking
- Recommend no more than 3 objectives per team per quarter
- If user provides output-based goals, always reframe as outcomes
- Include a "health check" section flagging which KRs have no current baseline data
- Remind user: OKRs are not performance reviews — they should be ambitious enough that missing them is okay
Scoring Rubric (0–40)
Score any output of this skill before handing it over; 32+ is ship-quality.
| Dimension |
0 |
5 |
10 |
| Outcome orientation |
KRs are a shipped-feature task list ("launch X", "complete Y") |
Mostly outcomes, but one or more KRs are outputs or binary ship/no-ship |
Every KR is an outcome metric scorable 0.0–1.0 by degree of achievement |
| Baseline & measurability |
No baselines or measurement methods; KRs cannot be scored at quarter end |
Targets present but several baselines missing or unsourced, with no health-check flag |
Every KR has baseline, target, and measurement method; missing data is flagged in a health check with a plan to instrument |
| Ambition calibration |
Targets are last quarter's trendline (sandbagged) or pure fantasy with no path |
Some stretch, but nobody could say what a 0.7 score looks like |
Calibrated so 0.7 attainment is the expected good quarter; sandbagged proposals and moonshots are called out and corrected |
| Strategic focus & control |
No link to a North Star; 5+ objectives or KR zoo; KRs depend on other teams' work |
Ladders loosely to strategy but objectives are overloaded or one KR fails the control test |
≤3 objectives with ≤4 KRs each, every objective explicitly ladders to the North Star, and every KR is within the team's control |
Quality Checks
Anti-Patterns
1---2name: okr-builder3description: Create well-structured OKRs (Objectives and Key Results) for product teams, startups, and individuals. Use when asked to write OKRs, set quarterly goals, define key results, or review existing OKRs. Produces a complete OKR set with objectives, measurable key results, baselines, and a scoring guide.4---5
6# OKR Builder Skill
7
8Write ambitious, measurable OKRs that connect product work to company strategy. Avoid vanity metrics, output-focused key results, and objectives that sound like task lists.
9
10## Reads from / Writes to the Brain
11
12If a [`professional-brain`](../professional-brain/SKILL.md) (`brain/`) exists, ground in it instead of re-asking for what you already know:
13
14- **Read first:** `context.md` (metric definitions), `knowledge/strategy.md` (where the product is going), and any open `hypotheses/`. Run `python3 ../professional-brain/scripts/brain_query.py ./brain "<objective theme>"` and carry each fact's provenance tag through — don't set a key result off a `[hunch]` as if it were `[data]`.
15- **📥 Propose to the Brain:** after producing, propose logging the chosen objectives + KR targets as a `decisions/` record (the period's bet) and any new metric definitions to `knowledge/`, each provenance-tagged. Show them, get a yes, then write with `../professional-brain/scripts/brain_write.py … --commit` (append-only, dry-run by default).
16
17## Working from a brief
18
19You will often get a short brief without every detail (no baselines, no exact numbers). **Always deliver a complete, specific OKR set anyway** — do not stop to ask questions and do not leave bracketed placeholders like `[target]`. Where a baseline or number is missing, infer a realistic value from the brief and the domain, and mark it *(assumed — confirm)*. A clearly-labelled assumed baseline (e.g. "activation 40% *(assumed)* → 60%") is always better than a blank or an invented-as-fact figure.
20
21## Deeper Materials
22
23- **`references/bad-okr-gallery.md`** — six realistic bad OKRs with diagnosis and rewrite (disguised roadmap, unfalsifiable objective, sandbagging, uncontrollable KR, metric zoo, missing guardrail), ending in a 5-question diagnostic. Use it when *reviewing* existing OKRs — match against the gallery before writing feedback.
24- **`templates/okr-worksheet.md`** — a fill-in worksheet whose columns enforce the quality gates (baseline source, drift test, control test, guardrail) plus a pre-committed quarter-end scoring rubric. Offer it when a team wants to draft OKRs themselves.
25
26## OKR Fundamentals
27
28**Objective:** Qualitative, inspiring, time-bound. Answers "where are we going?"
29**Key Result:** Quantitative, specific, measurable. Answers "how will we know we've arrived?"
30
31### The Test for a Good KR
32- Can it be scored 0.0–1.0 at the end of the period?
33- Does it measure outcome, not output? ("Revenue from new customers increased by 30%" not "Launch 3 features")
34- Is it ambitious but achievable? (Aim for 70% attainment as the gold standard)
35- Is it within the team's control?
36
37## Common OKR Anti-Patterns to Flag and Fix
38
39| Anti-Pattern | Example | Better Version |
40|---|---|---|
41| Task masquerading as KR | "Launch onboarding redesign" | "New user activation rate increases from 42% to 65%" |
42| Vanity metric | "Get 10,000 app downloads" | "30-day retention for new users reaches 40%" |
43| Binary KR | "Ship API v2" | "API v2 adopted by 80% of active integrations" |
44| Too many KRs | 6+ per objective | Max 3–4 KRs per objective |
45| No baseline | "Improve NPS" | "NPS increases from 32 to 50" |
46
47Always flag anti-patterns and offer a rewrite.
48
49## Output Format
50
51### [Quarter] OKRs — [Team/Product Area]
52
53---
54
55**Objective 1: [Inspiring, qualitative statement]**
56
57*Why this matters:* [1–2 sentence strategic context]
58
59| # | Key Result | Baseline | Target | Measurement Method |
60|---|---|---|---|---|
61| KR1 | [Measurable outcome] | [Current state] | [Target] | [How measured] |
62| KR2 | [Measurable outcome] | [Current state] | [Target] | [How measured] |
63| KR3 | [Measurable outcome] | [Current state] | [Target] | [How measured] |
64
65*Owner:* [Name/Role]
66*Check-in cadence:* Weekly
67
68---
69
70Repeat for each objective. Recommend 2–4 objectives per team per quarter.
71
72## Scoring Guide to Include
73
74At quarter end, score each KR:
75- 0.7–1.0 = Excellent (0.7 is the "sweet spot" — if all KRs score 1.0, they weren't ambitious enough)
76- 0.4–0.6 = Made progress but missed
77- 0.0–0.3 = Missed — needs retrospective discussion
78
79## Inputs (infer any not provided — label assumptions)
80
81- **Team or individual** the OKRs are for
82- **Quarter and year**
83- **Company or product North Star metric** (OKRs should connect to this — if not given, infer a plausible one and label it *(assumed)*)
84- **Top 3 priorities or goals for this quarter** (rough notes are fine)
85- **Any existing OKRs to review or improve** (optional)
86
87## Guidelines
88
89- Connect OKRs to the company/product North Star; if it isn't given, infer a plausible one and label it *(assumed)* rather than asking
90- Recommend no more than 3 objectives per team per quarter
91- If user provides output-based goals, always reframe as outcomes
92- Include a "health check" section flagging which KRs have no current baseline data
93- Remind user: OKRs are not performance reviews — they should be ambitious enough that missing them is okay
94
95## Scoring Rubric (0–40)
96
97Score any output of this skill before handing it over; 32+ is ship-quality.
98
99| Dimension | 0 | 5 | 10 |
100|---|---|---|---|
101| Outcome orientation | KRs are a shipped-feature task list ("launch X", "complete Y") | Mostly outcomes, but one or more KRs are outputs or binary ship/no-ship | Every KR is an outcome metric scorable 0.0–1.0 by degree of achievement |
102| Baseline & measurability | No baselines or measurement methods; KRs cannot be scored at quarter end | Targets present but several baselines missing or unsourced, with no health-check flag | Every KR has baseline, target, and measurement method; missing data is flagged in a health check with a plan to instrument |
103| Ambition calibration | Targets are last quarter's trendline (sandbagged) or pure fantasy with no path | Some stretch, but nobody could say what a 0.7 score looks like | Calibrated so 0.7 attainment is the expected good quarter; sandbagged proposals and moonshots are called out and corrected |
104| Strategic focus & control | No link to a North Star; 5+ objectives or KR zoo; KRs depend on other teams' work | Ladders loosely to strategy but objectives are overloaded or one KR fails the control test | ≤3 objectives with ≤4 KRs each, every objective explicitly ladders to the North Star, and every KR is within the team's control |
105
106## Quality Checks
107
108- [ ] Each KR is measurable with a baseline and target
109- [ ] No output-based KRs (no "launch X" or "complete Y")
110- [ ] Maximum 4 KRs per objective
111- [ ] OKRs connect to the company or product North Star
112- [ ] Ambitious enough that 0.7 attainment is the expected score
113
114## Anti-Patterns
115
116- [ ] Do not accept output-based key results — any KR phrased as "launch X" or "complete Y" must be rewritten as an outcome with a baseline and target
117- [ ] Do not write OKRs without asking for the company or product North Star — OKRs disconnected from the strategic context are just a goal-setting exercise
118- [ ] Do not write more than 4 KRs per objective — too many KRs dilute focus and make scoring ambiguous at quarter end
119- [ ] Do not use binary KRs (ship/don't ship) — every KR must be scorable on a 0.0–1.0 scale based on degree of achievement
120- [ ] Do not skip the health check section on baselines — OKRs without current baselines cannot be scored objectively at quarter end