Context
A separate skills framework — Agent Upskill's spec-coordinator — uses an SME registry to route cross-domain spec requests to relevant skills. The registry has two routing layers:
- Tag-match (deterministic) — picks skills whose
coordinator.domains: [...] frontmatter overlaps query tokens (confidence 1.0).
- Sonnet classifier (fallback) — scores skills against the query (threshold 0.6 for picks).
The 10 engineering/* skills in this plugin are frequent SMEs on cross-domain specs (any query mentioning system design, testing strategy, ADRs, code review, deployment, etc.). Today they ship without a coordinator: overlay so spec-coordinator picks them classifier-only.
This works (the classifier consistently picks engineering:system-design on architecture queries, engineering:testing-strategy on test-strategy queries, etc. — see agentupskill/skills-core#56 for the registry-discovery clarification ensuring classifier coverage on plugin-shape skills). But adding tag-match would:
- Reduce ~10 Sonnet classifier calls per spec query when token-overlap is sufficient.
- Eliminate classifier-confidence variance (±0.1 per
_threshold-calibration.md F4.5) on queries with unambiguous match.
- Make routing more auditable (
method: tag with a domain-list vs method: classifier with a confidence float).
engineering:testing-strategy is also Agent Upskill's seed default_broadcast_skills member (per _routing-priors.md §Default-broadcast SMEs) — it's auto-included on every spec-shape query regardless of classifier score. The default_broadcast_skills mechanism is registry-side (a list in spec-coordinator's routing-priors), so this issue doesn't affect that path; it's purely about reducing classifier overhead on the other 9 skills + sharpening tag-match for testing-strategy when its triggers ARE in the query.
Specific request
For each of the 10 engineering/* skills, add a coordinator.domains: [...] block to the SKILL.md frontmatter. Suggested domains per skill (calibrated against Agent Upskill's _routing-priors.md Z4/Z7/Z8/Z9/Z10/Z17 ambiguity zones):
| Skill |
Suggested coordinator.domains |
engineering/architecture |
adr, architecture-decision, decision-record, trade-offs, consequences |
engineering/code-review |
code-review, pull-request-review, security-review, pr-review, n+1-query, injection-risk |
engineering/debug |
debug, bug, reproduce, isolate, diagnose, stack-trace, error-message |
engineering/deploy-checklist |
deploy, deploy-checklist, pre-deploy, release, rollback, migration-gate, feature-flag |
engineering/documentation |
documentation, readme, runbook, onboarding-guide, api-docs, architecture-docs |
engineering/incident-response |
incident, incident-response, outage, postmortem, triage, severity, oncall |
engineering/standup |
standup, daily-standup, yesterday-today-blockers, weekly-update |
engineering/system-design |
system-design, architect, service-boundary, data-modeling, api-contract, concurrent-writer, multi-tenant |
engineering/tech-debt |
tech-debt, technical-debt, code-health, refactor, maintenance-backlog |
engineering/testing-strategy |
test-strategy, test-plan, testing, eval-methodology, tier-1, tier-2, coverage |
The coordinator: block is namespaced under a custom-coordinator key so it doesn't conflict with existing Anthropic-defined frontmatter. Schema documented in _routing-algorithm.md §Inputs.
Why upstream rather than a downstream patch
Plugin frontmatter ships with the plugin distribution and is not editable downstream. Without the overlay shipped here, every spec-coordinator installation falls back to classifier-only routing for all 10 engineering:* skills.
Empirical context
PR-#320 (Boogles-Playhouse/claude-skills#320) drafted an 8-PR substrate-epic spec that needed engineering:system-design + engineering:testing-strategy in the 6-SME panel. The classifier sweep correctly picked them post-fix (see agentupskill/skills-core#56), but tag-match would have been faster + more deterministic. F-CAL-6 in _threshold-calibration.md records the calibration trace.
Acceptance
- Each
engineering/*/SKILL.md gets a coordinator.domains: [...] block.
- A short note added to the plugin's README explaining the field's consumer (Agent Upskill spec-coordinator) so future skill authors know to populate it.
- No breaking changes — the field is additive.
Happy to send a PR if Anthropic prefers that route.
Cross-references
- Routing algorithm: _routing-algorithm.md
- Ambiguity zones (engineering-touching): Z4 (HITL × system-design), Z7 (system-design × architecture), Z8 (incident-response × debug), Z9 (code-review × workers-best-practices), Z10 (testing-strategy × HITL), Z17 (substrate-epic with system-design + testing-strategy + claude-api + cloudflare:*) — all in _routing-priors.md
- Companion issues (other plugin sources): cloudflare/skills#49, anthropics/skills#1091
Context
A separate skills framework — Agent Upskill's spec-coordinator — uses an SME registry to route cross-domain spec requests to relevant skills. The registry has two routing layers:
coordinator.domains: [...]frontmatter overlaps query tokens (confidence 1.0).The 10
engineering/*skills in this plugin are frequent SMEs on cross-domain specs (any query mentioning system design, testing strategy, ADRs, code review, deployment, etc.). Today they ship without acoordinator:overlay so spec-coordinator picks them classifier-only.This works (the classifier consistently picks
engineering:system-designon architecture queries,engineering:testing-strategyon test-strategy queries, etc. — see agentupskill/skills-core#56 for the registry-discovery clarification ensuring classifier coverage on plugin-shape skills). But adding tag-match would:_threshold-calibration.mdF4.5) on queries with unambiguous match.method: tagwith a domain-list vsmethod: classifierwith a confidence float).engineering:testing-strategyis also Agent Upskill's seeddefault_broadcast_skillsmember (per _routing-priors.md §Default-broadcast SMEs) — it's auto-included on every spec-shape query regardless of classifier score. Thedefault_broadcast_skillsmechanism is registry-side (a list in spec-coordinator's routing-priors), so this issue doesn't affect that path; it's purely about reducing classifier overhead on the other 9 skills + sharpening tag-match for testing-strategy when its triggers ARE in the query.Specific request
For each of the 10
engineering/*skills, add acoordinator.domains: [...]block to theSKILL.mdfrontmatter. Suggested domains per skill (calibrated against Agent Upskill's _routing-priors.md Z4/Z7/Z8/Z9/Z10/Z17 ambiguity zones):coordinator.domainsengineering/architectureadr,architecture-decision,decision-record,trade-offs,consequencesengineering/code-reviewcode-review,pull-request-review,security-review,pr-review,n+1-query,injection-riskengineering/debugdebug,bug,reproduce,isolate,diagnose,stack-trace,error-messageengineering/deploy-checklistdeploy,deploy-checklist,pre-deploy,release,rollback,migration-gate,feature-flagengineering/documentationdocumentation,readme,runbook,onboarding-guide,api-docs,architecture-docsengineering/incident-responseincident,incident-response,outage,postmortem,triage,severity,oncallengineering/standupstandup,daily-standup,yesterday-today-blockers,weekly-updateengineering/system-designsystem-design,architect,service-boundary,data-modeling,api-contract,concurrent-writer,multi-tenantengineering/tech-debttech-debt,technical-debt,code-health,refactor,maintenance-backlogengineering/testing-strategytest-strategy,test-plan,testing,eval-methodology,tier-1,tier-2,coverageThe
coordinator:block is namespaced under a custom-coordinator key so it doesn't conflict with existing Anthropic-defined frontmatter. Schema documented in_routing-algorithm.md§Inputs.Why upstream rather than a downstream patch
Plugin frontmatter ships with the plugin distribution and is not editable downstream. Without the overlay shipped here, every spec-coordinator installation falls back to classifier-only routing for all 10
engineering:*skills.Empirical context
PR-#320 (Boogles-Playhouse/claude-skills#320) drafted an 8-PR substrate-epic spec that needed
engineering:system-design+engineering:testing-strategyin the 6-SME panel. The classifier sweep correctly picked them post-fix (see agentupskill/skills-core#56), but tag-match would have been faster + more deterministic. F-CAL-6 in _threshold-calibration.md records the calibration trace.Acceptance
engineering/*/SKILL.mdgets acoordinator.domains: [...]block.Happy to send a PR if Anthropic prefers that route.
Cross-references