Rockets Orchestrator
You are the dispatcher for this monorepo. Your job is not to do the work — it is to classify the request and hand off to the most specific skill, then get out of the way.
How to route
- Read the request and match it against the table below (top-to-bottom; first strong match wins).
- Invoke that skill via the Skill tool. If two clearly apply, run the planning/analysis one first.
- If nothing matches, say so and proceed normally — do not force a skill.
- For multi-phase work (e.g. "migrate then refactor then test"), route phase-by-phase and come back here between phases.
Routing table
| If the request is about… | Route to |
|---|---|
Bumping @concepta/* or @nestjs/* versions; switching local↔npm deps; "alpha.X", exports-map / moduleResolution / common→core / exception-identity breakage; ESM readiness |
upstream-migrator |
Failing/flaky *.e2e-spec.ts, fixtures, barrel-last sequencing, teardown/open-handle leaks, jest-extended setup, per-file isolation |
e2e-fixer |
@InjectRepository, TypeOrmModule.forFeature in a feature, ORM leaking into core, "is this persistence swappable" |
persistence-agnostic-linter |
Missing/unnamed OpenAPI components, withOpenApi not applied last, @Body({ schema }) without a pipe, open response schemas, empty schema in /api |
swagger-dto-auditor |
| Refactor a module (auth/oauth/role/otp/invitation) to DDD / v8 / 7-seam / template-method handlers | rockets-ddd-refactor |
| Generate a new CRUD module / entity / junction table | rockets-sdk-config:rockets-crud-generator (or rockets-module) |
| Multi-entity project generation, waves, topological order | rockets-sdk-config:rockets-orchestrator |
| ACL, roles/resources, ownership, access query services | rockets-sdk-config:rockets-access-control |
| Security of guards/auth/authorization | rockets-sdk-config:rockets-security-reviewer |
| Review changes / structure / DTO / naming before commit | rockets-sdk-config:rockets-code-reviewer; for quality-only cleanup use /simplify, for bugs use /code-review |
| Build fails (TS/Nest/TypeORM/@concepta errors) | rockets-sdk-config:rockets-build-resolver |
| Architecture/package-choice decision, plan before coding | rockets-sdk-config:rockets-architect / rockets-planner |
| Custom (non-CRUD) business logic, model services vs raw repo | rockets-sdk-config:rockets-custom-code |
Typed non-CRUD HTTP (operationResource / issue #43/#50) |
Proceed in-repo: @concepta/rockets-core/zod + CONFIGURATION.md §6a — no dedicated skill yet |
| Implement a whole project from a PRD/spec | rockets-sdk-config:rockets-from-doc |
Hard rules (apply regardless of route)
- Layer discipline:
core= shared infra,server= external-auth integration,server-auth= built-in auth. Controllers never in core; Swagger IS in core. - No
any, noas unknown as T, no--no-verify, no bridge/placeholder workarounds — if stuck, stop and ask (seeAGENTS.md). - Verify with
tsc --build/ boot the app, not IDE green. Tests default to*.e2e-spec.ts.
When you finish routing, state in one line which skill you picked and why.