conventional-commit

Structure commit messages following the Conventional Commits specification. Use when drafting commit messages before coding or reviewing commit message quality.

210 stars

Best use case

conventional-commit is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Structure commit messages following the Conventional Commits specification. Use when drafting commit messages before coding or reviewing commit message quality.

Teams using conventional-commit should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/conventional-commit/SKILL.md --create-dirs "https://raw.githubusercontent.com/flpbalada/my-opencode-config/main/skills/conventional-commit/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/conventional-commit/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How conventional-commit Compares

Feature / Agentconventional-commitStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Structure commit messages following the Conventional Commits specification. Use when drafting commit messages before coding or reviewing commit message quality.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Conventional Commits

Structure commit messages using the Conventional Commits specification for clear, consistent, and machine-readable commit history.

## When to Use

- Drafting commit messages before starting coding
- Reviewing commit message quality
- Establishing team commit message conventions
- Creating automated changelogs or version management

## Core Principles

Commit messages must follow the Conventional Commits specification: https://www.conventionalcommits.org/en/v1.0.0/

## Format

```
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]
```

## Commit Types

| Type      | Description                                                                 |
| --------- | --------------------------------------------------------------------------- |
| `feat`    | A new feature                                                              |
| `fix`     | A bug fix                                                                  |
| `docs`    | Documentation only changes                                                 |
| `style`   | Code style changes (formatting, semi-colons, etc.) - no code logic change  |
| `refactor`| Code changes that neither fix a bug nor add a feature                      |
| `perf`    | Performance improvements                                                    |
| `test`    | Adding or updating tests                                                   |
| `build`   | Build system or external dependencies changes                              |
| `ci`      | CI configuration changes and scripts                                       |
| `chore`   | Other changes that don't modify src or test files                          |
| `revert`  | Reverts a previous commit                                                  |

## Format Rules

### Header

- **Format:** `<type>[optional scope]: <description>`
- **Description rules:**
  - Must be in imperative, present tense (e.g., "add feature" not "added feature" or "adds feature")
  - No capitalization at the start
  - No period at the end
  - Keep concise (typically under 50 characters total)

```
feat: add dark mode toggle
fix: remove blocking overlay on login button
feat(auth): upgrade OAuth client library
```

### Body

- Bulleted list detailing each specific change or requirement
- Provide context on *what* and *why*, not just *how*
- Every detail from the intent should be captured as a bullet point
- Each bullet point should also be in imperative mood
- Wrap at 72 characters

```
feat(ui): add dark mode toggle to header

- create new theme toggle button component
- implement dark mode state management in React context
- update Tailwind configuration with dark theme color palette
```

### Footer

- Use for breaking changes and issues references
- Breaking changes MUST be in the footer and start with `BREAKING CHANGE: `
- May reference issues using a format like `Closes #123` or `Related to #456`

```
feat(api): change return type

BREAKING CHANGE: Return type changed from string to object

Closes #123
```

## Scope

- Optional part of the commit header
- Enclosed in parentheses after the type
- Identifies the part of the codebase affected
- Examples: `auth`, `ui`, `api`, `database`, `docs`

```
feat(auth): add OAuth2 provider support
fix(ui): correct alignment in navbar
```

## Examples

### Feature with multiple changes

```
feat(ui): add dark mode toggle to header

- create new theme toggle button component
- implement dark mode state management in React context
- update Tailwind configuration with dark theme color palette
- add CSS transitions for theme switching
- persist theme preference in local storage
```

### Bug fix

```
fix(auth): remove blocking overlay on login button

- adjust z-index of the overlay div to sit behind the button
- ensure pointer-events do not intercept clicks on the login CTA
```

### Documentation

```
docs: update installation instructions

- clarify dependencies for Node.js 18+
- add troubleshooting section for Windows users
- update examples with latest API changes
```

### Breaking change

```
feat(api): migrate to REST v2 endpoints

BREAKING CHANGE: All API endpoints prefixed with /api/v2
- old endpoints will still be available until version 3.0
- update client SDKs to use new endpoint structure
- update authentication middleware
- update API documentation
```

### Refactor

```
refactor(database): replace ORM with raw SQL queries

- improve query performance by 40%
- reduce bundle size by 15%
- add query result caching layer
- update error handling for database operations
```

## Common Mistakes to Avoid

### ❌ Wrong tense

```
feat: added dark mode
feat: adds dark mode
```

### ✅ Correct

```
feat: add dark mode
```

### ❌ Capitalization or period in header

```
feat: Add dark mode toggle.
feat(add dark mode toggle)
```

### ✅ Correct

```
feat: add dark mode toggle
```

### ❌ Missing context in body

```
fix: remove overlay

- fix z-index
```

### ✅ Correct

```
fix: remove blocking overlay on login button

- adjust z-index of the overlay div to sit behind the button
- ensure pointer-events do not intercept clicks on the login CTA
```

## Quick Reference

| Type    | Template                                                      |
| ------- | ------------------------------------------------------------- |
| feat    | `feat: <short description>`                                  |
| fix     | `fix: <short description>`                                   |
| docs    | `docs: <short description>`                                  |
| style   | `style: <short description>`                                 |
| refactor| `refactor: <short description>`                              |
| perf    | `perf: <short description>`                                  |
| test    | `test: <short description>`                                  |
| build   | `build: <short description>`                                 |
| ci      | `ci: <short description>`                                    |
| chore   | `chore: <short description>`                                 |
| revert  | `revert: <original commit message>`                          |

---

**Source:** [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)

Related Skills

what-not-to-do-as-product-manager

210
from flpbalada/my-opencode-config

Anti-patterns and mistakes to avoid as a product manager. Use when evaluating leadership behaviors, improving team dynamics, reflecting on management practices, or onboarding new product managers.

visual-cues-cta-psychology

210
from flpbalada/my-opencode-config

Design effective CTAs using visual attention and gaze psychology principles. Use when designing landing pages, button hierarchies, conversion elements, or optimizing user attention flow through interfaces.

vercel-sandbox

210
from flpbalada/my-opencode-config

Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include "Vercel Sandbox browser", "microVM Chrome", "agent-browser in sandbox", "browser automation on Vercel", or any task requiring Chrome in a Vercel Sandbox.

value-realization

210
from flpbalada/my-opencode-config

Analyze if end users discover clear value. Use when evaluating product concepts, analyzing adoption, or uncertain about direction.

user-story-fundamentals

210
from flpbalada/my-opencode-config

Capture requirements from user perspective with structured user stories. Use when writing backlog items, defining acceptance criteria, prioritizing features, or communicating requirements between product and development.

typescript-satisfies-operator

210
from flpbalada/my-opencode-config

Guides proper usage of TypeScript's satisfies operator vs type annotations. Use this skill when deciding between type annotations (colon) and satisfies, validating object shapes while preserving literal types, or troubleshooting type inference issues.

typescript-interface-vs-type

210
from flpbalada/my-opencode-config

Guides when to use interface vs type in TypeScript. Use this skill when defining object types, extending types, or choosing between interface and type aliases.

typescript-best-practices

210
from flpbalada/my-opencode-config

Guides TypeScript best practices for type safety, code organization, and maintainability. Use this skill when configuring TypeScript projects, deciding on typing strategies, writing async code, or reviewing TypeScript code quality.

typescript-advanced-types

210
from flpbalada/my-opencode-config

Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.

trust-psychology

210
from flpbalada/my-opencode-config

Build trust signals that reduce perceived risk and enable user action. Use when designing landing pages, checkout flows, onboarding experiences, or any conversion point where user hesitation is a barrier.

theme-epic-story

210
from flpbalada/my-opencode-config

Structure product work hierarchically using themes, epics, and stories. Use when organizing backlogs, planning releases, communicating with stakeholders, or breaking down large initiatives into manageable work.

tailwind-v4-configuration

210
from flpbalada/my-opencode-config

Configure Tailwind CSS v4 with CSS-first approach. Use when installing, migrating from v3, setting up build tools (Vite/PostCSS/CLI), customizing themes with @theme, or configuring plugins.