From def2d3d18819a2ee3739b5d7c5a68af2f8ca0a41 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Tue, 12 May 2026 16:08:01 +0100 Subject: [PATCH] chore(skills): forbid /issues/ links in changelog entries (#11121) --- skills/prowler-changelog/SKILL.md | 4 ++++ skills/prowler-changelog/assets/entry-templates.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/skills/prowler-changelog/SKILL.md b/skills/prowler-changelog/SKILL.md index 4054d34585..de9d1be5ba 100644 --- a/skills/prowler-changelog/SKILL.md +++ b/skills/prowler-changelog/SKILL.md @@ -77,6 +77,7 @@ allowed-tools: Read, Edit, Write, Glob, Grep, Bash - No period at the end - Do NOT start with redundant verbs (section header already provides the action) - **CRITICAL: Preserve section order** — when adding a new section to the UNRELEASED block, insert it in the correct position relative to existing sections (Added → Changed → Deprecated → Removed → Fixed → Security). Never append a new section at the top or bottom without checking order +- **CRITICAL: ALWAYS link to the PR, NEVER to the issue.** Every entry MUST use `https://github.com/prowler-cloud/prowler/pull/N`. Linking to `/issues/N` is FORBIDDEN, even when the PR fixes an issue. The issue↔PR relationship belongs in the PR body (`Fixes #N`), not in the changelog. If a fix has no PR yet, do not add the entry until the PR exists. ### Semantic Versioning Rules @@ -163,6 +164,8 @@ git diff main...HEAD --name-only **CRITICAL:** Add new entries at the BOTTOM of each section, NOT at the top. +**CRITICAL:** The link MUST point to the PR (`/pull/N`). Linking to `/issues/N` is FORBIDDEN. If the PR closes an issue, that mapping goes in the PR body via `Fixes #N` — never in the changelog entry. + ```markdown ## [1.17.0] (Prowler UNRELEASED) @@ -215,6 +218,7 @@ This maintains chronological order within each section (oldest at top, newest at - Added new feature for users # Missing PR link, redundant verb - Add search bar [(#123)] # Redundant verb (section already says "Added") - This PR adds a cool new thing (#123) # Wrong link format, conversational +- Some bug fix [(#123)](https://github.com/prowler-cloud/prowler/issues/123) # FORBIDDEN: must link to /pull/N, never /issues/N - POST /api/v1/scanswas intermittently failing withScan matching query does not existin thescan-performworker (#11122) # Missing spaces/backticks, unreadable - entra_users_mfa_capable no longer flags disabled guest users by requesting accountEnabled and userType from Microsoft Graph via $select and using Graph as the source of truth for account_enabled (EXO Get-User does not return guest users) (#11002) # Run-on sentence, identifiers not formatted ``` diff --git a/skills/prowler-changelog/assets/entry-templates.md b/skills/prowler-changelog/assets/entry-templates.md index dbca5bf25f..cc74efbb63 100644 --- a/skills/prowler-changelog/assets/entry-templates.md +++ b/skills/prowler-changelog/assets/entry-templates.md @@ -20,6 +20,8 @@ This maintains chronological order: oldest entries at top, newest at bottom. ## Entry Patterns > **Note:** Section headers already provide the verb. Entries describe WHAT, not the action. +> +> **Link target rule:** Every entry MUST link to the PR (`https://github.com/prowler-cloud/prowler/pull/N`). Linking to `/issues/N` is FORBIDDEN — even when the PR fixes an issue. The issue↔PR mapping belongs in the PR body (`Fixes #N`), not here. ### Feature Addition (🚀 Added) ```markdown @@ -40,6 +42,8 @@ This maintains chronological order: oldest entries at top, newest at bottom. - {What was broken} in {component} [(#XXXX)](https://github.com/prowler-cloud/prowler/pull/XXXX) ``` +> When a PR fixes a reported issue, the link still goes to the PR (`/pull/N`), never the issue (`/issues/N`). Reference the issue from the PR body with `Fixes #N`. + ### Security Patch (🔐 Security) ```markdown - Node.js from 20.x to 24.13.0 LTS, patching 8 CVEs [(#XXXX)](https://github.com/prowler-cloud/prowler/pull/XXXX)