commit-style · git:20260815.652037d · 2026-08-15 · sha256 d8b32a473d1fffbd

commit-style git:20260815.652037dA

Immutable. This exact content never changes and is served at /api/v1/blob/d8b32a473d1fffbd.

---
name: commit-style
description: Commit message style guidelines. Use when writing or proposing git commit messages, including direct git commit commands outside the /commit skill.
allowed-tools: Bash(git log:*), Bash(read-commit-instructions:*)
user-invocable: false
effort: low
---

コミットメッセージを書く際のスタイルガイドラインです。
`/commit`スキル経由でないコミットでも、
このガイドラインに従ってください。

# 既存コミットスタイル

!`git log --no-merges -20`

上記の`git log --no-merges -20`の内容から、
既存のコミットメッセージのスタイルを把握してください。

# コミットメッセージのガイドライン

!`read-commit-instructions`

上記の内容が空でなければプロジェクト固有のコミットメッセージガイドラインです。
内容に従ってください。

# コミットメッセージのスタイル

プロジェクト固有のガイドラインと衝突するスタイルがある場合はそちらを優先してください。
以下はデフォルトのスタイルとして使用してください。

環境によっては`commit-msg`フックのcommitlintで、
このスタイルの一部が機械的に検査されます。
検査に引っかかると修正のやり直しで時間を浪費するので、
最初からスタイルに従った文章を書いてください。
以降の「エラーになります」という記述は、
この検査が有効な環境での話です。
検査規則の出所は、
[ncaq/git-hooks](https://github.com/ncaq/git-hooks)のcommitlint設定です。
規則の詳細や最新の内容はそちらを参照してください。

## 文体

丁寧語とですます調で書いてください。

英単語と日本語が混在する場合は、
英単語の前後にスペースを入れないでください。
中国語の風習では普通スペースを入れますが、
日本語ではスペースを入れないのも一般的で、
私は基本的にスペースなしのスタイルを採用しています。

## タイトルと本文の構成

1行目はタイトルなので簡潔に変更の要約をしてください。
タイトルは68文字以内に収めることが推奨されます。
72文字を超えるとエラーになります。

タイトルの末尾は文字・数字・バッククォートのいずれかで終わらせてください。
句読点や括弧などの記号で終わるとエラーになります。

必要に応じて本文を追加してください。
その場合タイトルとの間に必ず空行を入れてください。

## 行長と改行

本文の行長は100文字以内に収めてください。
URLなど改行できないものを挿入する場合は例外です。

本文の段落では改行位置が機械的に検査されます。
以下の規則に従ってください。

- 句読点(`、`・`。`・半角ピリオド`.`)を書いたらその直後で改行する。行の途中に句読点を残さない
- 改行する行は句読点かバッククォートで終わらせる。文節の途中で改行しない

つまり一文一行が基本で、
長い文は読点の直後で折り返す形になります。

以下は例外として許容されます。

- 行頭から6文字目までにある読点(`また、`や`しかし、`のような短い接続詞の直後)では改行しなくて良い
- `Node.js`や`1.2.3`のような英数字に挟まれた半角ピリオドは句点として扱われない
- URL・Markdownリンク・インラインコードの中身は検査対象外。
  素のURLもリンクとして扱われるため、
  `close`や`ref`のフッタ行のようにURLで終わる行は違反にならない
- リスト項目・コードブロック・見出し・引用・テーブルの行は検査対象外

規則に従っても改行位置が不自然になる場合は、
改行で誤魔化さずに文章自体を練りなおしてください。
日本語は英語と違い好きに改行して良い言語ではないので、
改行位置には十分注意してください。

## コードシンボル

コードのシンボル(関数名や変数名など)をメッセージに含める場合は、
Markdownのインラインコード記法であるバッククォートで囲んでください。

## 列挙

本文で要素の列挙が3つ以上になる場合は、
文章に詰め込まずMarkdownのリスト形式で書いてください。

例えば、

```markdown
`foo`と`bar`と`baz`の設定を追加します。
```

ではなく、

```markdown
以下の設定を追加します。

- `foo`
- `bar`
- `baz`
```

のように書いてください。

列挙する要素が2つ以下の場合は、
文章のままで構いません。

順序に意味がない場合は番号付きリストを使わないでください。

## issueやPRの参照

GitHubのissueやpull requestを参照する場合は、
`#123`や`owner/repo#123`のような短縮記法は使わず、
完全なURLを使ってください。

同じリポジトリのissueやPRであっても完全なURLを使ってください。

短縮記法はGitHub上でしか解決されず、
ローカルの`git log`の出力やエディタからは移動出来ないためです。

issueに関連付けるキーワードは`close`などの原形を使ってください。

そのコミットがissueをクローズする場合は`close`を、
クローズせず関連を示すだけの場合は`ref`を使ってください。

使えるキーワードはこの2つだけです。
`closes`・`fixes`・`refs`・`resolves`などの他のキーワードはエラーになります。

例:

```
close https://github.com/owner/repo/issues/123
ref https://github.com/owner/repo/pull/456
```

## 本文の内容

本文には変更の内容だけではなく、
なぜその変更が必要だったのか、
理由をなるべく書いてください。