← 記事一覧に戻る
AI全般·8分·2026年3月19日

A sufficiently detailed spec is code

A sufficiently detailed spec is code 【関連情報】公開ニュースやディスカッションの要点を補足して解説します。

SPECTRAL BLOG

A sufficiently detailed spec is code

Spectralの視点で整理したインサイトを、静かに読めるかたちでまとめています。

「十分に詳細な仕様書は、コードそのものである」


――AIが変える、言葉と開発の境界線




1. イントロダクション


「プログラムを書く」というと、多くの人はキーボードを叩いてコードを入力する場面を思い浮かべるかもしれません。しかし最近、ある考え方が静かに注目を集めています。


「十分に詳細な仕様書は、コードと同じである」


これは、AIを使った開発の現場で生まれてきた実感です。何をどう動かしたいかを、曖昧さなく丁寧に言葉で書き記せば、AIはそれを実際に動くプログラムへと変換できる。つまり、「書く」という行為の意味が変わりつつあるのです。


この記事では、プログラミングの経験がまったくない方でも理解できるよう、この考え方の背景・意味・実際の使い方を丁寧に解説します。難しい技術の話ではなく、「言葉でものをつくる」という、誰にでも関係のある話として読んでいただければと思います。




2. 基礎知識・用語解説


まず、この記事を読むうえで知っておきたい言葉を整理しておきましょう。


仕様書(スペック)とは?


仕様書とは、「このシステムやソフトウェアが何をするべきか」を文章で書いたドキュメントです。たとえば「ユーザーがボタンを押したら、メールが送られる」「商品の在庫が0になったら、購入ボタンが非表示になる」といった内容を、開発者に伝えるために書かれます。


従来、仕様書はあくまで「人間が読むもの」でした。エンジニアがそれを読んで理解し、自分の手でコードに翻訳する、という流れが一般的でした。


コード(プログラム)とは?


コードとは、コンピュータが直接理解できる命令の集まりです。「もし〇〇なら△△する」「この処理を10回繰り返す」といった指示を、特定のルールに従って書いたものです。コンピュータはこのコードを読んで動作します。


LLM(大規模言語モデル)とは?


LLMとは、ChatGPTやClaudeのような、大量のテキストを学習した大型のAIモデルのことです。人間の言葉を理解し、文章を生成したり、コードを書いたりすることができます。「大規模言語モデル」という名前の通り、言語を扱うことが得意です。


「仕様書がコードである」とはどういう意味か?


この三つを踏まえると、冒頭のフレーズが見えてきます。LLMは、人間の言葉で書かれた仕様書を読んで、コードを生成できます。仕様書の内容が十分に詳しく、曖昧さがなければ、AIは迷わずに正確なコードを出力できる。


つまり、詳細な仕様書を書くこと自体が、プログラムを書くことと実質的に同じになってきた、ということです。言葉の精度が、そのままソフトウェアの品質につながる時代が来ています。




3. トレンド分析


この考え方は、最近のAI開発コミュニティで活発に議論されています。Hacker NewsやRedditといった技術者向けのディスカッションサイトでも、「仕様書とコードの境界はどこにあるのか」というテーマが繰り返し取り上げられています。


「バイブコーディング」から「スペックコーディング」へ


2025年初頭、著名なAI研究者のアンドレイ・カルパシー氏が「バイブコーディング(Vibe Coding)」という言葉を提唱しました。これは、細かいことを気にせずAIに任せてコードを生成させる、感覚的な開発スタイルを指します。


しかしその後、現場のエンジニアたちからは「バイブコーディングだけでは、複雑なシステムは作れない」という声が上がり始めました。AIに曖昧な指示を出すと、出力されるコードも曖昧になる。小さなツールなら問題ないが、実際のビジネスで使うシステムには通用しない、という実感です。


この反省から生まれたのが、「スペックコーディング(Spec Coding)」あるいは「スペックファースト開発」という考え方です。まず詳細な仕様書を書き、それをAIへの入力として使う。仕様書の質がそのままコードの質になる、という発想です。


Claudeを使った実験が話題に


Hacker Newsでは、Anthropic社のAI「Claude」に対して、非常に詳細な仕様書を渡したところ、ほぼ修正なしで動くコードが生成されたという報告が複数投稿されています。特に注目されたのは、「エッジケース(例外的な状況)」まで仕様書に書き込んだ場合、AIがそれに対応したコードを書いてくれるという点です。


逆に、仕様書が曖昧だった場合は、AIが「自分で判断」してコードを書いてしまい、意図しない動作になることも報告されています。


「プロンプトエンジニアリング」の進化


AIへの指示文(プロンプト)を工夫する「プロンプトエンジニアリング」という分野があります。最近のトレンドとして、この分野が「いかに短く賢い指示を書くか」から、「いかに詳細で構造化された仕様を書くか」へとシフトしています。


つまり、プロンプトの書き方がより「仕様書らしく」なってきているのです。この変化は、AIの能力が上がるにつれて、人間側に求められるスキルも変わってきていることを示しています。


非エンジニアへの影響


この流れで特に注目されているのが、プログラミングを知らない人々への影響です。「詳細に物事を言語化できる人」であれば、コードを書けなくてもソフトウェアを作れる可能性が出てきました。ビジネスの現場を知る人が、自分の言葉で仕様を書き、AIがそれをコードに変える。この分業の形が、静かに広がり始めています。




4. Spectralの見解


私たちSpectralは、企業へのAI導入を支援する立場から、このトレンドを日々観察しています。そのうえで、いくつかの率直な見解をお伝えしたいと思います。


「書く力」が開発の中心になる


これまでのソフトウェア開発では、「コードを書く技術」が最も重要なスキルでした。しかしこれからは、「何をつくりたいかを正確に言語化する力」が、開発の中心的なスキルになっていくと私たちは考えています。


これは、エンジニアが不要になるという話ではありません。むしろ、エンジニアでない人も開発プロセスに深く関われるようになる、という変化です。


「曖昧さ」が最大のリスクになる


AIに仕事を任せるとき、最も危険なのは「曖昧な指示」です。人間同士のコミュニケーションでは、ある程度の曖昧さを文脈や経験で補えます。しかしAIは、書かれていないことを勝手に「良い方向」に解釈してしまうことがあります。


たとえば「ユーザーが削除ボタンを押したらデータを消す」という仕様があったとします。「確認ダイアログを出すかどうか」「削除したデータを復元できるようにするかどうか」――こうした細部が書かれていなければ、AIは自分で判断して実装します。その判断が正しいとは限りません。


仕様書の曖昧さは、そのままバグやトラブルになります。この意識を持つことが、AI時代の開発において非常に重要です。


「仕様書を書く文化」が組織の競争力になる


私たちが支援する企業の中で、AI活用がうまくいっているところには共通点があります。それは、「何をしたいかを文書化する習慣」が組織に根付いているということです。


逆に、「とりあえずやってみよう」という文化が強い組織では、AIへの指示も曖昧になりがちで、期待した成果が出にくい傾向があります。


AIの導入は、ツールの問題である以上に、言語化の文化をつくるという組織的な取り組みでもあります。




5. 実践的アプローチ


では、実際にどうすれば「詳細な仕様書」を書けるのでしょうか。プログラミングの知識がなくても実践できる方法を、具体的にご紹介します。


ステップ1:「誰が・何をしたとき・何が起きるか」を書く


仕様書の基本は、この三点セットです。


  • 誰がユーザー、管理者、外部システムなど
  • 何をしたときボタンを押す、フォームを送信する、ファイルをアップロードするなど
  • 何が起きるか画面が変わる、メールが送られる、データが保存されるなど

たとえば「ユーザーがログインフォームにメールアドレスとパスワードを入力して送信ボタンを押したとき、入力が正しければトップページに移動し、間違っていればエラーメッセージが表示される」という文章は、それだけで十分な仕様になります。


ステップ2:「例外」と「エッジケース」を書く


仕様書が曖昧になりやすいのは、「普通ではない状況」の扱いです。


  • パスワードを5回間違えたらどうなるか?
  • インターネットが切れた状態で送信ボタンを押したらどうなるか?
  • 同じメールアドレスで二重登録しようとしたらどうなるか?

こうした「もしも」の状況を書き出すことで、仕様書の完成度が大きく上がります。最初から全部は思いつかなくても、「何かおかしなことが起きたら?」と自問しながら書き足していくだけで十分です。


ステップ3:「しないこと」も書く


仕様書には、「やること」だけでなく「やらないこと」を明記することも重要です。


たとえば「このフェーズでは、パスワードのリセット機能は実装しない」「外部SNSでのログインには対応しない」といった記述です。これにより、AIが余計な機能を実装してしまうことを防げます。


ステップ4:AIと対話しながら仕様を育てる


仕様書を完璧に書いてからAIに渡す必要はありません。まず大まかな仕様を書いてAIに渡し、「この仕様で不明確な点はどこですか?」と聞いてみましょう。


AIは、仕様の穴を指摘してくれることがあります。「〇〇の場合

森島拓生のプロフィール写真

森島拓生

Spectral 代表 / AI導入・エージェント設計

Spectral代表。AI Development & Consultingを軸に、非エンジニアとの対話から要件定義を構造化する「上流工程AI」や、AIエージェントによる業務自動化の設計・検証に取り組む。技術を導入して終わらせず、現場で継続して使える運用設計までを重視している。

AI導入支援要件定義AIAIエージェント構築

AI導入について、もっと詳しく知りたい方へ

お問い合わせ