2026.08.15 約 14 分 日野 政人 (Chapter Tech 代表)

スペック駆動開発に疲れたのでConstitutional AIの思想で開発してみたCLAUDEmdを指示書ではなく憲法として書く

生成AIを開発に入れて、コードを書く速度は確かに上がりました。それなのにプロジェクト全体のリードタイムがあまり縮まらない——同じ感覚を持っている方は多いはずです。実装だけが速くなった結果、レビュー、プルリクエストの処理、ドキュメントの合意という人間側の工程が、全体の速度を決める制約になりました。この問題への現在の主流の答えがスペック駆動開発(仕様駆動開発)ですが、実際に回すと壁に当たります。仕様は書き切れないのです。書き切ろうとすれば、ボトルネックは実装から仕様合意の工程へ移るだけで、全体は速くなりません。本コラムで書くのは、問いを立て直した先の進め方です。仕様を書き切ることをあきらめ、AIが空白を埋めるときの判断基準だけを渡す。CLAUDE.mdのようなAIが常時読むファイルを、指示書ではなく「憲法」として書く。そして人間が書けなかった仕様のほうは、書くコストがほぼゼロになったAIに受入テストケースとして書かせ、人間はその一覧を確定する仕事だけを持つ。Anthropic自身がClaudeの学習に使っているConstitutional AI——細かい規則を網羅せず、原則を与えて個別の判断はモデルに演繹させる——の発想を、開発プロセスの運用に転用した形です。条文の書き方、AIに出させる解釈一覧の様式、テストケース一覧をどの粒度で人が見るかまで、実際に運用している形で書きます。

この記事のポイント

  • 1. スペック駆動開発が重いのは、仕様という成果物に価値がないからではなく、人間が仕様を書き切れないまま全員で合意する形式を採っているからである。実物を見て初めて分かる要件がある以上、着手前に仕様を確定させようとすると、ボトルネックは実装から仕様合意の工程へ移るだけで、全体のリードタイムは縮まらない。棄却すべきは執筆と合意の形式であって、仕様そのものではない。
  • 2. CLAUDE.mdのようなAIが常時読むファイルには、個別の指示ではなく判断基準を書く。書く内容は抽象度で5段階に整理でき、衝突したときの優先順位を書くL2がAIに考えさせる層、解釈の余地のない不変条件と禁止事項を書くL3が考えさせない層になる。境目の判定は「半年後の別の機能でも、そのまま使えるか」の一問で足り、使えない記述は憲法ではなくチケットに書く。条文はAIに解釈を宣言させ、外れた解釈を条文へ還流させることで増えていくため、最初に書き切る必要がない。
  • 3. 仕様を書く作業はAIに渡し、人間は受入テストケースの一覧を確定する仕事だけを持つ。AIには実装より先にケース名の一覧だけを出させ、人間は業務知識で穴と過剰を判定して版を確定し、以後の実装はその版への適合で機械的に判定する。AIが仕様も実装も検証も担うことによる共倒れは、この確定の関門を人間が必ず通ることで断ち切る。人間の仕事は執筆と精読から、確定と裁定へ移る。

1. AIで実装は速くなったのに、納期は縮まらない

生成AIをシステム開発に導入して、コードを書く速度は確かに上がりました。それなのにプロジェクト全体のリードタイムはあまり縮まっていない。この感覚は、現場では次の四つの形で現れます。

  • レビューが溜まります。AIが大量の差分を出すため、プルリクエストが人間の読む速度を超えて積み上がります。実装が速くなるほど、レビュー待ちの列は長くなります
  • 本筋と関係ないものを作りすぎます。頼んでいないエラーハンドリング、設定画面、将来のための抽象化レイヤー、一箇所でしか使われない共通関数。指示の空白を、AIがもっともらしい仮定で埋めた結果です
  • 使い勝手を損ないます。動くけれども使いにくい。AIはコードの正しさは判断できますが、この業務で何を優先すべきかの基準を持っていません。一日に何百件も入力する画面に、丁寧な確認ダイアログが挟まる、といったことが起きます
  • 業務の網羅性が足りません。締め処理、例外運用、権限の実態。「月末締めの後に届いた伝票は翌月扱いにする」といった、どの資料にも書かれていない業務ルールを、AIは知りようがありません

四つに共通しているのは、コードが間違っているわけではないことです。生成物の品質ではなく、生成物と業務のあいだの確認に時間がかかっています。つまりボトルネックが「実装」から「確認と合意」へ移動しました。実装だけが桁違いに速くなった結果、レビュー、プルリクエストの処理、ドキュメントの合意という人間側の工程が、プロジェクト全体の速度を決める制約になったということです。

ボトルネックの移動 — 実装からレビューへ、レビューから仕様合意へ

全体の速度を決める工程が、AIの導入とスペック駆動の採用でどこへ移るかを並べている。

従来 — 制約は実装にあったAIを入れる前
コードを書く速度が全体の速度を決めていた時代であり、工程表も見積りも実装量を基準に組まれてきた。レビューは実装より速く終わるため待ち行列にならず、仕様の空白は実装しながら人が確認して埋めていた。
AIで実装を速くした後 — 制約はレビューと合意へ現在
実装が桁違いに速くなった結果、プルリクエストが人間の読む速度を超えて積み上がる。全体の速度を決めるのは、コードを書く時間ではなく、生成物と業務を突き合わせて確認する時間になった。判定基準がレビュアーの頭の中にしかないため、確認の質も人に依存する。
スペック駆動を足した後 — 制約は仕様合意へ前へ移る主流の答え
着手前に仕様と受入条件を書き切って合意すれば、レビューの判定基準は手に入る。その代わり、まだ何も見えていない段階で想像をもとに詳細を議論する工程が生まれる。仕様を書き切ることが不可能なため、合意の工程が終わらない。

制約は消えず、位置が変わる — 実装からレビューへ、レビューから仕様合意へ。

2. 世の中の答えはスペック駆動開発 ― しかし仕様は書き切れない

この問題への現在の主流の答えが、スペック駆動開発(Spec-Driven Development / 仕様駆動開発)です。コードを書く前に仕様・受入条件・スコープ外を文書として確定し、それをAIへの入力と、レビューの判定基準の両方に使います。AWSのKiroやGitHubのSpec Kitのように、開発ツールそのものがこの形を組み込むようになりました。

理屈は通っています。AIが作りすぎるのは指示の空白を勝手に埋めるからであり、レビューが機能しないのは判定基準がレビュアーの頭の中にしかないからです。仕様が文書としてあれば、網羅されているか、余計なものがないかを、仕様との突き合わせで確認できます。判定基準を明文化するという利点自体は本物です。

実際に回してみると、すぐに壁に当たります。仕様は決まりきりません。

考えてみれば当たり前で、仕様を完全に書き切れるならウォーターフォールは失敗していません。実物を見て初めて要件が分かるから反復開発が生まれたのであって、AIのために完全な仕様を前置きするのは、その経緯を逆に辿る動きです。要件定義に「曖昧さゼロ」を求める基準そのものが成立しないことは、要件定義でプロジェクトが失敗する理由に書いた通りです。

しかも、書き切ろうとしてもボトルネックは解消しません。移動するだけです。まだ何も見えていない段階で、想像をもとに詳細を議論することになります。これは判断のコストが最も高いやり方で、全体の生産性はむしろ下がります。実装が速くなった分を、仕様合意の会議が食べていきます。

ここで、何を棄却したのかを明確にしておきます。スペック駆動が重いのは、

  1. 人間が仕様を書き切ることが現実的に不可能だから
  2. その完全な仕様に、着手前に全員で合意する工程が重いから

の二点であって、仕様という成果物自体が無価値だからではありません。この区別が、後半で効いてきます。

3. CLAUDE.mdを「指示書」ではなく「憲法」として書く

では問いを変えます。「どうすれば仕様を書き切れるか」ではなく——

不完全な仕様のまま、AIの拡張解釈が適切に乗るには、何が要るか。

AIが空白を埋めること自体は避けられません。であれば、埋め方を導く判断材料だけを渡せばよいことになります。「書き切る」から「委ね方を制御する」への転換です。

ここで借りたのが、Anthropic自身がClaudeの学習に使っているConstitutional AIの発想です。禁止事項を網羅的に列挙するのではなく、憲法と呼ばれる原則の集合を与え、個別のケースの是非はモデルに演繹させる。本来は学習の手法ですが、ここではその考え方を開発プロセスの運用に転用します。

具体的には、CLAUDE.mdのようなAIに常時読ませるプロジェクトファイルを、指示書ではなく憲法として書きます。書くのは指示ではなく、判断基準です。

指示として書いた場合判断基準として書いた場合
記述この画面の確定ボタンは右上に置くこの業務では誤操作防止より操作速度を優先する。ただし金銭が動く確定操作と、削除操作は例外とする
効く範囲その画面だけすべての画面と、今後追加される画面
書かれていない場面判断材料がなく、AIが自分の一般論で埋める原則から演繹して埋められる
外れたときその画面を直して終わる条文を直すと、以後の全画面に反映される

指示は、書いた場面にしか効きません。判断基準は、書いていない場面にも効きます。AIが空白を埋めるという性質は変えられないので、埋めるときに参照するものの側を変える、という考え方です。

なお、この進め方はスペック駆動開発の対極ではありません。何を動かない正本として先に固定するかという設計の問題であり、その整理は仕様駆動か、テスト駆動か、評価駆動かに書いています。本コラムで扱うのは、正本を「文章で書かれた仕様」に置くことをやめた場合に、代わりに何を置くかという各論です。

4. 憲法に書く抽象度 ― L1からL5と、境目の判定基準

憲法として運用できるかどうかは、どの抽象度で書くかでほぼ決まります。抽象から具体へのグラデーションで整理すると、5段階になります。

レベル内容条文の例扱い
L1価値観ユーザーの入力を信用しない / 業務が止まることを、データが少し汚れることより重く見る前文。単体では解釈がぶれる
L2裁定基準(衝突したときの優先順位)操作速度と誤操作防止が衝突したら操作速度を優先する。ただし金銭が動く確定操作と削除操作は確認を挟む / 締めの整合と入力の手間が衝突したら、締めの整合を優先する憲法の主戦場。AIに考えさせる層
L3不変条件・禁止事項物理削除は書かない、論理削除とする / 金額の計算に浮動小数点型を使わない / 新規ライブラリの導入は提案までとし、実装しない解釈の余地なし。作りすぎの防止はここで効く
L4規約・パターン指定日付の扱いはdayjsに統一する / エラーは例外ではなくResult型で返す機械化(lintや型)までの仮住まい
L5個別仕様この画面の確定ボタンは右上に置く憲法に入れたら負け。チケットに書く

境目の判定基準は一つで足ります。「半年後の別の機能でも、そのまま使えるか」。使えるならL3以上なので憲法へ、使えないならL5なのでチケットへ。この一問だけで、憲法が個別仕様の物置になることを防げます。

そして拡張解釈が最もよく働くのはL2です。L3以下は解釈の余地がないので安全な代わりに、書いていない場面には効きません。L1は解釈が広すぎて、同じ条文から反対の結論も出せてしまいます。AIに考えさせたいことはL2で書き、考えさせたくないことはL3で書く。これがこの方式の中核です。

憲法に書く抽象度 — L1からL5

AIに考えさせたいことはL2で書き、考えさせたくないことはL3で書く。L5は憲法に入れない。

L2 — AIに考えさせる層憲法の主戦場
価値が衝突したときの優先順位を書く層である。条文の例は「操作速度と誤操作防止が衝突したら速度を優先する。ただし金銭が動く確定操作と削除操作は例外とする」。書いていない場面にも効くのはこの層だけで、例外条件まで書いて初めて条文として機能する。L1(価値観)は解釈が広すぎて、同じ条文から反対の結論も出せてしまう。
L3・L4 — 考えさせない層解釈の余地なし
L3は不変条件と禁止事項で、「物理削除は書かない」「金額の計算に浮動小数点型を使わない」「新規ライブラリの導入は提案までとする」。作りすぎの防止はここで効く。L4は規約とパターン指定で、本来lintと型で強制すべきものであり、憲法に書くのは強制手段が用意できるまでの仮住まいである。
L5 — 憲法に入れないチケットに書く
「この画面の確定ボタンは右上に置く」といった個別仕様は憲法に入れない。入れた瞬間から憲法は個別仕様の物置になり、AIが毎回読む量だけが増える。境目の判定基準は一つで、「半年後の別の機能でも、そのまま使えるか」を問う。使えるならL3以上なので憲法へ、使えないならL5なのでチケットへ。

憲法の分量は、そのままAIが毎回読む量になる。長くなるとL2の条文の効きが薄まる。

運用上の注意を一つ加えます。L4は溜めないことです。規約は本来lintと型で機械的に強制すべきもので、憲法に書くのは強制手段が用意できるまでの仮住まいです。L4が増えるとファイル全体が長くなり、AIが毎回読む量が増えて、L2の条文の効きが薄まります。lintルールに落とせたL4は、憲法から消します。

5. 憲法は育つ文書である ― 解釈の宣言と、外れの還流

憲法を書いても、最初から十分な条文が揃うことはありません。それでも運用が成り立つのは、次の二つを回すからです。

解釈の宣言 ― AIに、埋めた空白を申告させる

差分そのものとは別に、「仕様に書かれていなかった箇所を、どう解釈して実装したか」を一覧で出させます。人間が確認するのはコード全量ではなく、この一覧です。様式は次の形で運用しています。

                ## 解釈の宣言(この差分で、仕様に書かれていなかった箇所)

1. 締め処理後に到着した伝票の扱い
   採った解釈: 受領日ではなく締め日で判定し、翌月分として登録する
   根拠: L2-03「締めの整合と入力の手間が衝突したら、締めの整合を優先する」
   外れたときに壊れる範囲: 月次集計、督促対象の抽出、前月比の表示

2. 一覧画面の既定の並び順
   採った解釈: 更新日の降順
   根拠: 該当する条文なし(L5相当と判断し、暫定でこの解釈を採用)
   外れたときに壊れる範囲: この画面のみ
            

重要なのは「根拠」と「外れたときに壊れる範囲」の二列です。根拠に「該当する条文なし」と書かれた項目は、憲法に条文を足すべき候補がそのまま並んだリストになります。壊れる範囲の列は、確認の優先順位を決めるために使います。範囲が「この画面のみ」なら流し、「月次集計と督促」まで及ぶなら止めて確認します。頼んでいない実装、つまり作りすぎも、根拠のない解釈としてこの一覧に現れます。

外れの還流 ― 直したら、条文を一行足す

解釈が間違っていたときに、その場のコード修正で終わらせません。憲法に条文を一行足します。これを回すと、憲法は「最初に書き切る文書」ではなく「解釈の失敗から育つ文書」になります。第2章で棄却した「書き切れない」という問題は、書き切らずに済ませることで消えます。

ただし、外れをすべて条文にすると憲法が肥大化してL4と同じ問題を起こすので、還流には条件を付けています。

  • 同じ種類の誤りが二度目に出たら条文にします。一度きりの事情はチケットのコメントに留めます
  • 条文は、その案件のどの機能でも使える言い方に直してから足します。「この画面では」で始まる条文は、L5がL2の顔をして紛れ込んだものです
  • 足すのは一行です。説明が三行必要な条文は、たいてい二つの基準が混ざっています

憲法が育つ循環 — 解釈の宣言と、外れの還流

人が確認するのはコード全量ではなく解釈の一覧で、外れた解釈は条文として憲法へ戻る。

解釈の宣言 — 埋めた空白を申告させるAIの仕事
AIには差分そのものとは別に、「仕様に書かれていなかった箇所を、どう解釈して実装したか」を一覧で出させる。採った解釈、根拠にした条文、外れたときに壊れる範囲の三点を必ず書かせる。根拠に「該当する条文なし」と書かれた項目が、次に足す条文の候補になる。頼んでいない実装も、根拠のない解釈としてこの一覧に現れる。
人が確認するのは、この一覧だけ人の仕事
人間が確認するのはコード全量ではなく解釈の一覧である。壊れる範囲が「この画面のみ」なら流し、「月次集計と督促」まで及ぶなら止めて確認する。数十行の一覧なら、業務知識だけで判定できる。
外れの還流 — 直したら、条文を一行足す憲法が育つ
解釈が間違っていたときに、その場のコード修正で終わらせず、憲法に条文を一行足す。同じ種類の誤りが二度目に出たら条文にし、一度きりの事情はチケットに留める。条文は、その案件のどの機能でも使える言い方に直してから足す。

憲法は最初に書き切る文書ではなく、解釈の失敗から育つ文書になる。

6. 反転 ― スペック駆動を、AIにやらせる

ここからが本題です。第2章で棄却したのは「人間が書き切ること」であって、仕様の価値ではありませんでした。なら、書くコストがほぼゼロになったAIに書かせればよいことになります。棄却理由だけが消えて、仕様の利点である「判定基準の明文化」は残ります。

ただし、AIに文章の仕様書を書かせても検証にはなりません。読んで頷いて終わりです。文章は、読み手が自分の理解で補完しながら読めてしまうため、AIの理解と人間の理解がずれていても、ずれたまま合意が成立します。

委ねるべきは、受入テストケースの生成です。憲法と要求から、「この振る舞いが正しいはずだ」というテストケース群をAIに先に書かせます。テストケースは実行可能な仕様であり、AIが業務をどう理解したかが、検証できる形で外に出てきます。文章の仕様書との違いはここだけですが、この違いが決定的です。

運用の各論を書きます。

入力は、憲法と要求と既存のケース一覧の三つです。既存の一覧を渡すのは、粒度と語彙を揃えさせるためです。渡さないと、機能ごとに粒度の違う一覧が出てきて、人が比較できなくなります。

先に出させるのは、ケース名の一覧だけです。テストコードの本体も、実装も、この段階では書かせません。本体まで書かせてしまうと人が読む量が増え、第1章のレビューが溜まる問題に戻ります。人が確定した後で、確定した一覧に対して本体と実装を書かせます。

ケース名は業務の言葉で、一行で書かせます。「締め日当日に受領した伝票が、当月分として登録される」という粒度です。ケース名にモックやDIといった実装の語彙が出てきたら、粒度が細かすぎる合図なので、その塊はまとめさせます。

並べる軸を指定します。正常系、業務ルールの境界、異常系、権限、締めと時刻。この五つの軸で章立てさせると、業務システムで穴が空きやすい場所が見出しとして残るため、後の確認で「その章が丸ごとない」ことに気づけます。

そして、人間の仕事が次のように変わります。

  • 人間がレビューするのは、コード全量ではなくテストケース名の一覧です。数十行のケース名なら、業務知識で穴と過剰を判定できます
  • 穴を埋め、余計なケースを削り、確定の判を押します。AIが下書きし、人間が最後に整えます
  • 実装は、確定した一覧への適合で機械的に判定します

第1章で挙げた四つの痛みは、すべてこの一覧の境界で回収されます。作りすぎは「どのテストケースがその実装を要求したのか」と問えるため、要求元のないコードとして構造的に露見します。網羅性の不足は一覧の穴として、コードを読むよりはるかに見つけやすい形で現れます。使い勝手の問題は、操作の優先順位をL2に書いておけば、一覧を生成する段階で反映されます。レビューの滞留は、人が読む対象がコードから一覧に変わることで解消します。

7. 人間がレビューするもの ― 一覧の穴と過剰の見つけ方

テストケース名の一覧を人が確定する、と書きました。ここが人間に残る最重要の仕事なので、何をどう見るのかを具体的に書きます。見るのは三つです。

第一に、穴。業務上あるはずのケースが一覧にないことを探します。目で追って探すのではなく、業務の軸で数えます。有効なのは次の五つです。

  1. 締めと時刻 ― 締め日の当日、締め後、期をまたぐとき、年度をまたぐとき
  2. 権限 ― 自分の部署のデータ、他部署のデータ、権限を失った後に開いたままの画面
  3. 例外運用 ― 通常は禁止だが、承認があれば通る操作
  4. 訂正と取消 ― 一度確定したものを直す、なかったことにする
  5. 実務の癖 ― 同じ伝票が二重に届く、桁が異常に大きい、備考欄に業務上の意味が書かれている

このうちAIが最も落とすのは訂正と取消です。要求には「登録する」「承認する」と書かれていても、「承認を取り消したときに何が戻るのか」は書かれていないことがほとんどで、この空白は業務を知らないと埋まりません。締めと訂正の二つの章が薄い一覧が出てきたら、まずそこを疑います。

第二に、過剰。誰も要求していないケースを探します。判定は一件ずつ、「このケースは、誰のどの業務が困るから必要なのか」を問うだけです。答えられないケースは削ります。削ったケースが実装を要求していたなら、その実装ごと消えます。作りすぎを、コードのレビューではなく一覧の段階で止められるのはこのためです。

第三に、ずれ。ケース名が業務の言葉になっていないものを探します。「ステータスが2から3に遷移する」と書かれていたら、AIがデータの形は理解したが業務の意味を理解していない合図なので、「差戻しされた申請を、担当者が修正して再提出する」に直させます。この直しは表現の問題ではなく、AIの理解の修正です。名前が業務の言葉で書けないケースは、たいてい中身も業務と対応していません。

確定の作法も決めておきます。確定した一覧には版を付け、以後の実装はその版への適合で判定します。そして、実装の都合で一覧を書き換えることを禁じます。テストが通らないときに直すのは実装であって、一覧ではありません。一覧を変更するのは、業務の理解が変わったときだけで、そのときは版を上げます。生成物の側から正本を書き替えさせないという規律で、これが崩れると一覧は実装の記録に成り下がります。

人の関与点 — コードを読む仕事から、一覧を確定する仕事へ

人が必ず通る関門は、憲法の条文の変更と、テストケース一覧の確定の二箇所である。

従来 — 人が読む対象はコード滞留する
要求からAIが実装し、人がコード全量をレビューしてマージする流れである。生成の速度に対して読む速度が追いつかないため、プルリクエストが列を作る。読む量が実装量に比例するため、実装が速くなるほど滞留が増える。
この方式 — 人が読む対象はケース名の一覧確定だけを行う
憲法と要求を入力に、AIが受入テストケースの名前だけを先に一覧で出す。人間はその数十行を業務知識で確認し、穴を埋め、余計なケースを削り、版を付けて確定する。実装はその版への適合で機械的に判定する。ケース名は業務の言葉で一行とし、正常系・業務ルールの境界・異常系・権限・締めと時刻の五つの軸で並べさせる。
人の承認が残るのは二箇所統制の重心
憲法の条文を変更するときと、テストケースの一覧を確定するときの二つである。テストケースを生成した実行にその実装をさせない(生成と検証の分離)ことと、不可逆な操作(データ削除・外部公開・金銭)を人が承認することを、これに足す。

人の仕事が、執筆と精読から、確定と裁定へ移る。

8. AIが書き、AIが検証することへの答え

「AIが仕様を書き、AIが実装し、AIが検証するなら、全部が同じ間違いをしたときに誰も気づかないのではないか」——この批判は必ず来ますし、正当です。

答えは、人間の関門をテストケース一覧の確定に置くことです。コード全量の精読は放棄しますが、業務知識で検証しやすい形の関門を一つ、必ず人間が通します。共倒れはこの一点で断ち切ります。関門を一箇所に絞るからこそ、そこに業務知識のある人の時間を集められます。

実務では、これに三つの補強を足しています。

  • 生成と検証は別の実行に分けます。テストケースを生成した実行に、その実装をさせません。同じ文脈を持ったまま実装すると、ケースの解釈のずれごと実装に持ち越されます。自分の成果物を自分でレビューさせないという原則は、Claude Code プロジェクトパックでも統制基準として置いています
  • 憲法の条文を変更するプルリクエストは、人の承認を必須にします。判断基準そのものが生成物の都合で書き換わると、以後の解釈がすべて汚染されます
  • 不可逆な操作は、仕組みに関わらず人が承認します。データの削除、外部への公開、金銭の移動。この三つは、どれだけゲートを機械化しても人間から責任が消えません

この三つを足したうえで、人間が通す関門は「憲法の条文の変更」と「テストケース一覧の確定」の二箇所になります。統制の重心が、成果物を全部見ることから、判断基準と合格基準を握ることへ移ります。

9. 仕様は死んでいない ― 執筆はAIへ、確定は人間へ

整理します。

スペック駆動開発は間違っていませんでした。重かったのは「白紙から人間が書き、全員で読み合わせる」という執筆と合意の形式であって、仕様そのものではありません。執筆はAIへ、確定は人間へ。この分業に組み替えた時点で、スペック駆動の利点である判定基準の明文化だけが、軽い形で手に入ります。

そして、書き切れない部分を扱うのが憲法です。仕様に書かれなかった空白は必ず残りますが、そこにAIが乗せる解釈を、L2の裁定基準が導きます。外れた解釈は条文として還流し、次の空白の埋め方が変わります。仕様が扱うのは書けた部分、憲法が扱うのは書けなかった部分という分担です。

「スペック駆動に疲れた」の疲れの正体は、書く作業でした。書くのをやめて整える側に回ると、同じ利点が軽くなります。

ただし、これは「速く書く」自動化の話ではありません。人間の仕事を、執筆と精読から、確定と裁定へ移し替えるプロセスの組み替えです。実装のAI化はもう終わった話で、次にプロジェクトを短縮するのは、仕様の生成と検証をAIに委ね、人間の関与を「憲法の維持」と「テストケース一覧の確定」の二点に絞ることだと考えています。

10. この先の仮説

最後に、まだ検証できていない論点を仮説として置いておきます。

仮説1: 次のボトルネックは、顧客側の意思決定に移ります。制約は消えず、移動します。確認と合意の工程をここまで痩せさせたとき、次に全体の速度を決めるのは、要件を出し確定の判を押す顧客側の意思決定速度と、テスト・受入の工程になるはずです。開発側だけが速くなったプロジェクトで何が起きるかは、これから観測したいところです。

仮説2: 憲法は一本でよく、モデルの違いはタスクの割り当てで吸収します。モデルの解釈力に合わせて憲法を分岐させる案も考えましたが、管理する文書が増えるうえ、モデルの癖への最適化は世代交代で陳腐化します。憲法には「モデルが変わっても書き直さなくてよいことしか書かない」と定義し、代わりに先頭に想定モデルを明記して、実行モデルとずれたら警告を出す。分岐ではなく検知で足りる、と今は考えています。

仮説3: 一番難しいのは技術ではなく、保証モデルの交換を組織が受け入れることです。この方式の本質は、品質保証の根拠を「人が全部見た」から「仕組みを通った」に置き換えることです。自分の裁量が及ぶ範囲なら今日から始められますが、事前承認の文化が強い組織では、運用ログ——ゲート通過後の不具合率、人間のレビューでの追加検出率——を証拠として貯め、データで交渉するほかありません。不可逆な判断への責任だけは、どんな仕組みでも人間から消えません。逆に言えば、ボトルネックをその一点まで痩せさせることが、この進め方の到達点です。

これらは実プロジェクトで回しながら検証し、続編で報告します。工程との対応づけはウォーターフォールでAI駆動開発を回すに、テスト工程そのものの組み替えはClaude × AWSで変わるAI駆動開発のテストに整理しています。

Chapter Techでは、開発プロセスの現状分析から、判断基準の設計、レビューと承認の関門の再配置、効果測定までの定着支援をAI Delivery Scope+として提供しています。自社のCLAUDE.mdが指示書になっていないか、という点検の段階からで構いません。お問い合わせからご相談ください。