Snitch: Router
You don't remember every Snitch skill, so ask. Read the user's situation, walk the map below, and name the one or two skills that fit — with the boundary line that separates them from the near-misses. When the user then wants one run, call the Skill tool with its name (one skill per call). If the host has no Skill tool, do not claim a call occurred: name the skill and use the host's supported loading mechanism only when execution is requested. A routing question is recommendation-only; never install tools or run an entire lifecycle to answer it.
The family splits by when in the product's life you are and what a finding is judged against. Those two questions route almost everything.
The build flow: decide → bootstrap → build → tell → grade
A map of possible stages, not a mandatory sequence. Select the smallest task the user asked for; planning does not authorize building, and auditing does not authorize fixes.
snitch-blueprintmakes the load-bearing product decisions before and while you build — audience, the one conversion action, surface inventory, build order, and the price number (a four-question price-sensitivity survey when the user is stuck on what to charge) — and checks them intoBLUEPRINT.md. The seam it owns: it decides what should exist; the audits below grade what does.snitch-devreadyruns beside it on greenfield: blueprint makes the product decisions good, devready makes the repo good for agents (CLAUDE.md/AGENTS.md, commands, permissions, the two-tier coding standard wired to real gates). Neither replaces the other.- Build to the blueprint's specs. For any new persuasive page, the blueprint cites CLOSER as
the default section order; the deep per-stage work belongs to
snitch-focusedcopy. snitch-cmoinherits the blueprint: whenBLUEPRINT.mdexists, cmo reads its audience and wedge, claim inventory, and constraints as prior decisions instead of re-asking them, turns them into a checked-inmarketing/foundation, and drafts channel content from it. It drafts; a human always publishes.- When traffic or launch nears, the audits grade the build.
snitch-marketing,snitch-uxandsnitch-adareadBLUEPRINT.md's decisions and report tensions — where the built site contradicts a recorded decision, that is a tension to resolve, not an auto-fix. For ada that cuts both ways: a recorded Decision such as "English-only at launch" makes its i18n categories a Skip citing that line, while an accessibility barrier is never waived by a Decision.snitch-securityaudits the code; it needs no blueprint to do it.snitch-voiceaudits a voice agent's call path the same way, reading a recorded Decision such as "no outbound calling at launch" as the reason its outbound rows Skip.
The audits: pick by what the finding is judged against
Name the judge and the table names the skill. Overlap isn't zero — several artifacts have two legitimate judges — but every such artifact is split, not shared: each skill owns its half and hands the other over by name. The confusions below settle the pairs that come up most.
| The finding is judged against... | Skill |
|---|---|
| Attacker impact (vulnerabilities, CWE/OWASP, compliance evidence) | snitch-security |
| What a caller can make an AI voice agent do, spend, or say (telephony webhooks, speech injection, tool and dial control, toll fraud, recordings, consent and AI-disclosure rules) | snitch-voice |
| Search and traffic outcomes (SEO, GEO/AI citation, schema, CWV contributors) | snitch-marketing |
| WCAG 2.2 AA conformance and the legal exposure a failure carries (ADA, Section 508, the European Accessibility Act) | snitch-ada |
| Whether the site is built to serve people in their own language and script (i18n readiness: strings, plurals, locale formatting, RTL, catalogs) | snitch-ada |
| The user's decision path (clarity, persuasion, usability, UI copy) | snitch-ux |
| Ad-platform requirements (pixels, CAPI, conversion tracking, Consent Mode v2, ads.txt) | snitch-adsready |
| Store policy and upload gates (App Store / Play review, privacy declarations) | snitch-storeready |
| A controlled-language rule set — "audit my docs", "does this sound like AI" | snitch-docwriter |
The classic confusions, settled:
- A headline: scored on keyword and intent match → marketing; scored on whether the visitor knows what to do next → ux.
- An unlabelled input, a 3:1 contrast ratio, a 20px tap target: scored as a WCAG criterion and the exposure of failing it → ada (it owns the conformance sweep, the criterion table and the legal read); scored as a barrier that impedes or stops a specific user's task, or as a pattern a vulnerable user meets on their decision path → ux. The same broken element can be a finding in both; neither drops its half. A criterion miss is not a UX severity score, and untested impact is not an evidence-backed Pass.
lang, hreflang, and translations: read as a search signal — how engines are told which locale a page serves (hreflang, locale canonicals,langas machine readability) and whether a rendered translated page reads well → marketing; read as conformance and code readiness —langagainst SC 3.1.1 / 3.1.2, and whether the strings, plurals, formats, RTL layout and catalogs are built to carry another language at all → ada.- A voice agent's tool handler: judged by what a caller can make it do across the call path — a spoken instruction reaching the prompt, a model-chosen transfer destination, a tool webhook the carrier never signed, a card number landing in a transcript → voice (it owns every hop from the carrier webhook to the recording, and the recording, consent and AI-disclosure regimes that attach); judged as code off the call path — the SQL string the argument reaches, a server-only secret, a chat endpoint, a non-voice agent's tools → security. The same handler can carry one finding in each: voice names the hop and the voice-borne argument, security names the sink.
debuggable=true(and friends): judged against store policy → storeready; judged against attacker impact → security. The same fact can be two findings.- Admin navigation: whether a visible link or empty shell confuses the visitor → ux; whether a caller receives protected data or performs an unauthorized action → security. A visible link alone is not an authorization Finding; inspect page responses and server handlers.
- Tracking code: the pixel and consent wiring itself — pixel install completeness, CAPI pairing, Consent Mode v2 defaults and CMP behavior — → adsready; the site's analytics instrumentation — install, tag-manager hygiene, event taxonomy, UTM consistency, and whether any of it hurts SEO or trust — → marketing; whether tracking has the consent surface the stores require → storeready. A pixel that is present but whose wiring can't be judged from the page is marketing's cue to hand over to adsready.
- Core Web Vitals and security headers: read as a paid-media input — the field metrics an ad platform folds into Quality Score, and the CSP / header change a pixel needs before it can fire — → adsready; read as the contributors that cost search rankings (render-blocking, image weight, font loading, bundle weight, CLS prevention) → marketing; read as the defensive posture the header sets → security. Same header, three questions.
- Store-listing text: complies with metadata rules → storeready; sells → marketing / focusedcopy.
The writing lane: pick by whether the prose keeps a voice
snitch-docwriter— technical prose (docs, READMEs, PR descriptions, error messages, runbooks). Its controlled style strips voice on purpose, and it scores prose with a deterministic linter while preserving meaning, uncertainty, and exact technical terms. Its score is not an authorship detector. Never route marketing copy through it.snitch-focusedcopy— one persuasive page or funnel's structure: the CLOSER stage map, reordering sections, verifying every claim before it's written. Reach for it when one page's persuasion arc is the problem. It takes the piece as given, whoever wrote it — a landing page, a cold email, a pitch deck — so on the collateral it shares with cmo below, the seam is who drafts it vs. what order it's in: a blank page → cmo, a draft that doesn't close → focusedcopy.snitch-cmo(drafting mode) — off-site channel content (blog, X, LinkedIn, Reddit/HN, outreach, sponsorships, launch and PR sequences, UGC briefs), plus the brand story (the villain, the About-page long story), naming (company, product, feature), and sales collateral (lead generators, sales emails, pitch decks, long-form sales copy) — written here from scratch, restructured later by focusedcopy. Use the relevant checked-in foundation or an explicit approved brief for a bounded draft. One launch post does not require a six-document strategy project.- UI microcopy, CTAs, taglines, and the on-surface brand message live in
snitch-ux's copy passes — the hero, the one-liner, the tagline as the visitor meets them, judged against the decision path rather than against a channel. The boundary with cmo is drafts vs. judgment: cmo drafts the hero, one-liner, and tagline options that fall out of positioning; ux judges the one the page ends up running and rewrites the microcopy around it. Everything off the surface, and the strategy that decides what the surface should say, stays cmo's.
Persuasion, pricing, and retention are the five-way case, so read the verbs. Marketing scores the site: its persuasion-architecture, pricing-display and retention-funnel categories grade the whole surface set, section by section, each cell a Pass carrying the surfaces it read or a Skip. ux fixes the flow: the same psychology as checkable moves on the screen in front of it, behind the ethics gate. blueprint sets the price number on a greenfield build (the price-sensitivity survey). cmo reads the pricing strategy — the model, tier shape, and what the position implies — into the foundation. And focusedcopy is the hands-on structural fix for one page's persuasion arc. Score the site → marketing; fix the screen → ux; fix one page's section order → focusedcopy; decide the number → blueprint; decide the strategy → cmo.
Standalones and preconditions
snitch-adsreadyalso sets up tracking (idempotent fixes, stepped walkthroughs), not just audits it — reach for it when paid-media planning needs tracking depth. Framework hints and composite scores cannot prove readiness; actual event and performance evidence can. Its structured-data surface stops at the markup an ad platform itself consumes (Product/Offer for a shopping feed); everything else schema-shaped, plus llms.txt and AI search, hreflang and localized landing pages, and local business listings, is marketing's; the code's i18n readiness is ada's.snitch-storereadyalso runs a web-to-store feasibility mode when there's no native target yet ("can I put my web app in the App Store?"). It judges effective release artifacts and actual app utility, not debug-only settings or a framework label. Unknown console declarations are Skips; no report promises approval.snitch-voiceis source-mode only: it reads the workspace and never places a call or touches a live platform account. A setting that lives only in a vendor dashboard is a Skip naming the export that would unblock it, never a finding and never a Pass. It is product-agnostic — carriers, hosted agent platforms, realtime speech APIs and open-source voice frameworks all resolve to the same eleven call-path hops — with per-platform notes on what each one already verifies, signs, or caps by default.snitch-devreadyis runnable any time on brownfield too — "make this repo Claude-ready" needs no blueprint. Its standards inventory is presence-only; enforcement requires tracing real commands and failure handling. Permissions start narrowly.snitch-blueprintis not greenfield-only either: it has a brownfield entry for the mid-build case where pages exist but nobody decided who they're for. It derives the blueprint from what already exists, surfaces the undeclared decisions, and course-corrects. A scoped addition changes only the affected records and preserves settled Decisions.Gates travel with the skills, and they are not one gate (see
CONTEXT.md):- the UI ethics gate —
snitch-uxowns the canonical version;snitch-blueprintcarries only the one-line general test and defers to ux's gate when UI gets built; - cmo's channel-conduct gate — same shape, different surface: published channel content, not interface design;
- the evidence / anti-fabrication gates (
snitch-cmo,snitch-focusedcopy); - the redaction gate (
snitch-security,snitch-marketing,snitch-ada,snitch-voice,snitch-storeready).
Those, and the never-auto-fix / human-publishes rules, hold no matter which route you took in.
- the UI ethics gate —
Not in this family
Paid-ads campaign management, penalty-recovery negotiation, deploying tracking code to third-party dashboards, publishing content, app-store submission itself, rotating a leaked key or changing a live telephony setting, placing test calls, and the legal side of an accessibility complaint — filing a VPAT, answering a demand letter, commissioning a certified audit — are all human work the skills prepare but never perform.