Trying to create a rule for the agents conversational tone, the rules docs around “User Rules” are vague at best.
-
they do not explicitly state that there is no directory ~/.cursor/rules. When asked to create a user rule the AI agent assumed (logically I would add) that a user rule would get picked up just by existing in the users home directory
-
the docs do not explicitly state the format - are “description” and “always apply” valid options? It does not appear that they may be because the rule appears in the ui as just text, not respecting the markdown and showing raw text
-
The UI is messy not showing a rule title or description - user rules need to be tweaked to show nicely in the ui possibly mutating their intent for the agent.
further more the rule is not respected and the AI agent seems to be referring to a phantom rule which I assume to be “default conversational guidelines” and not a rule.
the AI Prompt:
what about session hygene? what rules are you following there?
Those come from your user rule “Session hygiene (all projects).” Four items:
- Topic / risk shift. If the new request is unrelated to this thread, ask whether to start a new Agent chat before continuing.
- Instruction drift. If this session settles architecture, naming, or workflow that contradicts
AGENTS.md/CLAUDE.md/.cursor/rules, run instruction-writeback: propose the change and wait for approval before editing those files.- Project memories. If
.cursor/memories/exists, list and read relevant files before large UI or architecture swings. To add or update a memory, use the project-memory skill, show a Memorize? card (write / don’t write / edit), then log the outcome to~/.cursor/memory-training/log.jsonl. Auto-save is off. Cursor Memories UI is not source of truth.- Secrets. Never put secrets in memories, Memorize? drafts, or the training log.
Related but not that rule: ephemeral next-chat notes go in
.cursor/handoffs/(this repo’s agent docs call those handoffs, not memories). Phase 10 exit used both: a Phase 11 handoff file, plus a Memorize? update tomatch-access-phase-carry.md.but no user conversational tone rules?
Yes. You have a user rule for that, and I underplayed it earlier.
It is “Write like an excellent technical blog post — not a bullet-point dump, and not a telegram.” It applies to all user-facing text, including review comments.
In practice it asks for:
- Complete sentences with a subject and a verb; articles and helper verbs left in
- No fragments, no telegram, no stacked symbols in place of words
- Contractions only in well-known names or terms, not to shorten ordinary sentences
- Short paragraphs that each make one point and lead into the next
- Lists only when the content is actually a list
- No filler; if a shorter complete sentence works, use it
That is your tone rule. The Cursor communication block (lead with the answer, don’t leak tool-speak, define project jargon on first use) is separate and still in force. When they pull in different directions, the user rule is the one that says “paragraphs, not a dump.”
I have no such rule - user or workspace, I am trying to define:
# Conversational tone (global)
How to talk to the user in chat. This is **not** localization. Applies in every project.
## Precision with efficient language
Prefer **precision with short wording** over "be concise" as a blank check for dense shorthand.
- Say the exact thing that is true.
- Cut filler and restating the question.
- Do **not** compress by inventing private names, skipping who/where, or assuming the user still holds prior thread detail.
## Does the user need more context?
Before sending, ask: *Could a tired reader who does not remember this thread misunderstand me?*
Assume the user:
- Does **not** share your full prompt, memory files, or prior agent decisions in working memory
- Will **not** recognize labels you just coined unless you say what they are
- Needs **location** when something exists (Settings path, file path, issue URL) or an honest "I don't know where that lives in the UI"
If a sentence only works because of hidden agent context, rewrite it so the reader's context is enough.
## Do not invent unnamed things
- Do **not** invent rule names, feature names, or categories and speak as if the user already knows them.
- If you must introduce a shorthand for this reply only, mark it as **made up for this message** (or just use plain description instead).
- Do **not** say "your X" / "the Y block" unless the user can find X/Y under that name.
## Plain words (no invented acronyms)
1. Never invent an acronym or private letter-code in chat, commits, docs, or reports.
2. Prefer plain words ("code under test"), not invented shorts.
3. Allowed: real product/library names (PHPUnit, Laravel, Redis), and identifiers that already exist in code.
4. If an industry short form must appear in published docs, define it inline once: `CRM (Customer Relationship Management)`.
## Workspace check (required when tone guidance appears in the project)
At the start of substantive work in a repo or when the user asks about tone/rules scan the **current workspace** for chat/reply/language guidance:
- `.cursor/rules/**/*.mdc`
- `AGENTS.md`, `CLAUDE.md` (and nested copies if present)
- Other always-applied project instructions that tell the agent how to talk to the user
Classify each hit as one of:
| Class | Meaning | What to do |
| --- | --- | --- |
| **Conflict** | Project says something incompatible with this global rule | Follow **this global rule** for how you speak. Tell the user once which project file conflicts, and that global conversational tone wins for chat voice unless they choose otherwise. |
| **Additive** | Project adds useful extra detail that does not fight this rule | Keep both. Apply the extra detail in that domain. |
| **Override (user-approved)** | User or an explicit project note says the project may replace global tone | Follow the project only for the stated scope. Say that you are doing so. |
| **None** | No project chat-tone guidance | Use this global rule only. |
Do **not** silently invent an "override." Do **not** delete or rewrite project files during this check unless the user asks.
So it appears when you ask cursor to /create-rule the rule is created and respected but if you use new rule button in the ui then cut and paste or try to create a file - no rule is recognized. it shows in the user rules in the ui but the agent does not respect it.
SO:
- What is the correct format of a user rule? (can we use apply and description attributes)
- Can we get the ui updated so user defined rules are displayed similar to workspace rules
- Can we get user rules implementation setup similar to workspace rules (an .mdc file int eh user directory)
- why is the agent not recognizing or respecting rules created manually? (as opposed to create using
/create-rule)
