mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-05-28 18:43:40 +00:00
chore(github): add commit message instructions for VS Code and Copilot
Add .github/instructions/commit-messages.instructions.md with Conventional Commit rules, Impact footer guidance, and release-notes skip trailers. Wired to VS Code via github.copilot.chat.commitMessageGeneration.instructions in devcontainer.json so the SCM Generate button uses these rules. Release-Notes: skip User-Impact: none
This commit is contained in:
parent
1d3c55097d
commit
a240393911
1 changed files with 95 additions and 0 deletions
95
.github/instructions/commit-messages.instructions.md
vendored
Normal file
95
.github/instructions/commit-messages.instructions.md
vendored
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
---
|
||||
description: "Use when writing or suggesting git commit messages, deciding commit type/scope, or preparing release-note-relevant commit trailers."
|
||||
---
|
||||
|
||||
# Commit Message Rules (Release-Notes Aware)
|
||||
|
||||
Use these rules whenever you generate or suggest commit messages.
|
||||
|
||||
## Primary Goal
|
||||
|
||||
Write technically correct Conventional Commit messages while ensuring release notes only include user-relevant changes.
|
||||
|
||||
## Required Format
|
||||
|
||||
Use this structure:
|
||||
|
||||
<type>(<scope>): <short summary>
|
||||
|
||||
<body>
|
||||
|
||||
Impact: <user-facing outcome>
|
||||
|
||||
### Notes
|
||||
|
||||
- Keep summary imperative and concise.
|
||||
- Keep body technical (what changed and why).
|
||||
- Keep Impact user-facing (what users notice).
|
||||
|
||||
## Type Selection
|
||||
|
||||
- Use feat for new user-visible capability.
|
||||
- Use fix only for user-visible bug fixes.
|
||||
- Use perf for user-visible reliability/performance improvements.
|
||||
- Use docs, test, refactor, chore, ci, build for non-user-facing work.
|
||||
|
||||
## Critical Rule: Internal/Unreleased Fixes
|
||||
|
||||
If a fix addresses code that was not released to users yet, DO NOT treat it as a user-facing fix.
|
||||
|
||||
In that case:
|
||||
|
||||
- Prefer chore(...) or refactor(...) instead of fix(...), and/or
|
||||
- Add an explicit trailer in the commit body:
|
||||
- Release-Notes: skip
|
||||
- User-Impact: none
|
||||
- Released-Bug: no
|
||||
|
||||
Any one of these trailers is enough.
|
||||
|
||||
## How To Decide Released vs Unreleased
|
||||
|
||||
When uncertain whether users were affected, check if the introducing commit was part of a release tag:
|
||||
|
||||
./scripts/release/check-if-released <commit-hash>
|
||||
|
||||
Interpretation:
|
||||
|
||||
- NOT RELEASED -> treat as internal/non-user-facing.
|
||||
- ALREADY RELEASED -> user-facing fix is possible.
|
||||
|
||||
## Release Notes Alignment
|
||||
|
||||
This repository's release notes generator excludes commits with any of these trailers:
|
||||
|
||||
- Release-Notes: skip
|
||||
- User-Impact: none
|
||||
- Released-Bug: no
|
||||
|
||||
Therefore, add one of them whenever you intentionally want to exclude a commit from release notes.
|
||||
|
||||
## Examples
|
||||
|
||||
### User-facing fix
|
||||
|
||||
fix(config_flow): prevent setup failure on invalid home selection
|
||||
|
||||
Validate home selection before entry creation to avoid runtime errors when stale API data is returned.
|
||||
|
||||
Impact: Setup wizard no longer fails for users when home data changes during configuration.
|
||||
|
||||
### Internal-only fix for unreleased code
|
||||
|
||||
chore(periods): adjust extension guard for new geometric matcher
|
||||
|
||||
Tune guard conditions in the new matcher implementation to avoid edge-case misclassification during development.
|
||||
|
||||
User-Impact: none
|
||||
|
||||
### Alternative with explicit skip marker
|
||||
|
||||
fix(periods): correct follow-up edge case in unreleased geometric matcher
|
||||
|
||||
Adjust comparison threshold in iterative matcher pass.
|
||||
|
||||
Release-Notes: skip
|
||||
Loading…
Reference in a new issue