New to Claude Skills? Learn how to install them →

prowler-cloud on GitHub

Compliance Review

Free

Streamline your compliance framework reviews.

Get this skill

Free · Opens the source repo

What Compliance Review does

The Compliance Review skill is designed to assist developers and reviewers in validating and approving pull requests (PRs) that involve compliance frameworks. This skill is particularly useful when changes are made to compliance frameworks such as CIS, NIST, or PCI-DSS, or when new compliance JSON files are introduced. By automating the review process, it ensures that all necessary checks are performed before merging changes, thereby enhancing the overall quality and compliance of the codebase.

When a PR is submitted, the skill triggers a series of validation checks to ensure that the compliance framework adheres to established standards. This includes validating JSON syntax, checking for missing or duplicate requirement IDs, and ensuring that all required metadata is present in the framework. The skill also provides a structured decision tree that guides reviewers through the approval process, making it easier to identify issues that need to be addressed before a PR can be approved.

The skill includes a validation script and a comprehensive checklist that reviewers can use to ensure that all aspects of the compliance framework are correctly implemented. Additionally, it provides commands for validating JSON files and comparing dashboard files with existing frameworks, which helps maintain consistency across the codebase. This makes it an invaluable tool for teams that prioritize compliance and security in their development processes.

Overall, the Compliance Review skill is aimed at developers and compliance officers who need to ensure that their code meets regulatory standards. By integrating this skill into your workflow, you can streamline the review process, reduce errors, and maintain a high level of compliance across your projects.

When to use it

Use this skill when reviewing PRs that introduce or modify compliance frameworks and JSON files.

When not to use it

This skill may not be suitable for general code reviews that do not involve compliance changes.

What you can build with it

Validating New Compliance Frameworks

When a new compliance framework is added to the codebase, use this skill to ensure it meets all necessary validation criteria.

Modifying Existing Frameworks

If changes are made to existing compliance frameworks, this skill helps validate that all modifications are compliant and correctly implemented.

Ensuring JSON Structure Integrity

Before merging PRs that include compliance JSON files, use this skill to validate the structure and content of the JSON.

How to install Compliance Review

View source

1. Install with the skills CLI

npx skills add prowler-cloud/prowler/prowler-compliance-review --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by prowler-cloud

When to Use

  • Reviewing PRs that add new compliance frameworks
  • Reviewing PRs that modify existing compliance frameworks
  • Validating compliance framework JSON structure before merge

Review Checklist (Critical)

CheckCommand/MethodPass Criteria
JSON Validpython3 -m json.tool file.jsonNo syntax errors
All Checks ExistRun validation script0 missing checks
No Duplicate IDsRun validation script0 duplicate requirement IDs
Changelog fragmentManual reviewFragment present under prowler/changelog.d/
Dashboard FileCompare with existingFollows established pattern
Framework MetadataManual reviewAll required fields populated

Commands

# 1. Validate JSON syntax
python3 -m json.tool prowler/compliance/{provider}/{framework}.json > /dev/null \
  && echo "Valid JSON" || echo "INVALID JSON"

# 2. Run full validation script
python3 skills/prowler-compliance-review/assets/validate_compliance.py \
  prowler/compliance/{provider}/{framework}.json

# 3. Compare dashboard with existing (find similar framework)
diff dashboard/compliance/{new_framework}.py \
     dashboard/compliance/{existing_framework}.py

Decision Tree

JSON Valid?
├── No → FAIL: Fix JSON syntax errors
└── Yes ↓
    All Checks Exist in Codebase?
    ├── Missing checks → FAIL: Add missing checks or remove from framework
    └── All exist ↓
        Duplicate Requirement IDs?
        ├── Yes → FAIL: Fix duplicate IDs
        └── No ↓
            Changelog Fragment Present?
            ├── No → REQUEST CHANGES: Add changelog fragment
            └── Yes ↓
                Dashboard File Follows Pattern?
                ├── No → REQUEST CHANGES: Fix dashboard pattern
                └── Yes ↓
                    Framework Metadata Complete?
                    ├── No → REQUEST CHANGES: Add missing metadata
                    └── Yes → APPROVE

Framework Structure Reference

Compliance frameworks are JSON files in: prowler/compliance/{provider}/{framework}.json

{
  "Framework": "CIS",
  "Name": "CIS Provider Benchmark vX.Y.Z",
  "Version": "X.Y",
  "Provider": "AWS|Azure|GCP|...",
  "Description": "Framework description...",
  "Requirements": [
    {
      "Id": "1.1",
      "Description": "Requirement description",
      "Checks": ["check_name_1", "check_name_2"],
      "Attributes": [
        {
          "Section": "1 Section Name",
          "SubSection": "1.1 Subsection (optional)",
          "Profile": "Level 1|Level 2",
          "AssessmentStatus": "Automated|Manual",
          "Description": "...",
          "RationaleStatement": "...",
          "ImpactStatement": "...",
          "RemediationProcedure": "...",
          "AuditProcedure": "...",
          "AdditionalInformation": "...",
          "References": "...",
          "DefaultValue": "..."
        }
      ]
    }
  ]
}

Common Issues

IssueHow to DetectResolution
Missing checksValidation script reports missingAdd check implementation or remove from Checks array
Duplicate IDsValidation script reports duplicatesEnsure each requirement has unique ID
Empty Checks for AutomatedAssessmentStatus is Automated but Checks is emptyAdd checks or change to Manual
Wrong file locationFramework not in prowler/compliance/{provider}/Move to correct directory
Missing dashboard fileNo corresponding dashboard/compliance/{framework}.pyCreate dashboard file following pattern
Changelog fragment missingNo fragment file in the PR diffAdd a fragment under prowler/changelog.d/

Dashboard File Pattern

Dashboard files must be in dashboard/compliance/ and follow this exact pattern:

import warnings

from dashboard.common_methods import get_section_containers_cis

warnings.filterwarnings("ignore")


def get_table(data):

    aux = data[
        [
            "REQUIREMENTS_ID",
            "REQUIREMENTS_DESCRIPTION",
            "REQUIREMENTS_ATTRIBUTES_SECTION",
            "CHECKID",
            "STATUS",
            "REGION",
            "ACCOUNTID",
            "RESOURCEID",
        ]
    ].copy()

    return get_section_containers_cis(
        aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION"
    )

Testing the Compliance Framework

After validation passes, test the framework with Prowler:

# Verify framework is detected
uv run python prowler-cli.py {provider} --list-compliance | grep {framework}

# Run a quick test with a single check from the framework
uv run python prowler-cli.py {provider} --compliance {framework} --check {check_name}

# Run full compliance scan (dry-run with limited checks)
uv run python prowler-cli.py {provider} --compliance {framework} --checks-limit 5

# Generate compliance report in multiple formats
uv run python prowler-cli.py {provider} --compliance {framework} -M csv json html

Resources

Frequently asked questions about Compliance Review

Similar skills