{
  "name": "crowdsec — 2 skills",
  "slug": "source-skills-e2906a0bab25fe413d13c8fe",
  "type": "skills",
  "category": "developer-tools",
  "example": false,
  "evidence_state": "pinned_source_listing",
  "stamp": "Pinned source listing — machine-checked",
  "summary": "Pinned source declarations and file hashes were listed.",
  "outcome": "Listed 2 skill declarations. Ran 59 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
  "rule_results": [
    "The retained source tree matches its acquisition manifest.",
    "Declared skill names (listing.json): crowdsec; crowdsec-service-api"
  ],
  "task": "What declarations and files are present in this pinned source?",
  "setup": "Git blob acquisition followed by static source inspection.",
  "limitations": "Scope: acquisition and static inspection. Command results: commands.json.",
  "source_url": "https://github.com/crowdsecurity/crowdsec-skill.git",
  "documentation_url": "https://github.com/crowdsecurity/crowdsec-skill.git",
  "commit": "8802dbe68a0552fe55dc605b6278f57e57578526",
  "tree_sha256": "bb5306e89c13b924e844eda101882431f203c58a535e89dc84e041c0ced2d24c",
  "file_sha256": {
    ".claude-plugin/marketplace.json": "680003f36d58540af463155c53d679373ef2203bfee039e64be3eec3b678dbc9",
    ".claude-plugin/plugin.json": "4c3766438f8bc871bedc7dd6518f79c553a295a57c2f054c9c1a6e42d2885b9b",
    ".github/ISSUE_TEMPLATE/bug_report.yml": "ab9aead03fbdd131bbbacc33952737385f1d796f64c7b125409b3c7dd0e7eb31",
    ".github/ISSUE_TEMPLATE/config.yml": "ab0aacc81b12882b4a6d90c897e118bcaedc3dfb181573f5f0d08bab9cfede61",
    ".github/ISSUE_TEMPLATE/feature_request.yml": "2d14f3d8ef26bf9f41c323dcc6d2ecfbb2c89f02774c04308c27b89e4c9930ea",
    ".github/workflows/release.yml": "26f174030c2025776550ef3652fa63c1132bc551d79dbe74277094ab77500a94",
    ".github/workflows/validate.yml": "1caa8680eb8fa4812ebdb73ad7b9e75ca2966b8a0b54c8dfe87f25dcfe170308",
    "CHANGELOG.md": "7bdd9cb335decf41c1008d53ff087e8f78424931a363b808272fe6d1b7ef5ee4",
    "CLAUDE.md": "15264e02658908642f9cf5654e7a34a605de3267f1d7dc38039ddeeab4eb3698",
    "CONTRIBUTING.md": "927cd9c69a6ba6418173ef570a62143cd37b62546ebab14261abb4bd28cbbfff",
    "LICENSE": "dc5b82a2f3313a2e54b49f4b481ce734ffd9f29008ce9129122a63fd0b343aa4",
    "PRIVACY.md": "45fefeffa3347bebb2aea82689a83c2380e2e820d6932bcf8baa5906adc27c4b",
    "README.md": "4b2ab217689944f8163768216317c56bc09023cb8a4d48571fd16dfb166ddd2e",
    "skills/crowdsec/SKILL.md": "56095f49b5b8a2aff88459332e623ccc09c46a01adb7e0378f6d542d36ed5c12",
    "skills/crowdsec/references/appsec/bot-detection/configure.md": "1e2dd02ebcfb16f51246602cb85e7947dcf1202005ee334ceedd278692f1ca8b",
    "skills/crowdsec/references/appsec/bot-detection/customize.md": "128be60d8d94fbf13791601696116df97b3b2b9532c678bd59a11079c2f90881",
    "skills/crowdsec/references/appsec/bot-detection/deploy.md": "8c79a2350eba1eaf132ab7c2abe3a2834f1c7f673c525e59e8d912887c8eac67",
    "skills/crowdsec/references/appsec/bot-detection/overview.md": "a8dfe0fa620afe6e83fafc1bc2f948ba8d2b3dc8c2233f0fc10e74313ab94fe2",
    "skills/crowdsec/references/appsec/bot-detection/troubleshoot.md": "46fc54d97bd4b1d7664954802ac919bc86646f1606c01d99b5914f9a3ec019f0",
    "skills/crowdsec/references/appsec/configure.md": "75315072ce8240775cc51f8fbf91c879b9eab0960e51a29b881e605963644784",
    "skills/crowdsec/references/appsec/deploy.md": "8513032802a2d8c3da7dcb7533acf11cf89de8af339eff7a994aa38fc27574d4",
    "skills/crowdsec/references/appsec/overview.md": "9c482635c2fb435ab98f93e372151dc6fe16af48db02240f98df1e35aa6ba2ac",
    "skills/crowdsec/references/appsec/troubleshoot.md": "d434dc3a8ac12b7a120f9357536847222d926d0bbc23ec7408f405159f956184",
    "skills/crowdsec/references/configure/acquisition.md": "cf5840c6adeafc5a9e9b55c4b08455848887c09b2f66f73dd66db769edaa0996",
    "skills/crowdsec/references/configure/allowlists.md": "3c7202301cbc639912a1ea05c640e756467ccacec2e5ba57328711fd66d0122a",
    "skills/crowdsec/references/configure/bouncers/firewall.md": "c3ef9680d013640bacf3699949eb9a6f3ffc83051421470865725952f5fab7d8",
    "skills/crowdsec/references/configure/bouncers/web-servers.md": "d13e2a15545087750efbc95ab3a40f75b059df80eba6ba2a1422ab65545c2535",
    "skills/crowdsec/references/configure/hub.md": "7e8e4a723cec21bad374a7fa4d5c0621b3cabf0af7c1c08187a467ecc7e05af6",
    "skills/crowdsec/references/configure/notifications.md": "f40b16e66c1097c9b9f6382650a4484f7cef04fd03da9ecf883a67637d794feb",
    "skills/crowdsec/references/configure/profiles.md": "77a49d57d2690b040fd429f541a8141d56434b6f7c0c6ab12f1fa3ecbd5a1950",
    "skills/crowdsec/references/debug/common/errors.md": "7a74b050fe109934d9bb4331ed52dba22c0eec9f57d482d51d3596bc5c17837f",
    "skills/crowdsec/references/debug/common/platform-gotchas.md": "3334c9e5c643f241c1596c028088c05a02c4ac67e9b7a4e17f52b6e45c0961c3",
    "skills/crowdsec/references/debug/common/triage.md": "16eb92ef13431fd92e799c1f7e56f7e5ad8d7f32eab34514c71feb6cd4940385",
    "skills/crowdsec/references/debug/symptoms/no-alerts.md": "bec65a7bf329332da365f61c34de6b378cf4608f177746a39fb20816f3309a7e",
    "skills/crowdsec/references/debug/symptoms/not-blocked.md": "74f3d20a58a3260310da6aded41c9ca7e576dea4bf986515ee5b7917b5323993",
    "skills/crowdsec/references/debug/symptoms/parsing.md": "bcec55b28422902d96aecc50425164b07f694c0991b5d67b139dec369a7ff85b",
    "skills/crowdsec/references/install/bare-metal.md": "6838f2b3ea5d57c8f2c6189184692aeecd496f55d484947e54a331adde525a9c",
    "skills/crowdsec/references/install/console.md": "5dcfde2920094b61a5f9ce5dbe8c54eda8751695a3eb2f4fd43272f7c93541b6",
    "skills/crowdsec/references/install/docker.md": "4f7ca5b68f5f01ec999fa5901b9103285a3c9789fa01447e44161472fbb67532",
    "skills/crowdsec/references/install/kubernetes.md": "f49be5edf7c2e660781b5dd2e5fece7cde1a2c52a011f450536f9a315ad58319",
    "skills/crowdsec/references/install/pfsense.md": "5db9cc04603a40996ef6afcd0af2c4e8b1e83d8312a6d9b56fb6540ff5aa22a9",
    "skills/crowdsec/references/migrate/from-fail2ban.md": "f7a907ca70e91d5770e1fe4e0e86b8fd63799bb8983010c1dd4961c8874b9cca",
    "skills/crowdsec/references/operate/health-check.md": "f16a9f0dc99509df8002e8c4b2f472f627077cd46fbf6d6f5ab2104c0bf74000",
    "skills/crowdsec/references/operate/multi-server.md": "e7d8bf7aecc256bdd67595116d00fda80b3a85260cbb1e04f8088148b626bf35",
    "skills/crowdsec/references/operate/upgrades.md": "f1bf33f33dfae05d1ce265a84f9780d4371fcfe0da89453d0d9317d817e0875f",
    "skills/crowdsec/scripts/check-verification.py": "9a6c151ba958bf14408360bb2264fe87aa3775254d39c4f4e63d2c09cdd6be87",
    "skills/crowdsec/scripts/diagnose.sh": "0ddca3e92dcf930722970d29b197af09b3980d97dfdf4e93b54fd45168bab0fc",
    "skills/crowdsec-service-api/SKILL.md": "ff9c3031c62fd28151d9c95ec8978028624028cdf0ad4120bff075a58dfce09a",
    "skills/crowdsec-service-api/references/allowlists.md": "318631f872d23c209d89087916f5689400844273186781d90c8d70f901fd989e",
    "skills/crowdsec-service-api/references/authentication.md": "120f4ff44cba744d47fc415ac51b94de20ed7b9a83a765f4948f644ac08bd01e",
    "skills/crowdsec-service-api/references/blocklists.md": "79a45b063053fe3d9d651d7b9c767f6dd910b56f777c7c4104991ebfd383e7f6",
    "skills/crowdsec-service-api/references/decisions.md": "25dc94c6b2aba0cbf57a9ad73b58c0842b94ccd0d6a178e7972f6b424118a5c4",
    "skills/crowdsec-service-api/references/integrations.md": "b5fae190f54f074b0234e3e725aa2d0fa42f632bdad8dae1edefc4be7cae0799",
    "skills/crowdsec-service-api/references/metrics.md": "d78b181bed4f6fd95b32a652f496b4deb62dad7135c96ae93db09df558fbb1c9"
  },
  "lockfiles": [
    "LOCK.json"
  ],
  "utc_date": "2026-10-18T15:09:30Z",
  "source_date": "2026-10-16",
  "discovered_date": "2026-10-16",
  "retested_date": "2026-10-18",
  "reviewed_date": "2026-10-18",
  "published_date": "2026-10-18",
  "modified_date": "2026-10-18",
  "reviewer": "machine pipeline",
  "harness_version": "toolwitness harness at commit c086df0eda39d1552f8cab383c0b4a275ced82c4",
  "claude_code_version": "Not applicable: static source inspection (commands.json).",
  "model_id": "Not applicable: static source inspection (commands.json).",
  "scanner_version": "Not applicable: static source inspection.",
  "rulepack_version": "Not applicable: static source inspection.",
  "agents": [],
  "disclaimer": "This record lists declarations and file hashes from a pinned source tree. Git command results from acquisition and static inspection are retained in commands.json. Scope: acquisition and static inspection. It is not a security or quality verdict. Changed bytes are outside this record.",
  "commands": [
    "Ran 59 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection."
  ],
  "prompt_list": [
    "Not applicable: static source inspection (commands.json)."
  ],
  "history": [
    "2026-10-18T15:09:30Z: pinned source inspection"
  ],
  "application": {
    "name": "crowdsec — 2 skills",
    "softwareVersion": "8802dbe68a0552fe55dc605b6278f57e57578526",
    "applicationCategory": "DeveloperApplication",
    "operatingSystem": "Not exercised"
  },
  "artifacts": {
    "transcript": "Ran 59 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
    "sinkhole_log": "Not applicable: static source inspection (commands.json).",
    "canary_log": "Not applicable: static source inspection (commands.json).",
    "scanner_output": "Not applicable: static source inspection (commands.json).",
    "normalized_text": "{\n  \"listing\": {\n    \"skills\": [\n      {\n        \"path\": \"skills/crowdsec/SKILL.md\",\n        \"name\": \"crowdsec\",\n        \"description\": \"Use when the user is installing, configuring, operating, or debugging CrowdSec — including cscli, LAPI/CAPI, hub collections, parsers/scenarios/whitelists deployment, bouncers (firewall, nginx, traefik, caddy), WAF (AppSec component) deployment, bot detection / AppSec challenge mode (blocking headless browsers and scrapers, allowing verified crawlers), profiles, notifications, upgrades, and fail2ban migration. Covers bare-metal/systemd, Docker, Kubernetes/Helm, and CrowdSec Console enrollment. This is an operational skill — it does not author WAF rules, scenarios, or parsers.\",\n        \"files\": {\n          \"skills/crowdsec/SKILL.md\": \"56095f49b5b8a2aff88459332e623ccc09c46a01adb7e0378f6d542d36ed5c12\",\n          \"skills/crowdsec/references/appsec/bot-detection/configure.md\": \"1e2dd02ebcfb16f51246602cb85e7947dcf1202005ee334ceedd278692f1ca8b\",\n          \"skills/crowdsec/references/appsec/bot-detection/customize.md\": \"128be60d8d94fbf13791601696116df97b3b2b9532c678bd59a11079c2f90881\",\n          \"skills/crowdsec/references/appsec/bot-detection/deploy.md\": \"8c79a2350eba1eaf132ab7c2abe3a2834f1c7f673c525e59e8d912887c8eac67\",\n          \"skills/crowdsec/references/appsec/bot-detection/overview.md\": \"a8dfe0fa620afe6e83fafc1bc2f948ba8d2b3dc8c2233f0fc10e74313ab94fe2\",\n          \"skills/crowdsec/references/appsec/bot-detection/troubleshoot.md\": \"46fc54d97bd4b1d7664954802ac919bc86646f1606c01d99b5914f9a3ec019f0\",\n          \"skills/crowdsec/references/appsec/configure.md\": \"75315072ce8240775cc51f8fbf91c879b9eab0960e51a29b881e605963644784\",\n          \"skills/crowdsec/references/appsec/deploy.md\": \"8513032802a2d8c3da7dcb7533acf11cf89de8af339eff7a994aa38fc27574d4\",\n          \"skills/crowdsec/references/appsec/overview.md\": \"9c482635c2fb435ab98f93e372151dc6fe16af48db02240f98df1e35aa6ba2ac\",\n          \"skills/crowdsec/references/appsec/troubleshoot.md\": \"d434dc3a8ac12b7a120f9357536847222d926d0bbc23ec7408f405159f956184\",\n          \"skills/crowdsec/references/configure/acquisition.md\": \"cf5840c6adeafc5a9e9b55c4b08455848887c09b2f66f73dd66db769edaa0996\",\n          \"skills/crowdsec/references/configure/allowlists.md\": \"3c7202301cbc639912a1ea05c640e756467ccacec2e5ba57328711fd66d0122a\",\n          \"skills/crowdsec/references/configure/bouncers/firewall.md\": \"c3ef9680d013640bacf3699949eb9a6f3ffc83051421470865725952f5fab7d8\",\n          \"skills/crowdsec/references/configure/bouncers/web-servers.md\": \"d13e2a15545087750efbc95ab3a40f75b059df80eba6ba2a1422ab65545c2535\",\n          \"skills/crowdsec/references/configure/hub.md\": \"7e8e4a723cec21bad374a7fa4d5c0621b3cabf0af7c1c08187a467ecc7e05af6\",\n          \"skills/crowdsec/references/configure/notifications.md\": \"f40b16e66c1097c9b9f6382650a4484f7cef04fd03da9ecf883a67637d794feb\",\n          \"skills/crowdsec/references/configure/profiles.md\": \"77a49d57d2690b040fd429f541a8141d56434b6f7c0c6ab12f1fa3ecbd5a1950\",\n          \"skills/crowdsec/references/debug/common/errors.md\": \"7a74b050fe109934d9bb4331ed52dba22c0eec9f57d482d51d3596bc5c17837f\",\n          \"skills/crowdsec/references/debug/common/platform-gotchas.md\": \"3334c9e5c643f241c1596c028088c05a02c4ac67e9b7a4e17f52b6e45c0961c3\",\n          \"skills/crowdsec/references/debug/common/triage.md\": \"16eb92ef13431fd92e799c1f7e56f7e5ad8d7f32eab34514c71feb6cd4940385\",\n          \"skills/crowdsec/references/debug/symptoms/no-alerts.md\": \"bec65a7bf329332da365f61c34de6b378cf4608f177746a39fb20816f3309a7e\",\n          \"skills/crowdsec/references/debug/symptoms/not-blocked.md\": \"74f3d20a58a3260310da6aded41c9ca7e576dea4bf986515ee5b7917b5323993\",\n          \"skills/crowdsec/references/debug/symptoms/parsing.md\": \"bcec55b28422902d96aecc50425164b07f694c0991b5d67b139dec369a7ff85b\",\n          \"skills/crowdsec/references/install/bare-metal.md\": \"6838f2b3ea5d57c8f2c6189184692aeecd496f55d484947e54a331adde525a9c\",\n          \"skills/crowdsec/references/install/console.md\": \"5dcfde2920094b61a5f9ce5dbe8c54eda8751695a3eb2f4fd43272f7c93541b6\",\n          \"skills/crowdsec/references/install/docker.md\": \"4f7ca5b68f5f01ec999fa5901b9103285a3c9789fa01447e44161472fbb67532\",\n          \"skills/crowdsec/references/install/kubernetes.md\": \"f49be5edf7c2e660781b5dd2e5fece7cde1a2c52a011f450536f9a315ad58319\",\n          \"skills/crowdsec/references/install/pfsense.md\": \"5db9cc04603a40996ef6afcd0af2c4e8b1e83d8312a6d9b56fb6540ff5aa22a9\",\n          \"skills/crowdsec/references/migrate/from-fail2ban.md\": \"f7a907ca70e91d5770e1fe4e0e86b8fd63799bb8983010c1dd4961c8874b9cca\",\n          \"skills/crowdsec/references/operate/health-check.md\": \"f16a9f0dc99509df8002e8c4b2f472f627077cd46fbf6d6f5ab2104c0bf74000\",\n          \"skills/crowdsec/references/operate/multi-server.md\": \"e7d8bf7aecc256bdd67595116d00fda80b3a85260cbb1e04f8088148b626bf35\",\n          \"skills/crowdsec/references/operate/upgrades.md\": \"f1bf33f33dfae05d1ce265a84f9780d4371fcfe0da89453d0d9317d817e0875f\",\n          \"skills/crowdsec/scripts/check-verification.py\": \"9a6c151ba958bf14408360bb2264fe87aa3775254d39c4f4e63d2c09cdd6be87\",\n          \"skills/crowdsec/scripts/diagnose.sh\": \"0ddca3e92dcf930722970d29b197af09b3980d97dfdf4e93b54fd45168bab0fc\"\n        }\n      },\n      {\n        \"path\": \"skills/crowdsec-service-api/SKILL.md\",\n        \"name\": \"crowdsec-service-api\",\n        \"description\": \"Use when the user wants to drive the CrowdSec Console **Service API (SAPI)** — the premium cloud REST API at admin.api.crowdsec.net — to programmatically manage blocklists (add/remove/bulk IPs, share, subscribe engines), allowlists, firewall/appliance integrations (Palo Alto, Fortinet, Cisco, F5, Sophos, pfSense/OPNsense…), remediation ROI metrics, and org-level decisions. Acts on the user's behalf with their API key. This is the cloud/API skill — for the local engine, cscli, and bouncers use the `crowdsec` skill.\",\n        \"files\": {\n          \"skills/crowdsec-service-api/SKILL.md\": \"ff9c3031c62fd28151d9c95ec8978028624028cdf0ad4120bff075a58dfce09a\",\n          \"skills/crowdsec-service-api/references/allowlists.md\": \"318631f872d23c209d89087916f5689400844273186781d90c8d70f901fd989e\",\n          \"skills/crowdsec-service-api/references/authentication.md\": \"120f4ff44cba744d47fc415ac51b94de20ed7b9a83a765f4948f644ac08bd01e\",\n          \"skills/crowdsec-service-api/references/blocklists.md\": \"79a45b063053fe3d9d651d7b9c767f6dd910b56f777c7c4104991ebfd383e7f6\",\n          \"skills/crowdsec-service-api/references/decisions.md\": \"25dc94c6b2aba0cbf57a9ad73b58c0842b94ccd0d6a178e7972f6b424118a5c4\",\n          \"skills/crowdsec-service-api/references/integrations.md\": \"b5fae190f54f074b0234e3e725aa2d0fa42f632bdad8dae1edefc4be7cae0799\",\n          \"skills/crowdsec-service-api/references/metrics.md\": \"d78b181bed4f6fd95b32a652f496b4deb62dad7135c96ae93db09df558fbb1c9\"\n        }\n      }\n    ],\n    \"hooks\": [],\n    \"executions\": []\n  }\n}"
  },
  "review_input": {
    "identity_artifact": "identity.json",
    "evidence_sha256": {
      "LOCK.json": "f8a285a50f6eaa23b91d515f5007925195b35d3c06e626011bf13604144f0a6a",
      "commands.json": "0f98d2515b88728ab03a74c4af921eb83f29f8ff2985e86bef8a894bd095595e",
      "complete.json": "91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f",
      "identity.json": "e95b378caf40766c5fb39aea1bfaf171f830004c30a3e1ce2cac542726c3e250",
      "listing.json": "f7949c170ad4ff4e02e7984012942906b9a06c5a1382a412afefcc87253635e1",
      "selection.json": "0ee6cf5e2f4ac80ffc4bfc9e72e290a9fb8ed9071f6f87aa9ccbfb1f0280b786"
    },
    "claims": [
      {
        "id": "acquired",
        "field": "summary",
        "text": "Pinned source declarations and file hashes were listed.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "listed",
        "field": "outcome",
        "text": "Listed 2 skill declarations. Ran 59 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "tree",
        "field": "rule_results.0",
        "text": "The retained source tree matches its acquisition manifest.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "declared",
        "field": "rule_results.1",
        "text": "Declared skill names (listing.json): crowdsec; crowdsec-service-api",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      }
    ]
  },
  "review": {
    "kind": "machine-checked",
    "date": "2026-10-18",
    "reviewed_sha256": "2ba086c5610daddd47bcd6e4533ef37cc08c45c6c9f456db370e0db0de25f52c",
    "gates": "b32894ecfc563d84e7b0ce88b2302b089bf4f940638e6f670ba71fa72266e235",
    "codex": "028a7bb3b8b72efc4345a60d16a7f91541ab62fab2165c26f919148966a63b8d",
    "grok": "35b2d7de261325e0170329911fdeb5b70980be7ff436f6c3b459f022ba7d5ad4",
    "summary": "Deterministic gates passed; every claim rebuilt from evidence with a reviewed template; Grok reported no standing refutation."
  }
}
