← ClaudeAtlas

kookr-oss-pr-statelisted

State management for oss-pr-lessons playbook — persist learnings and update tracking state for any repository
kookr-ai/kookr · ★ 2 · AI & Automation · score 78
Install: claude install-skill kookr-ai/kookr
# OSS PR State Persist observations and update tracking state after each batch. Generalized version of `codex-pr-state`. ## When to Use Invoked after the critic phase completes for a batch. ## Non-Negotiable Rules | # | Rule | Violation Example | Correct Pattern | |---|------|-------------------|-----------------| | 1 | Append to learnings-raw.md, never overwrite | Writing fresh file that drops prior learnings | Append batch section to end of file | | 2 | Update state.json atomically | Writing partial state on error | Read -> modify -> write complete JSON | | 3 | Add ALL batch PR IDs to processed_prs | Only adding merged PRs | Add every analyzed PR, merged or not | | 4 | Add skipped PR IDs to skipped_prs | Forgetting skipped PRs | Track skips separately from processed | | 5 | Never commit state files | `git add state.json` | All state files live in `~/.claude/{repoSlug}-pr-lessons/` | | 6 | Timestamp each batch entry | Undated learnings | Include ISO date in batch header | ## Parameters - **repoFullName**: `owner/repo` - **repoSlug**: URL-safe slug ## State File Schema (state.json) ```json { "repo": "owner/repo", "version": 1, "processed_prs": [101, 102, 103], "skipped_prs": [50, 51], "total_processed": 3, "total_skipped": 2, "distillation_count": 0, "last_batch_at": "2026-03-26T10:00:00Z", "last_distillation_at": null, "cursor": 2, "notes": "State file for {repoFullName} PR lessons." } ``` > **`repo` is required.** Kookr's dashboard reads this