write-okrs — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited write-okrs (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill when you need to translate strategic intent into measurable quarterly commitments. It adds the most value when:
write-product-strategy to close the loop between strategy and executionThe skill scans the current project directory for STRATEGY.md automatically. If found, it reads the strategy pillars and proposes a first draft of OKRs for your review. You can also provide:
Path to a strategy document:
Path: ./STRATEGY.mdPasted strategy pillars:
Pillar 1: Improve activation for self-serve sign-ups
Pillar 2: Expand into the mid-market segment (50–500 employees)
Pillar 3: Build a foundation for enterprise compliance (SOC 2, SSO)A description of strategic priorities:
This quarter we're focused on two things: reducing time-to-value for new users
so that more of them reach the activation milestone, and starting the compliance
work that will unlock enterprise deals in Q4.Optionally, previous OKRs to build on:
Path: ./OKRs-Q1-2026.mdIf previous OKRs are provided, the skill uses them to set baselines for Key Results where applicable, and identifies KRs that were not achieved and may carry forward.
The skill follows five steps to produce OKRs that are ambitious, measurable, and honest about confidence levels.
Before reading the user's strategy input, silently scan for source documents:
cat STRATEGY.md 2>/dev/null
find . -maxdepth 2 -name "OKRs-*.md" 2>/dev/null | sort | xargs cat 2>/dev/nullIf STRATEGY.md is found, use it as the primary source for Step 1 rather than asking the user to describe the strategy. If existing OKR files are found, surface them: "I found existing OKRs — should I update these or draft a new set for a different period?" Do not mention the scan.
The skill reads the strategy document or input and identifies the 2–4 major strategic pillars. A pillar is a distinct area of focus that the strategy is betting on — not a feature, not a project, but a direction. If the input contains more than 4 pillars, the skill asks you to prioritise: "You've listed 6 strategic areas. OKRs work best with 2–4 Objectives. Which of these are the top priorities for this quarter?"
Each pillar becomes the source for exactly one Objective.
For each pillar, the skill drafts one Objective. A well-formed Objective has three properties:
The skill writes an Objective in the form: "[Verb] [what you want to achieve] [for whom / in what context] by [end of quarter]."
Example: "Make self-serve activation feel effortless for new users by end of Q2 2026."
For each Objective, the skill drafts 2–4 Key Results. The skill will ask for baseline and target values if they are not provided in the strategy input:
"For the activation Objective, I need a baseline and target to write measurable KRs. What is the current activation rate (% of sign-ups reaching the activation milestone within 7 days)? And what would a good quarter look like?"
If no baseline is available, the skill writes a KR with a placeholder: "Increase [metric] from [TBD — establish baseline in week 1] to [target]." The TBD baseline is flagged as a week-1 task.
This is the most important step. Before finalising any KR, the skill applies the outcome test:
"Does this KR measure a result that matters to a user or the business — or does it measure something we shipped?"
For every output KR found, the skill rewrites it as an outcome KR and explains the difference. If a launch must be tracked (e.g. a compliance deadline), it is retained as a milestone, not a KR.
Each KR is marked with a confidence level:
The skill asks for your assessment: "For each KR, is this Committed (>70% confident) or Stretch (<50% confident)?" If you are unsure, the skill defaults to Stretch and flags it for team calibration.
The skill saves the OKRs as OKRs-[period].md in the current project directory, where [period] is derived from the planning period (e.g. OKRs-Q2-2026.md). The output follows this full template:
# OKRs: [Period]
**Strategy source:** [filename or "Pasted input"]
**Date drafted:** [date]
**Owner:** [PM name if provided]
---
## Objective 1: [Objective statement]
**Strategy pillar:** [Pillar name from strategy]
**Why this quarter:** [One sentence on why this is a priority now]
### KR 1.1: [Key Result statement]
- **Baseline → Target:** [current value] → [target value]
- **Measurement:** [How this will be tracked — metric name, data source]
- **Confidence:** Committed / Stretch
- **Strategy pillar:** [Pillar name]
### KR 1.2: [Key Result statement]
- **Baseline → Target:** [current value] → [target value]
- **Measurement:** [How this will be tracked]
- **Confidence:** Committed / Stretch
- **Strategy pillar:** [Pillar name]
---
## Objective 2: [Objective statement]
**Strategy pillar:** [Pillar name]
**Why this quarter:** [One sentence]
### KR 2.1: [Key Result statement]
- **Baseline → Target:** [current value] → [target value]
- **Measurement:** [How this will be tracked]
- **Confidence:** Committed / Stretch
- **Strategy pillar:** [Pillar name]
---
## Summary Table
| Objective | KR | Baseline | Target | Confidence |
|---|---|---|---|---|
| [O1 short label] | [KR 1.1 short label] | [value] | [value] | Committed |
| [O1 short label] | [KR 1.2 short label] | [value] | [value] | Stretch |
| [O2 short label] | [KR 2.1 short label] | [value] | [value] | Committed |These rules are enforced before the final output is saved.
These are the most common ways OKRs go wrong. The skill identifies and corrects each of these patterns before saving.
Bad: "Launch the new onboarding flow" This is a task, not a result. Whether or not the launch happens says nothing about whether it worked.
Rewrite: "Increase 7-day activation rate from 22% to 35% following onboarding redesign launch" Now the KR measures whether the launch achieved its purpose. If activation does not improve, the team has signal to iterate.
Bad: "Increase page views from 500K to 1M per month" Page views are easily influenced by low-quality traffic, SEO changes, or marketing spend that has nothing to do with product quality. A team can hit this KR while the product gets worse.
Rewrite: "Increase weekly active users who complete at least one core workflow from 18K to 30K" This measures meaningful engagement — users doing the thing the product is for — not just visits.
Bad: "Write and publish 12 blog posts about our API" The team can guarantee this outcome by just doing the work. There is no uncertainty, no business impact, and no test of whether the strategy is working.
Rewrite: "Increase inbound API trial sign-ups from 80 to 200 per month" Now the KR measures whether the content investment (and other efforts) are moving a business needle. The team must earn the result, not just complete a task.
Ask your assistant to write OKRs by saying things like:
This skill will automatically, run the five-step process, and save the results as OKRs-[period].md in your project directory.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.