Skip to main content

conventional-commits

Write Git commit messages that follow the Conventional Commits 1.0.0 specification. Use when composing a commit message, running git commit, choosing a commit type (feat/fix/docs/refactor/ci/chore/etc.), adding a scope, marking a BREAKING CHANGE, writing commit bodies/footers, or checking a message against the spec. Produces messages like "feat(parser): add array support" that map cleanly to SemVer bumps.

Datos de origen

Repositorio
open-sdr/openwifi
Última actividad en el origen
11 de agosto de 2026 a las 16:18
Idioma detectado de SKILL.md
inglés
Estrellas
4833
Forks
824

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
conventional-commits
description
Write Git commit messages that follow the Conventional Commits 1.0.0 specification. Use when composing a commit message, running git commit, choosing a commit type (feat/fix/docs/refactor/ci/chore/etc.), adding a scope, marking a BREAKING CHANGE, writing commit bodies/footers, or checking a message against the spec. Produces messages like "feat(parser): add array support" that map cleanly to SemVer bumps.
argument-hint
describe the change (e.g. "fixed a null deref in the parser") to get a commit message
# Conventional Commits 1.0.0 Write commit messages following the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) specification so history is explicit and drives SemVer bumps, changelogs, and release automation. ## When to Use - Composing any commit message (`git commit`). - Choosing the right type/scope for a change. - Indicating a breaking change. - Writing a multi-paragraph body or footers (e.g. `Refs:`, `Reviewed-by:`). - Validating an existing message against the spec. ## Format ``` <type>[optional scope][!]: <description> [optional body] [optional footer(s)] ``` - **type**: a noun such as `feat` or `fix`, followed by an optional scope, an optional `!`, then a REQUIRED colon and space. - **description**: a short summary, immediately after the `: `. - **body**: optional; begins **one blank line** after the description; free-form paragraphs. - **footer(s)**: optional; begin **one blank line** after the body; each is `Token: value` or `Token #value`. ## Procedure 1. **Pick the type** that best matches the change (see table). If it fits more than one, make separate commits. 2. **Add a scope** if it usefully names the affected area: `fix(driver): ...`. 3. **Write the description**: imperative mood, concise, lowercase, no trailing period. 4. **Mark breaking changes** with `!` before the colon and/or a `BREAKING CHANGE:` footer. 5. **Add body/footers** if context, reasoning, or references are needed. 6. **Commit**, preferably passing the message via `-m` (repeat `-m` for body/footer paragraphs): ```bash git commit -m "feat(parser): add ability to parse arrays" # with body + footer: git commit -m "fix: prevent racing of requests" \ -m "Introduce a request id and a reference to the latest request." \ -m "Refs: #123" ``` ## Types (and SemVer mapping) | Type | Use for | SemVer | |------|---------|:------:| | `feat` | A new feature | MINOR | | `fix` | A bug fix | PATCH | | `docs` | Documentation only | — | | `style` | Formatting/whitespace, no code-behavior change | — | | `refactor` | Code change that neither fixes a bug nor adds a feature | — | | `perf` | Performance improvement | — | | `test` | Adding or fixing tests | — | | `build` | Build system or external dependencies | — | | `ci` | CI configuration and pipelines | — | | `chore` | Other maintenance (tooling, housekeeping) | — | | `revert` | Revert a previous commit | — | | any type with `!` or `BREAKING CHANGE:` | Backward-incompatible change | MAJOR | Only `feat` and `fix` are mandated by the spec; the rest are the widely used Angular/commitlint set. Types other than `feat`/`fix` have no implicit SemVer effect unless they carry a breaking change. Teams MAY define additional types. ## Breaking Changes Indicate a breaking change in **either** place (or both): - **In the prefix**: put `!` immediately before the colon — `feat!: ...` or `feat(api)!: ...`. The description then describes the break, and the footer MAY be omitted. - **In a footer**: `BREAKING CHANGE: <description>`. The token MUST be uppercase (`BREAKING-CHANGE` is an accepted synonym). A breaking change may accompany any type. ``` feat!: drop support for Node 6 BREAKING CHANGE: use JavaScript features not available in Node 6. ``` ## Scope A scope is a noun in parentheses naming a section of the codebase: `feat(lang): add Polish language`, `fix(parser): handle empty input`. It is optional. ## Body & Footers - The body begins one blank line after the description and may span multiple paragraphs. - Footers begin one blank line after the body. Each footer token uses `-` instead of spaces (e.g. `Reviewed-by`, `Acked-by`, `Refs`), except `BREAKING CHANGE`. Separator is `: ` or ` #`. - A footer value may contain spaces and newlines; parsing ends at the next valid footer token. ``` fix: prevent racing of requests Introduce a request id and a reference to latest request. Dismiss incoming responses other than from latest request. Reviewed-by: Z Refs: #123 ``` ## Reverts The spec does not mandate revert behavior. Recommended form: the `revert` type with a footer referencing the reverted commit SHAs. ``` revert: let us never again speak of the noodle incident Refs: 676104e, a215868 ``` ## Casing Units of a Conventional Commit are case-insensitive, **except** `BREAKING CHANGE`, which MUST be uppercase. Pick one casing for types and be consistent (this repo uses lowercase, e.g. `fix:`, `ci:`). ## Examples | Message | Valid | Note | |---------|:-----:|------| | `docs: correct spelling of CHANGELOG` | ✅ | No body | | `feat(lang): add Polish language` | ✅ | Scope | | `feat: allow config object to extend other configs` | ✅ | With `BREAKING CHANGE:` footer | | `feat(api)!: send email when a product is shipped` | ✅ | Scope + `!` breaking | | `revert: let us never again speak of the noodle incident` | ✅ | Revert with `Refs:` footer | | `fix: array parsing issue when multiple spaces in string` | ✅ | Imperative description | | `feat:missing space after colon` | ❌ | Colon MUST be followed by a space | | `Fixed the parser bug` | ❌ | No type prefix | | `feat(parser) add arrays` | ❌ | Missing colon | | `feat: breaking change` (real break, no `!`/footer) | ❌ | Breaking change not indicated | ## Why It Matters Conventional Commits enable automatic CHANGELOG generation, automatic SemVer bump detection (`fix`→PATCH, `feat`→MINOR, breaking→MAJOR), clearer history, and triggering of build/publish pipelines. It pairs with the `conventional-branch` (branch names) and `semantic-versioning` (release versions) skills.
Ver en GitHub