triage
Triage review findings interactively — approve, skip, or prioritize each issue. Use after /phx:review to filter findings before fixing.
Install
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/plugins/elixir-phoenix/skills/triage
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install oliver-kriska-claude-elixir-phoenix@llmmart
git clone https://github.com/oliver-kriska/claude-elixir-phoenix.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole oliver-kriska/claude-elixir-phoenix collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Triage — Interactive Review Resolution
Walk through review findings one by one for human decision before committing to fixes.
Usage
/phx:triage .claude/plans/user-auth/reviews/user-auth-review.md
/phx:triage # Uses most recent review
Why Triage
After /phx:review produces findings, you have three options:
- Fix everything —
/phx:plan .claude/plans/{slug}/reviews/... - Triage first —
/phx:triage(filter, then fix what matters) - Handle manually — Read review, pick what to fix yourself
Best when review has 5+ findings and you want to prioritize.
Workflow
Step 1: Load Review
Read the review file. Parse all findings with severity.
Iron Law violations first: list findings that match an Iron Law at the top, recommended as "Fix it". The user still makes the call (Iron Law 6).
Step 2: Present ALL Findings for Batch Selection
Use AskUserQuestion with multiSelect: true. Start with
severity shortcuts, then list individual findings:
AskUserQuestion:
question: "Which findings do you want to fix? (Iron Law violations auto-included)"
header: "Triage"
multiSelect: true
options:
- label: "All BLOCKERs ({count})"
description: "Fix all critical issues"
- label: "All WARNINGs ({count})"
description: "Fix all should-fix issues"
- label: "[BLOCKER] {title 1}"
description: "{file}:{line} — {brief description}"
- label: "[WARNING] {title 2}"
description: "{file}:{line} — {brief description}"
If >4 options, batch into groups of 4 with severity shortcuts in the first batch. Severity shortcuts select all findings of that level — user can mix shortcuts with individual picks.
AskUserQuestion discipline: decisions only — never use it to
narrate progress. Every option carries {file}:{line} + counts so
the user decides without opening the review file.
Step 3: Gather Context on Selected Items
For selected items, ask ONE batch follow-up: "Any specific approach for any of these?" If they say "just fix them", proceed.
Step 4: Generate Triage Summary
Write to .claude/plans/{slug}/reviews/{slug}-triage.md with Fix Queue
(approved items with checkboxes), Skipped, and Deferred sections.
Step 5: Present Next Steps
Triage complete: {n} to fix, {n} skipped, {n} deferred.
1. Plan fixes — /phx:plan .claude/plans/{slug}/reviews/{slug}-triage.md
2. Fix directly — /phx:work (for simple fixes)
3. Review deferred items later
4. Capture solutions — /phx:compound (if patterns were solved)
Iron Laws
- Batch selection over one-by-one — Use multiSelect for efficiency
- User decides, not the agent — Present facts, don't push
- BLOCKERs cannot be skipped silently — Warn if user tries
- Capture user context — Every "fix it" should include any user guidance for better fixes
- Suggest compound after triage — If triage reveals solved patterns
(root cause identified, fix known), mention
/phx:compound - NEVER auto-decide severity or auto-dismiss findings — the human assigns final priority; present the agent's severity as a recommendation, not a verdict
Integration with Workflow
/phx:review
|
/phx:triage ← YOU ARE HERE (interactive filtering)
|
/phx:plan (with triage file) → /phx:work → /phx:compound
References
${CLAUDE_SKILL_DIR}/references/triage-patterns.md— Common triage decisions
Files (claude-elixir-phoenix)
-
references
-
triage-patterns.md 2.7 KB
# Triage Patterns ## Common Triage Decisions ### Always Fix (auto-approve, don't even ask) Iron Law violations and security issues: - SQL injection or XSS via `raw/1` with untrusted content - Missing authorization in `handle_event` (Iron Law 11) - `String.to_atom` with user input (Iron Law 10) - `:float` used for money fields (Iron Law 4) - DB queries in disconnected mount (Iron Law 1) - Non-idempotent Oban jobs (Iron Law 7) - `mix compile --warnings-as-errors` failures ### Usually Fix Common Elixir/Phoenix issues worth addressing: - N+1 queries — missing `Repo.preload` (Iron Law 6) - Missing `^` pin in Ecto queries (Iron Law 5) - Large lists without streams in LiveView (Iron Law 2) - PubSub subscribe without `connected?/1` (Iron Law 3) - Oban args with atom keys (Iron Law 8) - Tests without assertions or using `Process.sleep` - Missing error handling on external API calls ### Often Skip Low-impact or cosmetic issues: - Credo style suggestions (unless `--strict` is required) - `@moduledoc false` on internal/private modules - Cosmetic naming improvements - "Could use `with` chain" style suggestions - Adding typespecs to private functions ### Context-Dependent Ask the user for these — the right answer depends on project stage and priorities: - Performance optimizations (premature vs. needed) - Test coverage for edge cases (shipping deadline?) - Refactoring suggestions (tech debt budget?) - Documentation improvements (internal vs. public API?) ## Severity Reclassification Guide ### Downgrade from BLOCKER when - The issue is in code that's not yet reachable - There's an existing workaround in production - The fix requires a separate migration/PR - The issue existed before this change (pre-existing) ### Upgrade from SUGGESTION when - The pattern will be copied by future developers - It affects a security-sensitive code path - It causes confusion in code review - It violates an Iron Law ## Triage Anti-Patterns ### "Fix everything" without thinking If you approve every finding, you didn't need triage. Either skip triage and go straight to `/phx:plan`, or be more selective about what's worth fixing now. ### "Skip everything" to ship faster If you skip more than 70% of findings, the review wasn't useful or you're cutting too many corners. At minimum, fix all BLOCKERs and most WARNINGs. ### Triaging without reading Each finding deserves 10-30 seconds of thought. If you're pattern-matching on severity alone, you're missing context. ## Batch Triage for Large Reviews When a review has 15+ findings: 1. First pass: present all BLOCKERs, recommended "Fix it" (skipping one gets a warning) 2. Second pass: Present WARNINGs for decision 3. Third pass: Batch SUGGESTIONs — "Skip all suggestions?" This prevents decision fatigue on large reviews.
-
-
SKILL.md 3.6 KB
--- name: triage description: Triage review findings interactively — approve, skip, or prioritize each issue. Use after /phx:review to filter findings before fixing. effort: low argument-hint: "[path to review file]" --- # Triage — Interactive Review Resolution Walk through review findings one by one for human decision before committing to fixes. ## Usage ``` /phx:triage .claude/plans/user-auth/reviews/user-auth-review.md /phx:triage # Uses most recent review ``` ## Why Triage After `/phx:review` produces findings, you have three options: 1. **Fix everything** — `/phx:plan .claude/plans/{slug}/reviews/...` 2. **Triage first** — `/phx:triage` (filter, then fix what matters) 3. **Handle manually** — Read review, pick what to fix yourself Best when review has 5+ findings and you want to prioritize. ## Workflow ### Step 1: Load Review Read the review file. Parse all findings with severity. **Iron Law violations first**: list findings that match an Iron Law at the top, recommended as "Fix it". The user still makes the call (Iron Law 6). ### Step 2: Present ALL Findings for Batch Selection Use `AskUserQuestion` with `multiSelect: true`. Start with severity shortcuts, then list individual findings: ``` AskUserQuestion: question: "Which findings do you want to fix? (Iron Law violations auto-included)" header: "Triage" multiSelect: true options: - label: "All BLOCKERs ({count})" description: "Fix all critical issues" - label: "All WARNINGs ({count})" description: "Fix all should-fix issues" - label: "[BLOCKER] {title 1}" description: "{file}:{line} — {brief description}" - label: "[WARNING] {title 2}" description: "{file}:{line} — {brief description}" ``` If >4 options, batch into groups of 4 with severity shortcuts in the first batch. Severity shortcuts select all findings of that level — user can mix shortcuts with individual picks. **AskUserQuestion discipline**: decisions only — never use it to narrate progress. Every option carries `{file}:{line}` + counts so the user decides without opening the review file. ### Step 3: Gather Context on Selected Items For selected items, ask ONE batch follow-up: "Any specific approach for any of these?" If they say "just fix them", proceed. ### Step 4: Generate Triage Summary Write to `.claude/plans/{slug}/reviews/{slug}-triage.md` with Fix Queue (approved items with checkboxes), Skipped, and Deferred sections. ### Step 5: Present Next Steps ``` Triage complete: {n} to fix, {n} skipped, {n} deferred. 1. Plan fixes — /phx:plan .claude/plans/{slug}/reviews/{slug}-triage.md 2. Fix directly — /phx:work (for simple fixes) 3. Review deferred items later 4. Capture solutions — /phx:compound (if patterns were solved) ``` ## Iron Laws 1. **Batch selection over one-by-one** — Use multiSelect for efficiency 2. **User decides, not the agent** — Present facts, don't push 3. **BLOCKERs cannot be skipped silently** — Warn if user tries 4. **Capture user context** — Every "fix it" should include any user guidance for better fixes 5. **Suggest compound after triage** — If triage reveals solved patterns (root cause identified, fix known), mention `/phx:compound` 6. **NEVER auto-decide severity or auto-dismiss findings** — the human assigns final priority; present the agent's severity as a recommendation, not a verdict ## Integration with Workflow ```text /phx:review | /phx:triage ← YOU ARE HERE (interactive filtering) | /phx:plan (with triage file) → /phx:work → /phx:compound ``` ## References - `${CLAUDE_SKILL_DIR}/references/triage-patterns.md` — Common triage decisions
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.