インテント債務
技術的負債はコードに、認知的負債は人の頭の中に、そしてインテント債務はシステムがそうなっている理由——目標・制約・根拠——を書いていないことによって生じます。Addy Osmani は、AI エージェントがソフトウェアチームに加わると、「なぜ」を外部化しないことが最も高くつく負債になると論じています。エージェントはコードも説明も生成できますが、インテントだけは作り出せないからです。
この記事は Addy Osmani 氏が提唱する「インテント債務」の概念を解説したものです。技術的負債はコードの中に、認知的負債は人の頭の中に存在しますが、インテント債務は、あなたが一度も書き残していないかもしれない成果物、すなわち「システムがなぜ今のような形なのか」という目標・制約・理由付けの中に存在します。運が良ければ、その一部はチームのドキュメントや議論に散在しているかもしれませんが、おそらく不完全です。これは、エージェントが代わりに返済できない唯一の負債であり、エージェント中心の開発において最も高くつく負債です。
認知科学者の Margaret-Anne Storey による「三重債務モデル」は、ソフトウェアの健全性を考えるうえで明快な枠組みです。技術的負債はコードに蓄積され、将来の変更を難しくする実装上の選択の積み重ねです。認知的負債は、コードの量と人間の理解度のギャップ、つまり共有理解の浸食です。コードが完璧であっても、誰も理解していなければ、深刻な認知的負債を抱えていることになります。インテント債務は、外部化された根拠・目標・制約が欠落したり劣化したりすることを指します。鍵となるのは「外部化」で、根拠はチームメイトや将来の自分やエージェントが読める場所に書かれていなければなりません。これら三つの負債は独立しており、技術的負債が低くてもインテント債務が高いということは十分あり得ます。
なぜエージェントはインテント債務を助けてくれないのか。AI はコードを生成できるので、技術的負債は安くなり、返済も容易になりました。認知的負債も、コードがまだ存在するため、エージェントに説明してもらうことで回復できます。しかしインテントは違います。エージェントはインテントを生成できません。インテントは、あなたから与えられる必要がある唯一の入力だからです。モデルはコードからそれっぽい理由を推測できますが、推測は本当の意図ではありません。たとえば 300ms のデバウンスが意図的な UX 判断なのか、ベンチマークの結果なのか、あるいは誰かが一度入力したきり変更していない数字なのか、モデルには分かりません。それでもモデルは自信満々な理由をでっち上げますが、それは「分からない」と認めるより悪いことです。
エージェントは、書かれていないコストをはるかに速く複利化します。人間の新人がチームに加わる場合、廊下での会話やコードレビューのコメントなどを通じて、暗黙の意図は時間をかけて伝わりました。しかしエージェントは、長期的な記憶を持たないジュニアメンバーで、ほとんどの場合コールド状態でセッションを開始します。何かを外部化して読める状態にしていなければ、エージェントはそれを持っていません。かつて「書かないこと」のコストは、オンボーディングや退職時にたまに発生するだけでした。今では、実行するエージェントの数に応じて、毎セッションそのコストを支払うことになります。並列実行したい 20 のエージェントは、それぞれがあなたの意図を読めず、ギャップをそれらしい推測で埋める、初対面のチームメイトのようなものです。
ではどう返済するのか。やるべきことは一貫しています。インテントを頭から取り出し、エージェントが読める場所に置くことです。実装ではなくインテントを書いた仕様書を作る。AGENTS.md を設定ファイルではなくインテントの台帳として扱う。決定したその場で ADR を記録する。学習ループを通じて「X を試したが、Y の理由で失敗した」という教訓をファイルに書き戻す。どれも新しいツールではありませんが、「なぜ」を自分の頭の中だけに存在させないという規律です。
かつてソフトウェア開発で希少で価値があったのは、正しい実装を生み出す能力でした。AI がコードを安価にし、理解も回復可能にしました。インテントだけは、依然として人間から発生しなければならない唯一の入力です。そして、私たちが最も外部化するのが苦手なものでもあります。技術的負債はシステムを変更しづらくし、認知的負債はシステムを理解しづらくします。インテント債務は、システムがあなたの意図したことをまだ実現しているかを分からなくします。そしてこの債務だけは、エージェントが代わりに返済できません。なぜを書き残しましょう。それが今、リポジトリに残せる最も価値あるものになりつつあるからです。