unslop-commit について
Conventional Commits形式のコミットメッセージを作成・書き直すスキルです。件名と本文の書式を示し、破壊的変更やセキュリティ修正、移行、リバートの説明が必要な場合も扱います。
主な機能
- 01Conventional Commits形式
- 02命令形の件名
- 03任意のスコープと本文
- 04破壊的変更の説明指針
- 05コミット操作は行わない
活用シーン
- 01ステージ済み変更のメッセージ作成
- 02セキュリティ修正の本文での説明
- 03移行やリバートの記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mohamedabdallah-14/ unslop --skill unslop-commitインストール後、Claude Code で/unslop-commitを入力して読み込まれたか確認します。
詳細
Unslop Commit
目的
実際の一日の終わりにエンジニアが書いたようなコミットメッセージを生成または書き直します。Conventional Commits 形式を使います。率直で具体的にし、テンプレート調の英語は避けます。「何をしたか」より「なぜしたか」を重視します。
トリガー
/unslop-commit、/commit、「write a commit」、「commit message」、「humanize this commit」、「de-slop this commit」。ユーザーが変更をステージ済みで、コミットメッセージを求めた場合は自動でトリガーします。
ルール
件名行
- 形式:
<type>(<scope>): <imperative summary> - スコープは省略可能です。タイプ:
feat、fix、chore、refactor、docs、test、perf、build、ci、revert。 - 命令形を使います:
add、fix、move、remove。added、fixes、fixingは使いません。 - 可能な場合は50文字以内にします。上限は72文字です。
- 末尾にピリオドを付けません。
:の後は小文字にします。ただし、プロジェクトで大文字表記が使われている場合を除きます。
本文(件名だけでは伝えきれない場合のみ)
- 自明でない「理由」、破壊的変更、移行、セキュリティに関する背景、データの整合性について記載します。
- 72文字で折り返します。独立した要点が2つ以上ある場合は
-の箇条書きにします。要点が1つの場合は段落にします。 - 末尾に参照を記載します:
Closes #42、Refs #17。本当に破壊的な変更でない限りBREAKING CHANGE:は使いません。破壊的な変更の場合は記載します。
絶対に含めないもの
- テンプレートの書き出し:「This commit...」、「This change...」、「We are...」、「I have...」
- マーケティング的な動詞:comprehensive、robust、enhance、leverage、seamless、holistic
- 冗長な副詞:just、really、basically、simply、actually
- スコープですでにファイル名が示されている場合の、ファイル名の繰り返し
- 「As requested by...」(クレジット表記が必要な場合は
Co-authored-by:を使います) - プロジェクトで必要とされていない限り、AI のクレジット表記
- プロジェクトの慣例で使われていない限り、絵文字
自動で明確化(本文を必ず含める)
- 破壊的な変更
- セキュリティ修正
- データ移行
- リバート(リバートしたコミットを参照します)
例
悪い例 → 良い例(冗長な件名、本文なし)
- 悪い例:
feat: implement a comprehensive, robust solution for user profile retrieval with enhanced error handling - 良い例:
feat(api): return profile fields the mobile client actually needs
悪い例 → 良い例(曖昧な本文)
悪い例:
fix: fixed the bug
This commit addresses an issue where the application was not working correctly
in some edge cases. We've improved the logic to handle these scenarios.
良い例:
fix(checkout): ignore stale cart id from localStorage
Stale cart ids came from tabs that hadn't refreshed after a deploy. Server
now treats unknown ids as empty cart instead of 500.
Closes #842
破壊的な変更
feat(api)!: rename /v1/orders to /v1/customer-orders
The old route stays in place until the next major release but logs a
deprecation warning. Internal services have been migrated.
BREAKING CHANGE: third-party integrations using /v1/orders directly need
to switch to /v1/customer-orders by 2026-07-01.
Closes #1290
境界
- 貼り付けてすぐ使えるよう、メッセージのみを単一のフェンス付きブロックで出力します。
git commitの実行、ステージング、amend は行いません。- 変更が本当に些細なもの(
docs(readme): fix typoなど)なら、簡潔にします。無理に内容を足しません。 - ユーザーが提示していない背景を決して作りません。「理由」が明確でない場合は質問するか、本文を省略します。
コメント
Markdown 対応