概要
- 仕様書からのコード自動生成 に対する誤解と現実を解説
- OpenAI Symphonyプロジェクト を具体例に批判
- 仕様書とコードの 複雑性・労力の本質 を整理
- コード生成の 信頼性・実用性の課題 を指摘
- 仕様書作成とコーディングの 本質的な難しさ を再考
仕様書駆動のコード生成に対する誤解と現実
-
agentic coding (エージェント型コーディング)推進派は、仕様書から直接コード生成が可能だと主張
-
しかし、実際にはこの主張には 2つの誤解 が根底に存在
- 誤解1 :仕様書は対応するコードよりも 単純 である
- 誤解2 :仕様書執筆はコーディングよりも 深い思考 を要する
-
仕様書を「外注の次世代」として扱い、エンジニアが仕様書を書きエージェントに実装を任せる発想
-
仕様書経由で品質が向上するという幻想
Symphonyプロジェクトの実態と課題
-
OpenAI Symphony は、「仕様書(SPEC.md)からプロジェクト生成可能」と宣伝
-
しかし、このSPEC.mdは 実質的に擬似コードやコード断片 をMarkdownに書き起こしただけの内容
-
例:データベーススキーマやアルゴリズムの詳細な記述、コードそのものを含む
-
仕様書と呼べるものの、 実質はコードに極めて近い ものになっている事実
- 仕様書が十分に厳密であればあるほど、 コードに近づく必然
- Dijkstraの「狭いインターフェース」の議論を引用し、 形式的記述の限界 を指摘
-
SymphonyのREADME通り、仕様書から実装(例:Haskellでの実装)を試みても バグや動作不良が多発
-
仕様書が長大化すれば、 Borgesの「正確さについて」 の寓話のように、地図と現実が一致して無意味化
仕様書作成とコーディングの本質的な難しさ
-
仕様書作成は本来、 コーディング以上に困難 であるべき作業
-
仕様書作成の目的は、 全体像を俯瞰し批判的思考を促す ため
-
しかし、「仕様書作成はコーディングよりも容易」と考える産業的風潮により、 本質的な思考が省略 されがち
-
SymphonyのSPEC.mdのように、 AI生成の粗雑な仕様書 が生まれる背景
- 例:Section 10.5のような中途半端な仕様記述
-
結果として、仕様書とコードの 境界が曖昧化 し、どちらの品質も保証できない状況に陥る
まとめ
- 仕様書からのコード自動生成は、 仕様書自体が実質的なコード化 を要求
- 仕様書の厳密さ・詳細さを高めると、 人間がコードを書くのと同等の労力 を要する
- 仕様書作成やコード生成の 信頼性・品質の限界 を認識し、安易な自動化幻想を持たない姿勢が重要