
prompt-router-starter
A Claude Code starter for one design pattern: your own code runs on every prompt, before the model reads it, and tells the model how to answer.
Install with your AI
Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.
Install and set up prompt-router-starter (git-clone project) into my current project. Found on https://claudeers.com/prompt-router-starter Repo: https://github.com/Glitch-Cat-Club/prompt-router-starter Homepage/docs: — Detected install method: git-clone → git clone https://github.com/Glitch-Cat-Club/prompt-router-starter Category: other. Platforms: api. Read the repo's README for exact setup and env vars, then install it and wire it into my project. Claudeers Health Verdict: unknown; community-verified: false. Confirm the source before running anything.
git clone https://github.com/Glitch-Cat-Club/prompt-router-starter
// compatibility
| Platforms | api |
|---|---|
| Operating systems | — |
| AI compatibility | claude |
| License | MIT |
| Pricing | open-source |
| Language | Python |
prompt-router-starter
A design pattern you can use, not a complete solution.
A prompt injection, triggered from a UserPromptSubmit hook, decides how the reply should look
before the model answers: it scores the prompt's shape against readable rules and injects one
output style beside the prompt. The same hook carries a numbered requirements ledger, and a
Stop hook runs the proofs and refuses a false done. This is a demo of the pattern, not a
working solution: the styles are placeholders, the mechanism is the point.
Python 3.10+, stdlib only, nothing to install. Claude Code only. Tests: python -m pytest tests -q.
Setup
git clone https://github.com/Glitch-Cat-Club/prompt-router-starter
claude start it in the folder you just cloned
type a question the reply comes back in the skin the rules picked
What you'll see
The three hooks
router.py UserPromptSubmit: scores the prompt, injects the skin and the ledger
gate.py Stop: reads the contract table back, runs the proofs, refuses a false done
restore.py SessionStart: hands the contract back to a session after /clear
How it routes
Six of the shape signals in algorithm/rules.json. Each returns 0.0 to 1.0, each skin
weights the ones it cares about, and the top total over the 0.35 threshold wins.
| Signal | What it reads | Skin |
|---|---|---|
| decision_shape | a question holding an either/or | bluf |
| progress_shape | where are we, how is X going | sitrep |
| obligation_clauses | a list of rules: must, don't touch, due friday | contract |
| go_word | go, build it, do it | bars |
| ack_or_rating | three words or fewer, thanks, 8/10 | minimal |
| insult_at_model | an insult pointed at the model | banter |
Nothing clears the threshold and the default skin answers. Two skins within 0.10 of each other and both get named, so the model picks from the conversation.
Skins
bluf one decision, the answer first and the reasons under it
sitrep where the work stands, the whole board on one screen
contract the requirements you just heard, back as a table to approve
bars the build running, one row per requirement, gates as they catch
board the requirements as a kanban: open, building, proven
receipt the contract closed off, printed like a till receipt
minimal an acknowledgement or a rating, answered in one line
banter an insult, answered with one dry line
These eight are demo styles, not optimised outputs: they prove the mechanism. Write your own
with your AI, one file in skins/ (front matter, then the shape), one line in algorithm/rules.json.
The contract
Say everything you want in one go and it comes back as a numbered table, one proof a line.
Strike or reword any line by number, then say go: the ledger sits in .router/, so a
/clear never loses it. Claim done and the Stop gate runs the proofs before the turn ends.
The gate runs allowlisted commands only (pytest, python, python3, git, grep, rg, ls,
test, node, npm test, curl to localhost); anything else is stamped manual and never runs.
A red line holds the turn open with one sentence naming it. A proof written <command> → 0
passes when the command prints nothing, because grep-style tools exit 1 on no match.
demo/site/ is a prop project, so every proof in the demo is a real command.
Force it
/bluf /sitrep /receipt /board /minimal the skin by name
/e1 /e2 /e3 /e4 /e5 the depth, E1 shortest to E5 deepest
sitrep receipt board go the bare word, alone, as the whole prompt
default sitrep the house floor for this project
default off clear it
The slash tokens go at the END of the prompt and beat every score.
The haiku switch
Set "classifier": "haiku" in algorithm/rules.json and the skin comes from
claude -p --model haiku instead. Off by default: one Haiku call a prompt on your
subscription, API-key variables stripped from the child, back to the rules on any failure.
Tune it
python -m router.report from the repo root
Top-1 accuracy over tests/golden.jsonl, precision and recall per skin, the confusion
table, the ten worst misses with their top-2 scores. The rules here score 0.9595 on the
148-line set. Demo-tuned rules: the shape is the lesson, tune the words to yours.
Windows
Python on PATH. Git Bash or PowerShell for the proofs, whichever you have.
Hooks run on first launch
The hooks in .claude/settings.json are a project setting, so they run the first time you
start Claude Code here. The three files above live in .claude/hooks. Read them first.
Licence
MIT. The block letters use the ANSI Shadow FIGlet font, vendored from xero/figlet-fonts.
// faq
What is prompt-router-starter?
A Claude Code starter for one design pattern: your own code runs on every prompt, before the model reads it, and tells the model how to answer.. It is open-source on GitHub.
Is prompt-router-starter free to use?
prompt-router-starter is open-source under the MIT license, so it is free to use.
What category does prompt-router-starter belong to?
prompt-router-starter is listed under other in the Claudeers registry of Claude-compatible tools.
// embed badge
[](https://claudeers.com/prompt-router-starter)
// retro hit counter
[](https://claudeers.com/prompt-router-starter)
// reviews
// guestbook
// related in Other
Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability.
Anti-AI-slop design skill for Claude Code, Cursor, and Codex.
Huashu Design · HTML-native design skill for Claude Code · Claude Code 里 HTML 原生的设计 skill · 高保真原型 / 幻灯片 / 动画 + 20 设计哲学 + 5 维评审 + MP4 导出 · Agent-agnostic