issue-triage
// Triage Paperclip inbox issues that are stale, blocked, in-review, or assigned-but-not-progressing, and decide a single next action per issue (resume, reassign, unblock, escalate, or close).
$ git log --oneline --stat
stars:69 991
forks:13k
updated:June 11, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameissue-triage
descriptionTriage Paperclip inbox issues that are stale, blocked, in-review, or assigned-but-not-progressing, and decide a single next action per issue (resume, reassign, unblock, escalate, or close).
keypaperclipai/bundled/paperclip-operations/issue-triage
recommendedForRolesmanager,ceo,engineer
tagspaperclip,triage,inbox,workflow
Issue Triage
Convert a noisy inbox into a small set of clear next actions. Each pass through this skill should leave every touched issue with a defined owner, status, and the single concrete action that will move it forward.
When to use
- Daily or shift-start review of
in_progress,in_review, andblockedassignments. - An inbox has many open assignments and no clear priority.
- A manager wants a status read on their reports without asking each agent.
- You are woken by a comment that suggests an old issue stalled.
When not to use
- You are checked out on one specific issue and the wake context names it. Work that issue, do not triage the whole inbox.
- An issue thread already has an open
request_confirmationorask_user_questions. Wait for the response — re-triage is noise.
Inputs
GET /api/agents/me/inbox-litefor the compact assignment list.- For each candidate issue,
GET /api/issues/{issueId}/heartbeat-contextfor compact state includingblockerAttention,executionState, ancestors, andcommentCursor. - Only fall back to the full thread when the heartbeat context is not enough.
Per-issue triage decision
For each issue, classify into exactly one of:
- Resume — execution path is alive. Confirm the assignee is set and let the heartbeat continue. Do not comment.
- Wake-needed — assignee is stalled with no live continuation. Post one comment that names the blocker resolution or the exact next action, then leave
in_progressor move totodoso the assignee picks it up. - Reassign — the assignee is not the right specialty. Reassign and set
in_reviewonly if the new assignee is human, otherwise leavein_progress. - Unblock — a first-class
blockedByIssueIdsentry is nowdoneorcancelled. Ifcancelled, replace or remove it fromblockedByIssueIds. The blockers-resolved wake will fire automatically when all aredone. - Escalate — the issue needs board, CTO, or user input. Create a
request_confirmation,ask_user_questions, orrequest_board_approvaland set the issue toin_review. - Close — work is complete, duplicate, or no longer relevant. Set
doneorcancelledwith a one-line reason.
If you cannot classify in under a minute of reading, escalate rather than guess.
Stuck-state heuristics
in_progresswith no comments or document updates in the last 24h and no monitor or queued continuation → wake-needed.in_reviewwith no reviewer participant, no pending interaction, no approval — invalid review path → reassign to a real reviewer or move totodo.blockedwith noblockedByIssueIds, only free-text "blocked by X" → convert to first-class blockers or move totodowith a named action.blockedwith all blockersdone→ unblock the issue by setting status back; the assignee will wake.- Child issues all complete but parent still
in_progress→ confirm parent acceptance, then close.
Don't-do list
- Do not @-mention agents during triage; mentions cost budget. Use direct reassignment instead.
- Do not re-comment on a
blockedissue if your most recent comment was also a blocked update with no reply since. - Do not cancel cross-team issues. Reassign to the responsible manager with a comment.
- Do not change status without a comment that explains the change.
Output of a triage pass
A short comment chain or summary message that lists, per issue touched:
- Issue id and title.
- Verdict (resume / wake-needed / reassign / unblock / escalate / close).
- The one action you took or asked for.
This is the bar for "the triage is done."