framework-compliance-t…
Make a cloud account compliant with a security or industry framework using Prowler Cloud.
Manages Prowler changelog entries as towncrier fragments (`<component>/changelog.d/<slug>.<type>.md`) compiled into keepachangelog-style CHANGELOG.md files at release time. Trigger: When creating PRs, adding changelog entries or fragments, fixing a failing changelog gate, or
Claude Code
$ npx -y skills add prowler-cloud/prowler --skill prowler-changelog --agent claude-code
Codex
$ npx skills add prowler-cloud/prowler --skill prowler-changelog -a codex -y
Cursor
$ npx skills add prowler-cloud/prowler --skill prowler-changelog -a cursor -y
Gemini CLI
$ npx skills add prowler-cloud/prowler --skill prowler-changelog -a gemini-cli -y
GitHub Copilot
$ npx skills add prowler-cloud/prowler --skill prowler-changelog -a github-copilot -y
OpenCode
$ npx skills add prowler-cloud/prowler --skill prowler-changelog -a opencode -y
Windsurf
$ npx skills add prowler-cloud/prowler --skill prowler-changelog -a windsurf -y
name: prowler-changelog
description: >
Manages Prowler changelog entries as towncrier fragments (`<component>/changelog.d/<slug>.<type>.md`) compiled into keepachangelog-style CHANGELOG.md files at release time.
Trigger: When creating PRs, adding changelog entries or fragments, fixing a failing changelog gate, or working with changelog.d/ or CHANGELOG.md in ui/, api/, mcp_server/, or prowler/.
license: Apache-2.0
metadata:
author: prowler-cloud
version: "2.1"
scope: [root, ui, api, sdk, mcp_server]
auto_invoke:
- "Add changelog entry for a PR or feature"
- "Add or edit changelog fragments in <component>/changelog.d/"
- "Create PR that requires changelog entry"
- "Review changelog format and conventions"
allowed-tools: Read, Edit, Write, Glob, Grep, BashA PR never edits `CHANGELOG.md` directly: the PR gate fails on any change to a component `CHANGELOG.md` (only exception: released-block corrections with the `no-changelog` label, see below). Instead, add one small **fragment file** per entry under the component's `changelog.d/`. At release time [towncrier](https://towncrier.readthedocs.io/) compiles the fragments into `CHANGELOG.md` and deletes them, so concurrent PRs never conflict.
| Component | Fragments directory | Compiled file | towncrier config | |-----------|---------------------|---------------|------------------| | SDK | `prowler/changelog.d/` | `prowler/CHANGELOG.md` | `prowler/towncrier.toml` | | API | `api/changelog.d/` | `api/CHANGELOG.md` | `api/towncrier.toml` | | UI | `ui/changelog.d/` | `ui/CHANGELOG.md` | `ui/towncrier.toml` | | MCP Server | `mcp_server/changelog.d/` | `mcp_server/CHANGELOG.md` | `mcp_server/towncrier.toml` |
All four configs share the template `.github/towncrier/template.md.jinja`. "What's unreleased" = "what's in `changelog.d/`". The compiled `CHANGELOG.md` files contain only released versions.
<slug>.<type>.md
| `<type>` | Section | Usage | |----------|---------|-------| | `added` | `### 🚀 Added` | New features, checks, endpoints | | `changed` | `### 🔄 Changed` | Modifications to existing functionality | | `deprecated` | `### ⚠️ Deprecated` | Features marked for removal | | `removed` | `### ❌ Removed` | Deleted features (major releases only) | | `fixed` | `### 🐞 Fixed` | Bug fixes | | `security` | `### 🔐 Security` | Security patches, CVE fixes, vulnerable dependency bumps |
The file contains ONLY the entry text, exactly as it should appear in the changelog, on a single line ending with a 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:**
# 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 # prowler/changelog.d/pyasn1-joserfc-cves.security.md pyasn1 to 0.6.5 and joserfc to 1.7.5 in the SDK, patching the ASN.1 decoding and JWE decryption denial of service advisories
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; the gate fails
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-cha
Prowler is the world’s most widely used Open-Source Cloud Security Platform that automates security and compliance across any cloud environment.
Make a cloud account compliant with a security or industry framework using Prowler Cloud.
Vercel AI SDK patterns for the installed major (ui/package.json: `ai` 6.x, `@ai-sdk/react` 3.x). The skill name is historical;…
Django REST Framework patterns. Trigger: When implementing generic DRF APIs (ViewSets, serializers, routers, permissions,…
Reviews Django migration files for PostgreSQL best practices specific to Prowler. Trigger: When creating migrations, running…
Create and maintain GitHub Agentic Workflows (gh-aw) for Prowler. Trigger: When creating agentic workflows, modifying gh-aw…
Strict JSON:API v1.1 specification compliance. Trigger: When creating or modifying API endpoints, reviewing API responses, or…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…