Cisco skill-scanner
Sources Release notes →Source code → 1 release · 2026-09-05 Notes Code Rank Why this rank top features scored 95/80/55, +6 runnable example — 82.67 How ranking works →The skill-scanner is a CLI security scanner for AI agent skills.
skill-scanner 2.1.0 introduces a bounded CELCELCommon Expression Language, an open-source expression language maintained by Google, used to embed lightweight, safe policy evaluation logic into tools without running a full scripting engine. decision layer for correlating scan findings with off/shadow/enforce modes, adds administrator-trusted and ATR rule pack loading with a new validate-rules subcommand, and expands Python static detection to catch obfuscated and aliased subprocess/file-access patterns.
what's the number?
Each feature carries 0–100 for how completely the vendor documented it — not how big or important the work is. A major capability described in eight words scores low, and that is the finding.
- depth0–40 what it does and how it works or what changed
- specificity0–30 names real surfaces — APIs, flags, formats, limits, numbers
- actionability0–30 enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint, flag or config key scores at the top of specificity and actionability, so it sorts above a feature described only in prose. Under 60 the notes go thin — everything below the “thinner coverage” line is thinner documentation, not smaller work. Hover any meter for that feature's three sub-scores.
skill-scanner adds a bounded CEL decision layer (backed by cel-go v0.32.0) that correlates typed analyzer facts after deterministic detection and before optional LLMLLMA large language model, a neural network trained on large amounts of text to recognize patterns and generate language. Applications use it for tasks such as answering, summarizing and writing code./Meta analysis, using a versioned protobuf fact contract (skill_scanner.semantic.v1.ScanFacts) with strict schema-v2 pack validation, immutable compiled rule generations, expression hashes, and fail-open telemetry. The mode is controlled globally via the cel.mode config key (off, shadow, enforce) and the analyzers.correlation config key, which enables bounded source/sink and staged-behavior correlation analysis, or per-invocation via the --cel-mode off|shadow|enforce (also documented as --cel-mode MODE) CLI flag, letting a run be promoted to enforce without changing global configuration.
$ skill-scanner scan --cel-mode enforce <target>
Adds the --rule-packs atr flag to opt in to the ATR rule pack as an optional input alongside the core + CEL release gate, and the repeatable --trusted-rule-pack PATH flag to load administrator-trusted schema-v2 signature/YARA/CEL packs. The validate-rules subcommand is extended to validate both bundled rules and these trusted schema-v2 packs, including CEL parse/type checks, e.g. skill-scanner validate-rules --trusted-rule-pack <path>.
$ skill-scanner scan --rule-packs atr <target>
$ skill-scanner validate-rules --trusted-rule-pack /path/to/org-pack
$ skill-scanner validate-rules --trusted-rule-pack /path/to/org-pack --cel-mode shadow
$ skill-scanner validate-rules --trusted-rule-pack /path/to/org-pack
Static detection now identifies shell-enabled subprocess calls made through aliases and class scopes, constructed sensitive-file reads, import aliases, and commands hidden by supported repeating-XOR encoding, plus pipeline detection for recovered runtime commands.