🤖

AIチャットの履歴、どう残す? ― とりあえず `.aichat.md` にしてみた話

に公開2

最近、ちょっとしたスクリプトをAIに作ってもらうことが増えました。
たとえばCLIツールの1ファイルものとか、設定補助スクリプトとか。
わざわざリポジトリを切るほどでもない、あの規模のやつです。

AIさんがサッとコードを出してくれて、それを動かして、
「あ、いい感じ」となったあとにふと思うんですよね。

……これ、なんでこう書いたんだっけ?

チャットを残しておきたいけれど

そう思って、AIとの会話も一緒に残しておきたいなと。
ただ、いざファイルにしようとすると悩みます。

ollama-update.txt
うーん。テキスト?ログ?メモ?なんだっけ?

AIとのチャットだって分かるようにしたいし、シンタックスハイライトも効かせたい。
でも、そういう用途の 標準的な拡張子って存在しない ようです。

ないなら、作るか

探してみても、まだ
「AIチャット履歴の保存形式」みたいな規約は見当たりませんでした。
ZedやCursorのようなAI連携エディタでも、そこは特に決まっていないようです。

というわけで、自分で決めることにしました。
考えた条件はシンプルに2つ。

  1. 生成AIとのチャットだと分かる
  2. Markdownとして開ける

とりあえず .aichat.md

たとえば、作っているスクリプトが ollama-update のときは、それに拡張子 .aichat.md をつけることにしました。

ollama-update.aichat.md
  • .aichat は「AIとのチャット」であることを明示
  • .md は「Markdown形式」であることを示す

つまり、独自拡張子+汎用拡張子のハイブリッド構成です。
これならどのエディタでもMarkdownとして開けるし、
ls しただけで「あ、これはAIとのやりとりだな」とすぐ分かります。

スクリプトの名前を残しているので、間違ってスクリプトと別れ別れになってしまっても、ファイル名から関連を推測できます。

実際の運用

自分の場合、実行例も簡潔にこの .aichat.md の中にまとめています(生成AIに動作を説明する過程で、自然に会話中に含まれていることが多いですよね)。

会話→コード→動作確認の流れがひとつのMarkdown内で完結するので、
後から見返しても「ああ、このときこう考えてたのか」とすぐ追えそうです。

ollama-update-proj/
  ├── ollama-update
  └── ollama-update.aichat.md

ちょっとしたコード生成にはちょうどいいバランスかと。

しばらくはこれで行こう

いずれ「AIチャット履歴の保存形式」みたいな標準的プラクティスが出てくるでしょう。
でも現状では、.aichat.md が自分の中で一番それっぽいものです。

ガッチリしたプロジェクトにするまでもないようなスクリプトをAIに作ってもらったとき、
その会話を残しておく小さな工夫でした。


この記事は Zenn Fes 2025
テーマ「#zennfes2025ai(AI駆動開発でやったこと)」への参加記事です。

Discussion

rakiraki

repo/.ai(tool)/chat/yyyy/mm-dd_xx.md みたいな命名ルールを作っておいて、保存って書いたらここに保存する、ってプロンプトにつっこんでおくと幸せになれるかも。

aichat.md みたいにファイル名に常に同じ文字列が付与されているのは見やすくないし、専用のディレクトリにしておくことで後でまとめて読み込んでって指示しやすいし、フローログとして日付ファイルは便利。

tos_kamiyatos_kamiya

コメントありがとうございます。
専用ディレクトリ+日付入りファイルは実用的ですよね、まったく同感です。

自分も、ある程度しっかりしたプロジェクトの場合は
https://github.com/tos-kamiya/pdfhl/tree/main/dev-notes
みたいにしています。

この記事は、それほどガッチリしたリポジトリ構成にするまでもない規模の想定でした。