Files
Anthropic-Cybersecurity-Skills/tools/collision-allowlist.json
T
Mahipal a81b233649 ci: add description-quality and collision gates
The description is the only signal an agent sees at discovery time, so
overlapping descriptions cause misrouting. Nothing in CI checked for that.

- tools/lint-descriptions.py enforces name==folder, description <=1024
  chars, terminal punctuation (a truncation canary), a trigger clause, a
  negative trigger, and a 500-line body cap. Pre-existing failures are
  grandfathered in tools/lint-baseline.json so this blocks new debt only;
  the baseline may shrink and never grow.
- tools/detect-collisions.py scores every description pair by TF-IDF
  cosine and ratchets the count of unreviewed near-duplicates. It strips
  negative-trigger clauses before vectorizing: those name the sibling
  skill on purpose, so scoring them would make correct disambiguation
  raise a pair's similarity.
- wire both into validate-skills.yml, along with agentskills conformance,
  an index.json freshness check, and a guard that fails the build if a
  regex frontmatter parser is reintroduced.
- broaden the path filters from tools/validate-skill.py to tools/**, as
  noted when #105 merged.

All five gates verified to fail on deliberately broken input.
2026-08-23 17:15:12 +02:00

26 lines
1.1 KiB
JSON

{
"_comment": [
"Skill pairs that score as near-duplicates but are legitimately distinct.",
"",
"Add a pair here ONLY after reading both descriptions and confirming a real",
"difference in scope, platform, or offense-vs-defense posture. The 'reason'",
"is not bookkeeping: it is the wording each skill's negative trigger should",
"use, e.g. reason 'Linux vs Windows' becomes 'Do not use for Windows hosts",
"- use hardening-windows-endpoint-with-cis-benchmark.'",
"",
"A pair that is genuinely ambiguous does NOT belong here. Disambiguate the",
"two descriptions instead.",
"",
"Regenerate the candidate list with: python tools/detect-collisions.py"
],
"reviewed_distinct": [
{
"pair": [
"hardening-linux-endpoint-with-cis-benchmark",
"hardening-windows-endpoint-with-cis-benchmark"
],
"reason": "Same CIS Benchmark methodology, different operating systems. The controls, tooling and audit commands do not overlap, so both must exist; each description must name the OS explicitly and point at the other."
}
]
}