Back to Skills

commit-helper

verified

Help create git commits and PRs with properly formatted messages and release notes following CockroachDB conventions. Use when committing changes or creating pull requests.

View on GitHub

Repository
Verified Org

cockroachdb/cockroach
31.8kstars

.claude/skills/commit-helper/SKILL.md

Last Verified

January 25, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/cockroachdb/cockroach/blob/36e5eb89571f7eee1b489ab407b1ea06629ca26b/.claude/skills/commit-helper/SKILL.md -a claude-code --skill commit-helper

Installation paths:

Claude
.claude/skills/commit-helper/
Powered by add-skill CLI

Instructions

# CockroachDB Commit Helper

Help the user create properly formatted commit messages and release notes that follow CockroachDB conventions.

## Workflow

1. **Analyze the changes**: Run `git diff --staged` or `git diff` to understand what was modified
2. **Determine the package prefix**: Identify the primary package affected
3. **Ask the user** for:
   - Issue/epic number if not already known
   - Whether release notes are needed and what category fits best
4. **Write the subject line**: Imperative mood, no period, under 72 characters
5. **Write the body**: Explain the before/after, why the change was needed
6. **Add issue references**: Include Resolves/Epic as appropriate
7. **Write the release note**: Clear, user-focused description of the change
8. **Create the commit** using the properly formatted message

## Commit Message Structure

**Basic Format:**
```
package: imperative title without period

Detailed explanation of what changed, why it changed, and
how it impacts users. Explain the problem that existed
before and how this commit solves it.

Include context about alternate approaches considered and
any side effects or consequences.

Resolves: #123
Epic: CRDB-357

Release note (category): Description of user-facing change
in past or present tense explaining what changed, how users
can see the change, and why it's important.
```

**Key Requirements:**
- **Must** include release note annotation (even if "Release note: None")
- **Must** include issue or epic reference
- **Must** separate subject from body with blank line
- **Recommended** prefix subject with affected package/area
- **Recommended** use imperative mood in subject (e.g. "fix bug" not "fixes bug")
- **Recommended** wrap body at 72-100 characters

## Release Note Categories

**When to include release notes:**
- Changes to user interaction or experience
- Changes to product behavior (performance, command responses, architecture)
- Bug fixes affecting external users

**When to exclude release notes:**

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
4556 chars