Verify an issue, persisted audit finding, or unresolved review finding against current code, classify it, and write only the contracted forge/ledger outcome. Supports independent batches and an immediate-fix review-finding route. Triggers: "triage-issue", "triage issue N", "triage this finding", "is this trigger met".
Scanned 9/2/2026
Install to Claude Code
npx -y skills add gtrabanco/agentic-workflow --skill triage-issue --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Triage Issue?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gtrabanco-triage-issue)More formats (shields.io, HTML) on the badges page.
---
name: triage-issue
user-invocable: true
version: 2.6.0
argument-hint: <issue-number> [more issue numbers…] | <audit-id> F<k> [F<j>…] | --prioritize-now <unit> F<k> [F<j>…]
author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
license: MIT
description: >
Verify an issue, persisted audit finding, or unresolved review finding against
current code, classify it, and write only the contracted forge/ledger
outcome. Supports independent batches and an immediate-fix review-finding
route. Triggers: "triage-issue", "triage issue N", "triage this finding",
"is this trigger met".
---
# Triage Issue
Decide what happens to an issue, grounded in evidence — not vibes. Prevents both
premature work (acting on a deferred item whose trigger is unmet) and silent rot
(a fix-now bug left to drift).
## Turn contract — verify before ending the turn
```
✓ One fixed-format verdict block per issue (Trigger / Checked / Evidence / VERDICT / Action) — plus the summary table when batched
✓ Nothing deferred was implemented inline
✓ Audit-finding mode (`<audit-id> F<k>`): the audit file carries its `↳ triaged` note, and any opened issue cites `Origin: product audit <id>, finding F<k>`
✓ Review-finding mode (`--prioritize-now <unit> F<k>`): every named unresolved finding gets a verdict, an immediate-fix attempt, or an explicit replan/user-decision route
✓ Batched input? The closing recommendation maps every issue/finding ID to its own next command, joined with ` + `; it never collapses to one generic action
✓ Artifact language: explicit user instruction > the project's declared docs language > English. The CONVERSATION language never decides — a Spanish prompt still produces English PRs/issues/commits/SPECs unless one of the first two says otherwise
✓ The closing `→ Next:` block is printed as the ABSOLUTE last output
```
About to end the turn with any box unchecked? The turn is NOT done — complete
the missing box first (weak models drop end-of-document duties; this list is
first on purpose).
## When to use
- Any issue needing a decision: a freshly filed bug, a `postpone`/`needs-triage`
item, or a periodic re-confirmation of a deferred tradeoff.
- **Batch triage** — pass several numbers (`triage-issue 12 14 17`): each issue
gets its own independent verdict + evidence, then one summary table at the
end. Batching applies to *triage only* — any resulting fix still gets its own
branch and PR.
- **Audit findings** — `triage-issue <audit-id> F<k> [F<j> …]` triages findings
from a persisted `product-audit` report instead of existing issues (see
*Audit-finding mode* below). Batching works the same way.
- **Review findings** — `triage-issue --prioritize-now <unit> F<k> [F<j> …]`
triages unresolved rows from the current feature/fix unit's
`review-findings.md`. This route is for findings that `fold-findings` could
not close. `--prioritize-now` means attempt to resolve every named finding
immediately; it does not permit a downgrade, postponement, or silent drop.
## Step 0 — Discover the project (always first)
Per the agent guide's **Workflow conventions** + **documentation map**, then read
what THIS skill needs: the fix index (e.g. `docs/fix/README.md`) and fix SPEC
template, and the roadmap. In review-finding mode, read the target unit's SPEC,
acceptance, `review-findings.md`, current diff, and PR instead of looking for an
issue comment. Otherwise read the issue in full, including comments and labels
(forge CLI per the project's Workflow conventions — examples use `gh`):
```sh
gh issue view <N> --json number,title,body,labels,state,comments
```
## Progressive loading — select the triage source
The reference allowlist is exactly the five linked paths below. Never invent or
read another `references/` path. After Step 0:
- Forge issue number(s): read [issue process](references/ISSUE_PROCESS.md).
- Review finding(s): read [review finding process](references/REVIEW_FINDING_PROCESS.md).
- Persisted audit finding(s): first read
[audit findings](references/AUDIT_FINDINGS.md), then use the verification and
decision steps in [issue process](references/ISSUE_PROCESS.md).
- Before applying an urgency or disposition label, read
[label vocabulary](references/LABELS.md); this file is the sole definition of
names, colors, and mutation rules.
- Only when the verdict is `fix-in-unit`, read
[fold ledger](references/FOLD_LEDGER.md) before writing the row.
Every resource is one hop from this file. A missing source artifact or required
resource stops that item; batch items remain independent. Never invent a label,
trigger, ledger row, verdict shape, or reference filename. A forge-issue
`postpone` route loads exactly issue process then label vocabulary; it skips
audit findings and fold ledger.
## Guardrails
- Don't build deferred work just because asked to "look at" the issue — surface
that the trigger is unmet and stop.
- Keep issues, the fix index, and docs in sync with reality.
- Otherwise per the project's **Workflow conventions** (docs-language, evidence):
state exactly what you checked.
## Portability
Use the project's declared forge CLI and translate commands one-for-one. The
classification, label ownership, and persisted-output contracts do not change.
## Relationship to other skills
```
┌─ fix-now ─────────▶ plan-fix ─▶ execute-phase --fix
├─ fix-in-unit ─────▶ execute-phase <NN> P<k> (fold into phase)
triage-issue ────┤ or fold-findings (ledger row)
│ or design-feature / plan-feature (replan)
├─ promote ─────────▶ plan-feature (router → from-issue)
├─ postpone ────────▶ dated comment, leave open
└─ wontfix ─────────▶ propose close
```
In review-finding mode, `replan-in-unit` routes to `/plan-feature` for a
feature or `/plan-fix` for a fix, with new `P<n>` phases appended to the same
unit. The user manually runs those phases; this skill never implements them.
## Done when
- The issue has a clear verdict with cited evidence.
- Each review finding has a clear verdict with cited evidence; an oversized
finding has an explicit planning command and a manual `/execute-phase` hand-off.
- The verdict is recorded (routed, commented, and/or index-updated), and nothing
deferred was implemented inline.
- **The closing `→ Next:` block is printed** per verdict:
```
Single issue:
→ Next: <command for the recorded verdict> — act on the issue's evidence-backed action
Batch:
→ Next: apply every verdict: #<n1> → <command> + #<n2> → <command> + #<n3> → <command>
· fix-now → /plan-fix <n> · promote → /plan-feature <n>
· fix-in-unit → /execute-phase <NN> P<k> or /fold-findings — never /plan-fix
· postpone → dated comment, leave open · wontfix → propose close
· same inconsistency across several issues → /product-audit (a recurring pattern,
not isolated tickets — sweep the product rather than triaging one by one)
```
Replace every placeholder with every actual issue/finding ID and its recorded
route before printing; never print `<n2>`, `<command>`, or `…` in a live batch.
The `/product-audit` line fires **only on a recurring inconsistency** — the same
underlying problem behind multiple issues, not any single triage.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!