prowler-compliance

A guide for creating and maintaining Prowler compliance frameworks: structured records that map security checks to standards such as CIS or NIST. It covers framework formats, check mappings, and how results are displayed.

In plain words
What is it for?
Use it to add or update frameworks, sync them with standards, map checks to controls, audit existing mappings, and investigate missing compliance results.
Why use it?
It helps prevent broken framework data, duplicate identifiers, missing checks, and mappings that do not match the intended security requirements.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/prowler-cloud/prowler/prowler-compliance
Any agent
npx skills add prowler-cloud/prowler --skill prowler-compliance
Clone the repo
git clone --depth 1 https://github.com/prowler-cloud/prowler

Made for: Claude Code, Codex.

Per session 227 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 14,911 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00227 $0.14911
Opus 5 $0.00113 $0.07456
Sonnet 5 $0.00045 $0.02982
Haiku 4.5 $0.00023 $0.01491

Measured yesterday against content hash a6db421e6215, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

prowler-compliance scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

The scan reads SKILL.md. This mod also ships 7 executable files (assets/audit_framework_template.py, assets/build_inventory.py, assets/dump_section.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/prowler-compliance/SKILL.md · 1,195 lines

How it starts

The opening of the file, as written. The whole thing — 1,195 lines — stays where its author put it; the contents beside it link to each section on GitHub.

When to Use

Use this skill when:

  • Creating a new compliance framework for any provider — decide universal vs legacy first (see below)
  • Syncing an existing framework with an upstream source of truth (CIS, FINOS CCC, CSA CCM, NIST, ENS, etc.)
  • Adding requirements to existing frameworks, or extending a universal framework to a new provider
  • Mapping checks to compliance controls
  • Adding ConfigRequirements guardrails so configurable checks can't silently satisfy a requirement with a loosened config
  • Auditing existing check mappings as a cloud auditor ("are these mappings correct?", "which checks apply?", "review the mappings")
  • Adding a new legacy output formatter (table dispatcher + per-provider classes + CSV models)
  • Fixing JSON bugs: duplicate IDs, empty Version, wrong Section, stale check refs, inconsistent FamilyName, padded tangential check mappings
  • Investigating why a finding/check isn't showing under the expected compliance framework in the UI
  • Understanding compliance framework structures and attributes

The authoritative contributor doc is docs/developer-guide/security-compliance-framework.mdx — keep this skill and that doc consistent when either changes. For reviewing a compliance PR, use the sister skill prowler-compliance-review instead.

Universal vs Legacy: The First Decision

Prowler supports two JSON schemas. Choosing wrong means unnecessary Python code, so decide this before anything else. At load time both converge: legacy files are adapted into the universal ComplianceFramework model (adapt_legacy_to_universal()), so the difference is about authoring cost and capabilities, not about what the rest of Prowler sees.

Side-by-side comparison

Universal (recommended for new frameworks) Legacy provider-specific
File location prowler/compliance/<framework>.json (top level) prowler/compliance/<provider>/<framework>_<version>_<provider>.json
Providers Any number, one file (checks dict keyed by provider) Exactly one provider per file (one file per provider to multi-cover)
Key style lowercase (framework, requirements, checks) Capitalized (Framework, Requirements, Checks)
Attribute schema Declared in the JSON itself via attributes_metadata, validated at load Pydantic class per framework family in compliance_models.py (code change for new shapes)
Attributes per requirement One flat dict (attributes: {...}) List of objects (Attributes: [{...}]) — only Attributes[0] is used downstream
Table/CSV/OCSF output Data-driven from outputs.table_configzero Python changes Formatter package + registrations in compliance.py, __main__.py, export.py
Guardrails field config_requirements (+ mandatory Provider per constraint) ConfigRequirements (Provider omitted)
Loader behavior on error Lenient: logs + skips file (load_compliance_framework_universal) Fail-fast: sys.exit(1) (load_compliance_framework)
Loaded by Only get_bulk_compliance_frameworks_universal() Both loaders (Compliance.get_bulk() + universal, via adapter)
Shipped examples cis_controls_8.1.json, csa_ccm_4.0.json, dora_2022_2554.json Everything else (~105 files across 11 providers)

Read the full file on GitHub · 1,195 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 1,195 lines · 227 tokens per session scan A a6db421e6215

Subscribe to this mod's changes

prowler-compliance is a skill published in the GitHub repository prowler-cloud/prowler (14,718 stars, last pushed 3d ago), licensed Apache-2.0. It adds 227 tokens to every session and 14,911 once invoked, about $0.0011 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

ponytail-sec-audit

Full project security audit. Scans the entire codebase across three passes: code that shouldn't exist, all dependencies assessed, all hardening findings. Produces a comprehensive numbered report with blast-radius narrative. Persists findings to .ponytail-sec/ for cross-scan tracking. For per-diff review use…

andypitcher/ponytail-sec · 74 tokens

ponytail-sec

Security companion for active development. Scopes to the current diff or changed files. Three passes: YAGNI code review, new-dep assessment, and up to 3 material hardening findings. Lean by design — surfaces the one thing to fix before merging, not a backlog. Use ponytail-sec-audit for a full project scan.

andypitcher/ponytail-sec · 74 tokens

tunnel-manager-ssh-hardening

Harden and audit SSH access across a host fleet via the tunnel-manager MCP server — set up passwordless key auth, build a full-mesh trust, rotate SSH keys fleet-wide, distribute a shared ssh config, and run security / compliance / vulnerability audits against a host. Use when the agent must move a fleet off password…

Knuckles-Team/tunnel-manager · 118 tokens

dockerfile

Binary Dockerfile image-build hardening check. Use when reviewing Dockerfiles, container image builds, multi-stage builds, runtime users, pinned bases, or reproducible dependency installs. Minimal output only: OK or NOTOK: RULE, RULE.

andypitcher/ponytail-sec · 51 tokens

k8s-securitycontext

Binary Kubernetes securityContext hardening check. Use when reviewing Pods, Deployments, StatefulSets, DaemonSets, Jobs, CronJobs, Helm templates, or Kubernetes manifests that define containers. Minimal output only: OK or NOTOK: RULE, RULE.

andypitcher/ponytail-sec · 57 tokens

forensify

Cross-agent self-inspection of your AI-agent stack. Audits skills, MCP servers, hooks, plugins, commands, credentials, and memory files across Claude Code, Codex, OpenClaw, and NanoClaw. Produces a structured inventory and narrative briefing with cross-ecosystem risk analysis. Use when the user asks to audit their own…

alexgreensh/repo-forensics · 171 tokens