Syncs all changes from v1.0.0 through v1.3.0: v1.1 (quick fixes): - Fix deprecated Viva Goals references - Add DFO-OKR terminology mapping - Add tillitsvalgt/fagforening perspective - Update Objectives recommendation from 3-5 to 2-3 v1.1 (persistent context): - Deep onboarding interview (full/mvp) - Persistent .claude/okr/ directory tree - Context-aware commands - Cycle archival with retrospective v1.3 (AI-first differentiators): - /okr:gap — tildelingsbrev gap analysis with coverage matrix - /okr:analyse — cross-cycle Mermaid analytics - SessionStart coaching hook (proactive, phase-aware) - gapanalytiker + trendanalytiker agents - inject-okr-context.mjs extended for historikk/ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
14 KiB
OKR for Public Sector
Your AI-powered OKR coach for Norwegian public sector organizations — not just a methodology library, but a partner that knows your organization, your challenges, and your current OKRs.
Solo project — bug reports welcome, PRs not accepted.
The Difference
Most OKR tools explain methodology. This plugin coaches you through it.
The secret: persistent organizational context. After a one-time onboarding interview, every command knows who you are, where you are in the cycle, and what strategic goals you're working toward. No more pasting the same tildelingsbrev into every session. No more re-explaining your maturity level.
# Before v1.1 — every session started from scratch
> /okr:governance
"Please paste your tildelingsbrev..."
"What organization are you in?"
"What cycle are you in?"
# After v1.1 — the plugin already knows
> /okr:governance
"I see your tildelingsbrev for 2026 in .claude/okr/strategisk-kontekst/.
Starting gap analysis against your org-level OKR..."
Table of Contents
- Quick Start
- Commands
- What's New in v1.1
- Agents
- Hooks
- Knowledge Base
- Workflow Examples
- Public Sector Features
- Configuration
- Integrations
- Limitations
- Version History
- License
Quick Start
Prerequisites
- Claude Code installed
- Optional: Linear account for OKR tracking
Installation
Add to your Claude Code plugin configuration:
{
"enabledPlugins": {
"okr@ktg-plugin-marketplace": true
}
}
First Conversation
> /okr:oppsett mvp
Six questions, five minutes. The plugin learns your organization, maturity level, tools, and cycle phase. From that point on, every command adapts to your context.
Want the full experience? Run /okr:oppsett full for a 28-question deep interview across six phases (identity, maturity, strategic context, structure, tools, culture). Takes 15-20 minutes, but unlocks everything — including storing your tildelingsbrev and org-level OKR for automatic alignment checks.
After setup:
> /okr:skriv We want to improve digital self-service for citizens
The plugin already knows your organization, cycle, and strategic goals. It drafts aligned OKR immediately.
Commands
Writing & Quality
| Command | Description |
|---|---|
/okr:skriv |
Write new OKR with guided Objective and KR creation. Reads stored strategic context for alignment. |
/okr:kvalitet |
Quality check against rubric, detect 19 antipatterns, check alignment vs. stored org-OKR |
Alignment & Tracking
| Command | Description |
|---|---|
/okr:kaskade |
Cascade OKR from organization to team. Auto-reads org-OKR from stored context. |
/okr:sporing |
Track progress (0.0-1.0 scoring), auto-load OKR from .claude/okr/syklus/ |
Meetings & Change Management
| Command | Description |
|---|---|
/okr:moter |
Plan OKR workshops, check-ins, reviews, and 1:1 conversations (CFR framework) |
/okr:innforing |
Rollout planning, resistance handling, maturity assessment. Adapts to your known maturity level. |
Governance & Setup
| Command | Description |
|---|---|
/okr:governance |
Translate tildelingsbrev to OKR, Riksrevisjon compliance. Auto-reads stored tildelingsbrev. |
/okr:oppsett |
Onboarding interview, profile management, cycle archival. Args: full mvp arkiver oppdater vis |
What's New in v1.1
Deep Onboarding Interview
/okr:oppsett full runs a structured 28-question interview across six phases:
| Phase | Duration | What the Plugin Learns |
|---|---|---|
| 1. Identity | 2 min | Organization type, ministry, domain, size |
| 2. Maturity | 5 min | OKR history, sponsor/champion, salary decoupling |
| 3. Strategic context | 5 min | Tildelingsbrev goals, org-level OKR, strategic plan |
| 4. Structure | 3 min | OKR levels, user role, team count, cascade approach |
| 5. Tools | 2 min | Task/OKR/meeting tools, delivery methodology |
| 6. Culture | 3 min | Check-in rhythm, psychological safety, known antipatterns |
Don't have 20 minutes? /okr:oppsett mvp asks 6 questions and gets you 80% of the value.
The interview is interruptible — if you quit mid-session, it saves progress and picks up where you left off next time.
Persistent Context Directory
The plugin now maintains a structured context tree in your project:
.claude/
okr.local.md # Expanded organizational profile
okr/
strategisk-kontekst/ # Your strategic documents
tildelingsbrev-2026.md # Key mandate goals
overordnede-okr.md # Org-level OKR
virksomhetsplan.md # Strategic plan
syklus/
T1-2026/ # Active cycle
okr-digitalt-team.md # Team OKR files
status.md # Confidence levels
historikk/ # Archived cycles with retrospectives
dokumenter/ # Ad-hoc reference documents
Every command reads from this tree automatically. Place your tildelingsbrev in strategisk-kontekst/ once, and /okr:governance starts gap analysis without asking you to paste anything.
Context-Aware Commands
All commands now check injected context before asking questions:
- Already know your org and cycle? Skips those questions entirely.
- OKR files in the cycle directory? Reads them directly instead of asking you to paste.
- Tildelingsbrev stored? Starts gap analysis immediately.
- Maturity level known? Tailors advice to your exact phase.
Cycle Archival
/okr:oppsett arkiver handles the end-of-cycle workflow:
- Reads all active OKR and collects final scores
- Generates a retrospective with results, learnings, and antipattern analysis
- Archives everything to
historikk/ - Rolls the profile forward to the next cycle
- Creates a fresh cycle directory ready for planning
The Single Most Important Question
"Is OKR decoupled from salary and medarbeidersamtale?"
If the answer is no or uncertain, the plugin flags this as priority zero. OKR tied to compensation is the single most destructive antipattern — it kills stretch goals, breeds sandbagging, and undermines the entire methodology.
Agents
5 specialized agents activate automatically based on context:
| Agent | Model | Role |
|---|---|---|
| kvalitetssjekker | Sonnet | Score OKR quality (1-10), detect 19 antipatterns, check alignment |
| kaskadebygger | Sonnet | Build cascades between org levels, find alignment gaps |
| fremdriftssporer | Sonnet | Calculate progress scores, forecast completion, flag at-risk KRs |
| motefasilitator | Sonnet | Generate meeting agendas and facilitation materials |
| styringsradgiver | Opus | Tildelingsbrev analysis, governance mapping, audit compliance |
Hooks
| Event | Type | Purpose |
|---|---|---|
| UserPromptSubmit | command | Inject org profile, cycle phase, maturity, and .claude/okr/ directory listing |
| PreCompact | prompt | Preserve OKR draft state during context compaction |
| Stop | prompt | Remind user to save OKR work to tracking system |
The UserPromptSubmit hook reads your expanded profile and scans the .claude/okr/ tree in under 50ms. It tells every command what context files are available so they can read them proactively.
Knowledge Base
15 reference files in skills/okr-offentlig-sektor/references/:
| File | Content |
|---|---|
okr-framework.md |
Core methodology, scoring, cycle management |
okr-examples.md |
Good and bad examples from public sector |
okr-antipatterns.md |
19 common OKR mistakes across 5 categories |
okr-offentlig-governance.md |
Tildelingsbrev, political steering, audit compliance |
okr-implementation.md |
Rollout methodology and change management |
okr-integrations.md |
OKR + Scrum/Kanban/SAFe integration |
cfr-framework.md |
CFR methodology and 1:1 templates |
meeting-guides.md |
Agendas for all OKR meeting types |
metrics-library.md |
Common KPIs for transport/roads/digital |
okr-calculator.md |
Progress calculation and confidence assessment |
okr-arshjul.md |
Annual cycle and budget synchronization |
okr-sources.md |
Bibliographic evidence base |
okr-cheatsheet.md |
One-page OKR best practices |
okr-oboard-guide.md |
Oboard tool guide |
individual-vs-team-okr.md |
Team vs individual OKR rationale |
dfo-okr-mapping.md |
DFO terminology mapping (maal- og resultatstyring) |
Workflow Examples
New Team Starting OKR
/okr:oppsett full # Deep onboarding (once, 15-20 min)
/okr:skriv # Write first OKR — plugin knows your context
/okr:kvalitet # Quality check with alignment scoring
/okr:kaskade # Verify alignment with org objectives (auto-loaded)
Mid-Cycle Check-In
/okr:sporing # Auto-loads OKR from .claude/okr/syklus/, asks for new scores
/okr:moter # Generate check-in agenda pre-filled with actual OKR status
Government Mandate Translation
/okr:governance # Auto-reads stored tildelingsbrev, starts gap analysis
/okr:kvalitet # Verify generated OKR quality
/okr:kaskade # Cascade to team level
End of Cycle
/okr:oppsett arkiver # Archive with retrospective, roll forward to next cycle
/okr:moter # Plan kick-off workshop for new cycle
/okr:skriv # Draft new OKR informed by last cycle's learnings
Public Sector Features
Governance Integration
| Framework | Plugin Support |
|---|---|
| Tildelingsbrev | Translate to OKR with audit trail. Store once, reference automatically. |
| Riksrevisjonen | Documentation with baseline, target, data source per KR |
| Political steering | Handle mid-cycle priority changes with rationale |
| NTP / Stortingsmelding | Cascade from national policy to team OKR |
| DFO terminology | Mapping between maal- og resultatstyring and OKR concepts |
Tillitsvalgt Perspective
The plugin includes guidance on union involvement in OKR processes — droftingsplikt under Hovedavtalen, transparent KR that builds trust, and techniques for including tillitsvalgte as OKR stakeholders.
CFR Framework
Integrated Conversations, Feedback, Recognition methodology:
- Conversations — Structured 1:1 templates adapted for offentlig sektor
- Feedback — Continuous two-way feedback decoupled from formal medarbeidersamtale
- Recognition — Techniques that work without bonus-linking (which public sector can't do)
Configuration
Interactive Setup
Run /okr:oppsett to configure. The expanded profile covers:
| Section | Fields |
|---|---|
| Organisation | Name, type, ministry, domain, size, geography |
| Program | Maturity level, cycles completed, sponsor, champion, salary decoupling |
| Current cycle | ID, period, phase, team count |
| Tools | Task management, OKR tracking, meetings, delivery methodology |
| Culture | Check-in rhythm, psychological safety, known challenges |
| Integrations | Linear (team and project IDs) |
| Preferences | Language, examples, ambition level |
Configuration is saved to .claude/okr.local.md in your project directory (add to .gitignore).
Subcommands
| Subcommand | Purpose |
|---|---|
/okr:oppsett full |
28-question deep interview (recommended first time) |
/okr:oppsett mvp |
6-question quick start |
/okr:oppsett arkiver |
Archive current cycle with retrospective |
/okr:oppsett oppdater |
Update specific profile fields |
/okr:oppsett vis |
Display current configuration |
Integrations
Linear
OKR tracking via Linear MCP when configured through /okr:oppsett:
- Progress score updates via comments
- Status field tracking
- Team and project organization
Agile Frameworks
Knowledge base includes integration patterns for Scrum, Kanban, SAFe, and project portfolio management. See references/okr-integrations.md.
Roadmap
See ROADMAP.md for full details.
| Version | Status | Focus |
|---|---|---|
| v1.1 | Shipped | Personalized onboarding, persistent context, cycle archival |
| v1.3 | Planned | Cycle lifecycle automation, cross-cycle analytics |
| v1.4 | Planned | Proactive coaching, deadline notifications, quality gates |
| v2.0 | Future | Multi-team support, cross-team alignment views, consolidated dashboards |
Limitations
- Not tested in a real OKR cycle beyond the author's organization
- No automated tests (hooks are verified manually)
- Windows: not tested
- Norwegian public sector context only — may not fit private sector or other countries
- Linear is the only supported tracking integration
- YAML parsing in hooks uses regex, not a full parser (works for controlled output)
Version History
See CHANGELOG.md for full details.
| Version | Date | Highlights |
|---|---|---|
| 1.3.0 | 2026-04-08 | AI-first differentiators: /okr:gap (tildelingsbrev gap analysis), /okr:analyse (cross-cycle Mermaid analytics), proactive SessionStart coaching |
| 1.1.0 | 2026-04-08 | Persistent context: deep onboarding interview (full/mvp), .claude/okr/ directory tree, context-aware commands, cycle archival with retrospective |
| 1.0.0 | 2026-04-08 | Architecture overhaul: self-contained commands, hooks, model optimization, marketplace-ready |
| 0.5.0 | 2026-02-07 | First formal version |