Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Opening any .md file in Cursor silently rewrites it on disk — no user input, no visible AI-suggestion UI. Changes range from cosmetic (extra blank lines around headings, table column padding) to genuinely destructive:
[`code`](url)link patterns become`[code](url)`— the code span wraps literal link markup, breaking clickability on rendered markdown- Entire fenced
bashcode blocks get removed from nested list items (I had a numbered-list instructions file where several code examples disappeared) - YAML frontmatter in SKILL-style files (
--- name: ... ---) gets converted to plain## name: ...headings (breaks any tool parsing frontmatter) ~10s(approximately-tilde) →~~10s(GFM strikethrough — meaning changes!)- Trailing newlines stripped (makes diffs noisy, breaks POSIX convention)
Every doc file I open in Cursor silently corrupts the file I was trying to read. This breaks rendering on GitHub and anywhere markdown is consumed by a tool parsing it.
Steps to Reproduce
- In a repo that contains
.mdfiles with[code](url)link patterns or fenced code blocks in nested lists, start with a clean working tree (git statusshows nothing modified). - Open any
.mdfile in Cursor (click from explorer, orcursor path/to/file.mdfrom terminal). - Do NOT touch keyboard or mouse — do not edit, scroll, click, or type.
- Wait ~10 seconds.
- Run
git statusin a terminal.
Result: file has been silently rewritten on disk. git diff shows systematic transformations (listed in Describe the Bug).
This reproduces 100% of the time on my machine for files in docs/ and .ai/ subdirectories with [code](url) or fenced code blocks in nested lists.
Expected Behavior
Opening a markdown file should not modify it on disk, period.
Any AI-suggested edits should be surfaced as reviewable suggestions (ghost text, diff view, Tab-to-accept), never auto-applied to the file’s contents without the user explicitly accepting them.
If there is a hidden setting that controls this behavior, it should:
- Be easily discoverable (documented, settings search term working)
- Default to opt-in for destructive transformations (link swaps, code block removal)
- Be controllable org-wide for teams that don’t want it at all
Operating System
MacOS
Version Information
Cursor: 3.1.17
Commit: fce1e9ab7844f9ea35793da01e634aa7e50bce90
Platform: arm64
OS: macOS 26.2 (build 25C56)
Additional Information
What I’ve already ruled out (full investigation)
- Prettier VS Code extension (
esbenp.prettier-vscode): fully uninstalled (registry + disk). Issue persists. - Any other extension: none of my remaining 8 extensions declare markdown language support or a DocumentFormattingEditProvider (I audited each
package.json). - CLI Prettier (
./node_modules/.bin/prettier): produces different output than what Cursor does — the cause is NOT plain Prettier config. Plain Prettier only does table padding + JSON normalization. Cursor additionally does the link-code swap and code-block removal, which Prettier does not. - Workspace
.vscode/settings.json/.prettierignore: doesn’t stop it. - User
settings.jsonwith every[markdown]auto-action disabled:
Doesn’t stop it."github.copilot.nextEditSuggestions.enabled": false, "[markdown]": { "editor.formatOnSave": false, "editor.formatOnPaste": false, "editor.formatOnType": false, "editor.defaultFormatter": null, "editor.codeActionsOnSave": {}, "editor.suggestOnTriggerCharacters": false, "editor.quickSuggestions": { "other": false, "comments": false, "strings": false } } cursor --disable-extensions: still happens. This is the critical data point — the behavior is in Cursor core, not any extension.
Sample diff (link-code swap)
- **Schemas:** [`routes/v1/queries/validations.ts`](../packages/.../validations.ts)
+ **Schemas:** `[routes/v1/queries/validations.ts](../packages/.../validations.ts)`
Before: bold label + clickable code-styled link.
After: bold label + code span containing literal [text](url) markdown source — no longer clickable.
Ask
- What hidden Cursor setting controls this, if any?
- Can this be made opt-in instead of always-on?
- Is there an org-wide toggle for teams? Currently unusable for docs-heavy repos — every file-open introduces unreviewed corruption.
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor