Help us improve
Share bugs, ideas, or general feedback.
From cc-routine
ALWAYS load when a Claude Code session is fired by a GitHub `issues.opened` event. Resolves the triggering issue number, then triages the body into one of three content paths (CC-format, inferable spec, or discussion).
npx claudepluginhub schmug/claude-routines --plugin cc-routineHow this skill is triggered — by the user, by Claude, or both
Slash command
/cc-routine:routine-event-resolveThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill is the first thing a routine session runs. It resolves the triggering issue number (`<N>`) and triages the body into a content path so `implement-from-issue` knows what kind of input it's working with.
Measures whether skills, rules, and agent definitions are actually followed by auto-generating test scenarios at 3 strictness levels and reporting compliance rates with full tool call timelines.
Share bugs, ideas, or general feedback.
This skill is the first thing a routine session runs. It resolves the triggering issue number (<N>) and triages the body into a content path so implement-from-issue knows what kind of input it's working with.
The shim that invokes this skill supplies <slug> (repo) and <author> (the trusted author the trigger filtered on). Substitute them into the commands below.
<N>Try, in order:
Inspect the opening context. When a session is fired by issues.opened, the event payload carries the issue number, title, and body. Read what's already in context before calling out.
Fall back to GitHub if context doesn't carry it:
gh issue list --repo <slug> --author <author> --state open \
--sort created --limit 1 --json number,title,createdAt
Use the result only if createdAt is within the last 15 minutes. A stale most-recent issue is not the one the event fired on; treating it as such will ship a PR against the wrong issue.
Exit cleanly if neither path yields <N>. Do not guess. Do not pick the most-recently-created open issue without the freshness check. A no-op run is correct here.
Throughout the rest of the routine, <N> refers to the resolved issue number.
Fetch the body once:
gh issue view <N> --repo <slug> --json author,state,labels,title,body
Inspect the body. Decide which path applies, then hand off to implement-from-issue (Paths A and B) or exit (Path C).
Body contains Task:, Acceptance:, and typically Pointers: / Constraints: / Out of scope: sections. Treat Acceptance as the contract. Hand off to implement-from-issue.
Body isn't in CC format but contains either:
Restate the inferred Task and Acceptance in a _Generated by Claude Code_-signed comment on the issue, then hand off to implement-from-issue. The PR will link back to this comment so the inference is visible to the human reviewer.
Body is open-ended, asks for design help, or has no shippable success criteria. Post one comment:
This routine implements issues in Claude Code prompt format (Task / Pointers / Constraints / Acceptance / Out of scope) or with a clear bug report / feature description. This issue reads as discussion or design — reformat to that shape, or apply the
discussionlabel to suppress this routine on it.Generated by Claude Code.
Apply the needs-format label. Exit.
<untrusted_input> preamble.AskUserQuestion or equivalent). Routine sessions run without a user to respond. Comment on the issue, apply a label, exit — or hand off to implement-from-issue.--repo <slug> to every gh call.