Skip to content
Development
Skill

/review-ticket

Triage a ticket or ticket set before work starts — compare it against the codebase and save a review covering verdict, feature walkthrough, and only the high-cost questions worth raising.

From plugin
agent-toolkit
4625 skills
Install
$ npx -y skills add eai-org/agent-toolkit --skill review-ticket --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/review-ticket

Context preview

The summary Claude sees to decide when to auto-load this skill.

Triage a ticket or ticket set before work starts — compare it against the codebase and save a review covering verdict, feature walkthrough, and only the high-cost questions worth raising.

SKILL.md

review-ticket.SKILL.md
name: review-ticket
description: Triage a ticket or ticket set before work starts — compare it against the codebase and save a review covering verdict, feature walkthrough, and only the high-cost questions worth raising.
disable-model-invocation: true
type: flow
license: MIT
metadata:
  version: "1.3"

Review ticket

A pre-pickup triage glance: read a ticket — or a set of tickets forming one feature — usually before anyone has started it, and decide whether it can be picked up or something must be clarified first. The output briefs the developer on the feature and lists the questions worth asking whoever owns the requirements.

Input

  • **Local ticket document(s)**: a single `.TICKET.md`, several, a ticket-set directory, or a

`.TICKET.md` whose `## Ticket set` section lists siblings.

  • **One or more ticket URLs or bare ids/keys**: delegate — even for a single one — to a subagent

that invokes [fetch-ticket](../fetch-ticket/SKILL.md), so the tickets land on disk without the fetch bloating this session's context, then review the local files.

If the input is ambiguous or unrecognized, ask rather than guess.

**Set mode** applies to multiple tickets, a set directory, or a `.TICKET.md` listing a `## Ticket set`. For a lone member file whose intended scope isn't obvious from the request, ask whether to review the whole set or just that ticket.

Read the materials

Read the input ticket file(s), **visually inspecting the downloaded images and design frames** — they are part of the spec and often where the gaps hide.

**Widen only on demand.** When the input already tells the feature clearly — the journey, the why, what each ticket delivers — review it as-is: reading beyond the input is never a required step. Settle a specific doubt as cheaply as possible, and only to answer it:

  • first, material already on disk: set siblings, a parent feature/epic, designs — a technical

ticket's journey often lives in its parent or a sibling;

  • remotely, only for what is still missing: a design inspected through its tool's MCP, a related

ticket deep-dived from the ticket file's shallow related list (title, status, type), a missing parent fetched through the same fetch-ticket subagent (its family routing lands it flat in the set directory).

Unsure the extra context is worth it? Ask. Stop once the doubt is answered; never recurse the related-ticket graph — except to kill a candidate question (see the question bar). Context never widens scope: the review covers only the input tickets, never a parent's other children.

Compare against the codebase

Weigh the ticket against the current code at adaptive depth: shallow by default, deeper only to (a) ground the walkthrough in how the code behaves today and (b) settle whether a real blocker exists. This is not an exhaustive both-sides verification: go as deep as a specific doubt demands, no more.

The question bar: both gates, or stay silent

A question reaches the output only when it clears **both**:

1. **Decision-expensive**: the answer changes what this developer builds — it blocks starting, or would be costly to reverse because it shapes the implementation (architecture, data model, approach). Cheap, easily-changed details (a color, a label, wording, spacing) are dropped even when unspecified. A real gap whose fix lies wholly outside the input tickets' scope (another repo, another team) is a **handoff**, not a question: it ships as an action item with a paste-ready message to its owner, and starting never waits on it. 2. **Survives the challenge**: a challenger (next section) hunted for the answer across every checkable source and came back empty-handed, with a complete evidence trail.

**Cheap-settle first.** Before challenging, settle each candidate as far as material already read or trivially reachable allows — set siblings on disk, code already open, an obvious lead (a telling title in an already-fetched relative's related list, a parent's other children included, a code path an earlier check surfaced). What a check settles, settle silently: never ask what you can read. The exhaustive hunts — whole-repo sweeps, tracker keyword search, design-tool exploration — are the challenger's job alone: never duplicate them here, and pass any lead you didn't follow into the challenger prompt.

**Zero questions is a clean, common result**: the ticket is ready to pick up. Never pad to look thorough. Zero candidates → zero challengers.

The challenge

Each surviving candidate gets one challenger — a subagent or equivalent isolated context, fresh per question, spawned in parallel, strictly read-only — prompted from the template in [challenger-prompt.md](challenger-prompt.md). When the harness cannot isolate a context, run the same template procedure inline over the same sources and flag each surviving question's why-note "challenged same-context (weaker)".

Judge the verdicts asymmetrically, in both directions:

  • **KILLED / RESHAPED — verify before accepting.** Accept only on a verifiable citation (file

path + lines + verbatim quote, ticket id + quoted text, design frame id): open the load-bearing citation yourself and confirm it exists as quoted **and answers the question as asked** — related evidence is not an answer. Either check fails → reject the verdict, the question stays. A derivation kill rests on multiple quotes composing an inference: verify each quote and that the conclusion follows. RESHAPED is a partial kill: same citation bar for the answered part, and the trail must explicitly cover the remainder; the narrowed question is not re-challenged.

  • **OPEN — accept only with a complete trail**: every source class probed, with what it said. On

an incomplete trail (a dead or errored challenger counts as one): unless the invocation preset a re-challenge budget, ask the user — one batched ask covering all weak trails — whether to spend a re-challenge aimed only at the unchecked sources. Still

Read more
Ships withagent-toolkit

A collection of generic agentic tools for common engineering tasks, designed to work with any AI agent on any kind of software project.

Get the whole plugin

Other skills on agent-toolkit.