
Triage
Write durable GitHub Agent Brief comments when issues reach `ready-for-agent`, so AFK agents implement from behavioral contracts—not stale file paths.
Overview
triage is an agent skill most often used in Build PM (also Ship launch prep and Operate iterate queues) that teaches how to author durable GitHub Agent Briefs for `ready-for-agent` issues.
Install
npx skills add https://github.com/vinvcn/mattpocock-skills-zh-cn --skill triageWhat is this skill?
- Agent Brief is the authoritative contract when an issue moves to `ready-for-agent`
- Durability rules: interfaces and types yes—file paths, line numbers, and procedural steps no
- Behavioral specs describe what the system should do, not how to edit specific files
- Mandatory concrete, independently verifiable acceptance criteria per brief
- Explicit out-of-scope section to prevent gold-plating and adjacent feature creep
Adoption & trust: 489 installs on skills.sh; 485 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
Issues sit in `ready-for-agent` with discussion and stale paths, so autonomous agents lack a contract that still makes sense after the repo changes.
Who is it for?
Indie maintainers using GitHub labels and AFK agents who need specs that last days or weeks without path-based instructions.
Skip if: Synchronous pair programming in chat with no issue workflow, or tasks where the spec is already a merged design doc with approved file-level patches.
When should I use this skill?
An issue is moving to `ready-for-agent` and you need to publish or refine the authoritative Agent Brief comment (category, summary, behavioral requirements, acceptance criteria, out of scope).
What do I get? / Deliverables
Each ready issue gets an Agent Brief with behavioral requirements, verifiable acceptance criteria, and explicit scope limits—the handoff AFK agents should treat as source of truth.
- Agent Brief markdown comment on the GitHub issue
- Testable acceptance criteria list
- Explicit out-of-scope section
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Issue-to-agent specs are canonical under Build PM because that is where work is defined before agents touch the codebase. The skill governs issue triage handoff documentation (agent brief template), which is product and workflow orchestration rather than frontend or backend code.
Where it fits
Convert a `/triage` enhancement issue into an Agent Brief that names types and behavior for schedule support on `SkillConfig`.
Standardize how your repo’s AFK agent reads only the brief comment, not the original issue body, before spawning work.
Brief launch-blocking bugs with testable `gh issue list` criteria so an agent can fix without exploratory scope creep.
Rewrite stale path-based briefs after a refactor so the next agent run still targets the right behavioral contract.
How it compares
A brief-writing contract skill for GitHub agents—not a code review checker or an automatic issue classifier by itself.
Common Questions / FAQ
Who is triage for?
Builders and maintainers who move GitHub issues to `ready-for-agent` and want AFK coding agents to execute from structured Agent Brief comments instead of noisy threads.
When should I use triage?
When drafting or reviewing Agent Briefs before agent pickup in Build PM; also when re-briefing issues during Ship launch crunch or Operate iteration after refactors made old path-based notes useless.
Is triage safe to install?
It is documentation and template guidance without mandatory shell or network tools in the excerpt; still review the Security Audits panel on this Prism page for the full skill package.
SKILL.md
READMESKILL.md - Triage
# Writing Agent Briefs Agent brief 是 issue 移动到 `ready-for-agent` 时发布在 GitHub issue 上的结构化 comment。它是 AFK agent 后续工作的权威 spec。原始 issue body 和讨论是 context;agent brief 是 contract。 ## Principles ### Durability over precision Issue 可能会在 `ready-for-agent` 中停留数天或数周。期间 codebase 会变化。写 brief 时要让它在文件被重命名、移动或 refactor 后仍然有用。 - **Do** 描述 interfaces、types 和 behavioral contracts - **Do** 命名 agent 应该查找或修改的具体 types、function signatures 或 config shapes - **Don't** 引用 file paths;它们会过期 - **Don't** 引用 line numbers - **Don't** 假设当前 implementation structure 会保持不变 ### Behavioral, not procedural 描述系统应该做**什么**,而不是**如何**实现。Agent 会重新探索 codebase,并做出自己的 implementation decisions。 - **Good:** "The `SkillConfig` type should accept an optional `schedule` field of type `CronExpression`" - **Bad:** "Open src/types/skill.ts and add a schedule field on line 42" - **Good:** "When a user runs `/triage` with no arguments, they should see a summary of issues needing attention" - **Bad:** "Add a switch statement in the main handler function" ### Complete acceptance criteria Agent 需要知道什么时候算完成。每个 agent brief 都必须有具体、可测试的 acceptance criteria。每条 criterion 都应该能独立验证。 - **Good:** "Running `gh issue list --label needs-triage` returns issues that have been through initial classification" - **Bad:** "Triage should work correctly" ### Explicit scope boundaries 说明什么不在范围内。这可以防止 agent gold-plating 或对相邻功能做假设。 ## Template ```markdown ## Agent Brief **Category:** bug / enhancement **Summary:** one-line description of what needs to happen **Current behavior:** Describe what happens now. For bugs, this is the broken behavior. For enhancements, this is the status quo the feature builds on. **Desired behavior:** Describe what should happen after the agent's work is complete. Be specific about edge cases and error conditions. **Key interfaces:** - `TypeName` — what needs to change and why - `functionName()` return type — what it currently returns vs what it should return - Config shape — any new configuration options needed **Acceptance criteria:** - [ ] Specific, testable criterion 1 - [ ] Specific, testable criterion 2 - [ ] Specific, testable criterion 3 **Out of scope:** - Thing that should NOT be changed or addressed in this issue - Adjacent feature that might seem related but is separate ``` ## Examples ### Good agent brief (bug) ```markdown ## Agent Brief **Category:** bug **Summary:** Skill description truncation drops mid-word, producing broken output **Current behavior:** When a skill description exceeds 1024 characters, it is truncated at exactly 1024 characters regardless of word boundaries. This produces descriptions that end mid-word (e.g. "Use when the user wants to confi"). **Desired behavior:** Truncation should break at the last word boundary before 1024 characters and append "..." to indicate truncation. **Key interfaces:** - The `SkillMetadata` type's `description` field — no type change needed, but the validation/processing logic that populates it needs to respect word boundaries - Any function that reads SKILL.md frontmatter and extracts the description **Acceptance criteria:** - [ ] Descriptions under 1024 chars are unchanged - [ ] Descriptions over 1024 chars are truncated at the last word boundary before 1024 chars - [ ] Truncated descriptions end with "..." - [ ] The total length including "..." does not exceed 1024 chars **Out of scope:** - Changing the 1024 char limit itself - Multi-line description support ``` ### Good agent brief (enhancement) ```markdown ## Agent Brief **Category:** enhancement **Summary:** Add `.out-of-scope/` directory support for tracking rejected feature requests **Current behavior:** When a feature request is rejected, the issue is closed with a `wontfix` label and a comment. There is no persistent record of the decision or reasoning. Future similar requests require the maintainer to recall or search for the prior discussion. **Desired behavior:** Rejected feature requests should be documented in `.