0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIに仕様を思い出させる方法──ChatGPT × Pythonによる長期設計管理のすすめ

Posted at

ChatGPTはすぐ忘れる。その記憶を、私はコードに託した。

はじめに

https://qiita.com/Hiroki_Azuma/items/db97bf02979dd180a9f0
↑この記事の続きを書いています。

ChatGPTを使って複雑な設計や仕様策定を進めていると、「前回のやり取りが引き継がれていない」「少し構成を変えただけで、一から説明し直さないといけない」といった場面によく出会います。

そのたびに、「あのとき苦労して作ったロジックや前提、もう一度言うのか…」とため息をついた経験は、私だけではないはずです。

そんな課題を感じた私は、ChatGPTとの会話の中で得た仕様や構造、未完の構想までも含めて、すべてをPythonコードという形式で残すという方法を取るようになりました。

これは、単にコードとしてロジックを完成させることが目的ではなく、ChatGPTとの会話そのものを体系的に、再現可能な形で記録する手段としてコードを位置づける試みです。

コードは「実行可能な会話ログ」になる

ChatGPTとの対話では、その場で得られた回答を保存することはできますが、スレッドをまたいだり、新しいやり取りに移ったりすると、前回の前提や流れがきれいに忘れ去られてしまいます。

そこで私は、会話の一時的なやり取りを「設計書」「進行状況」「未完成の構想」などを含む構造化されたPythonスクリプトとして保存することにしました。

このとき、コードの実行可能性や完成度は重要ではありません。重要なのは、ChatGPTに渡したときに前回の意図や背景が即座に再現されることです。いわば、「会話の記憶をコードに託す」という発想です。

実際に使用したコード構成

今回のプロジェクトは、NISAやiDeCoの積立、長期的な支出・収入をもとにした「ライフプラン資産運用シミュレータ」の設計を目的としたものでした。プロジェクト進行は段階的で、各要素が複雑に絡むものであったため、単なるプロンプト指示だけでは限界がありました。

そのため、次のようなコード構成で、会話の意図・進捗・仕様をすべて残すようにしました。

# プロジェクト進行を記録するマイルストーンの定義
@dataclass
class Milestone:
    id: str
    name: str
    status: Literal['未着手', '進行中', '完了']
    description: str

# データ構造や設計対象のモデル定義(積立設定、年齢記録など)
@dataclass
class SavingSetting:
    person: str
    product: str
    saving_type: Literal['月額', 'スポット']
    start_year: int
    monthly_amount: float
    spot_limit: float
    stop_age: Optional[int] = None
    cap_amount: Optional[float] = None
    initial_principal: float = 0.0

# 実装が完了したロジックには具体的な関数、
# 未実装のものには構想とともにpassを記述
def simulate_asset_growth():
    """
    実装予定:
    - 前年残高 + 積立 + 利回り反映
    - 年金/収入反映 → 支出引き → 取り崩し
    - 優先順: 年金 > 現金 > NISA > iDeCo
    - シナリオ選択による利回り分岐
    """
    pass

このようにしておくことで、次回ChatGPTとやり取りを始める際にこのコードを丸ごと読み込ませれば、「前回のテーマ」「進行状況」「未実装の構想」がそのまま再現されます。

ChatGPTはこちらの文脈を即座に理解し、「未完成の関数をどう埋めるか」「設計に何を追加すればよいか」といったアシストを、前回と同じ前提で提供してくれるようになります。

実行可能性よりも「文脈の記述」が大切

プロンプトという人間主導の話法より、GPTが得意とするPythonコードのほうが**読み手(AI)にとっての会話として成立しやすいと考え、たとえば、次のような観点を意識しています。

  • クラスや関数に“何を意図しているか”を明示的に記述する
  • コメントやdocstringに「まだ何を考えているか」「次に何をしたいか」を書き残す
  • 実装済みかどうかは関係なく、構造が“そのまま意図を持つ”ように整理する

こうすることで、コードが単なる処理記述ではなく、ChatGPTとの会話構造そのものとして機能してくれます。

会話は消えるが、構造は残る

私たちは、ChatGPTとの会話を通じてさまざまな知見や工夫を得ています。しかし、そのやり取りは保存しなければ失われ、保存しても“文脈を持った形”ではありません。

だからこそ、私は「コードに託す」という方法を選びました。コードは会話を保存するだけでなく、再び読み込むことで記憶を呼び戻す媒体になります。しかも、それは“機械に理解されやすい形”でもあります。

おわりに

AIと継続的なプロジェクトを進めたいと考えている方にとって、コードを会話のログとして使うという発想は、大きな助けになるかもしれません。実行可能性を重視するのではなく、会話を再現するための構造化された記述としてコードを活用する。これは、ChatGPTのような言語モデルとの協働を“その場限り”ではなく、“育てていくもの”へと変えるひとつの方法だと思っています。

もし、ChatGPTとのやり取りにおいて「また一から説明し直すのが面倒だな」と感じたときは、ぜひ一度コードという記憶媒体を試してみてください。意外なほど、会話の精度と再現性が変わってくるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?