Skip to content

Add .github/release-task.md Copilot agent release task prompt#57

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/add-release-task-markdown
Draft

Add .github/release-task.md Copilot agent release task prompt#57
Copilot wants to merge 3 commits intomainfrom
copilot/add-release-task-markdown

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 6, 2026

Adds a reusable Copilot coding agent task prompt so releases can be triggered with a single chat message (/release X.Y.Z) instead of manually writing changelogs, bumping versions, and creating GitHub releases.

What the task prompt covers

  • PR/changelog collection — fetches merged PRs since the last release tag via GitHub API; filters out dependabot[bot], docs: PRs, and version-bump PRs
  • Categorization — features (feat:), bug fixes (fix:), and internal improvements (chore:, refactor:, structural changes) each get their own section
  • Dual changelog generation — short changelog (≤5 bullets) for <PackageReleaseNotes> in the csproj; extended changelog with code examples for the GitHub Release body
  • Version bump — updates <VersionPrefix> and <PackageReleaseNotes> in src/SLNX-validator/SLNX-validator.csproj
  • PR + GitHub Release — opens a csproj-only PR; after the PR is merged, creates the GitHub Release (draft: false, targeting main) with a generated title in the format X.Y.Z: <summary>

Usage

Run the release task for version 0.6.0

or shorthand:

/release 0.6.0
Original prompt

Doel

Maak een bestand .github/release-task.md aan. Dit is een Copilot task-promptbestand waarmee de gebruiker met een korte instructie als "release 0.6.0" een volledige release kan uitvoeren via de Copilot coding agent.

Wat het bestand moet zijn

Een gedetailleerde prompt-instructie in Markdown, geschreven als instructie voor de Copilot coding agent. Het beschrijft exact wat de agent moet doen bij een release-opdracht.

Inhoud van .github/release-task.md

Het bestand moet het volgende beschrijven:


Gebruik

De gebruiker typt in Copilot chat:

Voer de release task uit voor versie X.Y.Z

of kortweg:

/release X.Y.Z

Stap-voor-stap instructies voor de agent

1. Verzamel wijzigingen since laatste release

  • Haal de laatste release tag op via de GitHub API (/repos/{owner}/{repo}/releases/latest)
  • Haal alle merged PRs op since die tag via de GitHub API (/repos/{owner}/{repo}/pulls?state=closed)
  • Filter PRs op: merged_at na de datum van de laatste release

2. Filter en categoriseer de PRs als volgt:

  • Negeer volledig (niet opnemen in changelog):
    • PRs van dependabot[bot]
    • PRs waarvan de titel begint met docs:
    • PRs die alleen versienummer/release notes bevatten (titel bevat "Bump version" of "release notes")
  • Nieuwe features (feat: prefix): toon als hoofdpunt met korte beschrijving
  • Bugfixes (fix: prefix): toon als hoofdpunt met korte beschrijving
  • Refactoring / chore (chore:, refactor:, of interne verschuivingen zoals "Move", "Rename", "Replace public API"): toon kort onderaan in een aparte sectie "🔧 Internal improvements" met links naar de PR

3. Genereer de korte changelog (voor <PackageReleaseNotes> in csproj)

  • Maximaal ~5 bullet points
  • Alleen features en bugfixes, geen refactoring, geen docs
  • Formaat:
    * [beschrijving] in [PR link]
    

4. Genereer de uitgebreide changelog (voor GitHub Release body)

  • Secties:
    • ## ✨ New features (als er features zijn)
    • ## 🐛 Bug fixes (als er fixes zijn)
    • ## 🔧 Internal improvements (als er refactorings zijn, kort met PR-links, geen details)
  • Voeg voor relevante features een kort codevoorbeeld toe (bijv. nieuw CLI-argument demonstreren met slnx-validator ... --new-flag)
  • Sluit af met: **Full Changelog**: https://github.com/{owner}/{repo}/compare/vOUD...vNIEUW
  • Documentatiewijzigingen (docs:) worden niet opgenomen

5. Bepaal de release titel

  • Formaat: X.Y.Z: <korte beschrijving van de belangrijkste wijziging(en)>
  • Maximaal ~70 tekens
  • Gebruik de 1-2 belangrijkste features/fixes als samenvatting
  • Voorbeeld: 0.6.0: SARIF report output & severity override flags

6. Pas de versie aan in src/SLNX-validator/SLNX-validator.csproj

  • Zet <VersionPrefix> op de nieuwe versie (bijv. 0.6.0)
  • Vervang de inhoud van <PackageReleaseNotes> met de gegenereerde korte changelog (stap 3)

7. Maak een PR aan met:

  • Alleen de csproj-wijziging
  • Titel: Bump version to X.Y.Z and update release notes
  • Body: de volledige gegenereerde changelog (stap 4)

8. Maak de GitHub Release aan via de GitHub API:

  • Tag: vX.Y.Z
  • Naam: de release titel (stap 5)
  • Body: de uitgebreide changelog (stap 4)
  • draft: false, prerelease: false
  • Target: main

Regels voor de changelog

  • Schrijf in het Engels
  • Geen documentatiewijzigingen in de release notes
  • Refactorings alleen kort noemen met PR-link, geen uitleg
  • Features mogen een kort voorbeeld bevatten
  • Houd het beknopt maar informatief

Voorbeeld output

Release titel: 0.6.0: SARIF report output & severity override flags

Korte changelog (csproj):

* feat: Add SARIF 2.1.0 report output in https://github.com/304NotModified/SLNX-validator/pull/56
* feat: Add CLI severity override flags (--blocker, --critical, etc.) in https://github.com/304NotModified/SLNX-validator/pull/45
* fix: Remove duplicate filename in verbose error output in https://github.com/304NotModified/SLNX-validator/pull/52

GitHub Release body:

## ✨ New features

- **SARIF 2.1.0 report output** — generate a SARIF report for integration with GitHub Code Scanning, Azure DevOps, Visual Studio, and more ([#56](url))

  ```powershell
  slnx-validator MySolution.slnx --sarif-report-file results.sarif
  • CLI severity override flags — override the severity of specific validation rules per run (#45)

    slnx-validator MySolution.slnx --minor SLNX001 --ignore SLNX002

🐛 Bug fixes

  • Remove duplicate filename in verbose error output (#52)

🔧 Internal improvements

  • Replace public XDocument API on SlnxFile with typed SLNX domain model (#54)
  • Move XML parsing into SlnxCollector and rename ValidationCollector (#51)

Full Changelog: v0.5.0...v0.6.0



The following is the prior conversation context from the user's chat ex...

</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

*This pull request was created from Copilot chat.*
>

Copilot AI changed the title [WIP] Add release task markdown file for Copilot Add .github/release-task.md Copilot agent release task prompt Apr 6, 2026
Copilot AI requested a review from 304NotModified April 6, 2026 05:05
Type in Copilot chat:

```
Voer de release task uit voor versie X.Y.Z
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To English. Whole file in English

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in b75db2e — the Dutch usage example is now Run the release task for version X.Y.Z.

- Title: `Bump version to X.Y.Z and update release notes`
- Body: the full extended changelog from step 4

### 8. Create the GitHub Release via the API
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be after merge pr.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in b75db2e — step 8 now explicitly states: "Wait for the PR from step 7 to be merged into main before creating the release."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants