Modify Default "Technical Blog Post" Rule

Feature request for product/service

Chat

Describe the request

Feature request: Configurable communication style (override built-in “technical blog post” default)

Summary

Add first-class Communication Style settings so users can control how the agent writes — in chat, drafts, PRs, and other outputs — and can reliably override Cursor’s built-in default to “write like an excellent technical blog post.”

The problem is not just that the default exists. The problem is that user-configured overrides do not reliably win. Users who explicitly tell the agent to ignore the blog-post rule still get long, polished, overly technical replies. A settings-level solution with clear precedence is needed; more user rules are not enough.


Problem

Built-in default

Cursor ships a default user rule that instructs the agent to “write like an excellent technical blog post” — precise, well-structured, complete sentences, high prose quality. That works for some users. It does not work for everyone, and it does not work for every context.

Workarounds exist — and they fail in practice

Users who want a different voice today must engineer around the default:

  • Custom user rules that explicitly say to ignore the blog-post instruction
  • Global rules with the same override, loaded on every session
  • Session hooks that inject voice reminders at thread start
  • External context files (e.g. a personal communication-style doc) required reading every session
  • Per-project rules repeating the same preferences

These workarounds are insufficient. Even with a custom rule and a global rule both stating that communication-style preferences override the blog-post rule at all times, the agent still defaults to blog-post behavior: too many words, too much structure, too technical a register for simple chat.

That suggests the built-in rule sits higher in the instruction stack than user-authored overrides, or that its influence is strong enough that competing rules do not consistently displace it. Either way, the user experience is broken: you configure preferences, you state them clearly, and the agent still writes like a technical blog post.

Secondary pain (still real)

  1. No context switching — One global tone for chat, commits, PRs, Slack drafts, and stakeholder email is usually wrong.
  2. High setup cost — Reproducing personal voice across machines, projects, and team members is manual and fragile.
  3. False confidence — Users believe they have fixed the problem with rules; they have not.
  4. Discoverability — New users do not know the default exists or that their overrides may be ignored.

Proposed solution

Add a Communication Style section in Cursor Settings (user-level, with optional project overrides).

1. Style profiles by context

Separate defaults for distinct output modes:

Context Example use
Chat Day-to-day agent conversation
Code comments / docstrings In-editor generation
Commit messages Git workflow
PR descriptions Review handoff
External writing Email, Slack, Confluence, stakeholder updates

Each context gets its own profile instead of one global “how to talk to me” rule.

2. Preset styles + custom description

For each context, let users either:

A. Choose a preset:

  • Technical blog post (current default)
  • Simple / to-the-point — minimal words, lead with the answer, no preamble or recap
  • Conversational — warm, direct, informal where appropriate
  • Executive summary — non-technical, outcome-focused, scannable
  • Formal / documentation — structured, neutral, suitable for specs and runbooks

B. Write a custom style description — free text the agent follows for that context.

Presets should ship as editable starting points, not locked templates.

3. Explicit override with guaranteed precedence

When a user sets a Communication Style profile, it must replace (not supplement) the integrated blog-post rule for that context.

Suggested precedence (highest wins):

  1. Explicit instruction in the current message (“write this as an executive summary”)
  2. Project-level communication style (if set)
  3. User-level communication style for that context
  4. Cursor built-in default (blog post)

Critical requirement: User-level Communication Style settings must win over the built-in blog-post rule. Today, custom and global user rules that say “ignore the blog-post rule” do not reliably achieve that. This feature should make override behavior deterministic and testable.

Users should see in Settings which layer is active and whether the built-in default is overridden.

4. Separate “talk to me” vs “draft for me”

Many users want different behavior for:

  • Agent → user (chat): How the agent replies in the thread
  • User → audience (drafts): How the agent writes as the user for others

Splitting these avoids optimizing chat for brevity while still producing polished outbound copy when needed.


User stories

  1. As a senior engineer, I set chat to “simple / to-the-point” and actually get short replies — not blog-post intros I configured rules to forbid.
  2. As a tech lead, I want PR descriptions in structured technical style while chat stays conversational.
  3. As a manager, I want stakeholder updates in executive-summary tone without re-prompting every time.
  4. As a power user, I stop maintaining redundant override rules that the agent ignores anyway.
  5. As a new Cursor user, I discover and change the default writing style without learning the rules system.

UX sketch

Settings → Agent → Communication Style

Chat replies:        [ Simple / to-the-point ▼ ]  [ Edit custom... ]
Drafts for others:   [ Conversational ▼ ]         [ Edit custom... ]
PR / commit text:    [ Technical blog post ▼ ]    [ Edit custom... ]
Code comments:       [ Simple / to-the-point ▼ ]  [ Edit custom... ]

☑ Override built-in "technical blog post" rule for configured contexts
☐ Use project override when .cursor/communication-style.json exists

Custom style editor — textarea with guidance (“Describe tone, length, structure, and what to avoid”) and a live preview.


Implementation notes

  • Instruction stack — Treat Communication Style as a first-class layer with documented, enforced precedence. Do not rely on users adding more user rules to fight the default.
  • Verify override works — Regression tests or evals that confirm a user with “simple / to-the-point” chat style gets measurably shorter, less formal replies than the blog-post default, even when other rules are present.
  • Context detection — Map contexts to workflows (chat vs. commit vs. PR vs. comment generation) where possible.
  • Export / portability — JSON or markdown export for dotfiles and cross-machine sync.
  • Team sharing — Optional .cursor/communication-style.json for repo-level defaults.
  • Migration — Detect existing user rules that override writing style; offer to consolidate into Communication Style and deprecate redundant rules.

Concrete example

A user configures:

  • Chat: “2 AM mode” — simple language, minimal word count, lead with the point, no recap conclusions, warm and conversational
  • PRs: Structured technical summary with test plan
  • Email to PM: Executive summary, no engineering jargon unless asked

They also add custom and global rules stating that chat style overrides the blog-post rule.

Today: The agent still writes long, structured, technical blog-post prose in chat.

With this feature: Settings explicitly override the built-in rule per context; the user can remove fragile duplicate rules and get predictable behavior.


Success criteria

  • Users can disable or replace the blog-post tone without custom rule hacks.
  • Configured style reliably beats the built-in default in practice, not only in documentation.
  • Style can differ by context without copy-pasting rules into every project.
  • Precedence is predictable, visible, and documented.
  • Setup takes minutes; users are not forced into an arms race of override rules.

Optional follow-ups

  • Per-agent or per-automation style overrides
  • Style preview in onboarding (“how would the agent reply to this prompt?”)
  • Team / role templates (IC, EM, PM-facing engineer)

Hi Walter, thanks for the detailed write-up. I understand your points, and yes, the technical blog post instruction is not user-editable at this time.

Rules and skills, I think, are great options for shaping the output (e.g. respond with the pm voice skill), but what also helps is iteration. When I’m working, I rarely take the first output as the answer/result. I’m usually asking “change this”, “make it shorter”, etc. So I feel like rules / skills to shape the output + iteration can deliver a really good result in this case. Yes the technical blog post requirement is still going to impact the original result but it’s going to become less and less important as you iterate and refine the answer.

More info on Cursor skills: Agent Skills | Cursor Docs

I prefer user-invokable (e.g. non model invokable skills) because those don’t take up context window size (skills that can be invoked by the agent do take up context window size)

I appreciate the reply, but here’s the thing. I do have both a user rule in place to ignore the blog post instruction and write in a conversational style. I also have an always-on rule. Both of those get ignored. When I ask the agent why, it says the base rule takes priority.

And I don’t want to have to iterate. I know the style that I want and the blog post writing feels like AI slop 95% of the time. Also, I don’t want a blog post every time I ask a question or am conversing with the agent. Yet it still tends to give me long, complicated answers, often with introductions and summaries that are totally unnecessary.

When I do include a direct instruction in the prompt, it will adhere to it, so I could create an invokable skill. But what a pain to have to invoke that skill every single time when it could be a user-setting in the IDE itself, right?

At any rate, thank you for coming to my Ted Talk. Your reply and attention were much appreciated. :slight_smile: