There are two ways to put rules in front of an AI — one it has to choose to read, and one it can't skip. Composure is built on the second.
Model-elected: Claude Code's Agent Skills load a SKILL.md body only when the model decides the description matches. Anthropic's own skill-authoring guidance names the failure mode directly: "ignored content," "does the Skill activate when expected?"
Forced injection: Claude Code's CLAUDE.md auto-loads unconditionally; Cursor's "Always"/"Auto Attached" rules work the same way — no decision for the model to get wrong.
Composure's pattern hints are in the injection category: a native Claude Code hook runs our classifier and writes the classification and any matching pattern hints into the model's context before its turn begins.
The matching is plain machinery, not another AI guessing — which is why it works the same way every time. Here's the journey your request takes before your AI even starts:
1The check runs first
The moment you press enter, Composure steps in — before your AI reads anything. Its job is to set the table for the turn, not to clean up after it.
$you press enter$# before the model reads a word —$# the classifier runs first$# native hook · deterministic · zero tokens2Your request is understood
Your words are matched against a curated index — the same way every time, no guessing. A "let's plan this" request is recognized as planning; a "is this safe" request as security work. Small talk is recognized too — and left alone.
$"let's plan the booking flow"$# recognized: planning work$"is this endpoint safe?"$# recognized: security work$"thanks!"$# small talk — nothing injected3The right rules are picked
If your request touches something the rulebook covers, the best-matching rules are chosen — only the few most relevant, so your AI is guided, not flooded. Rules above your plan show up as "this exists" pointers instead.
$"add invoicing to my clients app"$# match: Commercial documents$# match: Deals and pipelines$# best few only — never a flood4Everything arrives before your AI starts
The understanding, the guidance, and the chosen rules are placed in front of your AI before it writes its first word. It never answers your raw request without them.
$# in context before the first word:$# what kind of work this is$# which patterns govern it$# the guidance for this class$Claude: Following the catalog's shape…5No repeats
A rule your AI already saw this session isn't sent again — the help gets quieter as the session goes on, not noisier.
$# later, same session:$"now add invoice PDFs"$# Commercial documents — already$# surfaced · not injected againwhat you actually see
$"add invoicing to my clients app"$# Claude: Following the catalog's shape for this —$# Commercial documents · Deals and pipelines$# Claude: Invoices, line items, and totals built$# as one entity set — not a guessed scaffold.What this page does not claim
This is a comparison of delivery mechanisms, not a claim that AIs are lazy — nothing here says the AI skips reading to save effort. The documented failure is simpler: a rule the AI has to choose to read sometimes doesn't get chosen.
The whole rulebook. Delivered without a maybe.