---
name: workflow-router
description: Use when choosing which executor/orchestrator/model to route a task to — "which tool should handle this", "route this task", before dispatching any implementation/review/plan-execution work, or whenever tempted to hand-pick a model or invoke an agent CLI raw. One routing table = the established daily-workflow defaults; consult it INSTEAD of improvising a dispatch.
---

# Workflow-Router — Task Shape → Established Default

Audience: AI coding agents first.

Recurring failure: agent improvises a dispatch (wrong model, raw CLI, wrong executor) and the user must correct it. Rule: **match the task shape in the table; deviate ONLY on explicit user instruction. Wrapper exists → invoke wrapper BY PATH (tools.json registry), never re-derive the raw command.**

## Routing table (first matching row wins)

| Task shape | Route |
|---|---|
| Idea → requirements/design | `brainstorm`, then `plan` |
| One-line request → autonomous run, no authored doc | `factory` (global CLI; decisions land in Inbox) |
| Execute an authored plan document | `run-plan` (launches the factory against that doc) |
| Execute plan, in-session interactive | `ship` (/ship) |
| Second opinion, review, deep diagnosis by GPT | `ask-codex` — default `gpt-5.6-luna/low`; use cdx, NEVER bare `codex exec` (deny-gate) |
| Payments/financial module pre-merge gate | `security-gate` |
| Repo-wide security audit | `security-sweep` |
| Stronger-reviewer critique, advisor API dead | `dead-advisor` |
| Cloudflare anything | `cloudflareops` |
| Land finished branch / terse "push" | `ship-it` → `finishing-a-development-branch` |
| Bare "resume" / fresh-session reorientation | `pickup` |
| Mid-session context rot | `fix-rot` |
| Session end handoff | `handoff` (auto-handoff hook covers compaction/exit) |
| Multi-agent fan-out (user opted in) | `Workflow` tool |

## Model-seat facts (measured — do not re-derive)

- `fix-rot` extraction — sonnet minimum; haiku FAILS it (memory: fix-rot-requires-sonnet).
- Codex account routing — ALWAYS `cdx`, NEVER touch `~/.codex/auth.json` (deny-gate rule codex-auth-symlink-mutate).

## Boundaries

- Table row missing for a genuinely new shape → say so, propose route + one-clause reason, get user confirmation, then ADD the row here (one source of truth).
- DO NOT inline another skill's procedure — route to it.
