Follow Discord
Sweep 03 Nov 2026 · 22:27Z Build v2.1.318 536 read Stable v2.1.311 Latest v2.1.318 Next v2.1.318 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-docs

MCP, plugins, skills, and hooks changedthird-party/claude-desktop/extensions

Nearest release: v2.1.318, published 3 hours after upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 3 Nov 2026 18:10 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 3 Nov 2026 18:37 UTC.

Upstream edited
Recorded here
Lines+35added
Lines−0removed
From line 498 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits38to this page, all time

### Changes to skill files after a scan

The whole hunk

from line 498, old and new numbered
/
lines
from line 498
498498 
499499Claude Desktop doesn't scan plugins, or the skills inside them. To stop users from adding their own plugins, see [Controlling user extensions](#controlling-user-extensions).
500500 
501When a skill passes a scan or gets a caution, Claude Desktop changes some characters in the skill's files, and a skill that depends on those characters can stop working. Before you turn on scanning, see [Changes to skill files after a scan](#changes-to-skill-files-after-a-scan).
502 
501503### Turn on skill scanning
502504 
503505In the Enterprise Admin Console:
from line 538
536538 
537539The Enterprise Admin Console doesn't show scan results. To collect them, set [`otlpEndpoint`](https://claude.com/docs/third-party/claude-desktop/configuration#otlpendpoint). Claude Desktop then sends scan records to your own [OpenTelemetry collector](https://claude.com/docs/third-party/claude-desktop/telemetry.md#sending-telemetry-to-your-own-collector) as log records whose body is `custom3p_skill_scan_completed`. It sends no scan records while [`otlpDesktopLogLevel`](https://claude.com/docs/third-party/claude-desktop/configuration#otlpdesktoploglevel) is `off`. A scan record identifies the user and includes the skill's name, the result, and the model's summary of the skill when there is one. The summary can quote the skill, and Claude Desktop sends it even when [content capture](https://claude.com/docs/third-party/claude-desktop/telemetry.md#content-capture) is off. To keep the summary out of your backend, drop the `scan_summary` attribute in the collector.
538540 
541### Changes to skill files after a scan
542 
543When a skill gets a **Pass** or **Caution** result, Claude Desktop changes some characters in the skill's text files. The app doesn't tell the user or the administrator about the changes, and it doesn't keep a copy of the original files. Turning on scanning doesn't change the skills that users already saved. Claude Desktop scans such a skill the next time the user saves it, and its files can change then.
544 
545The model that runs a scan doesn't see some characters, but a program that runs the file acts on every character. Claude Desktop removes or replaces these characters before it sends the text to the model, and then saves the same text. For the limits of these changes, see [What skill scanning doesn't cover](#what-skill-scanning-doesn%E2%80%99t-cover).
546 
547Claude Desktop makes these changes, and a few similar ones, to a text file:
548 
549| In the user's file | In the saved file |
550| - | - |
551| Windows line endings | Unix line endings, including in `.bat` and `.cmd` files |
552| A carriage return on its own | Removed, which joins the lines |
553| Single and double curly quotes | Similar-looking characters (U+02BB, U+02BC, U+201F, and U+02EE) that shells, Python, JavaScript, JSON, and YAML don't treat as quotation marks |
554| Other kinds of space, such as a no-break space or a thin space | Plain spaces |
555| A raw escape character, most other control characters, and icon-font characters (U+E000 to U+F8FF) | Removed |
556| Invisible characters, such as a zero-width space, a soft hyphen, or a byte-order mark | Removed, unless the character before or after is non-ASCII, as in emoji and in scripts such as Persian and Hindi |
557 
558In PowerShell files, such as `.ps1` files, curly quotes become straight quotes and a carriage return on its own becomes a line feed. A PowerShell file that contains non-ASCII characters can also gain a byte-order mark and a line break at its start.
559 
560Claude Desktop doesn't change file names. It also leaves PNG and JPEG images, PDFs, and dependency lock files such as `package-lock.json` as they are.
561 
562A skill that depends on the original characters can stop working after the scan, as in these examples:
563 
564* **Windows batch files**: `cmd.exe` can fail to find a `goto` or `call` label in a file that has Unix line endings.
565* **Signed or hashed files**: a changed PowerShell script doesn't match its signature, and a changed file doesn't match a stored hash.
566* **Mentions of the skill's own files**: if a file name contains a changed character, as in `What’s New.md`, a mention of the file in `SKILL.md` changes but the name doesn't, so the two don't match.
567 
568You can't exempt a skill from these changes, and turning scanning off doesn't restore the original files. While scanning is off, a user can upload their own copy of the skill again, and Claude Desktop saves it unchanged.
569 
570To give users a skill that depends on these characters, deliver it as an organization plugin, through a [plugin marketplace](#plugin-marketplaces-admin) or the [system-wide directory](#organization-plugins-admin). Claude Desktop doesn't scan plugins or change their files, so review the skill's files yourself first.
571 
539572### What skill scanning doesn't cover
540573 
541574Besides plugins, the app doesn't scan these:
from line 577
544577* Changes that someone makes directly to a skill's files on disk.
545578* Files inside a skill that the scan skips because of their file names, for example PNG and JPEG images, PDFs, and dependency lock files such as `package-lock.json`. The scan doesn't look at what is in these files, so it doesn't read a script that is saved as `logo.png`.
546579* Skills that aren't saved in the app at all, for example [Claude Code skills](https://code.claude.com/docs/en/skills) in `.claude/skills` folders on the device. A [Code session](https://claude.com/docs/third-party/claude-desktop/code.md) in Claude Desktop loads those skills too.
580 
581After [these changes to a skill's files](#changes-to-skill-files-after-a-scan), a program can still read a file differently from the model. For example, Windows PowerShell 5.1 and `cmd.exe` can interpret non-ASCII characters according to the device's code page.
547582 
548583A pass means that the scan found no sign that the skill is malicious. It isn't a guarantee that the skill is safe.
549584 
Feedback