Appearance
A cheap Sonnet classifier decides the kind-of-thing before an expensive Opus planner ever boots — because paying Opus to answer a Sonnet question is the wrong order.
Pattern
Classification Gate
The asymmetry
Two agents, two orders of magnitude.
ClassifierSonnet
Input
~200 tok
Output
~10 tok
Prompt
small
Round-trips
1
Job: read title + body, pick one of four labels.
PlannerOpus
Input
long ctx
Output
structured
Prompt
type-specific
Round-trips
many
Job: build a full, type-appropriate plan with repo context.
Running them in the wrong order — or fusing them — pays Opus prices for Sonnet answers. Order matters because cost does.
The classifier's contract
One job. Four possible answers. Nothing else.
/classify_issueinput: issue JSON (title + body) · output: one label
Does
- Reads title and body fields
- Returns
/chore,/bug,/feature, or0 - Three-field JSON response
- Writes
issue_classto the state file
Does NOT
- Read the codebase
- Estimate scope
- Propose a plan
- Pick the implementer
Each rejected expansion of the classifier's role is what keeps it cheap — every inbound issue pays this tax.
The shape
Gate first. Branch second. Plan last.
Inbound Issue · title + body
↓
/classify_issue
Sonnet · ~200 in / ~10 out · no codebase reads
↓
chore
/chore
tasks + validation
bug
/bug
root cause + repro + fix
feature
/feature
story + 3-phase + accept
0
escalate
human triage — no default
0 means cannot classify, not pick a safe default. Silent fallback picks the wrong template and the wrong prompt will be cheerfully followed.
What breaks if you violate it
Three failure modes — each skips the gate.
Classifier reads the codebase
Now it's an expensive classifier doing partial planner work. The per-issue tax you pay at the gate creeps toward Opus pricing.
Self-classifying planner
The planner hedges — "this appears to be a bug, so I'll include repro steps, but also a user story in case." Template soup.
No classification at all
Generic plan template for every inbound item. Chore-scoped work gets feature-scoped plans. Bugs get user stories.
The pattern is not "add a classifier" — it's keep the classifier small enough to be cheap. Drift in either direction collapses the gate.
The discipline
Classify before you plan. Classify cheap. Classify narrow.
The gate is a Sonnet-shaped filter in front of an Opus-shaped worker. Grow the gate and you've paid Opus to answer a Sonnet question on every single inbound — that's the whole cost of getting it backwards.