mcpField
E
engram-commit-hygiene

engram-commit-hygiene

github.com/gentleman-programming開発7.7k80 回インストール今日更新
リポジトリ

engram-commit-hygiene について

Git のコミット、ブランチ命名、ステージングに関する開発スキルです。リポジトリの規則に従う開発者向けに、Conventional Commits、ブランチ形式、コミット前の確認項目をまとめています。

主な機能

  1. 01Conventional Commits 形式の徹底
  2. 02ブランチ命名形式の規定
  3. 03コミットを単一の論理変更に限定
  4. 04コミット前チェックリスト

活用シーン

  1. 01規則に沿ったコミットメッセージの作成
  2. 02新しいブランチの適切な命名
  3. 03ステージ済み変更とコミット範囲の確認
  4. 04PR 履歴のコミット規則の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gentleman-programming/engram --skill engram-commit-hygiene

インストール後、Claude Code で/engram-commit-hygieneを入力して読み込まれたか確認します。

詳細

使用する場面

以下の場合にこのスキルを使用します:

  • コミットを作成するとき
  • ブランチを作成または命名するとき
  • PR でコミット履歴を確認するとき
  • ステージされた変更を整理するとき

重要なルール

  1. コミットメッセージは必ず Conventional Commits に従う必要があります — GitHub ルールセットによって強制され、無効な場合はプッシュ時に拒否されます
  2. ブランチ名は必ず type/description 形式にする必要があります — GitHub ルールセットによって強制され、無効な場合はプッシュ時に拒否されます
  3. 1つのコミットには論理的な変更を1つだけ含めてください
  4. メッセージでは、変更内容だけでなく理由を説明してください
  5. 決して Co-Authored-By トレーラーを含めないでください
  6. 一時的な成果物に関するポリシーで禁止されているパスを決してコミットしないでください

コミットメッセージ形式(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ビルドシステムの変更
ciCI/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 トレーラーが含まれていない
  • 変更に関連するテストに合格している

コメント