caveman-commit について
caveman-commitは、Conventional Commits形式の簡潔なコミットメッセージを作成するエージェントスキルです。変更理由を重視し、必要に応じて背景を加えますが、Git操作は行いません。
主な機能
- 01Conventional Commits形式
- 02簡潔で命令形の件名
- 03重大・自明でない変更の背景説明
- 04貼り付け可能なコードブロック出力
活用シーン
- 01diffからのメッセージ作成
- 02重大な変更の説明
- 03セキュリティ修正や移行の背景補足
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rheinmir/ setup --skill caveman-commitインストール後、Claude Code で/caveman-commitを入力して読み込まれたか確認します。
詳細
簡潔かつ正確なコミットメッセージを書いてください。Conventional Commits 形式を使用します。余計な文言は不要です。何をしたかではなく、なぜ行ったかを記します。
ルール
件名行:
<type>(<scope>): <命令形の要約>—<scope>は省略可- 種別:
feat、fix、refactor、perf、docs、test、chore、build、ci、style、revert - 命令形を使用します:「add」「fix」「remove」。「added」「adds」「adding」は使用しません
- 可能であれば50文字以内、上限は72文字
- 末尾にピリオドを付けません
- コロンの後の大文字・小文字はプロジェクトの慣習に合わせます
本文(必要な場合のみ):
- 件名だけで内容が明確な場合は省略します
- 次の場合にのみ本文を追加します:自明でない 理由、破壊的変更、移行に関する注意、関連する Issue
- 72文字で折り返します
- 箇条書きには
*ではなく-を使います - Issue/PR への参照は末尾に記載します:
Closes #42、Refs #17
絶対に含めないもの:
- 「This commit does X」「I」「we」「now」「currently」— diff を見れば分かります
- 「As requested by...」— Co-authored-by トレーラーを使います
- 「Generated with Claude Code」や、AI に関する帰属表記
- 絵文字(プロジェクトの慣習で必要な場合を除く)
- scope にすでに記載されているファイル名の繰り返し
例
Diff:ユーザープロフィール用の新しいエンドポイント。本文で理由を説明
- ❌ "feat: add a new endpoint to get user profile information from the database"
- ✅
feat(api): add GET /users/:id/profile Mobile client needs profile data without the full user payload to reduce LTE bandwidth on cold-launch screens. Closes #128
Diff:API の破壊的変更
- ✅
feat(api)!: rename /v1/orders to /v1/checkout BREAKING CHANGE: clients on /v1/orders must migrate to /v1/checkout before 2026-06-01. Old route returns 410 after that date.
自動的な明確化
次の場合は必ず本文を含めます:破壊的変更、セキュリティ修正、データ移行、以前のコミットを取り消す変更。これらを件名だけに詰め込まないでください。後からデバッグする人に背景情報が必要です。
範囲
生成するのはコミットメッセージのみです。git commit の実行、ファイルのステージング、コミットの amend は行いません。貼り付けて使えるコードブロックとしてメッセージを出力します。「stop caveman-commit」または「normal mode」と指示された場合は、冗長なコミットスタイルに戻します。
出力レポート
スキルの主なタスクがすべて完了した後、wiki にドラフト案を作成します。
手順
1. ファイル名を作成します:
- 形式:
DDMMYY-<ten>.md DDMMYY= 今日の日付(例:2026年6月2日の場合は020626)<ten>= 実施内容を要約する、kebab-case の2~4語(例:landing-page-coteccons、brand-kit-fintech、ingest-auth-spec)
2. llmwiki/wiki/draft/cave/DDMMYY-<ten>.md を書きます:
# DDMMYY-<ten>
**Type:** draft
**Status:** proposed
**Tags:** <skill-name>, output-report
**Proposed:** YYYY-MM-DD
## What
<One sentence — what this skill invocation produced or decided>
## Output
<Key artefacts, files created/modified, or decisions made>
## Files
| File | Action |
|------|--------|
| `path/to/file` | created / modified |
## Notes
- Invoked via: `/<skill-name>` skill
## Origin
- **Draft:** `wiki/draft/cave/DDMMYY-<ten>.md`
- **Commit:** _(filled by verify-before-commit)_
- **Date promoted:** _(filled by verify-before-commit)_
3. wiki のインデックスとログを更新します:
llmwiki/wiki/index.md— 次の行を1行追加します:| [DDMMYY-<ten>](draft/cave/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |llmwiki/wiki/log.md— 次を追加します:## YYYY-MM-DD — <skill-name> — <ten>
スキルによって成果物も判断事項も一切生じない場合(例:
/caveman-statsのような表示のみのモード)に限り、スキップします。