A practical writing protocol for humans and LLMs. Use it as a system prompt, a slash command, or a verb: /crisp
same facts, fewer words
Great question! There are a few different ways you could approach this, but generally speaking, the best option in most cases would probably be to look into using a connection pool. I hope this helps, let me know if you have any questions!
Use a connection pool. Opening a connection per request exhausts the database's connection limit under load.
what it stands for
CRISP is an acronym and a verb. Each letter is a design goal, and each goal has rules a human or a model can check.
Say everything necessary, nothing unnecessary. Fewer tokens, same meaning.
Only what helps the question at hand. On-topic answers, no fluff, no unasked tangents.
Understood on first read. Answer first, natural order, structure that's easy to follow.
The plainest words that keep the precision. Straight to the point, less cognitive load.
Not a vibe: ten explicit rules, each with a yes/no check. Repeatable by people and models.
the protocol
When rules conflict: no ambiguity, then easy to understand, easy to scan, relevant, conversational, simple, concise, few tokens. Precision is never traded for length. Full protocol, reasons, and research →
three depths
Levels change how much is said, never how well.
/crisp 1just the answerUse Redis, with a TTL on each session key.
/crisp 2defaultUse Redis, with a TTL on each session key. Set maxmemory-policy volatile-ttl so eviction only removes keys that have a TTL.
/crisp 3plus the whyUse Redis, with a TTL on each session key: sessions are small, short-lived, and read on every request. Set maxmemory-policy volatile-ttl so eviction only removes keys that have a TTL. If you don't run Redis yet, Postgres works. Risk: a Redis restart without persistence logs everyone out.
get it
Works in the Claude desktop app, claude.ai, and Claude Code. Add it once and it follows your Claude account everywhere.
andreiverdes/crisp and confirm.Updates arrive automatically.
Skills need Code execution and file creation on, under Settings → Capabilities.
/crispcrispify thismake this crispier/crisp 3One-click install from Claude's plugin directory is in review. soon!
INSTALL $ claude plugins marketplace add andreiverdes/crisp $ claude plugins install crisp@crisp EVERY AGENT IN A REPO $ python3 skills/crisp/scripts/install.py --command
install.py writes CRISP into AGENTS.md and CLAUDE.md, so Codex, Cursor, and Claude Code all follow it. --level crisp|minimal|full picks the prompt size.Works in Codex in the ChatGPT desktop app, the Codex CLI, and the IDE extension. Codex reads skills from ~/.agents/skills.
$skill-installer install the crisp skill from https://github.com/andreiverdes/crisp/tree/main/skills/crispClick the command to copy it.
~/.agents/skills, press Return. (Create the folder if it's missing.)Windows: put it in %USERPROFILE%\.agents\skills.
$crispcrispify thisuse CRISPCodex mentions skills with $, not /. It also picks CRISP up on its own when you ask for a crisper answer.
INSTALL $ mkdir -p ~/.agents/skills && cd ~/.agents/skills $ curl -sL https://andreiverdes.github.io/crisp/crisp-skill.zip -o crisp.zip $ unzip -q crisp.zip && rm crisp.zip EVERY AGENT IN A REPO $ python3 ~/.agents/skills/crisp/scripts/install.py
install.py writes CRISP into AGENTS.md, which Codex reads on every task. --level crisp|minimal|full picks the prompt size..agents/skills/ at the repo root and commit it; everyone who opens the repo in Codex gets it.tested, not assumed
10 prompts across five scenarios, 3 samples each, judged pairwise with required facts fixed before the run. Plus a second model lane and a head-to-head against a second team's build.
Open the benchmark →