oh-my-issues
Cluster a GitHub issue backlog by root cause into a small set of plan-master issues, redirect children with a standardized comment, and bundle architectural-fix PRs that close clusters atomically. Use when an issue tracker has accumulated dozens of reports that share underlying defects, when asked to triage / consolidate / cluster / dedupe issues, when asked to build a plan series or roadmap from open issues, or when routing a new incoming bug into an existing plan.
npx skills add thedotmack/claude-mem --skill oh-my-issues --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# oh-my-issues Turn an issue backlog into a roadmap. Issues are symptom data, not units of work — the unit of work is the architectural defect that produces them. The end state is `open issues == open plans`, 1:1. ## Core principle Stop closing issues one at a time. Group symptoms that share a single architectural fix into a cluster, give the cluster one canonical home (a plan-master issue + a `plans/0X-*.md` design doc), close every child with a standardized redirect, and ship one PR per cluster that closes all children atomically. New incoming bugs get appended to the matching master as a "Round N" comment, not opened as new tracked issues. This compounds three ways: architectural fixes retire whole symptom families, the plan's test matrix institutionalizes prevention in CI, and standardized triage makes residual inflow cheap. ## When to use - The repo has 20+ open issues and many feel like duplicates or platform-specific symptoms of the same defect. - The user asks to "triage", "consolidate", "cluster", "dedupe", "group", or "make a plan from" the issue list. - A new bug is filed and the user wants to know whether it belongs to existing work. - The user wants to ship a focused P
- Core principle
- When to use
- When NOT to use
- Three modes
- Mode 1: Cluster pass (initial reduction)
- Mode 2: Triage (new incoming bug, steady state)
- Mode 3: Bundle (ship the cluster)
- Naming a plan master
- The standardized redirect comment
- GitHub CLI primitives
- Plan master body template
- Health checks
- Stop conditions
- Failure modes worth refusing
from /repos/{owner}/{repo} is actually issues + PRs. Use the search
API to get the issue-only count.
echo "Open issues: $total"
gh issue list --state open --limit "$total" \
for n in $(gh issue list --state open --limit "$total" --json number --jq '.[].number'); do
echo "=== Issue #$n ==="
gh issue view "$n" --json comments \
done
gh issue create \
gh issue close <CHILD> --reason "not planned"What does the oh-my-issues skill do?
Cluster a GitHub issue backlog by root cause into a small set of plan-master issues, redirect children with a standardized comment, and bundle architectural-fix PRs that close clusters atomically. Use when an issue tracker has accumulated dozens of reports that share underlying defects, when asked to triage / consolidate / cluster / dedupe issues, when asked to build a plan series or roadmap from open issues, or when routing a new incoming bug into an existing plan.
How do I install it?
Run `npx skills add thedotmack/claude-mem --skill oh-my-issues --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From thedotmack/claude-mem, a repository with 89,517 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.