26 ポイント 投稿者 GN⁺ 2026-03-03 | 4件のコメント | WhatsAppで共有
  • git-memento は、AIが生成したコードセッションを Gitコミットに自動記録 する拡張ツールで、各コミットに対応するAIの会話履歴を git notes として保存する
  • コミット時にAIセッションIDを指定すると、要約は refs/notes/commits、完全な会話は refs/notes/memento-full-audit に分けて保存され、追跡性とプライバシー を同時に確保できる
  • CodexClaude など多様なAIプロバイダーをサポートし、要約生成時には ユーザー定義スキル を適用してコミットノートの品質を制御できる
  • GitHub Actions と統合され、コミットノートの自動コメント化CIゲート検証マージ時のノート自動引き継ぎ(merge-carry) 機能を提供する
  • Windows/Mac/Linux対応。AIコード生成の透明性を高め、協業環境で AIの貢献履歴の監査(audit)可能性 を確保するツール

git-memento 概要

  • git-mementoAIコーディングセッションをコミット単位で記録 するGit拡張ツール
    • コミット時にAIセッションの会話内容を整理して Markdownノート として保存
    • 各コミットにAIセッションの 出所と会話コンテキスト を残し、コード生成プロセスを追跡可能にする
  • デフォルトで Codex をサポートし、Claude など他のAIモデルも設定可能
  • MITライセンスで公開されており、NativeAOTベースの単一実行ファイル として配布される

主なコマンドと機能

  • git memento init でリポジトリごとの設定を初期化し、AIプロバイダー情報を .git/config に保存
  • git memento commit コマンドでコミットと同時にセッションノートを追加
    • --summary-skill オプションを使うと、要約版と完全セッションを分けて保存
    • 要約版は refs/notes/commits、完全ログは refs/notes/memento-full-audit に記録
  • git memento amend は既存コミットに新しいセッションを追加または修正できる
  • git memento audit はコミット範囲内でノート欠落の有無とメタデータの有効性を検査
  • git memento doctor は設定、ノート参照、リモート同期状態を点検

ノート管理と同期

  • git memento share-notes でリモートリポジトリ(origin など)へノートをプッシュ
  • git memento notes-sync はリモートノートを安全にマージし、バックアップを作成
    • refs/notes/commitsrefs/notes/memento-full-audit の両方を同期
  • git memento notes-carry はリベースやスカッシュ後にノートを新しいコミットへ引き継ぐ
  • git memento notes-rewrite-setup は自動ノート引き継ぎ設定を有効化

GitHub Actions 統合

  • リポジトリには 再利用可能なGitHub Action が含まれている
    • mode: comment — コミットノートを読み取り 自動コメントを作成
    • mode: gateCI段階でノート欠落の有無を検査 し、失敗時はビルドをブロック
    • mode: merge-carryPRマージ時にノートをマージコミットへ引き継ぐ
  • 各モードは action.yml で定義され、マーケットプレイス登録用アーティファクトdist/note-comment-renderer.js)を含む
  • ignore-notes ラベルが付いたPRはゲート検査をスキップし、「Notes ignored」コメントを残す

ノート形式とバージョン管理

  • ノートは git notes add -f -m "" 形式で保存
  • 複数セッション対応のため、バージョンタグ(``)と区切り記号を使用
  • ユーザーメッセージはGitユーザー名、AI応答はプロバイダー名でラベル付けされる
  • 既存の単一セッションノートは必要に応じて自動アップグレードされ、互換性を維持する

4件のコメント

 
wedding 2026-03-03

プライベートなプロジェクトではセッションをエクスポートしてコミットし、パブリックなものは要約ファイルがどうしても必要だと判断した場合に限ってコミットしています。
やはり個人情報もありますし……ツールごとに違いますが、セッションごとに10MBを軽く超えるので……そのまま上げるのはちょっと気が引けるんですよね。

 
roxie 2026-03-28

でも、私たちはディスクがかつてないほど安い時代に生きているのですから!

 
GN⁺ 2026-03-03
Hacker Newsの意見
  • 私はAIと一緒にコードを書くとき、project.md ファイルから始めます
    そこに欲しい結果を説明し、AIにその内容をもとに plan.md を書かせます
    その後、plan.md を何度も修正し、望む計画が完成したら、詳細な todoリスト を作って plan.md の末尾に貼り付けます
    完全に満足したら、AIに todo を実行するよう指示し、もう質問せず最後まで進めさせます
    最後に project.md と plan.md、そしてコード全体をコミットします
    こうすると plan.md が一種の 再現可能なアーティファクト になり、後でもっと進化したモデルがそれをもとに修正したりバグを見つけたりできます

    • 私も似たようなやり方ですが、3つの文書に分けています — designplandebug
      design は機能単位で書き、未解決の問いを明示します
      plan は plan/[feature]/phase-N-[description].md という構成で管理し、ビルドや実行の限界にぶつかったら中断します
      debug 段階ではあり得る原因の仮説を立て、ロギング/トレーシング で検証したうえで修正します
      このやり方で新規プロジェクトでもレガシーでもほぼ100%の成功率でした
      欠点は markdown ファイルが増えすぎることですが、過去の記録が将来の変更に役立つので、まだ自動化していません
    • これは specベースのアプローチ のように聞こえます
      GitHub spec-kit を参考にするとよさそうです
    • obra/superpowers の「brainstorming」機能がほぼ同じワークフローです。使ってみると本当に素晴らしいです
    • 以前は Beads をこういう形で使っていましたが、その後 GuardRails を作りました
      モデルに市場調査や提案レビューをさせて反復していると、モデル自身が理解できる言語で プロンプト設計 をするようになります
      最近 XMLがClaudeの動作に影響する と知り、GuardRails の構造を見直しています
      紹介記事リンク
    • 私も似た構成を使っていますが、「context」ファイルを別に置いています
      plan が完成したら「context.md」を作り、あとで誤った計画を巻き戻すときの参考にします
      まだ実際に使う機会はありませんでしたが、概念としては有用です
      ただ、こうしたファイルをどこに置くべきか曖昧なので、まだリポジトリには含めていません
      こうした 作業ごとの md ファイルをどこに保存 しているのか気になります
  • 私の考えでは、これは「すべての行をコミットすべきか?」と同じ問題です
    結局のところ核心は 誰のための記録なのか です
    ほとんどのセッションにはノイズが多く、誤った試行や不要な情報がたくさん含まれます
    重要なのはセッションの成果物であって、その過程自体ではありません
    ただし初期の spec や最初のプロンプトには価値があります。それを要約してコミットメッセージや markdown ファイルに残すのがよいでしょう

    • 人間には複雑で騒がしくても、こうしたセッション情報は 未来のAI にとって有用かもしれません
      過去のセッションを学習コンテキストにして現在の作業を引き継がせることができます
      とくにモデルの限界を理解し、コードがユーザーの意図から外れた箇所を見つけるのに役立つ可能性があります
      結局のところ、すべての 人間の入力を記録 することがオープンソースモデルの発展に重要だと思います
    • 「すべての行をコミットするか」より、「すべての メモと失敗した試行 を残すか」のほうがより適切なたとえに思えます
    • 科学研究でもこの問題はすでに起きています — 再現性の危機
      初期条件やノイズを含めても同じ結果が出るべきです
      そうでなければ将来のコード保守は 意図を推測するゲーム になってしまいます
      関連記事
    • 透明性が重要な組織なら監査用として価値があるかもしれませんが、現実にはあの長いログを誰が読むのでしょうか
    • すべてのセッションを保存する必要はありませんが、細かな修正の中で 要件が具体化される瞬間 には価値があります
  • 1週間前に似たアイデアを提案しました(リンク
    ただ反対意見も多く、AIプロジェクトは単一の入力から生成されるのではなく対話的な過程なので、ソースコードのようなアーティファクトにしにくい という点です
    それでも Show HN に投稿される生成プロジェクトが多すぎて、ノイズが深刻 な状況です
    完全に排除することはできませんが、現状のままでは興味が薄れます
    コミュニティがこの問題をどう扱うべきか考えています

    • 私は Boris TaneのClaudeコード執筆法 を参考にしています
      research.md と plan.md をコミットし、アーキテクチャと機能の 生きた辞書 として使っています
      機能名をファイル名の接頭辞に付けて、Claude が関連設計をすばやく呼び出せるようにしています
      参考ブログ
    • 問題はコンテキスト不足ではなく、努力の基準が下がったこと です
      以前なら面白かったプロジェクトが、今ではあまりにも簡単に作れてしまいます
      長いセッションログを読ませることが解決策ではありません。要約力と企画力 のほうが重要になります
    • Codex がセッション全体を markdown としてエクスポートできたらいいのにと思います
      vibe coding の本当の価値は 試行と失敗の過程 を見ることにあります
    • 私も2つのプロジェクトを Show HN に投稿しようか考えています
      単に成果物だけを出すより、制作過程と解説 があるほうが面白いです
      なので [Show HN] とは別に [Creations] のようなカテゴリがあればいいと思います
      例: 単純なチェスエンジンは [Creations]、1kで作ったチェスエンジンは [Show HN]
      PerfBoardLerc がその例です
  • セッションは 中間成果物 にすぎず、最終成果物に含める必要はありません
    コード変更の理由が重要なら、コミットメッセージや文書 に整理するべきです

    • これは結局 要約の問題 です
      コミット時点では未来の読者がどんな質問をするか分かりません
      だから私はセッションを保存しておき、後で 質問ベースで要約を生成 する方法を好みます
      Git AI はこうしたアプローチを使っています
      最近のエンジニアは作業スピードが速すぎて、1週間もするとどうしてそうしたのか思い出せないことがよくあります
    • 少なくともセッションの 要約版 は必要です
      研究型のプロンプトは要約し、コード生成型のプロンプトはそのまま保存するのがよいでしょう
      そうすれば 再現性とレビュー可能性 が確保できます
    • 私も以前は LLM にコミットメッセージだけ書かせていましたが、今は plan ファイルのバージョン管理 のほうが良いと感じています
      計画がエラー修正の過程まで反映するので、次の反復に役立つ文書になります
    • 私の場合、リポジトリ自体がエージェントの 記憶ストレージ です
      各リポジトリが互いにメッセージをやり取りしながら機能要求を管理します
      元の対話と 意味圧縮された記憶 を一緒に保存して、仕様と要件を再配置します
    • セッション保存は バグ原因の追跡 や事後分析にも有用です
  • セッションログの大半は ノイズ です
    間違った試行と巻き戻しの連続であり、コミットの横に置くのはブラウザ履歴を保存するようなものです
    重要なのは 意図と制約条件 を含んだコミットメッセージです
    AIがコードを書いたとしても、核心は会話そのものではなく なぜそのように依頼したのか です
    結局のところ問題はセッション保存ではなく、コミットメッセージをおろそかにする習慣 なのかもしれません

  • 私はAIを使うとしても 伝統的な設計手順 を維持します
    要件 → ユースケース → クラス設計 → 制約条件の定義 → AIの実行
    こうすれば人間の アーキテクチャ判断力 を保ちながら、AIは反復実装を加速できます
    セッションログの代わりにこうした UML/制約文書をコミットに含めれば、意図と文脈 を明確に残せます
    2026年の開発者はこうした 品位ある協業構造 を守るべきだと思います

  • これはコミットを squashするかどうか の問題に似ています
    squash を好むなら結果だけが重要で、過程は残しません
    そうでなければ旅路そのものを記録します
    AIセッションも同じで、思考過程のデバッグ には有用ですが、きれいな履歴を好む人はわざわざ見ません
    セッションはリポジトリ外で別途管理するのが現実的です

    • 私も squash派 ですが、内部履歴を展開して見られるシステムならセッションも一緒に見たいです
      Mercurial や Fossil はこうした機能がより優れていると聞きました
    • このたとえがいちばん適切だと思います
      vibe-coding ではコードそのものより プロンプトが思考の痕跡 を示します
      git に入れるかどうかは別として、アクセスできるようにしておく価値はあります
    • 人が主導する開発なら、AIの利用は単なる ツール にすぎません
      その場合、リアルタイムの過程を見る必要はありません
      ですが完全にAIが書いたコードなら、プロンプトの公開 は必要です
  • 私もセッションを抽出してみました
    多少の情報損失リスクはありますが、可読性とアクセス性 はずっと良くなります

  • 少なくともセッションの 要約されたプロンプト は保存すべきだと思います
    AIコードレビューは人間ほど厳密ではなく、意図はプロンプトにしか含まれていません
    そうしないと同じミスを繰り返すことになります
    コードレビューの価値は学習と改善にありますが、AIは学習しないので プロンプト記録 がその役割を代替すべきです
    また プロンプト能力の評価 やジュニア教育にも必要です

    • ただ、それが「当然だ」という点には同意しません
      私たちはキーストロークやメニュークリック、デバッグの試行のようなものをコミットには含めません
      すべての会話を保存すると ノイズが多すぎます
      代わりに意図や前提が含まれた文書程度を残すのが現実的です
    • ちなみに、セッションのサイズをどのくらいだと考えているのかも気になります
  • 「Google検索履歴をコミットに含めるべきか?」という質問と同じです — もちろん違うと思います

    • 完璧なたとえです。思考のすべての断片を記録するのは 信号対雑音比 があまりにも悪いです
      代わりに 理由、前提、代替案の要約 だけ残すのがよいでしょう
    • ただしセッションを保管すれば、AIが実行した 検索クエリと結果 も一緒に残り、プロジェクトの文脈に役立つかもしれません
    • 誰も「divの中央寄せ」を何回検索したかなんて知りたくありません
      同じように、モデルが些細な問題で迷ったログも不要です
    • さらに、すべての検索がコミットと関係あるわけでもありません。機密情報 が含まれる可能性もあります
 
roxie 2026-03-28

> 「Googleの検索履歴をコミットに含めるべきか?」という質問と同じこと — もちろん違うと思う

このコメント、いいですね