← ClaudeAtlas

pm-okrlisted

Manage the OKRs section of `.claude/pm-config.md`. Show current objectives, set new ones, or get AI-suggested updates based on recent work. OKRs drive `/pm` ranking. Use this whenever you want to view, set, or update project OKRs, objectives, key results, or goals. Triggers on "pm okr", "set okrs", "show okrs", "suggest okrs", "project goals", "objectives".
auerbachb/claude-code-config · ★ 5 · Code & Development · score 73
Install: claude install-skill auerbachb/claude-code-config
Manage the OKRs (Objectives and Key Results) section of `.claude/pm-config.md`. OKRs inform `/pm` — keeping them current ensures prioritization reflects actual goals. Resolve the config parser before reading OKRs: ```bash resolve_script() { local name="$1" candidate for candidate in \ "$HOME/.claude/skills-worktree/.claude/scripts/$name" \ "$HOME/.claude/scripts/$name" \ ".claude/scripts/$name"; do if [[ -x "$candidate" ]]; then echo "$candidate"; return 0; fi done return 1 } PM_CONFIG_GET_SH=$(resolve_script pm-config-get.sh || true) [[ -n "$PM_CONFIG_GET_SH" ]] || { echo "ERROR: pm-config-get.sh not found (checked all three paths) — OKR parsing unavailable" >&2; exit 1; } ``` Parse `$ARGUMENTS` to determine mode: - **No argument or "show"**: Display current OKRs - **"set ..."**: Replace OKRs section with the provided text - **"suggest"**: Analyze recent work and propose OKR updates ## Step 1: Verify config exists ```bash test -f .claude/pm-config.md || echo "NO_CONFIG" ``` If missing, tell the user: "No PM config found. Run `/pm` first to bootstrap it." Then stop. ## Step 2: Parse the config Extract the `## OKRs` section body via the shared parser: ```bash # rc=0 → present with non-empty body; rc=1 → missing or body empty; rc=2 → no config file. OKRS_CONTENT="$("$PM_CONFIG_GET_SH" --section OKRs 2>/dev/null)" OKRS_RC=$? ``` `pm-config-get.sh` handles the line-anchored `^## OKRs` match (no mid-line matches) and the next `^##` followed by a s