mcpField
R
re0-git

re0-git

github.com/lilmgenius開発1.4k1.3k 回インストール4 週間前に更新
リポジトリ

re0-git について

re0-gitは、既存のコミットメッセージを書き直し、差分を見なくても新しいセッションがログから作業を引き継げるようにするスキルです。リポジトリ内の慣例に合わせ、メッセージだけを変更してツリーは保持します。

主な機能

  1. 01既存のコミットメッセージを書き直し
  2. 02近くのログから慣例を確認
  3. 03引き継ぎに必要な情報を保持
  4. 04ツリーの内容を維持
  5. 05書き換え後の署名と日付を確認

活用シーン

  1. 01冗長なHEADメッセージの整理
  2. 02未プッシュの短いコミット範囲の引き継ぎ準備
  3. 03差分なしでも把握しやすいコミットログの作成

インストール

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

$npx skills add https://github.com/lilmgenius/paperthin --skill re0-git

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

詳細

完成済みのコミットメッセージを書き直し、ログだけで引き継ぎが完結するようにします。押しつけた文体ではなく、作者自身の声で書きます。

目標

繰り返しの amend や勢いで作ったコミットによって、メッセージが肥大化したり、古くなったり、些細な情報で水増しされたりします。re0-git はメッセージを書き直し、新しいセッションが差分を読まずに git log だけで作業を続けられる、簡潔な内容にします。作者がすでに書いている内容を洗練させます。変わるのはメッセージだけです。以下の日付ルールに従って日付も更新します。ツリーは変わりません。

これはユーザーが呼び出すツールです。コミットすると決めてから実行してください。エージェントが使える範囲にコミット整理ツールがあると、コミットすべきでないときにもコミットする方向へ誘導されるおそれがあります。

ワークフロー

  1. 対象範囲を決めます。通常は HEAD、場合によってはプッシュ前の短い範囲です。
  2. 変更内容(git show --stat、git diff)と、文書化されたコミットルールを確認します。その後、対象外の近傍のメッセージを見ます。まず10件を確認し、慣例が明らかならそれ以上は見ず、慣例を把握するのに必要な分だけ追加で確認します。
  3. ログのスタイルが混在している場合は、次の順で判断します。プロジェクトで文書化されたルール、同じ領域に関わる近傍のコミット、次に、その慣例に沿った同じ作者のコミットです。相容れないスタイルを平均化したり、リポジトリの慣例より一人の作者の癖を優先したりしないでください。
  4. メッセージをコミットの簡潔さ(以下)に従って書き直します。後続作業に役立つ、長期的に有効な事実だけを残し、補助的な編集はそれが支える変更にまとめ、差分やタグですでに分かることは削ります。些細な情報に独立した箇条書きを割り当てないでください。
  5. 署名付きで再コミットし、以下の日付ルールに従います。先端(HEAD)の場合:git commit --amend -S --date=now。--date=now を指定すると作者の日付が現在時刻に更新されます。--amend だけではコミッターの日付しかリセットされず、作者の日付は古いままです。古いコミットの日付を保持する場合は、コミットを再構築します。GIT_AUTHOR_DATE/GIT_COMMITTER_DATE git commit-tree <tree> -p <parent> -S -m "<new message>" を使い、その後、再構築したコミットを起点にすべての子孫コミットをリプレイします。先端ではないコミットの書き換えはリファレンスの移動ではなくリベースです。そうしないと子孫コミットが孤立します。
  6. 検証して報告します。

ルール

  • コミットを作成したり、作成を提案したりしてはいけません。re0-git が書き換えるのは、すでに存在するコミットのメッセージだけです。これを使うことは、コミットする理由にはなりません。
  • メッセージのみ。ツリーはバイト単位で同一のままにします(git diff <old> <new> が空であること)。re0-git の実行中に内容を編集してはいけません。
  • コミットの簡潔さ — このスキルが適用するコミットメッセージの基準です。実際に意味のある変更ごとに箇条書きを一つ設け、補助的な編集はそれを支える変更にまとめます。差分やバージョンですでに分かることは含めず、共同作者タグは付けず、確認したローカルログの形式に合わせます。確認したログに定着した形式がない場合は、件名、空行、変更ごとに - で始まる箇条書きを一つずつ、折り返さない単一行で記します。ログに記すべき内容を説明する散文の段落は使いません。文書化されたチェックリストが、この種の変更で常に求める手順(新しいスキルの登録、ソース編集後の翻訳済みドキュメントの同期など)は、プロセスを実行した証拠であり、今回の変更そのものについての事実ではありません。該当する箇条書きに補足として加えるか、その箇条書きだけで十分に分かるなら省きます。作業の「方法」自体に特筆すべき点がある場合に限り、独立した箇条書きとして記載できます。この基準は初稿にも適用します。re0-git は、すでにこの基準から逸脱したメッセージを修正するだけです。
  • コミットの位置に応じた日付。常に GPG 署名付きにします。 確定するコミット、つまり HEAD は、作者とコミッターの両方の日付を現在時刻にします。最新のコミットを再整理すること自体が継続中の作業だからです。それより古いすべてのコミット(HEAD~1 以前)は、元の作者とコミッターの日付を保持し、過去の日付を更新してはいけません。
  • 明示的な確認なしに、プッシュ済みまたは共有済みの履歴を書き換えてはいけません。書き換えると強制プッシュが必要になります。

検証

  1. git diff <old-tip> <new-tip> が空であることを確認します。内容は変更されていません。
  2. 書き換えた各コミットに GPG 署名が付いていること(%G? = G)、日付が意図どおりであることを確認します。
  3. 差分を表示せずに git log だけを読み直し、削除した行が変更の理解に必要だと分かった場合は、その行を戻します。

コメント