CLAUDE LABJP
PRICING — Anthropic has cancelled the September 1 increase for Claude Sonnet 5. The $2 input and $10 output per million tokens is now simply the standard price, so any forecast built on $3 and $15 needs redoingVERSION — v2.1.241, released August 23, is a fixes-and-reliability release. MCP v2 no longer reopens subscriptions/listen endlessly against servers that close long-held streams on a fixed timeoutLINUX — Idle sessions on Linux with sandboxing enabled no longer pin a CPU core at 100 percentSKILLS — Bundled skill aliases such as /checkup and /review no longer report Unknown command in -p mode or with plugins and MCP loaded when a same-named user or project skill shadows themARGS — Skill and command argument substitution no longer re-expands argument values as template markersWATERMARK — Claude products released from August 2 onward embed machine-readable marking in generated output. It answers EU AI Act transparency rules, but it is applied worldwide rather than only in EuropePRICING — Anthropic has cancelled the September 1 increase for Claude Sonnet 5. The $2 input and $10 output per million tokens is now simply the standard price, so any forecast built on $3 and $15 needs redoingVERSION — v2.1.241, released August 23, is a fixes-and-reliability release. MCP v2 no longer reopens subscriptions/listen endlessly against servers that close long-held streams on a fixed timeoutLINUX — Idle sessions on Linux with sandboxing enabled no longer pin a CPU core at 100 percentSKILLS — Bundled skill aliases such as /checkup and /review no longer report Unknown command in -p mode or with plugins and MCP loaded when a same-named user or project skill shadows themARGS — Skill and command argument substitution no longer re-expands argument values as template markersWATERMARK — Claude products released from August 2 onward embed machine-readable marking in generated output. It answers EU AI Act transparency rules, but it is applied worldwide rather than only in Europe
Articles/Claude Code
Claude Code/2026-08-24Advanced

The same skill lived in two places, and only one copy still had its files

Two scopes held skills with identical names. The SKILL.md files matched down to the sha256, yet one copy was missing the files its own body points to. Here is how I scanned 66 skills and rewrote the detector three times to get from four hits to two real ones.

Claude Code232skill designnamespacesintegrity checksoperations20

Premium Article

One line in the August 23 release notes caught my eye. A bundled skill alias was returning "Unknown command" when a user-scoped or project-scoped skill of the same name shadowed it, and that had been fixed.

I assumed it did not apply to me. I had been careful about naming.

I counted anyway. Forty-two skills on the project side, twenty-four on the user side, sixty-six in total. Five of them existed under the same name in both places.

That much was still within expectations. What followed was not. All five pairs had SKILL.md files that matched down to the sha256 — and two of those pairs held a different number of bundled files.

A name collision is not, by itself, an incident

Which copy wins resolution is a separate question, and I wrote about it in Nothing came back from the skill I called — pinning down name resolution before launch. The conclusion there was to build a table of effective names before starting.

What I ran into this time sits one layer beneath that. Even when the effective name is settled, the entity that wins is not guaranteed to be complete.

When the same skill sits in two places, the natural first move is to compare the bodies. That is what I did.

diff .agents/skills/seo-audit/SKILL.md ~/.claude/skills/seo-audit/SKILL.md
# no output (zero differences)

Zero differences. Both 10,688 bytes. I closed the terminal feeling reassured.

Then I realized I had never looked at the directories themselves.

What was missing was not the body, but the files the body names

Here are the same two directories, listed file by file.

(cd .agents/skills/seo-audit && find . -type f | sort)
# ./SKILL.md
# ./evals/evals.json
# ./references/ai-writing-detection.md
 
(cd ~/.claude/skills/seo-audit && find . -type f | sort)
# ./SKILL.md

Identical bodies. Three files against one.

And the body of SKILL.md contains this line:

references/ai-writing-detection.md

So if the user-scoped copy wins, the skill goes looking for a file that is not there. Because the two SKILL.md files match exactly, neither diff nor sha256sum will ever surface this.

The missing references/ai-writing-detection.md is 6,528 bytes — roughly sixty percent of the size of SKILL.md itself, referenced but absent.

What you compareProject copyUser copyDoes it show?
SKILL.md contents10,688 bytes10,688 bytes (identical)No
SKILL.md sha256matchmatchNo
Files in the directory31Yes
Referenced files presentall presentone absentYes

I had been operating on the top two rows alone.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
You will be able to check, in your own setup, whether the skill that actually wins name resolution is the complete one
You will be able to catch a failure mode that survives a byte-for-byte diff, using a single check on whether referenced files exist
You will be able to separate false positives from false negatives instead of trusting the count your detector prints
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $15 for lifetime access
View Membership →

Related Articles

Claude Code2026-08-16
Tracking Multi-Step Work in Claude Code Now That the Todo Tools Are Off by Default
Since Claude Code v2.1.233, TodoWrite and the Task tools are left out on the newer models. Here are the three branches to check before you set the opt-in variable, the PostToolUse ledger I put in their place, and the measured point where that ledger quietly corrupts under parallel agents.
Claude Code2026-08-04
Tightening Filesystem Isolation Separately from the Network — Collect the Paths, Then Squeeze the Write Surface
Claude Code v2.1.216 lets you control filesystem isolation independently from network isolation. Before tightening anything, I traced what a real job actually touches, split reads from writes, and measured how stable the path set is across repeated runs. The numbers changed how I wrote the allowlist.
Claude Code2026-07-19
I Could No Longer Remember What I'd Changed in Auto Mode — Where claude auto-mode reset Fits In
Running nightly automation for weeks, I kept nudging my auto-mode settings one at a time. One morning a small oddity made me realize I could not recall what I had changed. Here is how I rebuilt my configuration around claude auto-mode reset as a known-good baseline, from a solo developer's field notes.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →