Purpose
Turn high-level company goals or strategic themes into a rigorously structured OKR set — with objectives that inspire, key results that are genuinely measurable, and a scoring rubric that makes end-of-quarter grading unambiguous. Solves the two most common OKR failures: objectives that are actually tasks, and key results that can't be measured.
When to Use
Invoke this skill when the user asks to:
- Convert a strategic theme or company goal into OKRs
- Draft quarterly or annual OKRs for a product team or function
- Fix vague, task-based, or unmeasurable key results
- Align team-level OKRs to company-level objectives
- Set up an OKR scoring or grading system for the quarter
- Review a draft OKR set for common structural problems
Inputs Required
Before starting, collect:
- Strategic theme or company goal: The 1-3 priorities this OKR set must serve
- Team/function: Whose OKRs these are (product, growth, platform, whole company)
- Time horizon: Quarter, half, or year
- Current baselines: Where key metrics stand today (activation rate, NRR, MAU, etc.)
- Known constraints: Headcount, budget, dependencies, or fixed commitments
- Ambition level: Committed (must-hit) vs. aspirational (moonshot) — or a mix
- Existing metrics/instrumentation: What is already tracked vs. what would need new measurement
If baselines are missing, flag each key result that needs a baseline before it can be finalized rather than inventing numbers.
Instructions
Step 1: Diagnose the Input
Classify what the user gave you before building anything:
- Strategic theme ("expand upmarket"): needs decomposition into 2-4 objectives
- Company goal ("grow ARR to $10M"): already an outcome — build the KR ladder beneath it
- Draft OKRs to fix: run the anti-pattern check in Step 5 first, then rebuild
- A list of projects: reframe as outcomes — projects are how, not what OKRs measure
State which case you're in, then proceed.
Step 2: Write the Objectives (2-4)
Each objective is a qualitative, inspiring statement of what to achieve — not how.
- Test for objective quality: Is it an outcome, not a task? Would the team feel it's worth pursuing? Is it time-bounded to the horizon?
- Reject objectives that contain a metric (that's a KR), a feature name (that's a project), or "launch/ship/build" (that's activity)
- Cap at 4 — more than 4 objectives means the team has no priorities
- Format: a short, memorable phrase a team could rally around
Step 3: Build Key Results (3-5 per objective)
Each KR must answer: "How will we know we achieved the objective?" with a number.
For every key result, specify:
- Metric: The measurable quantity
- Baseline → Target: Where it is now → where it needs to be (e.g., "Activation rate: 34% → 50%")
- Type: Leading (predictive, controllable) or Lagging (outcome, confirms result)
- Measurement source: Where the number comes from (analytics tool, CRM, survey)
KR quality rules:
- Every KR is a number with a direction — no "improve," "increase," or "enhance" without a target
- Balance leading and lagging: at least one leading indicator per objective so the team gets early signal
- No binary done/not-done KRs unless truly milestone-based — prefer graded metrics
- A KR is not a task ("run 3 experiments" is activity; "lift trial-to-paid by 8pts" is a result)
Step 4: Set the Scoring Rubric
Define how each KR is graded at quarter-end on a 0.0–1.0 scale:
- 0.7–1.0: Delivered or exceeded — for aspirational OKRs, 0.7 is a win
- 0.4–0.6: Real progress, missed target
- 0.0–0.3: Little to no progress — signals a planning or execution problem
- Note per-objective which are committed (expect 1.0) vs. aspirational (0.7 = success)
- Provide the formula for partial scores:
(actual − baseline) / (target − baseline)
Step 5: Anti-Pattern Check
Scan the full set and flag any that appear:
- Objectives that are disguised tasks or feature launches
- Key results with no baseline or no numeric target
- "Sandbagging" — targets that are trivially hit (all leading indicators, no stretch)
- Too many OKRs (>4 objectives or >5 KRs each) diluting focus
- KRs that measure output (tickets closed) rather than outcome (retention lifted)
- Missing measurement source — a KR you can't instrument is not a KR
Step 6: Alignment Note
If team-level, add a short paragraph showing how each objective ladders up to the stated company goal or theme — one line per objective mapping to the parent priority.
Output Format
- Structure: Objectives as H3 headers; KRs as a table beneath each (Metric | Baseline → Target | Type | Source); scoring rubric and anti-pattern flags as their own sections
- Length: 700–1,100 words
- Format: Structured document with tables for key results
- Sections: Input diagnosis → Objectives with KR tables → Scoring rubric → Anti-pattern flags → Alignment note
- Tone: Product leadership — decisive, plain-spoken, allergic to vague language
Quality Checklist
Before delivering output, verify:
- [ ] Objective count is between 2 and 4; each is an outcome, not a task or feature
- [ ] Every objective has 3–5 key results (count them)
- [ ] Every KR has a baseline, a numeric target, and a measurement source — or is explicitly flagged as needing a baseline
- [ ] Each objective has at least one leading indicator, not only lagging metrics
- [ ] Scoring rubric labels each objective as committed or aspirational
- [ ] Anti-pattern check has been run and any flags surfaced explicitly
Notes
- The single most common failure is KRs that are tasks in disguise — if "done" is a yes/no, it's usually a milestone, not a key result
- For aspirational OKRs, coach the user that hitting 1.0 means the target was too low, not that the quarter was a triumph
- When baselines don't exist, the highest-value first move is often instrumenting the metric — flag this rather than fabricating a starting number
- Fewer, sharper OKRs beat comprehensive ones; if the user pushes for 6+ objectives, recommend cutting to the 3 that matter most
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills