ChatGPTを使っていて、こんな経験はありませんか?
「ずっと同じチャットで作業していたのに、会話が長くなりすぎて続きを進められなくなった!」
実は、私も経験しました。
ChatGPTを使ってAndroidアプリの開発を進めていたのですが、長期間のやり取りで会話が上限に達してしまったのです。
仕方なく新しいチャットを作ったものの、今度は別の問題が発生。
これまで決めてきた仕様や、開発の経緯が十分に伝わらない!
新しいチャットで一から説明し直すのは、なかなか大変です。
そこで調べてみたところ、Markdown形式のファイルを使って、過去の会話内容を引き継ぐ方法があることを知りました。
今回は、実際に引き継ぎファイルを作成し、新しいチャットで読み込ませてみた結果を紹介します。
結論から言うと、私の環境では、期待以上にうまく引き継ぐことができました!
ただし、過去の会話を完全に復元できる方法ではありません。その点も含めて、実際の手順と注意点を紹介します。
ChatGPTの会話が長くなり、引き継ぎに困った
私は現在、ChatGPTとCodexを活用してAndroidアプリの開発を進めています。
開発では、仕様の検討、設計、プログラムの修正、テスト、問題の調査など、さまざまなやり取りを繰り返します。
最初は問題なく進んでいたのですが、会話が長くなり、とうとうスレッドの上限に達してしまいました。
そこで、新しいチャットを作成して開発を継続することに。
ところが、新しいチャットでは、以前の細かな経緯が十分に共有されていません。
例えば、
- なぜ、その仕様に決めたのか
- どの機能まで実装できているのか
- 過去にどんな問題が発生したのか
- どんな修正を行い、どこまでテストしたのか
- 次に何をする予定だったのか
こうした情報を、もう一度説明する必要がありました。
もちろん、ChatGPTには過去の会話を参考にできる機能もあります。しかし、別のチャットに移れば、以前の長いやり取りがすべて正確に共有されるとは限りません。
これは困った……。
何かいい方法はないだろうか?
そこで見つけたのが、Markdownファイルを使った引き継ぎ方法でした。
Markdownファイルで会話を引き継ぐとは?
Markdown(マークダウン)は、見出しや箇条書きなどを簡単な記号で表現できるテキスト形式です。
ファイルの拡張子は .md です。
例えば、次のように書けます。
# プロジェクト概要
## 開発の目的
スマートフォン向けアプリを開発する。
## 現在の進捗
- 基本仕様:決定済み
- 画面設計:作成済み
- 動作テスト:実施中
## 次の作業
動作テストの結果を確認する。
このように、必要な情報を整理して保存できます。
今回考えたのは、過去のチャットでChatGPTに引き継ぎ資料を作ってもらい、そのファイルを新しいチャットに読み込ませる方法です。
イメージとしては、前の担当者が、新しい担当者に渡す業務引き継ぎ書のようなものですね。
今回のファイル名は、PROJECT_HANDOVER.md としました。
実際に引き継ぎファイルを作ってみた
① 古いチャットに作成を依頼する
まず、以前のチャットを開き、ChatGPTに引き継ぎ資料の作成を依頼しました。
今回使用したプロンプトを、一般的な作業にも使える形に整理したものがこちらです。
【コピーして使える】引き継ぎファイル作成用プロンプト
このチャットの作業内容を、新しいチャットに引き継ぎたいと考えています。
現在参照できる会話内容をもとに、引き継ぎ用のMarkdownファイルを作成してください。
ファイル名:PROJECT_HANDOVER.md
単なる会話の要約ではなく、新しいチャットで作業を継続するための資料にしてください。
以下の項目を整理してください。
1. プロジェクト・作業の概要と目的
2. これまでに決定した事項
3. 重要な判断と、その理由
4. 現在までの進捗
5. 完了した作業と確認済みの結果
6. 発生した問題と対応履歴
7. 未解決の問題
8. 今後の予定と次に行う作業
9. 作業を進める際の注意事項
10. 新しいチャットのChatGPTへの引き継ぎ指示
次のルールを守ってください。
- 確認できる事実を優先する
- 確定事項と検討中の内容を区別する
- 過去の情報が更新されている場合は、確認できる最新の情報を優先する
- 不明な情報を推測で補わない
- 参照できない会話やファイルがある場合は、その旨を記載する
- パスワードやAPIキーなどの秘密情報は記載しない
日本語のMarkdown形式で作成してください。
可能であれば、ダウンロードできる.mdファイルを生成してください。
ファイル生成ができない場合は、Markdown本文をチャット画面に出力してください。
最後に、作成できた内容と、引き継げなかった情報を報告してください。
このプロンプトを入力して、ChatGPTに処理してもらいました。
② まさかの「分析エラー」!
ところが、ここで予想外の出来事が。
しばらく処理していたのですが、画面に表示されたのは、
「分析エラー」
えっ? 失敗した?w
会話が長すぎたのか、処理が重かったのか……。
原因は分かりません。
そこで、作成する情報量を減らして、何回かに分けて引き継ぎ資料を作る方法も考えました。
しかし、改めて古いチャットを開いてみると……。
あれ? ファイルができている!w
無事に PROJECT_HANDOVER.md が生成されていたのです。
エラー表示が出た理由や、どの時点でファイル生成が完了したのかは分かりません。
ただ、今回の経験から、エラーが表示された場合でも、まずはファイルが生成されていないか確認してみる価値はあると感じました。
※まさか記事にするとは思っていなかったので、エラー画面のスクリーンショットは撮り忘れました!😂
③ 作成されたファイルを確認する
完成したファイルをダウンロードし、別のChatGPTのチャットで内容を確認してみました。
すると、かなり詳細な引き継ぎ資料が作成されていました。
主な内容は、
- 開発プロジェクトの概要
- 開発環境
- 確定している仕様
- 実装済みの機能
- テスト結果
- 過去に発生した問題
- 未解決事項
- 次に実施すべき作業
- ChatGPTやCodexとの作業ルール
といったものです。
さらに、情報が確認できない箇所には「未確認」と明記されていました。
これは重要ですね。
引き継ぎ資料に間違った情報が書かれていると、新しいチャットでも誤った判断につながる可能性があります。
分からないことは、分からないと書いておく。
この点は、引き継ぎ資料を作るうえで大切だと思いました。
新しいチャットに引き継いでみた
さて、ここからが本番です。
作成した PROJECT_HANDOVER.md を新しいチャットに添付します。
ただし、私の場合は一つ注意点がありました。
実は、古いチャットで引き継ぎファイルを作る前に、新しいチャットではすでに開発作業を進めていたのです。
つまり、引き継ぎファイルに書かれている情報は、現在の開発状況よりも古い可能性があります。
ここで、そのまま「このファイルの内容で開発を続けて」と指示すると、過去の進捗を現在の状況と勘違いするかもしれません。
せっかく進んだ開発が、古い情報に引っ張られてしまうのは避けたいところ。
そこで、読み込み用のプロンプトにも工夫を加えました。
【コピーして使える】新しいチャットへの引き継ぎ用プロンプト
以下は、今回の検証で使用したプロンプトです。
添付した PROJECT_HANDOVER.md は、以前の開発スレッドから作成した引き継ぎ資料です。
重要:このファイルは過去の開発状況を記録したものであり、現在の開発状況を示すものではありません。
新しいスレッドでは、すでに開発作業が進んでいます。
したがって、以下のルールを厳守してください。
1. このファイルは過去の経緯や設計判断を補完するための参考資料として扱ってください。
2. 現在のスレッドで確定した仕様、実装内容、検証結果、作業進捗を優先してください。
3. 引き継ぎファイルに記載された古い進捗や未実装情報で、現在の状態を上書きしないでください。
4. 同じ項目について情報が異なる場合は、両方の根拠と時系列を比較し、変更の経緯を整理してください。
5. 新旧の情報に矛盾があり、どちらが正しいか判断できない場合は、推測せず確認してください。
6. 引き継ぎファイルに記載された過去の承認を、現在の作業に対する新たな承認として扱わないでください。
まずは添付ファイルを読み込み、以下を報告してください。
- 引き継ぎファイルから新たに把握できた情報
- 現在のスレッドと一致している情報
- 現在のスレッドですでに更新・変更されている情報
- 矛盾している情報、追加確認が必要な情報
- 現時点での最新の開発状況と次の作業
今回は情報の照合と整理だけを行ってください。
ソースコードの変更、スクリプト実行、ファイルの上書き、テストの再実行は行わないでください。
また、引き継ぎ資料を読み込んだだけで、現在の開発状態が変更されたと判断しないでください。
このプロンプトで特に重要なのは、
「古い引き継ぎ情報よりも、現在のチャットで確認された新しい情報を優先する」
という指示です。
今回は開発作業だったので、ソースコードの変更やテスト実行も禁止しました。
まずは情報を読み込んで比較するだけにしたかったからです。
検証結果!過去の経緯を理解できたのか?
結果は……。
大成功でした!
新しいチャットのChatGPTは、引き継ぎファイルを読み込み、次の5項目に分けて結果を報告してくれました。
- 引き継ぎファイルから新たに把握した情報
- 現在のチャットと一致している情報
- 現在のチャットですでに更新されている情報
- 矛盾している情報や、追加確認が必要な情報
- 現在の開発状況と次に実施すべき作業
しかも、単に引き継ぎファイルの内容を繰り返しただけではありません。
例えば、開発中のPowerShellスクリプトについて、過去の情報と現在の修正済み情報を区別していました。
また、テストについても、
「合成診断では15件すべて期待値と一致した」
という結果と、
「実際のmock実行はまだ行っていない」
という状況を混同せずに整理できていました。
これは、私にとって非常に重要なポイントです。
古い情報を読み込んだことで、現在の進捗が巻き戻されたり、実施していないテストを完了済みと判断されたりしては困ります。
今回のChatGPTは、その違いをきちんと認識してくれました。
ChatGPT自身の判定は?
検証後、ChatGPTからは次の判定が返ってきました。
HANDOVER_SUCCESS_WITH_LIMITATIONS
日本語にすると、「制約はあるものの、引き継ぎ成功」といった意味でしょうか。
つまり、過去の会話を完全に復元したわけではないものの、引き継ぎファイルと現在のチャットの情報を組み合わせて、開発状況を整理できたという結果です。
私の感想はというと……。
満足度100%!w
過去の開発経緯を新しいチャットが理解してくれたことで、安心して作業を続けられると感じました。
ChatGPTの会話を引き継ぐときの注意点
今回の方法はうまくいきましたが、いくつか注意点もあります。
① 過去の会話を完全に復元する方法ではない
Markdownファイルに保存されるのは、ChatGPTが整理した情報です。
過去のすべての発言や細かなニュアンスが、そのまま移されるわけではありません。
重要な決定事項や作業状況が抜けていないか、確認する必要があります。
② 古い情報で現在の状況を上書きしない
今回、最も気を付けた点です。
引き継ぎファイルの作成後に作業が進んでいる場合、ファイル内の情報は古くなっています。
そのため、現在のチャットにある新しい情報を優先するよう、明確に指示することが大切です。
③ 仕様書やソースコードは別途必要な場合がある
引き継ぎファイルには、開発環境やファイル名、作業履歴などを記載できます。
しかし、ファイル名が書かれているだけで、ChatGPTがそのファイルの中身まで確認できるわけではありません。
必要に応じて、仕様書やソースコードも別途共有する必要があります。
④ 個人情報や秘密情報に注意する
引き継ぎファイルには、パソコン内のフォルダー名やユーザー名、作業環境の情報が含まれる場合があります。
特に、APIキー、パスワード、認証トークンなどの秘密情報は記載しないようにしましょう。
また、作成した引き継ぎファイルをブログなどで公開する場合は、個人情報や公開したくない情報が含まれていないか確認することが必要です。
⑤ 必ず成功するとは限らない
今回は、私の開発プロジェクトで実際に試した1回の検証です。
会話の長さ、引き継ぎファイルの内容、利用環境などによって結果が異なる可能性があります。
また、ChatGPTが整理した情報に誤りがないか、重要な部分は自分でも確認する必要があります。
まとめ|長期プロジェクトの引き継ぎに役立つ方法だった!
今回、ChatGPTで進めていた長期プロジェクトの会話が上限に達したことをきっかけに、Markdownファイルによる引き継ぎを試してみました。
最初は「分析エラー」が表示されて焦りましたが、結果的には引き継ぎファイルを作成できました。
そして、新しいチャットに読み込ませたところ、過去の経緯を補完しながら、現在の進捗を維持することにも成功しました。
今回の経験から、特に大切だと感じたのは次の3つです。
- 過去の会話は、引き継ぎファイルとして整理する
- 現在のチャットに新しい情報がある場合は、そちらを優先する
- 引き継いだ内容を確認してから、作業を再開する
この方法は、プログラミングだけでなく、長期間の調査や資料作成、ブログ運営などにも応用できそうです。
もしChatGPTで長い会話を続けていて、新しいチャットへの移行に困っている方がいたら、一度試してみてはいかがでしょうか。
私にとっては、かなり満足できる結果になりました。
今回も、興味を持って調べて、実際にやってみた結果の紹介でした!
興味を持ったら、調べて、やってみる。
それでは、また!
コメント