同じ日に何度も Copilot セッションを書き出しても、ログを上書きしないようにする#
AI とのやりとりをブログ記事の材料にするために、 Copilot Chat のセッションを Markdown として保存する流れを作っている。
その入口として export_sessions.py を使い、
最新のセッションは次のコマンドで保存できるようにしていた。
rye run python export_sessions.py --latest
最初はこれで十分だと思っていた。 しかし、実際に使い始めると、すぐに困る点が出てきた。
1日に1回だけ AI と話すとは限らない。
朝に翻訳まわりの相談をして、夜に別の実装相談をすることもある。
そのたびに --latest でログを保存したい。
ところが、日付だけでファイル名を作っていると、 同じ日に複数回実行したときにファイルが上書きされてしまう。
今回の作業は、この上書きを避けるために、
export_sessions.py の自動命名を時刻付きに変更した記録である。
出発点の困りごと#
やりたかったことは単純だった。
AI とのセッションが終わるたびに、 その時点の最新セッションを保存したい。
rye run python export_sessions.py --latest
このコマンドを、1日に何度でも実行したい。
ただし、同じ日付のファイル名にしていると、 たとえば次のような名前が毎回使われる。
copilot-session-latest-2026-05-28.md
この形式だと、同じ日に別テーマのセッションを保存したとき、 前に保存したログを失ってしまう。
AI とのやりとりを記事の素材として残す運用では、 これはかなり痛い。
ログはあとから読み返すための一次資料である。 その時点では重要に見えない会話でも、 あとから記事の出発点になるかもしれない。
だから、同じ日に複数テーマのセッションができることを前提に、 保存名のほうを運用に合わせる必要があった。
命名方式を考える#
最初に確認したのは、 既存の出力名をどう変えるかだった。
候補としては、日付の後ろに連番を付ける方法もある。
copilot-session-latest-2026-05-28_001.md
copilot-session-latest-2026-05-28_002.md
これは分かりやすい。 ただ、ログを見ると、最終的には時刻方式を選んでいる。
時刻を入れると、いつ保存したログなのかがファイル名だけで分かる。 また、同じ日に複数回保存する前提とも相性がよい。
変更後の自動命名は、次のような形にした。
copilot-session-latest-YYYY-MM-DD-HHMMSS.md
copilot-session-<session先頭8文字>-YYYY-MM-DD-HHMMSS.md
copilot-sessions-YYYY-MM-DD-HHMMSS.md
--latest だけでなく、
--session で特定セッションを書き出す場合や、
通常出力の場合にも同じ考え方を適用する。
一方で、--out を指定した場合は対象外にした。
--out は利用者が出力先を明示している。
そのため、スクリプト側で勝手にファイル名を変えないほうが自然である。
この判断は、道具としての予測しやすさにも関係する。 自動命名のときは安全側に倒して上書きを避ける。 明示指定のときは、指定した通りに動く。
この境界を分けておくと、後から使うときに迷いにくい。
同秒実行への備え#
時刻を秒まで入れれば、通常の利用ではほとんど衝突しない。
ただし、スクリプトを短時間に連続実行した場合や、 テストで同じ秒に複数回保存する場合は、 同じファイル名になる可能性がある。
そこで、同名ファイルが存在する場合は、 末尾に連番を付けるフォールバックも入れた。
copilot-session-latest-2026-05-28-230836.md
copilot-session-latest-2026-05-28-230836_001.md
copilot-session-latest-2026-05-28-230836_002.md
普段は時刻付きの名前で十分で、 万一ぶつかったときだけ連番が付く。
このくらいの仕組みにしておくと、 日常の操作でもテストでも安心して使える。
実装後に確認したこと#
実装後は、まず構文チェックを行った。
rye run python -m py_compile export_sessions.py
次に、一覧表示の経路が壊れていないことを確認した。
rye run python export_sessions.py --list --recent 1
最後に、実際に --latest を連続実行し、
別名のファイルとして保存されることを確認した。
この確認が重要なのは、 今回の変更が「コード上そう見える」だけではなく、 本当にログを失わない挙動になっているかを見たいからである。
ログ保存の道具は、失敗したときの影響があとから見えにくい。 上書きされてしまったログは、気づいたときにはもう戻せないかもしれない。
だから、命名ロジックの変更は小さく見えても、 実動作で確認しておく価値がある。
今回わかったこと#
今回の学びは、 ログ保存のような補助ツールでは、 ファイル名の設計も運用の一部だということだった。
最初は、最新セッションを保存できれば十分だと思っていた。 しかし、実際には次のような使い方になる。
AI と別テーマの相談を1日に何度も行う
セッションごとに
--latestで保存する保存したログをあとから読み返す
記事にできそうなものを選んで整理する
この流れでは、日付だけの名前では足りない。
時刻付きで保存しておけば、 ログが増えても自然に並び、 どの時点の会話だったかも分かりやすい。
さらに、同秒衝突時の連番フォールバックを入れておけば、 連続実行しても上書きされない。
小さな変更だが、ログを安心して残すための土台としては大事である。
次に活かすこと#
今後、AI との作業ログを保存するたびに、 次のコマンドを気軽に実行できる。
rye run python export_sessions.py --latest
同じ日に何度実行しても、 自動命名なら時刻付きで別ファイルになる。
保存先は _notes/sessions/ に置き、
公開記事は docs/blog/posts/ に整理する。
生ログと記事を分ける運用はそのままに、 ログを失わないための命名だけを強くした形である。
今回のような改善は、 AI 活用そのものの派手な機能ではない。
しかし、AI とのやりとりを継続的に記事へ変えていくには、 こうした地味な保存ルールが効いてくる。
ログが残る。 上書きされない。 あとから読み返せる。
この前提があるだけで、 AI との会話を、その場限りのやりとりではなく、 次の記事の材料として扱いやすくなる。
記事情報
- 著者:
mtakagishi
- 公開日:
2026-06-01