{"id":17572,"plugin_id":"plugins_6a78e83987748191afc0c56e12172fce","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:14:16.057Z","digest":"34b172ce9c0cca5e21dc56a7341564375b80c09c17d88e04dca62daea24a93c7","against":null,"payload":{"description":"Classify, verify, and prepare external bug reports and feature requests into agent-ready briefs. Use when processing incoming issues, validating bug reproductions, rejecting out-of-scope requests, or structuring contributor tickets — even if the user says \"triage these issues\". Do NOT use for internal tickets already produced by to-tickets.","included_files":[{"relative_path":"AGENT-BRIEF.md","size_in_bytes":7942},{"relative_path":"OUT-OF-SCOPE.md","size_in_bytes":4667},{"relative_path":"agents/openai.yaml","size_in_bytes":92}],"name":"triage","skill_md_contents":"---\nname: triage\ndescription: \"Classify, verify, and prepare external bug reports and feature requests into agent-ready briefs. Use when processing incoming issues, validating bug reproductions, rejecting out-of-scope requests, or structuring contributor tickets — even if the user says \\\"triage these issues\\\". Do NOT use for internal tickets already produced by to-tickets.\"\n---\n\n# Triage\n\nClassify incoming issues and external pull requests, reproduce bug reports against code, reject out-of-scope requests to `.out-of-scope/`, and synthesize durable, high-context agent briefs.\n\n---\n\n## Core Invariants\n\n1. **Mandatory Disclaimer**: Every comment or issue created during triage must open with `> *This was generated by AI during triage.*`\n2. **Category and State Orthogonality**: Every triaged issue must possess exactly one Category (`bug`, `enhancement`) and one State (`needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`).\n3. **Reproduction Before Brief**: Verify bug claims against codebase tests and reproduction steps before promoting to `ready-for-agent`.\n4. **Out-of-Scope Knowledge Base**: Rejected enhancement requests must be codified in `.out-of-scope/<slug>.md` with clear rationale to prevent recurring re-triage.\n5. **Redundancy Screening**: Search codebase for existing implementations before triaging feature requests; if already implemented, close with an explanation.\n\n---\n\n## Architecture & Map of Content (MOC)\n\n```\n[ Incoming Issue / External PR ]\n                │\n                ▼\n┌───────────────────────────────────────┐\n│ 1. Redundancy & Out-of-Scope Check    │ ──► Search code & `.out-of-scope/*.md`\n└──────────────────┬────────────────────┘\n                   │\n                   ▼\n┌───────────────────────────────────────┐\n│ 2. Reproduction & Verification Pass   │ ──► Verify bug or test PR diff locally\n└──────────────────┬────────────────────┘\n                   │\n                   ▼\n┌───────────────────────────────────────┐\n│ 3. Socratic Grilling & State Decision │ ──► Settle terms, update `CONTEXT.md`\n└──────────────────┬────────────────────┘\n                   │\n                   ▼\n┌───────────────────────────────────────┐\n│ 4. Outcome Publication                │ ──► Post Agent Brief or Out-of-Scope Record\n└───────────────────────────────────────┘\n```\n\n| Component | Responsibility | Reference Format |\n|---|---|---|\n| **Agent Brief** | Self-contained instructions for AFK agents | `skills/triage/AGENT-BRIEF.md` |\n| **Out of Scope KB** | Persistent store of rejected proposals | `skills/triage/OUT-OF-SCOPE.md` |\n| **Triage State Machine** | Canonical roles and state transitions | `docs/agents/triage-labels.md` |\n\n---\n\n## Step-by-Step Procedure (TWI)\n\n### Step 1: Query Issues Needing Attention\n- **Action**: Query tracker for unlabeled issues, `needs-triage` issues, and `needs-info` issues with fresh reporter activity.\n- **Key Point**: Include external PRs when configured as a request surface.\n- **Why**: Focuses maintainer attention on actionable items requiring triage intervention.\n\n### Step 2: Screen Redundancy & Prior Rejections\n- **Action**: Search codebase for existing capabilities and inspect `.out-of-scope/*.md` for prior rejections.\n- **Key Point**: If the requested behavior already exists, close as `wontfix` pointing directly to the implementation.\n- **Why**: Prevents duplicate feature implementations and wasted engineering cycles.\n\n### Step 3: Reproduce Claim & Formulate Recommendation\n- **Action**: Attempt reproduction of bug reports or checkout external PR diffs to run test suites.\n- **Key Point**: If reproduction fails due to missing details, move to `needs-info` with specific questions.\n- **Inline Checklist**:\n  - [ ] Bug reproduction attempted on local environment\n  - [ ] Relevant code paths and potential root causes identified\n  - [ ] Category and state recommendation presented to maintainer\n\n### Step 4: Apply State & Deliver Agent Brief\n- **Action**: Apply maintainer-approved state:\n  - `ready-for-agent`: Post structured Agent Brief with reproduction commands and suggested seams.\n  - `needs-info`: Post specific question block tagging the reporter.\n  - `wontfix` (enhancement): Document in `.out-of-scope/` and close issue.\n- **Why**: High-fidelity agent briefs enable downstream autonomous agents to implement fixes without human intervention.\n\n---\n\n## Anti-Rationalization Guardrails\n\n| Tempting Rationalization | Binding Rule | Engineering Rationale |\n|---|---|---|\n| *\"Promote a bug to `ready-for-agent` without reproducing it.\"* | **Mandatory reproduction pass before agent handover.** | Unverified bug reports send downstream agents on wild goose chases. |\n| *\"Reject a feature in a short comment without documenting it.\"* | **Log rejected enhancements in `.out-of-scope/`.** | Undocumented rejections lead to repeatedly re-evaluating the same request. |\n| *\"Ask the reporter vague questions like 'more details please'.\"* | **Ask specific, actionable questions in `needs-info`.** | Vague questions delay resolution and frustrate external contributors. |\n\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}