Writing okrs
Writes, refines, and evaluates Objectives and Key Results (OKRs) for any team or org size. Applies a structured quality rubric (6 Objective dimensions, 8 Key Result dimensions), enforces committed vs. aspirational tagging, catches the necessary-but-not-sufficient trap, detects 20 named anti-patterns by severity, and produces complete OKR documents with baselines, targets, metric definitions, and initiative separation. Use when drafting new OKRs, improving or refining draft OKRs, scoring OKRs against a quality rubric, auditing an OKR program for anti-patterns, running planning-week reviews, or when the user mentions OKRs, key results, quarterly goals, objectives, Q1/Q2/Q3/Q4 goal-setting, or OKR planning.From its SKILL.md
npx -y skills add msewell/agent-stuff --skill writing-okrsAssembled 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
7.0 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Writing OKRs
Route by task
| User intent | Workflow |
|---|---|
| Draft new OKRs from provided context | Write workflow |
| Improve existing draft OKRs | Refine workflow |
| Score or audit existing OKRs | Evaluate workflow |
Write workflow
-
Structure the output using the template. Load references/03-templates.md and fill every field. Never omit
Parent OKR,Type, orWhy this matters. -
Draft Objectives. Each must be qualitative (no numbers), directional, and pass the "Who Cares?" test: if we 1.0'd this, would a customer, investor, or employee notice? If not, reword or cut.
-
Draft Key Results using the 4-part formula:
[metric name] from [baseline] to [target] by [date]If a baseline is unknown, use an explicit ⚠️ placeholder — never silently omit it. Format:
⚠️ [replace with actual — e.g., 88%]. A KR with an unfilled baseline cannot be scored at mid-cycle. -
Apply the two litmus tests to every KR:
- Output vs. outcome: Can the KR be checked off without a metric moving? If yes, it's a task — rewrite as an outcome.
- Necessary but not sufficient: If the team scored 1.0 on every KR, is it possible the Objective still wasn't achieved? If yes, the KR set is insufficient — add or rewrite KRs until their collective success guarantees the Objective.
-
Tag every OKR as committed or aspirational (see Committed vs. aspirational). An untagged OKR is a rubric hard fail.
-
Separate initiatives from Key Results. List initiatives (the projects and bets believed to move the KRs) in the
Initiativessection — not in the KR list. If initiatives appear in KR slots, move them. -
Final rubric pass. Run references/01-rubric.md on every Objective and KR. Include a compact rubric summary table in the output (dimension → score → pass/fail per Objective and per KR) so the quality check is transparent. Fix anything below threshold before finalizing.
Refine workflow
- Read the draft OKRs in full.
- Apply the two litmus tests (output vs. outcome; necessary but not sufficient) to every KR.
- Check that every KR has all 4 formula parts: metric, baseline, target, date.
- Check that every Objective passes the "Who Cares?" test and contains no numbers.
- Check committed/aspirational tagging on every OKR.
- Run references/01-rubric.md on each Objective and KR.
- Produce per-OKR output:
- Compact rubric score table (dimension → score → pass/fail)
- Narrative critique and concrete rewrite suggestion for every failing dimension
- Clearly distinguish hard fails (any 0 on K1, K2, K8, or any Objective dimension) from point deductions
Evaluate workflow
For program-level audits, planning-week reviews, or end-of-cycle retrospectives.
- Score each Objective on all 6 dimensions from references/01-rubric.md. Flag any 0 as a hard fail.
- Score each KR on all 8 dimensions. Flag any 0 on K1, K2, or K8 as a hard fail.
- Run the two OKR-as-a-whole checks: type tagging and initiative separation.
- Check for anti-patterns using references/02-anti-patterns.md.
- Produce:
- Rubric score table per OKR
- Narrative per failing dimension with specific rewrite suggestions
- Anti-pattern findings, grouped by severity
- Health verdict: healthy (0 critical, ≤2 high) / needs work (0 critical, 3–5 high) / at risk (any critical, or ≥6 high)
- Top 3 prioritized fixes
Committed vs. aspirational
Every OKR must be explicitly tagged. Mislabeling has predictable failure modes: treating an aspirational OKR as committed drives sandbagging; treating a committed OKR as aspirational signals it's optional.
| Type | Expected score | Miss signal | Use for |
|---|---|---|---|
| Committed | 1.0 | Anything < 1.0 is a miss | Regulatory deadlines, fundraising milestones, contractual deliverables |
| Aspirational | 0.6–0.7 | Consistent 1.0 means sandbagging | Growth targets, new markets, ambitious technical bets |
Reasonable starting mix: two-thirds aspirational, one-third committed. Too many committed OKRs turns the program into a delivery contract.
Key constraints
- 3–5 Objectives, 2–4 KRs each. Start by drafting, then cut. Teams capping at 1–3 Objectives complete significantly more KRs than those juggling five or more.
- No numbers in Objectives. Numbers belong in KRs.
- KPIs are not OKRs. A KPI is a vital sign monitored continuously. A KR is a deliberate campaign to move a KPI from X to Y by date Z. A KPI becomes a KR when you commit to acting on it.
- Initiatives belong in the roadmap, not the KR list. Conflating them is the silent killer of most OKR rollouts.
- Binary KRs are task KRs in disguise. "Ship X" is binary: done or not done. Reframe as the outcome the ship is intended to cause.
Alignment
Every OKR should answer: what bigger thing does this support? Record it in the Parent OKR field.
- Use lineage (family tree) over strict cascading. Children can be proposed bottom-up; leadership doesn't pre-assign them.
- For cross-functional outcomes, use a shared Objective with joint ownership rather than splitting the outcome across team OKRs that pretend to be independent.
- Cap alignment depth at 2 levels (company → team) for most orgs. Three levels only when the org genuinely needs an intermediate layer.
- Healthy top-down/bottom-up mix: ~60% from leadership direction, ~40% from the team's own knowledge of the work.
Quick anti-pattern scan
Before finalizing any OKR set, check these four critical failures first:
| Anti-pattern | Signal |
|---|---|
| Tasks as KRs | Any KR can be checked off without a metric moving |
| Comp coupling | OKR scores affect bonuses, raises, or promotion decisions |
| Set-and-forget | No weekly check-in cadence established alongside the OKRs |
| Leadership exempt | CEO/founder has no visible OKRs on the same cadence as the team |
Full 20-item checklist with severity ratings and standard fixes: references/02-anti-patterns.md
What ships with it: 3 files
12.2 KB alongside SKILL.md
references/
- 01-rubric.md3.8 KB
- 02-anti-patterns.md4.2 KB
- 03-templates.md4.1 KB