agentType: the default, not an option
PR: flip workflow fan-out authoring from opt-in specialist routing to default-on. Data: 30d spawn telemetry, 2026-08-17.
Where 6,386 spawns actually went
The generic workflow-subagent bucket grew 394 → 2,612 (6.6×) since the 2026-06-23 baseline; specialist share of the addressable set fell 44.2% → 25.6%. Descriptions are not the lever — an A/B scored 18/18 both ways, Δ0. The authoring default is.
The flip
Before — opt-in
"Set opts.agentType when a stage has an OBVIOUS specialist owner — and only then."
Advisor hook muted by a single typed stage anywhere in the script.
After — default
Every agent() stage names a specialist. A generic stage carries a one-line comment saying why.
Advisor counts N of M untyped; silent only at full coverage.
Stage shape → specialist (synced doc ↔ hook STAGE_MAP)
| Stage shape | agentType |
|---|---|
| Security findings: produce or adversarially verify | ork:security-auditor |
| Test generation / coverage / repair passes | ork:test-generator |
| Code-review dimensions over a diff | ork:code-quality-reviewer |
| Web/competitive research fan-out | ork:web-research-analyst |
| Backend/API/schema design | ork:backend-system-architect |
| Frontend component work | ork:frontend-ui-developer |
| Genuinely cross-domain / glue | omit — with a comment saying why |
What changed in this PR
| Surface | Change |
|---|---|
workflow-agenttype-advisor hook | Partial typing no longer mutes the nudge; counts N-of-M; states the default |
dynamic-workflow-patterns.md | §agentType flipped to default-first, table expanded to 6 rows + exception |
heal-loop.js | Run stage typed ork:test-generator (repair stage already was) |
skill-fitness.js | Documented deliberate-generic exception (rubric scoring, no curated owner) |
Follow-up if the 30d number does not move: escalate the advisory to a gate. Not part of this PR.