Assess, classify, and route community-filed issues. Takes a specific issue number or processes all open issues with the state:triage-needed label in batch. Validates agent-first gate compliance, attempts diagnosis using relevant skills, and classifies issues for routing into the spike-build pipeline. Trigger keywords - triage issue, triage, assess issue, review incoming issue, triage issues.
77
96%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Assess, classify, and route community-filed issues. This is the front door for community inflow — distinct from build-from-issue, which is the maintainer execution tool for implementation.
gh CLI must be authenticated (gh auth status)state:agent-ready Label Is Human-OnlyThe state:agent-ready label is a human gate. Triage never applies this label. Triage assesses and classifies — humans decide what gets built. This is a non-negotiable safety control.
All comments posted by this skill must begin with the following marker line:
> **📋 triage-agent**This marker distinguishes triage comments from human comments and from other skills (🏗️ build-from-issue-agent, 🔒 security-review-agent, etc.).
This skill supports two modes:
triage issue 250
triage issue #250Assess one specific issue. Proceed to Step 1 with the given issue number.
triage issuesBatch mode requires a confirmation gate before processing. This prevents accidental mass-commenting on a public repository.
Step 1: Preview. Query all matching issues and display a summary:
gh issue list --label "state:triage-needed" --state open --json number,title --jq '.[] | "#\(.number) \(.title)"'Present the results to the user:
Found N issues with state:triage-needed:
#250 Bug: sandbox fails to start with VM driver
#312 Feature: add --output yaml to sandbox list
... (show up to 10, then "and N more")
This will post a triage comment on each issue.Step 2: Confirm. Ask the user for explicit confirmation before proceeding. Use AskUserQuestion with options "Proceed with all N issues", "Let me pick specific issues", and let them provide custom input. Do not proceed without confirmation.
Step 3: Process. Only after confirmation, run the full triage workflow (Steps 1-7 below) for each issue. Report a summary at the end listing each issue and its classification.
Strip any leading # from the issue number and fetch the issue.
gh issue view <id> --json title,body,state,labels,author,commentsIf the issue is closed, report that and stop.
Search the issue comments for the triage agent marker (> **📋 triage-agent**).
Check whether the issue body contains a substantive agent diagnostic section. Look for:
If the diagnostic section is missing or clearly placeholder:
state:triage-needed label if not already present:
gh issue edit <id> --add-label "state:triage-needed"If the diagnostic section is substantive, proceed to Step 4.
Before deeper diagnosis, determine whether the report may already be fixed in a newer release.
gh release list --limit 10gh release view <tag>If the issue targets an older OpenShell release and a newer release or merged PR appears to address the same behavior:
fixed-in-release classification in Step 6. Reference the fixing version and PR/issue when known, and ask for a fresh report or reopen if the issue still reproduces on that version.Assess the report by investigating the codebase. Use the principal-engineer-reviewer sub-agent via the Task tool:
Prompt the sub-agent with:
- The full issue title and body
- The reporter's agent diagnostic output
- Instructions to evaluate with a skeptical lens:
1. Is this report describing a real problem or user error?
2. Can the described behavior be reproduced from the information given?
3. Does the reporter's agent diagnostic match what you see in the codebase?
4. If this is a bug, what component is affected?
5. If this is a feature request, does the design make sense given the architecture?
6. Are there any existing issues that duplicate this?Based on the sub-agent's analysis, also attempt to validate the report directly:
debug-openshell-cluster skill's known failure patternsdebug-inference skill's known failure patternsopenshell-cli skill's command referenceBased on the investigation, classify the issue into one of these categories:
| Classification | Criteria | Action |
|---|---|---|
| bug-confirmed | Agent diagnostic and codebase analysis confirm a real defect | Apply relevant area:* or topic:* labels as needed, remove state:triage-needed, and assign the built-in Bug issue type manually if needed |
| feature-valid | Design proposal is sound, feasible given the architecture | Apply relevant area:* or topic:* labels as needed, remove state:triage-needed, and assign the built-in Feature issue type manually if needed |
| fixed-in-release | Report targets an older OpenShell release and a newer release or merged PR appears to address the behavior; no fixed/current-release reproduction is provided | Comment with the fixing version and PR/issue when known. Close as completed when the fix is clear, or request a retest if confirmation is still needed. Remove state:triage-needed when closing |
| duplicate | An existing open issue covers this | Link the duplicate, close with comment |
| user-error | The reported behavior is expected, or the issue is a misconfiguration | Comment with explanation and guidance, close |
| needs-more-info | Report is substantive but missing critical reproduction details | Comment requesting specifics, keep state:triage-needed |
| needs-investigation | Report appears valid but requires deeper analysis (spike candidate) | Label spike, remove state:triage-needed |
Post a structured comment with the triage marker:
> **📋 triage-agent**
>
> ## Triage Assessment
>
> **Classification:** <classification from Step 6>
>
> ### Summary
> <2-3 sentences: what was found, whether the report is valid>
>
> ### Investigation
> <Key findings from the codebase analysis. Reference specific files and components.>
>
> ### Recommendation
> <Next steps: ready for spike, needs more info from reporter, can be closed, etc.>Apply the appropriate labels as determined in Step 6.
Do not apply state:agent-ready. That is always a human decision.
Community issue filed
|
[GitHub Action: instant gate check]
|
triage-issue ← this skill
|
create-spike (if classification is needs-investigation)
|
build-from-issue (if human applies state:agent-ready)Triage is the assessment layer. It does not plan or build — it evaluates and routes.
deced87
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.