# Conventional Commit

> Prompt and workflow for generating conventional commit messages using a structured XML format. Guides users to create standardized, descriptive commit messages in line with the Conventional Commits specification, including instructions, examples, and validation.

- Skill: `egohygiene/conventional-commit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add egohygiene/conventional-commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/egohygiene/conventional-commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: egohygiene (https://skillmd.com/u/egohygiene)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/egohygiene/conventional-commit

---

### Instructions

```xml
  <description>This file contains a prompt template for generating conventional commit messages. It provides instructions, examples, and formatting guidelines to help users write standardized, descriptive commit messages in accordance with the Conventional Commits specification.</description>
```

### Workflow

**Follow these steps:**

1. Run `git status` to review changed files.
1. Run `git diff` or `git diff --cached` to inspect changes.
1. Stage your changes with `git add <file>`.
1. Construct your commit message using the following XML structure.
1. After generating your commit message, Copilot will automatically run the following command in your integrated terminal (no confirmation needed):

```bash
git commit -m "type(scope): description"
```

1. Just execute this prompt and Copilot will handle the commit for you in the terminal.

### Commit Message Structure

```xml
<commit-message>
  <type>feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert</type>
  <scope>()</scope>
  <description>A short, imperative summary of the change</description>
  <body>(optional: more detailed explanation)</body>
  <footer>(optional: e.g. BREAKING CHANGE: details, or issue references)</footer>
</commit-message>
```

### Examples

```xml
<examples>
  <example>feat(parser): add ability to parse arrays</example>
  <example>fix(ui): correct button alignment</example>
  <example>docs: update README with usage instructions</example>
  <example>refactor: improve performance of data processing</example>
  <example>chore: update dependencies</example>
  <example>feat!: send email on registration (BREAKING CHANGE: email service required)</example>
</examples>
```

### Validation

```xml
<validation>
  <type>Must be one of the allowed types. See <reference>https://www.conventionalcommits.org/en/v1.0.0/#specification</reference></type>
  <scope>Optional, but recommended for clarity.</scope>
  <description>Required. Use the imperative mood (e.g., "add", not "added").</description>
  <body>Optional. Use for additional context.</body>
  <footer>Use for breaking changes or issue references.</footer>
</validation>
```

### Final Step

```xml
<final-step>
  <cmd>git commit -m "type(scope): description"</cmd>
  <note>Replace with your constructed message. Include body and footer if needed.</note>
</final-step>
```

