
GeoPrism JP・GeoConverterPro・GeoDiveExaという3つのアプリを1人で並行開発していると、地味に困る問題があります。AIと一緒に作業するセッションは、会話が終わるたびに文脈をすべて忘れてしまうということです。今回は、その問題をどう解決しているかという、開発の裏側の話です。
AIが毎回文脈を忘れる問題
複数の製品を同時に動かしていると、「このアプリの短縮名は何だったか」「ブログのURLはどれだったか」「投稿フォルダはどこだったか」といった情報を、AIとの会話のたびに説明し直す必要が出てきます。
新しいセッションを始めるたびに、製品構成やルールを一から説明していると、それだけで作業時間の多くが説明に消えてしまいます。特に製品が3つ、4つと増えてくると、この「説明のやり直し」のコストは無視できない大きさになりました。
正典に載せるもの・載せないもの
そこで採用したのが、製品構成・短縮名・リポジトリの場所・ブログURL・運用ルールといった変わりにくい情報だけを1つのファイルに集約するという方法です。この1ファイルを「正典」と呼び、作業を始める前に必ず読ませるようにしています。
正典に載せるものは、次のような性質を持つ情報に絞っています。
- 製品の親子関係・短縮名など、頻繁には変わらない構造的な情報
- リポジトリの場所・ブログのURL・パーマリンク形式など、間違えると実害が出る情報
- 「相対リンクを使わない」「新規記事は公開前にAPIで実URLを確認する」といった、繰り返し守るべき運用ルール
逆に、日々更新される内容(個別記事の一覧やその日の作業内容など)は正典には載せません。正典が肥大化して読みにくくなると、かえって文脈を渡す効率が落ちてしまうためです。
「変更はこのファイルだけ・他へ複製しない」原則
このやり方を運用していて重要だと感じたのは、同じ情報を複数の場所にコピーしないという原則です。
複数のリポジトリ・複数のドキュメントに同じ情報を書いてしまうと、片方だけ更新されて食い違う「情報の二重管理」が起きます。実際に製品名を改名した際、複製された記述の一部だけ古いままになる、という経験もありました。
そこで、変わりにくい情報は正典のファイル1枚だけに書き、他のファイルからは正典へのポインタ(参照先の案内)だけを置くという役割分担に統一しています。情報の実体は1箇所、参照は複数箇所という構造にすることで、更新漏れが起きにくくなりました。
各リポのポインタから正典を参照する構造
正典ファイルは、複数あるリポジトリのうち1つに置いています。共同開発者と共有しているリポジトリには、こうした個人用の運用ルールを置きたくないため、正典は個人管理のリポジトリ側に置き、各リポジトリの入口となるファイルからは「詳細はこちらを参照」という案内だけを置く構成にしています。
この構造にしてから、AIに作業を依頼する際の最初の一手が「まず入口のファイルを読む→そこから正典を読む」という決まった手順になり、どのリポジトリで作業を始めても迷わなくなりました。
導入前後の比較 — 説明のやり直しが消えた
正典方式を導入する前は、新しいセッションのたびに「このアプリの短縮名は」「このリポジトリの構成は」といった説明を一から行う必要がありました。導入後は、最初に正典ファイルを1回読ませるだけで、製品構成や命名規則についての説明がほぼ不要になりました。
もちろん、正典ファイル自体のメンテナンスという新しい手間は発生します。ただ、複数製品を横断する形で作業する頻度を考えると、説明をゼロから繰り返すコストに比べればずっと小さな負担です。
まとめ
- 複数製品を並行開発していると、AIとのセッションのたびに製品構成を説明し直すコストが無視できなくなる。
- 変わりにくい構造的情報だけを1つの正典ファイルに集約し、日々更新される内容は載せないことで、正典が肥大化するのを防いだ。
- 「変更は正典だけ・他へ複製しない」という原則を徹底し、複数箇所に同じ情報を書く二重管理を避けた。
- 共有リポジトリには個人用の正典を置かず、各リポの入口ファイルからポインタで参照する構造にした。
- 導入後は、セッション開始時の説明のやり直しがほぼ不要になった。
関連記事
- AIサブエージェント並列執筆 — 3つの章を同時に書かせて統合するまで(連載④・GeoConverterPro)
- アプリ開発者がKindle本を出すまで — 「日本の測地系がわかる本」制作全記録(連載①・GeoConverterPro)
- 共同開発リポと個人リポを分ける — 次期アプリ用リポジトリ新設の判断(GeoDiveExa)
- C#で測地計算の単体テストを書く — 検証値ドリブン開発(GeoDiveExa)
開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。
お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。
コメントを残す