research: probe two registry properties a per-skill scan cannot see - #62
Merged
Merged
Conversation
Clustering the 78,233-skill snapshot by content_sha256 turned up two facts that need closing before either can be stated. 1,614 slugs return HTTP 409 AMBIGUOUS_SKILL_SLUG: more than one publisher owns the name and the API refuses to resolve it, answering "specify which one you want to install". Those 1,614 are every skill this project has no verdict for, and they are not a random 2% of the registry -- they are specifically the contested names, including brand-like ones such as "1password". The snapshot truncates the error at ~300 characters, so only the first owner survives; the full match list has to come from the registry. 4,619 skills (5.9%) share a content_sha256 with another skill, across 1,729 duplicated hashes. That hash covers SKILL.md alone. Two skills with identical documentation can still ship different code, and if they do then "byte-identical duplicate" is the wrong description and anything built on it about takedown blast radius is wrong too. Neither mode convicts anything. Both report structure, which is the point: a claim about registry shape should not depend on the rule engine being correctly calibrated, and this week has been a long argument for why. The clone check reports clusters that fetched nothing as NO DATA rather than folding them into a zero. A check that answers the same way whether or not the registry was reachable is worse than no check. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DNoTXU8k3pfSBzR7aJubqL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Where this came from
Clustering the 78,233-skill snapshot by
content_sha256(no new scanning, data already on theregistry-snapshotsbranch) surfaced two things:And the 2,033 without a hash are not scan failures:
The two questions
1. Who owns the contested slugs? 1,614 slugs are claimed by more than one publisher. The API refuses to resolve them, replying "Found multiple skills with the slug X; specify which one you want to install".
1passwordis among them. These 1,614 are every skill this project has no verdict for at all, and they are not a random 2% of the registry: they are specifically the names more than one person wanted. The snapshot truncates the error body at ~300 chars so only the firstownerHandlesurvives, which is why this has to be re-fetched.2. Do duplicates actually ship the same package?
content_sha256coversSKILL.mdonly. Two skills with identical documentation can ship different code. If they do, "byte-identical duplicate" is the wrong phrase and any claim about takedown blast radius built on it is wrong too. This fetches each clone's referenced files and compares their hashes.What this is not
Neither mode convicts anything. Both report structure, deliberately: a claim about registry shape shouldn't depend on the rule engine being correctly calibrated, and the last week has been a sustained argument for why that matters. Four divergence leads read, four withdrawn, all false positives of our own making.
One design note
report_clonesprintsNO DATAfor clusters where every fetch failed, and refuses to print a summary at all if that's every cluster:Verified by running it from the sandbox, which can't reach
clawhub.ai. Without that, an offline run and a genuinely clean registry produce the same output.Ruff clean, compiles, cluster loading smoke-tested offline against the live snapshot.
🤖 Generated with Claude Code
https://claude.ai/code/session_01DNoTXU8k3pfSBzR7aJubqL
Generated by Claude Code