Source profileQuality 88/100Review permissions

prowler-cloud/prowler/skills/prowler-changelog/SKILL.md

prowler-changelog

Manages changelog entries for Prowler components following keepachangelog.com format. Trigger: When creating PRs, adding changelog entries, or working with any CHANGELOG.md file in ui/, api/, mcp_server/, or prowler/.

Source repository stars
14,533
Declared platforms
0
Static risk flags
2
Last source update
2026-08-04
Source checked
2026-08-05

Decision brief

What it does—and where it fits

A PR never edits unreleased CHANGELOG.md content directly; use fragments instead. Released-block typo/correction fixes are the only direct-edit exception and are described below. For regular entries, add one small fragment file per entry under the component's changelog.d/ direct…

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/prowler-cloud/prowler --skill "skills/prowler-changelog"
    Safe inspection promptEditorial

    Inspect the Agent Skill "prowler-changelog" from https://github.com/prowler-cloud/prowler/blob/87bc1eceae6213e195a38b9337a03454f9e7e742/skills/prowler-changelog/SKILL.md at commit 87bc1eceae6213e195a38b9337a03454f9e7e742. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Step 1: Determine Affected Component(s)

      Review the “Step 1: Determine Affected Component(s)” section in the pinned source before continuing.

      Review and apply the “Step 1: Determine Affected Component(s)” source section.
    2. 02

      Step 2: Create the fragment(s)

      Review the “Step 2: Create the fragment(s)” section in the pinned source before continuing.

      Review and apply the “Step 2: Create the fragment(s)” source section.
    3. 03

      Step 3: Check pending fragments

      Review the “Step 3: Check pending fragments” section in the pinned source before continuing.

      Review and apply the “Step 3: Check pending fragments” source section.
    4. 04

      How changelog entries work: fragments

      A PR never edits unreleased CHANGELOG.md content directly; use fragments instead. Released-block typo/correction fixes are the only direct-edit exception and are described below. For regular entries, add one small fragment file per entry under the component's changelog.d/ direct…

      A PR never edits unreleased CHANGELOG.md content directly; use fragments instead. Released-block typo/correction fixes are the only direct-edit exception and are described below. For regular entries, add one small fragm…"What's unreleased" = "what's in changelog.d/". The compiled CHANGELOG.md files contain only released versions.
    5. 05

      Fragment filename

      is free-form ([A-Za-z0-9][A-Za-z0-9.-]), chosen by the author, ideally descriptive of the change (e.g. securityhub-delegated-admin). The PR number is also a valid slug (e.g. 11259) when it is already known; it is never…

      is free-form ([A-Za-z0-9][A-Za-z0-9.-]), chosen by the author, ideally descriptive of the change (e.g. securityhub-delegated-admin). The PR number is also a valid slug (e.g. 11259) when it is already known; it is never…maps 1:1 to the keepachangelog sections:A PR adds as many fragment files as entries it needs, freely mixing types: one file per entry. E.g. a PR touching Added, Changed and Fixed ships kms-rotation-check.added.md + kms-metadata-cache.changed.md + kms-disabled…

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 72

    The documentation includes network, browsing, or remote request actions.

    Search bar [(#9634)](https://github.com/prowler-cloud/prowler/pull/9634) # NEVER include the PR link; it is added at compile time

    Runs scripts

    medium · line 104

    The documentation asks the agent to run terminal commands or scripts.

    git diff master...HEAD --name-only | grep -E '^(ui|api|mcp_server|prowler)/' | cut -d/ -f1 | sort -u

    Network access

    medium · line 159

    The documentation includes network, browsing, or remote request actions.

    Entry text [(#NNNN)](https://github.com/prowler-cloud/prowler/pull/NNNN)

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score88/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars14,533SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    prowler-cloud/prowler
    Skill path
    skills/prowler-changelog/SKILL.md
    Commit
    87bc1eceae6213e195a38b9337a03454f9e7e742
    License
    Apache-2.0
    Collected
    2026-08-05
    Default branch
    master
    View the original SKILL.md

    How changelog entries work: fragments

    A PR never edits unreleased CHANGELOG.md content directly; use fragments instead. Released-block typo/correction fixes are the only direct-edit exception and are described below. For regular entries, add one small fragment file per entry under the component's changelog.d/ directory. Fragments are compiled into the component's CHANGELOG.md at release time (deleting the consumed fragments), so concurrent PRs never conflict on the changelog.

    ComponentFragments directoryCompiled file
    UIui/changelog.d/ui/CHANGELOG.md
    APIapi/changelog.d/api/CHANGELOG.md
    MCP Servermcp_server/changelog.d/mcp_server/CHANGELOG.md
    SDKprowler/changelog.d/prowler/CHANGELOG.md

    "What's unreleased" = "what's in changelog.d/". The compiled CHANGELOG.md files contain only released versions.

    Fragment filename

    <slug>.<type>.md
    
    • <slug> is free-form ([A-Za-z0-9][A-Za-z0-9._-]*), chosen by the author, ideally descriptive of the change (e.g. securityhub-delegated-admin). The PR number is also a valid slug (e.g. 11259) when it is already known; it is never required.
    • <type> maps 1:1 to the keepachangelog sections:
    <type>SectionUsage
    added### 🚀 AddedNew features, checks, endpoints
    changed### 🔄 ChangedModifications to existing functionality
    deprecated### ⚠️ DeprecatedFeatures marked for removal
    removed### ❌ RemovedDeleted features
    fixed### 🐞 FixedBug fixes
    security### 🔐 SecuritySecurity patches, CVE fixes
    • A PR adds as many fragment files as entries it needs, freely mixing types: one file per entry. E.g. a PR touching Added, Changed and Fixed ships kms-rotation-check.added.md + kms-metadata-cache.changed.md + kms-disabled-keys.fixed.md, and all compile with the same PR link into their own sections.
    • Several entries of the SAME type: a different slug per entry (kms-rotation-check.added.md, kms-rotation-docs.added.md).
    • At least one fragment per touched component, same as the old one-entry-per-changelog rule.

    Fragment content

    The file contains ONLY the entry text, exactly as it should appear in the changelog, on a single line ending with a trailing newline:

    echo '`securityhub_delegated_admin_enabled_all_regions` check for AWS provider, verifying that Security Hub has a delegated administrator, is active in all opted-in regions, and has organization auto-enable on' > prowler/changelog.d/securityhub-delegated-admin.added.md
    

    Rules (same prose conventions as always):

    • NEVER write the PR link in the text. It is attached automatically at compile time (the compile workflow resolves the PR that added the fragment from git history). Writing [(#NNNN)](...) in a fragment produces a duplicated link.
    • No period at the end
    • Do NOT start with redundant verbs (the section header already provides the action)
    • Be specific: what changed, not why (that's in the PR)
    • Keep entries readable: use spaces around inline code and product names, and wrap endpoints, commands, errors, task names, and file paths in backticks
    • Avoid long run-on sentences; split complex changes into one concise result plus one concise context clause

    Good fragments

    # ui/changelog.d/provider-search-bar.added.md
    Search bar when adding a provider
    
    # api/changelog.d/scan-dispatch-race.fixed.md
    `POST /api/v1/scans` no longer intermittently fails with `Scan matching query does not exist`; scan dispatch now publishes the `scan-perform` Celery task after the transaction commits
    
    # ui/changelog.d/node-24-bump.security.md
    Node.js from 20.x to 24.13.0 LTS, patching 8 CVEs
    

    Bad fragments

    Fixed bug.                              # Too vague, has period, redundant verb
    Add search bar                          # Redundant verb (the section already says "Added")
    Search bar [(#9634)](https://github.com/prowler-cloud/prowler/pull/9634)   # NEVER include the PR link; it is added at compile time
    

    Semantic Versioning Rules

    Prowler follows semver.org:

    Change TypeVersion BumpExample
    Bug fixes, patchesPATCH (x.y.Z)1.16.1 → 1.16.2
    New features (backwards compatible)MINOR (x.Y.0)1.16.2 → 1.17.0
    Breaking changes, removalsMAJOR (X.0.0)1.17.0 → 2.0.0

    CRITICAL: removed fragments MUST only ship in MAJOR version releases. Removing features is a breaking change.

    Mandatory Human Confirmation Gate

    Before creating or editing any changelog fragment or CHANGELOG.md file, the agent MUST stop and get explicit user confirmation. This applies even when the changelog gate is failing, the required file seems obvious, or the user asked to "fix the changelog".

    Present the proposed action before writing:

    1. Target fragment path (component, slug, type) or CHANGELOG.md edit.
    2. Exact entry text.
    3. Reason the changelog entry is needed.

    Only proceed after an explicit approval such as "confirm", "approved", "sí", or equivalent. If the user rejects or does not answer, do not create or edit anything. Offer alternatives such as adding no-changelog when appropriate.

    Adding a Changelog Entry

    Step 1: Determine Affected Component(s)

    git diff master...HEAD --name-only | grep -E '^(ui|api|mcp_server|prowler)/' | cut -d/ -f1 | sort -u
    
    Path PatternComponent
    ui/**UI
    api/**API
    mcp_server/**MCP Server
    prowler/**SDK
    Root uv.lock / pyproject.tomlSDK (the gate requires a prowler/changelog.d/ fragment)
    MultipleOne fragment per affected component

    Step 2: Create the fragment(s)

    echo 'Entry text describing the change' > <component>/changelog.d/<slug>.<type>.md
    

    Step 3: Check pending fragments

    ls prowler/changelog.d/ api/changelog.d/ ui/changelog.d/ mcp_server/changelog.d/
    

    PR Changelog Gate

    The pr-check-changelog.yml workflow enforces fragments:

    1. REQUIRED: PRs touching ui/, api/, mcp_server/, or prowler/ MUST add (or fix) a fragment under the corresponding changelog.d/
    2. VALIDATED: added fragment filenames must match <slug>.<type>.md with a valid type
    3. LINTED: fragment content must NOT contain a hand-written PR link ([(#N)](...)); the gate fails if one is found because the link is attached automatically at compile time
    4. SKIP: Add no-changelog label to bypass (use sparingly for docs-only, CI-only changes)

    Release flow (compile)

    • At release time, the compile-changelogs workflow (manual dispatch: prowler_version + target_branch; per-component versions are auto-derived by mirroring the Prowler version — SDK mirrors it directly, UI is 1.<minor>.<patch>, API is 1.<minor + 1>.<patch>, and only the MCP Server derives from its pending fragment types — with optional explicit overrides or skip) resolves each fragment's PR from git history, runs the compiler per component, and opens a chore(changelog): vX.Y.Z PR (labeled no-changelog and skip-sync) that inserts the stamped ## [X.Y.Z] (Prowler vX.Y.Z) block into each CHANGELOG.md and deletes the consumed fragments. A human reviews and squash-merges it. prepare-release.yml then extracts the stamped sections exactly as before.
    • Minor release (X.Y.0): compile on master and merge the compile PR BEFORE cutting the v5.X branch.
    • Patch release (X.Y.Z): fixes are backported to v5.X with their fragment files (conflict-free); compile on v5.X and merge its PR there. The same workflow run automatically opens a second forward-sync PR against master (labeled no-changelog and skip-sync) that inserts the same stamped block under master's marker and deletes the consumed fragments, so the next minor cannot re-release them; merge it right after. Fragments that only existed on v5.X are skipped with a notice. No manual git is involved.
    • Entries within a section are ordered by PR number ascending (approximately chronological). Do not fight this ordering.

    Fixing an already-released entry

    Released version blocks in CHANGELOG.md are otherwise immutable, but typo/correction fixes to already-released entries are the one case where a PR edits CHANGELOG.md directly: make the edit and add the no-changelog label.

    If a PR's entry shipped in the wrong released block (e.g. the PR merged after its release was cut), move the entry back to a fragment: delete it from the released block and recreate it as <component>/changelog.d/<PR>.<type>.md (label the PR no-changelog since it edits CHANGELOG.md).

    Compiled CHANGELOG.md format (for reference)

    The compiler renders, per release, into each CHANGELOG.md right under the <!-- changelog: release notes start --> marker (never remove that marker):

    ## [X.Y.Z] (Prowler vA.B.C)
    
    ### 🚀 Added
    
    - Entry text [(#NNNN)](https://github.com/prowler-cloud/prowler/pull/NNNN)
    
    ### 🐞 Fixed
    
    - Fix entry [(#NNNN)](https://github.com/prowler-cloud/prowler/pull/NNNN)
    
    ---
    

    Section order is always: Added → Changed → Deprecated → Removed → Fixed → Security. X.Y.Z is the COMPONENT version; A.B.C is the Prowler release version. Every entry ends with its PR link; linking to /issues/N is forbidden (the issue↔PR mapping belongs in the PR body via Fixes #N).

    Resources

    Alternatives

    Compare before choosing

    Computed 9618,464

    teng-lin/notebooklm-py

    notebooklm

    Complete API for Google NotebookLM - full programmatic access including features not in the web UI. Create notebooks, add sources, generate all artifact types, download in multiple formats. Activates on explicit /notebooklm or intent like "create a podcast about X"

    Computed 961,066

    TencentCloudBase/CloudBase-AI-Toolkit

    cloudbase-agent-python

    Build production-ready AI agent backends using the CloudBase Agent Python SDK — create agents with LangGraph/CrewAI/LlamaIndex, serve them via FastAPI with AG-UI protocol streaming + OpenAI-compatible endpoints, add tools (bash, filesystem, MCP, code execution), memory (in-memory, TDAI, MySQL, MongoDB), observability (OpenTelemetry/Langfuse), and middleware (auth, logging). Use this skill when the user wants to create an AI agent server, build a chatbot backend, set up human-in-the-loop workflow

    Computed 95165

    JasonColapietro/suede-creator-skills

    suede-code-grader

    Give a blunt A-F ship grade for a code change across correctness, security, data, UX, verification, and deploy readiness. Use for a grade, not a findings review.

    Computed 9438,502

    wshobson/agents

    brand-landingpage

    Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens —