Files
oikos/.claude/skills/issue-triage/SKILL.md
2026-04-21 10:38:45 +02:00

32 lines
1.8 KiB
Markdown

---
name: issue-triage
description: Classify one or all open issues, apply labels, request missing info
disable-model-invocation: true
user-invocable: true
argument-hint: "[<issue-number> | all]"
allowed-tools:
- Bash(gh issue *)
- Bash(gh label *)
- Read
- Grep
---
Run from inside `oikos/`. `$1` is a specific issue number or the literal `all` (default: `all` → every open issue without labels).
1. **Load** — for a single issue: `gh issue view $1 --repo ulsklyc/oikos --comments`. For `all`: `gh issue list --repo ulsklyc/oikos --state open --label '' --json number,title,body,author,createdAt`.
2. **Classify** — for each issue, pick ONE primary class and apply labels via `gh issue edit <n> --repo ulsklyc/oikos --add-label "<labels>"`:
- `bug` — reproduction + expected vs. actual behaviour present and plausible against current code
- `enhancement` — new feature or UX improvement, no existing regression
- `question` — user needs help using Oikos, not a code change
- `invalid` — spam, duplicate, or out of scope (self-hosted family planner)
Add area labels where obvious: `calendar`, `tasks`, `shopping`, `meals`, `budget`, `notes`, `contacts`, `reminders`, `i18n`, `pwa`, `security`, `docs`.
3. **Request missing info** — if reproduction steps, expected behaviour, Oikos version, or browser are missing on a `bug`, post a single comment asking for exactly what's missing. Apply label `needs-info`.
4. **Close spam/duplicates**`gh issue close <n> --repo ulsklyc/oikos --reason "not planned" --comment "<english explanation>"`. Always leave a reason.
## Guardrails
- Never assign issues to other humans.
- Never post more than one triage comment per issue per run.
- All comments in English.
- If unsure between two classes, default to `question` and ask for clarification — don't guess.