AgentSkillsCN

commit

确认变更内容,自动生成日语提交信息并完成提交。适用于被委托进行提交或 git commit 操作时使用。

SKILL.md
--- frontmatter
name: commit
description: 変更内容を確認し、日本語でコミットメッセージを自動生成してコミットする。コミットやgit commitを依頼された際に使用。

変更内容を確認し、日本語でコミットメッセージを自動生成してコミットしてください。

手順

Step 1: 状態確認

  1. git statusgit diff(ステージ済み・未ステージ両方)を確認
  2. 最近のコミットメッセージ(git log --oneline -10)を確認してスタイルを合わせる
  3. 変更がない場合はその旨を伝えて終了

Step 2: 秘密情報・不要コードの検出(コミット前に必ず実行)

差分(git diff および git diff --cached)に以下が含まれていないか検査する。1つでも検出した場合はコミットを中断し、該当箇所をユーザーに報告する:

  • APIキー・トークンのパターン(sk-, ghp_, AKIA, 32文字以上の英数字文字列など)
  • .env 以外にハードコードされた秘密情報(パスワード、接続文字列など)
  • conflict marker の残り(<<<<<<<, =======, >>>>>>>
  • TODO: remove や一時的なデバッグコード(println によるデバッグ出力、Log.d の残り等)

Step 3: 分割コミットの判断

変更内容を分析し、以下に該当する場合は分割コミットを提案する:

  • 異なるプレフィックスに該当する変更が混在している(例: テスト追加 + バグ修正 → test:fix: に分割)
  • 異なるモジュール/パッケージにまたがる無関係な変更がある

分割が必要な場合は、どう分割するかをユーザーに提案し、承認を得てから各コミットを順番に実行する。

Step 4: amendの提案

以下の条件をすべて満たす場合、git commit --amend を提案する(通常の新規コミットも選択肢として提示):

  • 直前のコミットから5分以内(git log -1 --format=%ci で確認)
  • 直前のコミットと同じプレフィックスの変更である

amend を選択した場合は、既存メッセージを保持するか更新するかをユーザーに確認する。

Step 5: 変更サマリの表示と確認

以下のフォーマットで変更内容のサマリを表示し、ユーザーの確認を得る:

text
変更: <N>ファイル (+<追加行数>, -<削除行数>)
  M  feature/chart/viewmodel/CandlesViewModel.kt  -- キャッシュロジックを追加
  A  feature/chart/viewmodel/CandlesViewModelTest.kt  -- キャッシュのユニットテスト
  M  build.gradle.kts                              -- 依存追加

提案コミット: feat: 株価キャッシュにTTLを導入

Step 6: コミット実行

ユーザーの承認後、関連ファイルをステージングしてコミットする。

コミットメッセージのルール

  • 日本語で簡潔に記述
  • プレフィックスは英語の慣例に従う: feat:, fix:, docs:, refactor:, test:, chore:, ci:
  • 形式: <prefix>: <日本語の説明>
  • 例: feat: ユーザー認証機能を追加, fix: キャッシュTTLの計算を修正
  • 「何を」ではなく「なぜ」に焦点を当てる
  • Co-Authored-By ヘッダーを末尾に付与

本文(body)の追加基準

変更ファイルが5つ以上、または差分が100行以上の場合は本文を追加する:

text
feat: 株価キャッシュにTTLを導入

APIレート制限への対策として、取得済み株価を5分間キャッシュする。
これにより外部API呼び出しを約80%削減できる。

Co-Authored-By: ...

注意事項

  • .env, credentials 等の機密ファイルはコミットしない
  • 変更がない場合はその旨を伝える
  • 必ずユーザーの確認を取ってからコミットを実行する