{"adoption": {"forks": 312, "observed_at": "2026-08-28T04:06:53.401346+00:00", "stars": 2460}, "canonical_url": "https://ross.abutalabs.com/products/skill-scanner", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Security Scanner for Agent Skills", "domain": ["security", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["security", "vulnerability-scanning", "static-site-generator", "cli", "llm-inference", "developer-tools"], "health_score": 98, "homepage": "https://cisco-ai-defense.github.io/docs/skill-scanner", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["cisco-ai-defense/skill-scanner"], "name": "cisco-ai-defense/skill-scanner", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-08-04T04:50:35+00:00", "repo": "cisco-ai-defense/skill-scanner", "stars": 2460, "tags": ["agent-skills", "prompt-injection", "yara", "sarif", "static-analysis", "llm-as-a-judge", "dataflow-analysis", "pre-commit", "ci-cd", "supply-chain-security", "ai-agents", "command-line"], "topics": ["agent", "agent-skills", "security"], "urls": [], "use_cases": ["scan agent skills for prompt injection before installing them", "detect data exfiltration in AI agent skill packages", "find malicious code patterns in Claude Code or Codex skills", "add security scanning of agent skills to a GitHub Actions pipeline", "audit skill repositories for hardcoded secrets and obfuscation", "check agent skills for vulnerable dependencies via OSV.dev", "run pre-commit scans on skill markdown files"], "what_it_is": "A security scanner for AI agent skills that detects prompt injection, data exfiltration, and malicious code patterns using pattern-based detection (YAML + YARA), LLM-as-a-judge analysis, and behavioral dataflow analysis. It supports OpenAI Codex Skills and Cursor Agent Skills formats, integrates with CI/CD via SARIF output, and offers a plugin architecture for custom analyzers.", "when_to_avoid": ["you need certified or guaranteed security - the scanner is explicitly best-effort only", "you want to scan general-purpose codebases rather than agent skill packages", "you need runtime protection of a live agent rather than pre-deployment scanning"], "when_to_choose": ["you install or distribute AI agent skills and want to vet them for threats", "you need CI/CD integration with SARIF output for GitHub Code Scanning", "you want layered detection combining static analysis, behavioral dataflow, and LLM review", "you need to scan multiple skill formats including Codex, Cursor, and Claude Code commands"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/skill-scanner", "repo": "cisco-ai-defense/skill-scanner", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.401346+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:29:19.978520+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c6d076422ab7a6423650cfda2a48bdb8e0a961addb776056ea1dddaaa987dcbf", "fetched_at": "2026-08-28T04:06:53.401346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cisco-ai-defense/skill-scanner"}, {"content_hash": "9099672cf03ad53f18b82931676988f1da3f6ee0f299e6743c10e33f6469d454", "fetched_at": "2026-08-29T10:11:19.186978+00:00", "kind": "homepage", "missing": false, "url": "https://cisco-ai-defense.github.io/docs/skill-scanner"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 15, "rhythm": 96}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 217, "days_push": 29, "days_rel": 30, "gap_med": 7, "n_releases_24m": 18}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}