Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.227 ·

Skills sync now refuses damaged or hostile skill packages

Skill syncing now rejects broken or repo-shaped skill archives and repairs a symlinked skills folder.

You'll notice Improvements
JSON All of v2.1.227
You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
SkillsArea: what it touches
ImprovementsKind: in v2.1.227,
ImprovementsSection of the release
What

The background sync that installs skills was reworked to survive bad downloads and crashed runs. A downloaded skill archive is rejected if it has no usable SKILL.md or if it looks like a git repository, and if the folder skills sync into turns out to be a symlink it is deleted and recreated.

Details
  • New log entries: skills_sync_extracted_zip_unusable for a rejected archive, skills_sync_root_symlink_removed for the symlinked root, and a hard error "synced skills root is not a directory" if it cannot be made one.
  • Directories that cannot be deleted are moved to a trash directory instead of blocking the sync.
  • The record of installed skills gained lists of stale directories and pending claims; a claim carries the owning process id and its start time, so a half-installed directory left by a crashed run is reclaimed by the next one.
  • An older record layout is migrated or repaired at startup, logged as skills_sync_legacy_layout_migrated and skills_sync_legacy_manifest_repaired.
Evidence

skills_sync_extracted_zip_unusable

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.227 →

Feedback