AIがコードを書く場合、セッションはコミットの一部にすべきか?
47日前原文(github.com)
概要
- git-mementoはAIセッションの履歴をGitノートとしてコミットに保存する拡張機能
- 複数AIプロバイダ(Codex, Claude等)に柔軟対応
- Markdown形式で人間が読みやすいノートを生成
- ノートの共有・同期・監査機能を標準搭載
- GitHub Actionsとの連携やCIゲートもサポート
git-memento概要
- AIコーディングセッションの記録をGitコミットに紐付けるGit拡張
- 通常のGitフロー(-mやエディタ利用)でコミット作成
- AIセッショントレースをGitノートとしてコミットに添付
- プロバイダ拡張性を重視(Codex優先、Claude等も対応予定)
- ノートはMarkdownで保存、人間が読みやすい形
- ノートは複数セッション・複数プロバイダ混在可能
基本コマンド
- リポジトリごとに初期設定
git memento initgit memento init codexgit memento init claude- 設定は
.git/configのmemento.*に保存
- コミットにAIセッションを添付
git memento commit <session-id> -m "通常のコミットメッセージ"-mは複数回指定可能、順にgit commitへ転送-m省略時はエディタ起動
- コミット修正(amend)にも対応
git memento amend -m "修正件名"git memento amend <new-session-id> -m "修正件名" -m "修正文"- セッションID未指定時は前回HEADのノートを引き継ぐ
- セッションID指定時は既存ノートに新セッションを追加
- ノート共有
git memento share-notesgit memento share-notes upstreamrefs/notes/*をリモートにpush、fetch設定も自動化
- ブランチとノートの同時push
git memento pushgit memento push upstream
- ノートの安全な同期・マージ
git memento notes-syncgit memento notes-sync upstream --strategy union- バックアップ作成、リモートノート取得、ローカル統合、再push
- ノートの自動引き継ぎ設定(rebaseやamend時)
git memento notes-rewrite-setup.git/configにrewrite設定追加
- 範囲指定でノートを新コミットに集約
git memento notes-carry --onto <new-commit> --from-range <base>..<head>
- ノート監査・メタデータ検証
git memento audit --range main..HEAD--strictで構造不備をエラー扱い
- リポジトリ診断
git memento doctorgit memento doctor upstream --format json
- ヘルプ・バージョン表示
git memento helpgit memento --version
プロバイダ設定
- 環境変数や
initでプロバイダ・コマンドパス等を指定- 例:
MEMENTO_AI_PROVIDER=claude
- 例:
- サポート環境変数例
MEMENTO_AI_PROVIDER(デフォルト: codex)MEMENTO_CODEX_BIN(デフォルト: codex)MEMENTO_CODEX_GET_ARGS(デフォルト: sessions get {id} --json)MEMENTO_CLAUDE_BIN(デフォルト: claude)
- 未設定時は
git memento init実行を促すエラー表示 - セッションID未検出時はCodex等から候補一覧を表示
ビルド・インストール
- .NET SDK 10とNativeAOT対応ツールチェーンが必要
- プラットフォームごとのビルド例
- macOS:
dotnet publish ... -r osx-arm64 -p:PublishAot=true - Linux:
dotnet publish ... -r linux-x64 -p:PublishAot=true - Windows:
dotnet publish ... -r win-x64 -p:PublishAot=true
- macOS:
- Gitツールとしてローカルインストール
- 実行ファイルをPATH上に配置し、
git-memento名で利用
- 実行ファイルをPATH上に配置し、
- カールインストール
curl -fsSL https://raw.githubusercontent.com/mandel-macaque/memento/main/install.sh | sh
GitHub Actions・CI連携
- Marketplace Actionとして再利用可能
- 2モード
comment:ノートをコミットコメントとして投稿gate:CIゲートとしてノート監査を実行
- 主要入力
github-token、mode、notes-fetch-refspec、max-comment-length、audit-range等
- インストーラアクションも用意
- 使用例は
.github/workflows配下にサンプルあり
ノート仕様と運用
- ノートは
git notes add -f -m "<markdown>" <commit-hash>で保存 - 複数セッションは明示的な区切りタグで管理
<!-- git-memento-sessions:v1 -->等
- 旧バージョンノートはamend時に自動アップグレード
- 会話Markdownはユーザー名・プロバイダ名でラベル付与
- デバッグ用にSerilogログ出力(DEBUGビルド時)
まとめ
- git-mementoはAI活用開発を記録・監査・共有するための現代的Git拡張
- チーム開発やCI/CDとの親和性が高く、AIコーディングの透明性・再現性向上に最適