Prowler is an open-source cloud security platform that checks cloud environments for security issues and compliance with standards such as CIS, NIST, and GDPR. Security teams use it to assess configurations, prioritize findings, produce reports, and guide remediation.
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.
npx skills add prowler-cloud/prowler --skill prowler-compliancegit clone --depth 1 https://github.com/prowler-cloud/prowlerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/prowler-cloud/prowler/prowler-compliance)<a href="https://agentmods.dev/skills/prowler-cloud/prowler/prowler-compliance"><img src="https://agentmods.dev/badge/skills/prowler-cloud/prowler/prowler-compliance/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/prowler-cloud/prowler/prowler-compliance"><img src="https://agentmods.dev/badge/skills/prowler-cloud/prowler/prowler-compliance.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Snyk warn
- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00227 | $0.14911 |
| Opus 5.5 | $0.00091 | $0.05964 |
| Sonnet 5.5 | $0.00045 | $0.02982 |
| Haiku 4.5 | $0.00023 | $0.01491 |
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 1mo ago.
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.
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
ConfigRequirementsguardrails 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_config — zero 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) |
What ships with it
16 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- assets/audit_framework_template.py 7.4 KB runs code
- assets/build_inventory.py 3.1 KB runs code
- assets/cis_framework.json 9.1 KB
- assets/configs/ccc.yaml 4.8 KB
- assets/dump_section.py 3.1 KB runs code
- assets/ens_framework.json 4.2 KB
- assets/generic_framework.json 2.9 KB
- assets/iso27001_framework.json 3.4 KB
- assets/mitre_attack_framework.json 4.7 KB
- assets/parsers/__init__.py 0 B runs code
- assets/parsers/finos_ccc.py 8.5 KB runs code
- assets/prowler_threatscore_framework.json 7.3 KB
- assets/query_checks.py 2.6 KB runs code
- assets/sync_framework.py 19 KB runs code
- references/check-mapping-reference.md 15 KB
- references/compliance-docs.md 8.2 KB
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.
- 1mo ago First seen · 1,195 lines · 227 tokens per session scan A a6db421e6215
prowler-compliance is a skill published in the GitHub repository prowler-cloud/prowler (15,037 stars, last pushed yesterday), licensed Apache-2.0. It adds 227 tokens to every session and 14,911 once invoked, about $0.0009 per session on Opus 5.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.
Other skills, from other repositories
policy
Define and enforce decision policies, compliance rules, and exceptions over Semantica graphs. Uses ContextGraph.checkdecisionrules/enforcedecisionpolicy and context.PolicyEngine.
dataset-transformation
Generates code that transforms datasets between ML schemas for model training or evaluation. Use when the user says "transform", "convert", "reformat", "change the format", or when a dataset's schema needs to change to match the target format — always use this skill for format changes rather than writing inline…
dataset-evaluation
Validates dataset formatting and quality for SageMaker model fine-tuning (SFT, DPO, or RLVR). Use when the user says "is my dataset okay", "evaluate my data", "check my training data", "I have my own data", or before starting any fine-tuning job. Detects file format, checks schema compliance against the selected model…
use-case-specification
Creates a reusable use case specification file that defines the business problem, stakeholders, and measurable success criteria for model customization, as recommended by the AWS Responsible AI Lens. Use as the default first step in any model customization plan. Skip only if the user explicitly declines or already has…
performing-aws-account-enumeration-with-scout-suite
Perform comprehensive security posture assessment of AWS accounts using ScoutSuite to enumerate resources, identify misconfigurations, and generate actionable security reports.
finetuning
Generates code that fine-tunes a base model using SageMaker serverless training jobs. Use when the user says "start training", "fine-tune my model", "I'm ready to train", or when the plan reaches the finetuning step. Supports SFT, DPO, RLVR, and RLAIF trainers, including RLVR Lambda reward function and RLAIF custom…