AI News HubLIVE
サイト内リライト2 分で読了

仕様駆動開発(SDD)でAIによるコードベースの破壊を防ぐ

構造化された仕様がないと、AIコーディングツールは一貫性を失い、要件を幻覚し、変更範囲を拡大し、セッション間でルールを忘れます。SDDは人間の役割をコードレビュアーからルール定義者に移し、手戻りを減らし、AIの出力を複数スプリント・複数開発者のプロジェクトで予測可能にします。

ソースHacker News AI著者: Soarez

AIコーディングアシスタントは開発を変えつつあるが、同時に新たな問題を引き起こしている:出力の不安定さ、スコープの拡大、ルールの忘却。チームが複数スプリント・複数開発者のプロジェクトでAIに依存する場合、これらの問題は増幅される。仕様駆動開発(Spec-Driven Development、SDD)は解決策を提供する:人間をコードレビュアーからルール定義者に変え、AIを明確な制約のもとで実行させる。

SDDの核心は仕様作業の前倒しである。コードを書く前に、チームは3種類のドキュメントを作成する:Specドキュメントは何を構築し何に触れないかを定義し、Designドキュメントは技術的アプローチを固定し、Tasksファイルは作業を検証可能な小さな塊に分解する。AIはこれらのガードレール内で実行され、即興的な動作を抑える。このアプローチにより、AIの幻覚やスコープの拡大が減少し、出力がより予測可能になる。

OpenSpecは軽量ツールであり、/opsxコマンドセット(propose, apply, sync, archive)を通じてSDDワークフローを実装する。仕様、設計、タスクのドキュメントを生成・管理し、MCP(Model Context Protocol)サーバーをサポートする。MCPプロトコルにより、AIコーディングツールはFigma、Yapi、内部Wikiなどの外部データソースに直接接続できるため、初期Spec生成時に関連コンテキストを自動取得し、手動コピーペーストによるエラーを削減する。

コード生成後も、3層の制約システムで残りのずれを捕捉する:Skills(スキル)はチームのコーディング習慣をエンコードし、下位層(「コードを書く前に考える」などの普遍的なルール)と上位層(プロジェクト固有のアーキテクチャや命名習慣)に分かれる。AGENTS.mdファイルはAIツールのオンボーディングマニュアルとして機能し、ディレクトリ構造や触れてはいけない領域などの安定したプロジェクトルールを含む。Hooks(フック)はライフサイクルイベントでハード制約を強制する。例えば、PostToolUseフックはハードコードされた中国語の文字列を含むファイルを拒否できる。

完了した変更のアーカイブはSDDで最も過小評価されているステップである。/opsx:archiveを使用することで、チームは確認された境界、放棄された設計経路、発見された落とし穴を保存し、プロジェクトの知識ベースを形成する。これにより、次回のAIセッションは以前の蓄積を継承し、限界協力コストが時間とともに低下する。経験則として、2日以上かかると予想されるタスクはSpecを書く価値があり、単純なスタイル調整や一回限りのスクリプトは不要である。

全体として、SDDの核心的な変化はツールではなく、人間をコードレビュアーから仕様作成者に移行させることにある。AIは協力者ではなく実行者となる。ハード制約を強制するHooksだけがルールを確実に守らせる。アーカイブは繰り返しの間違いを断つ鍵である。MCP統合によりSDDはスケール実用的になり、2日ヒューリスティックはSpecを書くかどうかの有用な判断基準となる。