engram-commit-hygiene について
Git のコミット、ブランチ命名、ステージングに関する開発スキルです。リポジトリの規則に従う開発者向けに、Conventional Commits、ブランチ形式、コミット前の確認項目をまとめています。
主な機能
- 01Conventional Commits 形式の徹底
- 02ブランチ命名形式の規定
- 03コミットを単一の論理変更に限定
- 04コミット前チェックリスト
活用シーン
- 01規則に沿ったコミットメッセージの作成
- 02新しいブランチの適切な命名
- 03ステージ済み変更とコミット範囲の確認
- 04PR 履歴のコミット規則の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gentleman-programming/ engram --skill engram-commit-hygieneインストール後、Claude Code で/engram-commit-hygieneを入力して読み込まれたか確認します。
詳細
使用する場面
以下の場合にこのスキルを使用します:
- コミットを作成するとき
- ブランチを作成または命名するとき
- PR でコミット履歴を確認するとき
- ステージされた変更を整理するとき
重要なルール
- コミットメッセージは必ず Conventional Commits に従う必要があります — GitHub ルールセットによって強制され、無効な場合はプッシュ時に拒否されます
- ブランチ名は必ず
type/description形式にする必要があります — GitHub ルールセットによって強制され、無効な場合はプッシュ時に拒否されます - 1つのコミットには論理的な変更を1つだけ含めてください
- メッセージでは、変更内容だけでなく理由を説明してください
- 決して
Co-Authored-Byトレーラーを含めないでください - 一時的な成果物に関するポリシーで禁止されているパスを決してコミットしないでください
コミットメッセージ形式(GitHub ルールセットによって強制)
正規表現: ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([a-z0-9\._-]+\))?!?: .+
<type>(<optional-scope>): <description>
<type>(<optional-scope>)!: <description> ← breaking change
使用可能なタイプ
| タイプ | 用途 |
|---|---|
feat | 新機能 |
fix | バグ修正 |
docs | ドキュメントのみ |
refactor | コードのリファクタリング(動作の変更なし) |
chore | メンテナンス、依存関係 |
style | 書式、空白 |
perf | パフォーマンスの改善 |
test | テストの追加または修正 |
build | ビルドシステムの変更 |
ci | CI/CD パイプラインの変更 |
revert | 以前のコミットを取り消す |
ルール
- タイプは必ず小文字で、一覧にある値を使用してください
- スコープは省略可能で、小文字を使用し、
a-z、0-9、.、_、-を使用できます :の前の!は破壊的変更を示します- 説明は必ず
:(コロン+スペース)の後に記述してください - 説明には命令形を使用してください(「added」や「adds」ではなく「add」)
有効な例
feat(cli): add --json flag to session list command
fix(store): prevent duplicate observation insert on retry
docs(contributing): update workflow documentation
refactor(internal): extract search query sanitizer
chore(deps): bump github.com/charmbracelet/bubbletea to v0.26
style(tui): fix alignment in session detail view
perf(store): optimize FTS5 query for large datasets
test(sync): add coverage for conflict resolution
ci(workflows): split e2e into separate job
fix!: change session ID format
無効な例(プッシュ時に拒否されます)
Fix bug ← no type prefix
feat: Add login ← description should be lowercase
FEAT(cli): add flag ← type must be lowercase
feat (cli): add flag ← no space before scope
feat(CLI): add flag ← scope must be lowercase
update docs ← no conventional commit format
ブランチの命名形式(GitHub ルールセットによって強制)
正規表現: ^(feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)\/[a-z0-9._-]+$
<type>/<description>
使用可能なタイプ
feat、fix、chore、docs、style、refactor、perf、test、build、ci、revert
ルール
- タイプは必ず一覧にある値を使用してください
- 説明は必ず小文字にしてください
- 説明に使用できるのは
a-z、0-9、.、_、-のみです - 大文字、スペース、特殊文字は使用できません
有効な例
feat/json-export-command
fix/duplicate-observation-insert
docs/api-reference-update
refactor/extract-query-sanitizer
chore/bump-bubbletea-v0.26
ci/split-e2e-job
無効な例(プッシュ時に拒否されます)
feature/add-login ← "feature" not allowed, use "feat"
fix/Add-Login ← uppercase not allowed
my-branch ← no type prefix
fix_something ← missing "/" separator
コミット前チェックリスト
- コミットメッセージが Conventional Commits 形式に準拠している
- ブランチ名が
type/description形式に準拠している - 差分がコミットの範囲と一致している(無関係な変更がない)
- シークレット、認証情報、
.envファイルが含まれていない - 変更したすべてのパスが一時的な成果物に関するポリシーに準拠している
-
Co-Authored-Byトレーラーが含まれていない - 変更に関連するテストに合格している
コメント
Markdown 対応