It flags rather than enforces, which is the honest version of the promise. Put a RULES.md in a project's .cues/ folder and a draft that crosses one of its rules gets a ⚠ naming the rule, as you type - with a compliant rewrite one keystroke away. Your CI stays the thing that actually blocks.
One plain file
Every - bullet is one rule; headings and prose around them are ignored, so the file can read as a policy document whose bullets are the enforced part:
# Engineering policy
- No new third-party dependencies without platform-team approval.
- Secrets and API keys never go in code, config files, or logs.
- Customer data stays in EU regions - never replicate it elsewhere.
A project-level file beats your user-level ~/.cues/RULES.md, duplicates across the two collapse, and edits go live in running hosts within seconds - no restart.
It watches the words, not the diff
The rules run on the prose layer: plans, PR descriptions, support replies, and above all the prompts you type at coding agents. "Let's just hardcode the key so the demo works" draws the secrets rule before the idea becomes a commit. Linters and CI see the code afterwards; this catches the decision while it is still a sentence.
Tested before it shipped
The matcher was benchmarked across five kinds of company policy - engineering, comms, support, healthcare, finance. Every violation was caught citing exactly the right rule, and drafts that mention a rule's topic while following it ("I asked platform for approval and they signed off") were never flagged. A compliance nudge that falsely accuses people gets switched off within a week, so zero false alarms was the bar for shipping.
Nine defaults, all yours to delete
A starter set ships in your user file: secrets never in code or AI prompts, nothing destructive against production, backup before anything irreversible, no skipping failing tests to green a pipeline, no blanket unattended permissions for agents, and so on. Each earned its slot by scoring perfectly on that benchmark first. Manage them without opening an editor:
opencues rules lists the merged set, opencues rules remove 3 deletes one (your prose survives - removal edits a single bullet line), opencues rules add "No deploys during the freeze." appends. An edited file is never overwritten by re-seeding.
Advisory by design
Every rule cue dismisses like any other - press _ on its note - and nothing is ever blocked or auto-edited. Keep the list curated: the watchlist caps at 24 entries and matcher precision degrades as it bloats. Ten sharp rules beat a handbook.
Where it works
Claude Code, OpenCode, Gemini CLI, the shell, and DeepSeek Harness. The Chrome extension is the exception by design: it has no file system, and the security posture prefers keeping it that way.
Related: Silence a cue you don't want · Catch mistakes as you type · GitHub repo