From workflow
Classify one task or issue into a complexity tier — trivial, standard, or complex — and emit that tier plus a rationale; consumers resolve the tier's {model, effort} roster via the plugin's resolve-tier.sh. Grounds the call by fanning out 1–3 Explore subagents over the touched codebase areas, then asks you to confirm or override. Use for "/classify-task <issue#|brief>", "classify this task".
How this skill is triggered — by the user, by Claude, or both
Slash command
/workflow:classify-task [issue# | task brief text] [--no-confirm][issue# | task brief text] [--no-confirm]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Classify one task into a complexity **tier** — trivial, standard, or complex — and emit that
Classify one task into a complexity tier — trivial, standard, or complex — and emit that
tier plus a short rationale. The tier's {model, effort} roster is not your output —
consumers resolve it from the plugin's resolve-tier.sh (see Roster resolution below). You
run on the main thread because only the main thread can spawn the Explore subagents that
ground the call. You are read-only apart from gh issue view: you inspect, classify, and emit
a contract — you never edit.
/pipeline invokes this at its Step 0.5 to pick the tier for the run; you can also be invoked
directly (/classify-task <issue#|brief>). The output contract at the bottom is
load-bearing — callers parse it — so emit it verbatim.
The tier→{model, effort} mapping lives in ${CLAUDE_PLUGIN_ROOT}/model-tiers.json, resolved by
the plugin's helper — not copied here. To see any tier's roster, run:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/resolve-tier.sh" <tier>
It prints that tier's planner / implementer / reviewer {model, effort} pairs (or the standard
roster plus a single warning if the config is missing or invalid). Never mix cells across rows — a
tier is one whole row. The previous hardwired /pipeline roster ≈ the complex tier; the two
cheaper tiers sit below it.
Strip a trailing --no-confirm flag first (batch mode — see Step 4); the rest of
$ARGUMENTS is the brief.
12, #12) in $ARGUMENTS → issue mode:
gh issue view <N> --json title,body,labels. The title + body is the brief; labels are
context.$ARGUMENTS is the brief (callers pass a distilled brief, not the raw
conversation).$ARGUMENTS → ask the user for the task before classifying.Decide the count yourself from the brief:
Explore agent when the work is clearly scoped to a single area.Explore agents when the brief spans multiple distinct components or its scope
is ambiguous — one per area, spawned in parallel.Spawn Explore agents with the Agent tool, model: "sonnet", with targeted prompts (the
area to map, the seams/contracts to find, the brief's intent). Each returns:
Size is not the signal. A one-line change that moves a seam or changes a data contract is complex; a hundred lines of mechanical edits with no design decisions is trivial.
Reason through four questions before you decide:
Produce a tier plus a 1–3 sentence rationale that names the specific signals (concrete files/seams from the exploration, not generalities).
Batch mode (--no-confirm): skip this step — emit the Step-5 contract directly,
with no AskUserQuestion. The batch caller is /orchestrate's launch-time tier backfill
(Step 0a): it invokes you once per scoped issue that carries no tier:* label, auto-accepts
the tier and writes it back as a label. That run is autonomous past its launch gate, so a
per-issue confirm here would stall it — never prompt in batch mode.
Otherwise, show the user the tier, the rationale, and the classified tier's resolved roster — run
bash "${CLAUDE_PLUGIN_ROOT}/scripts/resolve-tier.sh" <tier> to fetch it — then AskUserQuestion:
trivial / standard / complex / proceed (accept the classification). An
override swaps to that tier wholesale (re-resolve its roster) — never a mixed row.
Emit exactly these two lines (the confirmed tier plus its rationale):
tier=trivial|standard|complex
rationale=<one to three sentences>
The tier is the whole contract — callers resolve the {model, effort} roster themselves through
resolve-tier.sh (one resolution site), so this skill never emits a model or effort.
npx claudepluginhub p/crazywillbear-workflow-plugins-workflowCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.