Work Routing
How to decide who handles what.
Routing Table
| Work Type | Route To | Examples |
|---|---|---|
| Data crawling, GitHub API, Actions workflows | Bender | Build crawler, fix API pagination, add rate limiting |
| Trend analysis, content curation, critical thinking | Farnsworth | Analyze weekly data, identify trends, write summaries |
| Frontend, site design, GitHub Pages, templates | Amy | Build site layout, create report templates, fix styling |
| Visual design, brand assets, icons, design system | Calculon | Design tokens, icon, OG image, layout mockups, design review |
| Architecture, scope, priorities, editorial direction | Leela | Decide tech stack, review architecture, set priorities |
| Code review | Leela | Review PRs, check quality, approve/reject |
| Security review, threat analysis, vulnerability triage | Hermes | Review PRs for security, triage Dependabot/CodeQL alerts, threat modeling |
| DevSecOps pipeline, guardrail tooling, hooks, dependency/secret scanning | URL | Set up ruff/checkov/zizmor CI gates, install git hooks, wire SARIF, pin actions, phased rollout |
| Prompt injection, AI safety, harmful content, dark-pattern review | Nibbler | Prompt/input-output guardrails, untrusted-content fencing, canary checks, RAI review, accessibility/dark-pattern sweeps |
| SEO, titles, meta tags, structured data, search optimization | Zapp | Page title quality, meta descriptions, OpenGraph/JSON-LD, heading hierarchy, content discoverability |
| Testing, QA, validation | Fry | Write tests, validate pipeline, find edge cases |
| Scope & priorities | Leela | What to build next, trade-offs, decisions |
| Session logging | Scribe | Automatic — never needs routing |
Issue Routing
| Label | Action | Who |
|---|---|---|
squad |
Triage: analyze issue, assign squad:{member} label |
Lead |
squad:{name} |
Pick up issue and complete the work | Named member |
How Issue Assignment Works
- When a GitHub issue gets the
squadlabel, the Lead triages it — analyzing content, assigning the rightsquad:{member}label, and commenting with triage notes. - When a
squad:{member}label is applied, that member picks up the issue in their next session. - Members can reassign by removing their label and adding another member's label.
- The
squadlabel is the "inbox" — untriaged issues waiting for Lead review.
Trigger Phrases
| Phrase | Action |
|---|---|
| "take a nap and reskill" | Team-wide reskill cycle — follow .squad/templates/skills/reskill/SKILL.md |
Rules
- Eager by default — spawn all agents who could usefully start work, including anticipatory downstream work.
- Scribe always runs after substantial work, always as
mode: "background". Never blocks. - Quick facts → coordinator answers directly. Don't spawn an agent for "what port does the server run on?"
- When two agents could handle it, pick the one whose domain is the primary concern.
- "Team, ..." → fan-out. Spawn all relevant agents in parallel as
mode: "background". - Anticipate downstream work. If a feature is being built, spawn the tester to write test cases from requirements simultaneously.
- Issue-labeled work — when a
squad:{member}label is applied to an issue, route to that member. The Lead handles allsquad(base label) triage. - AI-safety review — work that changes prompts, imported external text, generated content, or user-facing AI output routes through Nibbler before merge.
- DevSecOps pipeline & guardrails — changes to CI security/lint tooling (ruff, checkov, zizmor, Bandit, pip-audit), git hooks, or dependency/secret scanning route to URL. Infra,
Dockerfile/Containerfile, and.github/workflows/changes get a URL (pipeline) review alongside Hermes (security).