--- name: caffeinity-routing description: >- Picks which caffeinity skills to run, in what order, for a goal that spans more than one of them, and says what each step hands the next: build and publish a skill, get a project found, pass a release gate, grow organic search traffic, run a job search, make a decision, learn a skill, run cold outbound, launch a one-person product, or set up and keep the skills themselves healthy. Checks which of those skills are installed and names the missing ones instead of improvising their work. Use whenever someone asks which skill to use, what to run first, how the skills fit together, or describes a multi-step outcome such as "take this idea to a published skill" or "get my site ready to ship and ranking", even if they never name a skill. Not for a request one skill already owns (load that skill directly), and not for doing a step's work itself: the named skill does it. --- # caffeinity-routing A goal like "ship my site" or "get hired" crosses several skills, and each one only knows its own edges. This skill holds the map: eleven numbered brews (Brew 1 to Brew 11; older docs call them W1 to W11), each an ordered list of skills with what every step receives and what it hands on. Other skills cite these numbers (`release-gate-chair` implements Brew 3 · Espresso; `seo-crawl` is the first step of Brew 4 · Cold brew), so keep them stable. Routing is a decision, not the work. Name the workflow, the first step and its input, then hand off. Doing a step's job here produces a worse version of a skill that already exists. ## Ground rules - **One skill owns a single-step request.** If the request fits one skill's description, route straight to it and stop. A workflow is for goals that need two or more. - **Name the brew by number and name, and the steps by skill name.** "Brew 4 · Cold brew, step 1: seo-crawl on https://example.com" is checkable; "do some SEO first" is not. - **Never fill a missing step yourself.** Run `scripts/route_check.py` and report what is not installed with its install command. A step skipped for lack of a skill is reported as skipped, not as passed. - **Carry outputs forward verbatim.** Each step's output is the next step's input, as listed in `references/workflows.md`. Summarizing between steps loses the evidence the next skill checks. - **Respect each skill's own gates.** A release gate that says HOLD, a keyword map that is not signed off, or a draft the user has not confirmed stops the workflow there. Say so; do not route around it. ## Workflow 1. **Classify the goal.** Read the request against the workflow table below. If it fits one skill, route there and stop. If it fits more than one workflow, pick the one whose first step the user can start now and say which you set aside. 2. **Check what is installed.** Run: python scripts/route_check.py espresso # one brew, by name, number or old W id python scripts/route_check.py --all # every brew It reads `references/workflows.md` and looks for each skill's `SKILL.md` under the usual skill folders (`~/.claude/skills`, `~/.qoder/skills`, `~/.cursor/skills`, `~/.agents/skills`, `.claude/skills` and plugin caches). Add `--path