著者:Pablo Kuschniroff、Claude Codeの支援による。第4版、2026年10月18日に始まり、記録(docs/DECISIONES.md)のその後の決定ごとに更新され続けている。開始日はわざと固定したままにしてある。新しい決定がこの文書に触れるたびにバージョン履歴を書き換えずに済むように。これは作業文書で、これを使う各プロジェクトとともに磨き続けるつもりだ。ここに書かれていることはまだ何一つ閉じた教義ではない。とはいえ、私の知る限り、既に三つの本番システムを背負っている方法の最初の誠実な蒸留ではある。
本題に入る前に、どう書かれているかについて一言。重要だからだ。これらのプロジェクトを私とともに経験していない人のために書いた:人工知能でソフトウェアを構築し、そのソフトウェアが長持ちしてほしい人であって、プログラミングを学びたい人でも、プロンプトのコツを集めたい人でもない。だから説明に時間をかけ、必要なら繰り返し、日常の言葉を使い、末尾に私の口からこぼれるすべての略語と口語表現を収めた用語集を置いた。どこかで見慣れない言葉に出くわしたら——「ラチェット」「錠」「フェイルクローズド」「PND」——用語集へ。すべてそこにある。そして Ref. 26 のような印を読んだら、それは参照文書で語る実際の事例への近道で、日付と証拠が付いていると知ってほしい。流れを失わずに無視することも、詳細に関心があれば辿ることもできる。
方法の公開リポジトリは github.com/pkuschnirof/urazuke。そこにこの文書、各段の契約、コースのマニュアル、参照文書が、NAC3の八言語である。
Urazuke(裏付け)は、ある主張が持つ根拠、それを背後から支えるもの(文字通り「裏の当て布」)を指す日本語だ。動詞*裏付ける*は「証拠で支える」。2026年10月17日に、既存の企業やプロジェクトとの衝突でいくつかの名前を除外した後にこれを選んだ。選んだのは、方法が求めることをそのまま言っているからだ:モデルのすべての主張がその裏付けとともに来ること、そしてその裏付けがコードを読まずに検証できること。名前は翻訳しない。副題「裏付けの方法」は翻訳する:*the evidence method*、*o método da evidência*、*la méthode de la preuve*、*die Nachweis-Methode*、*il metodo del riscontro*、裏付けの方法、验证方法。この文書で「はしご」は方法の構造——その二十四の段——を指し、「Urazuke」は方法全体を指す。
何を教えていて何を教えていないかについて、明確でありたい。ツールを教えているのではない。 方法を教えている:何をどの順でするか、各時点でモデルに何を頼むか、何を納めてもらうべきか、そしてコードを読まずに、納められたものが完全だとどう知るか。賭けているのは、誰でも、プログラミングに使える人工知能ツールなら何でも使って、手でコードを打つ代わりにモデルと会話してソフトウェアを構築でき、出てくるものが堅牢で、本番運用の準備ができていて、そしてここが重要だが、プロジェクトのオーナーがコードを一行もレビューする必要がないことだ。そして、これが何でないかについても同じく明確でありたい。これはシステムをより速く作るためのプロセスではない。誰もそのコードを一ビットも理解する必要なく、運用可能で保守可能なシステムを作るためのプロセスだ。コードを理解し保守するのは、それを書くエージェント的な枠組みだからだ。速度は、現れるとすれば、結果である。だからこの文書には期限がない:各システムの大きさと複雑さが期間を決め、方法は順序だけを決める。
ここで明確にしておきたいことがある。前の文が、私の意図とは違う読み方をされかねないからだ。「所有者がコードを一行も確認する必要がない」ということは、「システムの知識がない人がプログラムを組めるように設計されている」ということと同じではない。そうではない。この方法の第一の目的は、誰でもソフトウェアの作り方を何も知らずにソフトウェアを作れるように技術的なハードルを下げることではない。システムに責任を負う人に、モデルが作るものが、誰も書面で要求しなければモデルがその同じ原則を脆く適用してしまう弱点に対抗しながら、昔ながらのシステム工学の堅実さで仕上がるような、方法論的な支えを与えることだ。所有者がコードを読まないのは、ゲートをどこに置いたか、そして人間が実装を読まずに何を検証できるかの結果であって、誰であろうと、何を知っていようと、自分が指揮しているものを何も理解せずにソフトウェアプロジェクトを指揮できるという約束ではない。契約が実際に求めている人物像はその中間にある:コマンドを実行でき、認証情報を扱え、バックアップを復元でき、CIのクォータが何を言っているか理解でき、モデルが渡したものが足りないときにそれを見分けられる人だ。純粋な素人でもなければ、すでにプログラムが組める人でもない。
そしてもう一つ、コストについての明確化。この段階を踏むことは、モデルに一度ですべてを解決させるよりも多くのトークンを使う:各段が、プロンプトと、それ自体の検証と、モデルが維持しなければならない成果物を一つずつ増やすからだ。一目では見えないのは、それがどれだけ節約になるかということだ。これらのゲートなしに作られたシステムは、遅かれ早かれ、作り直しを必要とする傾向がある:やっていなかったサイジングをやり直す、段8で赤いテストが捕まえていたはずのバグを追いかける、誰も時間内に監査しなかったものを書き直す。その作り直しは、トークンでも、時間でも、お金でも、各段がかかる余分なプロンプトよりもはるかに高くつく。私は先に、頭を使って使う。後で盲目的に二倍使わないために。
野心的に聞こえるし、実際そうだ。だが私にはほとんど誰も持っていないものがある:まさにそうやって構築し、今日本物の顧客とともに動いていて、続くすべてのルールをそこから抽出した三つの実在のシステムだ。だから私が自分に問うのは「できるだろうか」ではない。もうできたからだ。問いは「何を、どの順でし、そのうち何が本当に違いを生んだのか」だ。このはしごがその答えであり、三つのものの基盤だ:方法の文書、コースの受講生が行う実践、そしてマニュアル。後には私のツールの中に実行フローとして輸出し、人の記憶ではなくツールが方法を導くようにする。
これらすべてには、定着する前に解体しておきたい安易な読み方がある:方法は、痛手のたびに私が当てていったパッチの寄せ集めだ、というものだ。そうではない。正確に言うことが重要だ。各段の読み方を変えるからだ。
方法は組み合わさった二つの要因から生まれ、どちらか一方だけでは足りない。第一はシステム工学についての私自身の知識だ。システム畑の人なら誰でもすぐわかることを、私は長年適用してきた:設計の前の調査、書かれた要件、数字によるサイジング、設計、構築、証拠としてのテスト、再現可能なデプロイ、運用、定期監査、プロダクトの一部としての文書。二十四の段で私が要求することの大半は、よく運営されたプロジェクトで常に要求してきたことだ。モデルのために発明したのではない。以前から持ってきた。
第二の要因は、この五か月のインシデントが次々と私に見せたもの:モデルがそれらの原則を脆く適用する場所だ。モデルはテストとは何か、根本原因とは何か、サイジングとは何かを完璧に知っている。聞けば多くのエンジニアより上手に説明する。だが実践では、テストしたと言ってテストしておらず、事業だけが持つデータを自信ありげな顔で推定し、事業ルールの穴を妥当に思えたもので埋め、役に立つよう訓練されたために過剰に報告し、気づかずに嘘をつく計器を作る。 参照文書で語るそれぞれの事例が、どこを締めるべきかを正確に教えてくれた:私にとって自明だった原則が、どこでプロンプトの明示的な条項、ゲート、私がコードを読まずに行う検証に変わる必要があったか。
だから、ある段で「これはあのインシデントの後に課した」と言うとき、原則がそこで生まれたと言っているのではない。そこでモデルが独りでは適用しないことを確かめ、書面で要求しなければならなかったと言っているのだ。方法は昔ながらのシステム工学を、疲れず、証拠なしには信じることのできない構築者に必要な硬さで適用したものだ。傷跡はどこに硬さが必要かの証明であって、原則の起源ではない。
先へ進む前に、以前の版にはなかった分岐を一つ。ある読者がもっともな理由で求めてきたものだ。この文書は空のフォルダを見ながらはしごを記述している:第0段はプロジェクトに取り組むかを決め、第4段は機能のない骨組みをデプロイし、第5段が最初のブロックを開く。学ぶには最も明快な場合であり、最も頻繁な場合ではない。方法には三つのユースケースがあり、エージェントを開く前にどれにいるかを知っておくとよい。どこから入るかが変わるからだ。
名指ししておく、外に残るもの:技術の移行は方法のユースケースではない。それは別のプロジェクトであり、一般には第0段の排除基準に当たる。
これがすべてを開くテーゼで、最初に置くのは、最もよくある反論が現れる前に解体するためだ:「機械が書いたコードをどうやって信用するのか」。
私の答えは、業界は既に二十年前にコードの書き手を信用することをやめたということだ。執筆の大半がジュニア、外注、ローテーションのチームに移ったとき、一行ずつのレビューは維持不可能になった。その代わりに育ったのが、今日我々が当然視するすべてだ:自動テスト、継続的インテグレーション、受け入れ基準、緑なしには何も通さないパイプライン、テストの「シフトレフト」、独立した機能としての品質管理。それが「書く者は信用できない」に対するシステム工学の答えだった:コードを読まず、証拠を要求する。
だからモデルに書かせることは、虚空への跳躍ではない。もう信用していなかった書き手を、やはり信用しない別の書き手に換えることであり、その書き手のために検証の装置は既に組み上がっていた。これは安心させるべきことで、不安にさせることではない。しかも新しい書き手はより安く、より速く、そして——ジュニアと違って——赤で証明しろと頼んでも気を悪くしない。
だからこの方法は、隠すことなく古典的なシステム工学に依拠する。骨格はいつものものだ。他にありようがない。問題がいつものものだからだ:データがどれだけあるかわからない、顧客が何を望むかわからない、構築したものが頼まれたものかわからない。AIは問題を変えなかった。誰が各部分をどのコストでやるかを変えた。第0段の適格性基準X2でさえ古典工学だ:契約の条件としてのテスト可能性。
古いもの、そして古いと言っておくべきもの:段階の骨格、検証者の構築者からの独立、証拠としてのテスト、プロダクトの一部としての文書、設計前の調査。
本当に変わるもの、私の貢献があるところは三つだ:
コースと公開のために、これが誠実にポジショニングを定める:「新しいプログラミングの仕方」ではない。疲れず、しかし信じることもできない構築者に適用されたシステム工学だ。システム畑の人には馴染み深く響き、不信を下げる。バイブコーディング畑の人には持っていないもの、まさに骨格を与える。そして速度を売り骨格をまるごと省くツールから私を差別化する。
各段には八つの部分があり、比較できるよう常に同じだ:
そして六つの段にだけ現れるもう一つの部分がある。読むべきものを変える横断的な部品だからだ:附属書H(ANEXO_HEURISTICAS.md)。検証可能な四十五のルール——コード品質の十八と使いやすさの二十七——で、それぞれが安定した識別子、重大度、それを測る道具を持つ。任意の付録ではない:義務だ。そして六つの点で梯子に掛かる。第2段ではその二つの前提入力が入る(ユーザー用語集とプロフィール一覧:人々が実際に各々のものを呼ぶ言葉と、それぞれが誰で何をしに来るのか)。そして第5、8、9、10、12段にはその五つの アンカーがある——「アンカー」とは、附属書の部品がなければその段の関門が緑にならないという意味だ。その五つは公開された関門の定義における機械的な要求であり、推奨ではない:方法をコンパイルするツールはそれを求める。その六つの段はそれぞれ自分のカードでリンク付きでそう言っており、どれかが言うのをやめたら赤くなる検証が方法自身の連鎖にある。遅れて気づいたことから生まれた:附属書は義務でありながらこの文書で一度も名前を挙げられておらず、方法を別の形式に翻案した最初の読者は四十五のうち二十七のルールを飛ばした。それらがあると知らなかったからだ。
二つの重要な注意。第一:はしごはツールに対して中立だ。すべての成果物はファイル、テスト、スクリプトであり、どれも私のツールも他のツールも要求しない。Forgeはそれらを自動化する(ゲート、コマンド、保留項目の記録)が、段はForgeなしに存在する。第二:段は登る順に番号が付いている。そして四つの区間にまとまる:0から4は立ち上げで、プロジェクトごとに一度登る。5から12 は変更ごとに繰り返すループ。13から20は本番リリースで、最初のデプロイの前に一度登る。そして 21から23は運用で、システムが既に稼働しているとき。23はサイクルを閉じ、次のプロジェクトのために0へ戻る。区間の中では番号が順序を言い、区間の間では、ループが繰り返される一方で他の三つは一度登られる。だが「厳密に順次ではない」は「どんな順でもよい」ではない:パートBが各段をいつ登り、その間に何が起きるかを正確に言う。
この部分は以前の版には存在せず、その不在は深刻な欠陥だった:方法は何をしどう検証するかを言ったが、いつを言わなかった。そして「いつ」は方法の半分だ。文字通りに受け取る読者は二十四の段を次々と登り、ではインフラ、継続的インテグレーションとデプロイの連鎖、要件の取り込み、機能の開発、すべてのフローのエンドツーエンドテスト、画面への人間の目、人間による受け入れテストはいつするのかと自問しただろう。それらすべては起こり、段の間と段の中の正確な時点で起こる。ここに書く。
表の前に、絵を。プロセス記法(BPMN風:丸いイベント、長方形のタスク、ひし形のゲート、点線の戻り矢印)で描いてあり、表よりうまく三つのことを言う。第一:プロセスは方法の外から始まる。要件工学であり、それは前提条件であると同時に恒常的だ。決して終わらず、新しい要件はそのたびにまた入ってくる。第二:新しい要件はループにだけ入るのではない。評価の段へ再注入される。アーキテクチャを決めた数字を変えうるからだ(「十倍」はまだ耐えるか?)。そしてそこから先へ。第三:プロセスは人によるテストケースの手動実行で終わり(第10段)、その実行が見つけたものは要件としてループへ戻る。円環は機械ではなく、人で閉じる。第四、この修正より前の図にはこれが描かれていなかった:システムが構築するものが世界に結果をもたらす場合(課金する、送信する)、ループは第14段の後に再び開く。すでに鍵がかかった状態で、そこから生産チェーン(15)へ進む前に、その部分をリハーサルモードで構築するためだ。これは最初に戻ることではない。いつもと同じゲート(ブロックの締めくくりか?)を、安全網が整った今、もう一度通るだけだ。
flowchart TB
subgraph RE["要件工学 · 外部の前提条件であり恒常的"]
direction TB
E0(("業務からの依頼")) --> RE1["調査:インタビュー、ユースケース、ドメインモデル、プロトタイプ"]
RE1 --> RE2["新しい、または変更された要件"]
end
subgraph ARR["立ち上げ · 第0段から第4段、一度"]
direction TB
P0["0 適格性"] --> P1["1 共働の約束"] --> P2["2 定義とセマンティックツリー"] --> P3["3 サイジング"]
P3 --> G1{"アーキテクチャは数字に耐えるか?"}
G1 -- はい --> P4["4 ゲート付きの骨組み"]
G1 -- いいえ --> P3
end
subgraph LOOP["ループ · 第5段から第12段、変更ごとに"]
direction TB
P5["5 仕様付きの保留項目"] --> P6["6 書かれた決定"] --> P7["7 計測"] --> P8["8 赤のテストとエンドツーエンド"] --> P9["9 コードの品質"] --> P10["10 手動テストケース"] --> P11["11 対称性"] --> P12["12 誠実な報告"]
P12 --> G2{"ブロックの締めか?"}
G2 -- いいえ --> P5
end
H1["人によるテストケースの手動実行"]
subgraph OUT["本番リリース · 第13段から第20段、一度"]
direction TB
P13["13 監査"] --> P14["14 錠"] --> P15["15 本番への連鎖"] --> P16["16 可観測性"] --> P17["17 永続化"] --> P18["18 脆弱性"] --> P19["19 性能"] --> P20["20 生きた文書"]
end
D(("最初のデプロイ"))
subgraph OPS["運用 · 第21段から第23段"]
direction TB
P21["21 資源の監視"] --> P22["22 エラーの監視"] --> P23["23 常駐と振り返り"]
end
RE1 --> P0
P4 --> P5
RE2 -. "再注入:数字は変わるか?" .-> P3
RE2 --> P5
G2 -- はい --> H1
H1 -- "発見=要件" --> RE2
H1 --> P13
P14 -. "結果を持つものは、鍵がかかった今、構築される" .-> P5
P20 --> D --> P21
P21 -. "逸脱=保留項目" .-> P5
P22 -. "エラー=保留項目" .-> P5
P23 -. "次の段階のために0へ戻る" .-> P0
図が見えない場合(markdownのビューアがmermaidを描かない場合)、上の文章がそれを丸ごと記述している。HTML版では独りで描かれる。
この方法で進められるプロジェクトは五つのフェーズを通る。真ん中の三つはループ、本番リリース、運用の区間に対応するもの。フェーズ1は立ち上げの区間。そしてフェーズ0は初期の取り込みで、それ自体は「段」ではないが方法がカバーするものだ。期間は書かない:求められるものの大きさと複雑さに依存し、書かれた期間は偽の期待に変わるからだ。大きさに依存しないもの、それが順序だ。
| フェーズ | 登る段 | そのフェーズで他に何が起きるか |
|---|---|---|
| 0. 取り込み | まだなし。0、2、3、5の原材料 | 要件工学の古典的方法(B.5参照)によるオーナーとの事業の調査:インタビュー、ユースケースまたはユーザーストーリー、ドメインモデル、画面のプロトタイプ。散文で、意図的に不完全に書く。エージェントが質問して補完する。 |
| 1. 立ち上げ | 0、1、2、3、4 | 適格性、約束、定義、サイジング。そして初期インフラのすべて:リポジトリ、テスト環境、継続的インテグレーション、空のシステムでの最初のデプロイ。 |
| 2. ループ | 変更ごとに5から12:保留項目、決定、計測、赤のテスト、品質、手動テストケース、対称性、報告 | ブロックごとの機能開発。赤のテスト。構築したばかりのフローのエンドツーエンドテスト。新しい各画面への人間の目。各ブロックの締めに、テスト環境での人間によるテスト。 |
| 3. 本番リリース | 13から20、順に:監査、錠、本番への連鎖、可観測性、永続化、脆弱性、性能、文書 | 別のセッションによる監査。世界に作用するすべてに錠。試されたロールバック付きの本番へのデプロイ連鎖の締め。三つのマニュアル。すべてのフローについてオーナーとの受け入れテスト。 |
| 4. 運用 | 21と22は最初のデプロイとともに組み立てる。23は各段階の締めに。各進化にループ(5から12)。13と18は定期的 | 常駐エージェント。一、二か月ごとの監査。新しい変更はそれぞれ完全なループで入り、デプロイ連鎖で出る。各段階の締めに振り返り。 |
この表は新規プロジェクトのものだ。システムが既に存在し、方法で生まれなかったときは、フェーズ0と1が正常化の区間に置き換わる(読み取り、安全ベルト、測って順序を付ける)。それは 進化・修正の道にある。フェーズ2、3、4は同じだ。
ユーザーと帰結のあるプロジェクトで育つのはループ、つまり機能だ。立ち上げ、本番リリース、運用は、小さいシステムでも大きいシステムでも同じ形をしている。変わるのはどれだけ計測しなければならないかであって、何を計測するかではない。
ここに欠けていたものがある。各フェーズについて、各種の作業を段に対してどの正確な時点で行うか。表を行で読んでほしい:各行は作業の種類で、各セルはそのフェーズ内でいつ行うかを言う。
| 作業の種類 | 立ち上げ(段0から4) | ループ(段5から12、ブロックごと) | 本番リリース(13から20) | 運用(21から23とループ) |
|---|---|---|---|---|
| 要件の取り込み | 第0段の前:インタビュー、ユースケース、ドメインモデルによる、オーナーとの散文での調査。第2段(定義とセマンティックツリー)と第3段(ボリューム)で補完される。 | 各ブロックを開くとき:そのブロックに対する顧客の依頼が、顧客が言う通りの形で、詳細な仕様付きの保留項目に変換される(第5段):記述、受け入れ基準、適用ルール、データ、画面、境界ケース。エージェントがする質問が細かい取り込みだ。 | 第14段の前:帰結のある行動の調査。第15段の前:環境とアクセスの調査。 | 新しい依頼はそれぞれ仕様付きの保留項目として入り、セマンティックツリーのノードにぶら下がる。常駐エージェントがユーザーの求めるものを集める。 |
| インフラ | 初期のすべてを第4段で:リポジトリ、構造、テスト環境、認証情報、テスト用ドメイン。空の骨組みがデプロイされるまで機能は構築しない。 | なし、ブロックが要求する場合を除く(キュー、外部サービス)。要求するなら、テスト付きの保留項目。 | 第15段で:本番環境、サーバー上の秘密、実ドメイン、バックアップ、最低限の監視。 | インフラの変更はループと第15段で入る。決して「手で、素早く」ではない。 |
| CI/CD連鎖 | 第4段で:継続的インテグレーションは立ち上げからプッシュごとにテスト群を走らせ、テスト環境へのデプロイはマージ時に自動。 | 独りで機能する。各コミットがそれを通る。緑でなければブロックは閉じない。 | 第15段で完成する:本番へのデプロイはインテグレーションの結果を待ってパッケージするだけ。昇格は書かれた手順。ロールバックは試される。 | 各デプロイは第15段のルーチンに従う:同じバージョンでテストが緑、ロールバック準備済み、デプロイ後に本番でエンドツーエンド検証。 |
| 機能開発 | なし。骨組みは意図的に空でデプロイされる。 | ループの中心:エージェントが保留項目を取り(5)、欠けている事業ルールを質問し(6)、構築し、証拠で閉じる(7、8、9、10、11、12)。ブロックごとに、基本的なものから帰結のあるものへ。 | 世界に作用するもの(請求、送信)は第14段の後に、錠付きで、ループで構築し、ドライランモードで始まる。 | 進化はループで入る。 |
| 自動テスト | 第4段で通るスモークテスト一つ。テスト群の種だ。 | 各保留項目とともに:赤で証明されたテスト(8)、同じセッションでの隣接項目の回帰、そして構築したばかりのフローのエンドツーエンドテスト、画面からバックエンドまで。ブロックを閉じるとき:既存のすべてのフローの完全なエンドツーエンドのテスト群、テスト環境で。 | 本番への最初のデプロイの前:すべてのフローの完全なエンドツーエンドのテスト群、緑、昇格するのと同じバージョンで。デプロイ後:本番に対する読み取り専用のエンドツーエンド検証。 | 各変更とともに、ループと同じ。 |
| 画面の人間による目視 | 第4段の締めに:オーナーがテスト環境のURLを開き、空の画面を見る。些細に見えるが、エージェント以外の誰かがシステムを見る最初の瞬間だ。 | 画面に触れる各保留項目とともに:エージェントがテスト環境の実際のスクリーンショットを納め、オーナーがそれを見る。十秒。どのテストも見つけないものを見つける最も安い方法だ:ボタンがあるべきでない場所にある、テキストが別のことを言っている、フローが事業が想像していたものではない。 | 第20段で:ユーザーマニュアルのスクリーンショットが本番前の最後の体系的な人間の目だ。 | 新しい、または変更された各画面、ループと同じ。 |
| 人間によるテスト | まだなし、空の画面を開くこと以外。 | 各機能ブロックの締めに:オーナー、または信頼できるユーザーが、ブロックのフローに従って、本当に使うようにテスト環境でシステムを使う。見つけたものは保留項目として記す。保留項目のない人間の発見を残したまま次のブロックは開かない。 | 本番への最初のデプロイの前:すべてのフローについてオーナーの受け入れテスト、現実的なテストデータで、テスト環境で。そして第20段で、プログラミングをしない人が復旧マニュアルを追う。 | 各進化とともに、そのブロックの締めに。 |
| オーナーの決定 | 第0段(行くか行かないか)、第1段(約束)、第2段(何でないか)、第3段(アーキテクチャの選択肢)。 | エージェントが書かれていない事業ルールで止まるたびに(6)。ブロックごとに二つか三つが普通。 | 第14段(錠ごとに)、第15段(本番への昇格)、第23段(常駐エージェントのレベル)。 | 生じるもの。常に書面で。 |
強調しておきたい細部がある。バイブコーディング畑の人が最も間違える場所だからだ:すべてのフローのエンドツーエンドテストは最後に一度ではない。三回、三つの規模で行う。各保留項目とともに、その保留項目が触れたフロー。各ブロックの締めに、そこまでに存在するすべてのフロー。そして本番の前に、昇格する正確なバージョンですべてのフロー。三つ目だけをするなら、何週間も誰もエンドツーエンドでテストしなかったシステムで最後に至り、本番リリースは一週間の修正に変わる。
機能ブロックとは、四つから八つの関連する保留項目の集まりで、一緒になって事業が使える何かをなす:「基本の予約台帳」「リマインダー」「月次レポート」。内側はこう見える:
ループの典型的な一日で、方法がオーナーに求めることは小さく限られている:二つか三つの事業ルールの質問に答え、二つか三つの報告を読み、二つか三つのスクリーンショットを見る。それだけだ。それ以上を求めているなら、エージェントが独りで解決できることを聞いているか(第1段)、オーナーがコードを読んでいるか(なら第8段か第12段の何かが機能していない)だ。
人間、オーナーまたは信頼できる誰かが、システムを見るか使わなければならない瞬間をリストにまとめる。少なく、正確な時点にあり、どれもエージェントに委任できない:
それ以外のすべて——テスト、計測、監査、文書——はモデルがし、人間はコードではなく成果物で検証する。
ここで立ち止まりたい。古典的なシステム工学が最も言うべきことを持ち、バイブコーディングが最も熱心にそれを無視する場所だからだ。要件とはチャットの中の顧客の一文ではない。何十年も前から存在し、前面にモデルがいても依然として有効な方法で処理された顧客の一文だ。モデルは頼めばそれらを適用するのが非常にうまく、頼まなければ非常に下手だからだ。
私が使い、方法が各フェーズで要求する方法:
セマンティックツリー。 これらすべてを整理する成果物で、エージェントが毎セッション読む地図だ(第2段)。木であって、リストではない:根にシステム。その下にドメインまたはモジュール。各ドメインの下にそのアクター、プロセス(ユースケース)、状態を持つエンティティ、画面、外部インテグレーション。そして各ノードからぶら下がる、それに触れる保留項目とそれに影響する決定。エージェントが調査から構築し、あなたが修正し、各ブロックとともに育つ。その価値は二重だ:モデルにプロジェクト全体を読まなくても触れるノードの正確な文脈を与え、あなたにはコードを読まずに、エージェントが理解しているシステムが事業が求めたものであることを検証する方法を与える。保留項目がどのノードからもぶら下がらないとき、木が不完全か保留項目が範囲外かだ。どちらも十秒で見える。
詳細な仕様は保留項目に住む。 古典的方法には長い、古びる要件仕様書があった。ここではその文書が分解される:各保留項目が自分の完全な仕様を持ち、保留項目の総和がシステムの仕様だ。よく書かれた保留項目が持つもの:タイトル。ぶら下がるセマンティックツリーのノード。顧客の言葉による、それを生むストーリーまたはユースケース。求められるものの詳細な記述。適用される事業ルール、その決定と日付付き。入出力データ。影響を受ける画面、プロトタイプがあればそれも。境界ケースと例外。受け入れ基準。そしてどう検証するか。エージェントがあなたの散文の依頼から起草し、仕様化できないことを質問し、あなたは構築前にそれを読む。保留項目の仕様を読むことは、あなたがコードを読むことに最も近づく瞬間であり、まさに正しい距離だ。
閉じた保留項目は文書である。 これが円環を閉じるものだ。保留項目が閉じるとき、消されも空のまま保管されもしない:その仕様、それを生んだ決定、閉じたときの証拠(赤と緑の数字、画面のスクリーンショット、計測した数字)、コミット、日付とともに残る。したがって閉じた保留項目のキューはシステムの機能的な履歴だ:何を、なぜ、いつ構築し、どうテストしたか。そこから変更日誌、ユーザーマニュアルの新しい節、そして六か月後に誰かが「なぜシステムはこうするのか?」と聞いたときの答えが出てくる。コースのマニュアルは、第5段のルーチンの一部として、各保留項目の締めに同じセッションでこの文書化を要求することを教える。
登る順に並んでいる。運用品質の六つの段(最初のデプロイの前に16から19、後に21と22)は、私が名付けずにやっていたものだ:システムが走っている間に見えること、サイジングした量に耐えること、既知の穴がないこと、そして本番に出た後、誰も怒った利用者から問題を知らされないこと。二つの監視は他のすべてと同じ場所に行き着く:ループへ、修正の保留項目として。初心者の方へ:その六つの契約と、第9段と第10段の契約は、それぞれの言葉を日常の言語で説明する段落から始まり、用語集にはそのすべてが載っている。
そして読み始める前の警告。後になるほど高くつくからだ:二十四のうち六つは、カードが言うことだけでは登れない。第2段は附属書Hの二つの前提入力——ユーザー用語集とプロフィール一覧——を担い、第5、8、9、10、12段はその五つのアンカーを担う。六つそれぞれが自分のカードの末尾で、附属書Hで始まる行でそう言っている。方法を適用するなら、第5段を開く前に附属書を読むこと:あなたの関門の五つはそれなしでは緑にならず、関門に止められてから気づくのは最悪の気づき方だ。
すべてに先立つものがあり、どのリポジトリにもない。常に既に決まった状態で届いたからだ: プロジェクトにこの方法で取り組むかどうかの決定だ。何か月も私の頭の中に住んでいた基準で、書き終えつつある。二つの排除基準は既に明確で、受け入れたプロジェクトではなく断ったプロジェクトから来ている Ref. 46:「否」は「可」よりも境界をよく定める。重み付け基準はまだ較正中で、そう印している。
peldanos/peldano-00-elegibilidad.md。二つの排除基準。
| # | 排除基準 | なぜ方法を殺すか |
|---|---|---|
| X1 | アクセス可能なリポジトリのない、または標準に従わないリポジトリを持つレガシー技術 | 標準リポジトリなしには証拠を残す場所がない:コミットで引用される保留項目(第5段)も、コードとともに運ばれるテスト(8)も、パッケージとしてのインテグレーションとデプロイ(15)も、同じコミットでの文書(20)もない。エージェントは盲目で働き、検証可能な痕跡を残さない。 |
| X2 | エンドツーエンドでテストできない技術:画面を実行し、インターフェースの各要素にその各種の操作でアクセスし、変更がバックエンドに届いたことを検証できない | 画面からバックエンドへのその検証なしには、エージェントは自分を証明できず(第8、7、12段)、するとオーナーがコードを読まねばならない。それこそ方法が避けると約束するものだ。 |
ツール中立性にとって金に値する明確化:NAC3(画面をプログラムから操作できるよう私のツールが使うプロトコル)は条件ではない。今日私がそれを達成する手段だ。中立な基準はこうなる:インターフェースをプログラムから実行でき、画面の各要素にその各種の操作(クリック、入力、状態の読み取り)でアクセスでき、テストが画面を辿ってバックエンドへの効果を検証できる。インターフェースが「ドライバ」(例えばPlaywright)に要素を露出しない技術は、リポジトリがあっても外に残る。
そして重要だと思う読み:根本的にはX1とX2は同じ条件を二つの側から見たものだ。エージェントはエンドツーエンドで自分を検証し、証拠をリポジトリに残せなければならない。X1は「証拠はどこに残るか」の半分、X2は「証拠はどう作られるか」の半分。
仮説 重み付け基準、まだ重みなし。 方法を最初から最後まで使う最初のプロジェクトで較正するまで、仮説として印しておく。
| # | 候補基準 | 事例でどう見られたか | 排除? |
|---|---|---|---|
| D1 | 判断力と決定する時間(プログラミングではなく)を持つドメインのオーナーがいる | 三つのシステムすべてで、日付付きで書かれた決定とともに | ? |
| D2 | 検証可能な真実の「オラクル」がある:実データ、外部システム、読み取り専用の本番 | 共済組合とそのオラクルとしての認可者 Ref. 26 | ? |
| D4 | 技術がエージェントが発明なしに習熟しているもの(Node、Python、SQL、React)に収まる | 三つすべて | ? |
| D5 | 誤りに実際の帰結がある(金銭、健康、運用)、フェイルクローズドを正当化する | 共済組合(健康、請求)、協会(家族) | ? |
| D6 | ボリュームが初日から知りうる | Kikan:年間340万行 Ref. 15 | ? |
| D7 | 顧客が成熟の時間と回路内の人間を許容する | ドライランモード付きの自動承認者 Ref. 28 | ? |
| D9 | 範囲が一つのリポジトリと一人のオーナーに収まる | 三つすべて | ? |
| D10 | 秘密とアクセスを分離できる(金庫、環境ファイル、限定された権限) | 作成者に紐付けられたAPIキー Ref. 13 | ? |
以前の版にあった二つの基準(エージェントが単独でテストできること、プロジェクトが新規または監査可能であること)は、それぞれX2とX1に吸収した。帰結であって別個の基準ではないからだ。
一行も書く前に、あなたとエージェントがどう働くかを書面にすること。形式的に見えるが、そうではない:最初の月の苛立ちの八十パーセントを防ぐものだ。エージェントは毎朝昨日の記憶なしにやってくると考えてほしい。書かれていないことは毎回繰り返さなければならず、毎回少しずつ違う言い方になる。
peldanos/peldano-01-contrato-de-convivencia.md。エージェントの各セッションはゼロから始まる。短い地図を与え、何かに触れる前にそれを読むよう義務付けること。二つの半分は等しく重要だ:誰も読まない地図は作用せず、長い地図は誰も読まない。
peldanos/peldano-02-definicion-y-lectura.md。飛ばすと最も高くつく段であり、それを知っているのは私が飛ばしたからだ。構造的な決定は数字で行い、一次の数字は事業が持っていて、モデルは持っていない。
peldanos/peldano-03-dimensionar.md。システムが何か役立つことをする前に、空のまま起動し、テストされ、デプロイされなければならない。そう、空のまま。本番への道はプロダクトの一部であり、機能すると知る唯一の方法は、まだ失うものがないときにそれを辿ることだからだ。これは初期インフラのすべてとインテグレーションとデプロイの連鎖を作る段で、だから立ち上げの中で最も長い。
peldanos/peldano-04-esqueleto.md。ここに、一度掴んだら手放さない考えがある:「計画」が一方に「タスクリスト」が他方にあるのではない。保留項目のリストが計画そのものだ。 そして各保留項目はどう検証するかを言う。それがあなたがコードを見る代わりに見るものだからだ。
peldanos/peldano-05-pendientes.md。モデルは、事業ルールの穴を見つけると、それを埋める。止まって質問しない。最もありそうなもので補完し、他のすべてを書くのと同じ自然さでそうする。だからこの段は「決定を書け」ではなく「欠けていたら止まって質問するよう要求しろ」であり、あなたが決めたら、決定はあなたの言葉、あなたの名前、日付とともに残る。
peldanos/peldano-06-decisiones.md。これは私にとってすべての中で最も大人の段であり、形式化するのに最も時間がかかったものだ。モデルが独りで適用するだろうと当然視していたからだ。適用しない。ルールは:何かを決める数字は印象からは出ない。リポジトリに住み、テストを持ち、あなたが実行できる計器から出る。そして計器も検証される。計器は嘘をつくからだ。
peldanos/peldano-07-medir.md。一度も失敗するのを見ていないテストは、何かを証明しているかわからない。だからここでのルールは「テストを書け」ではない。「テストが古いコードに対して赤になり、その後緑になり、その後回帰が緑のままであることを示せ」だ。そして画面からバックエンドまでのエンドツーエンドテストが、あなたのコード読みを置き換えるものだ。
peldanos/peldano-08-tests-en-rojo.md。オーナーはコードを読まない。それが要点だ。だがコードは誰かが保守することになり、今日動いて明日読めないコードは、三か月目に取り立てられる負債だ。誰も読まないなら、機械が見なければならない:各コミットで、人間のレビュアーが見るであろうものが、上限を持つ数字に変えられる。私はそれを自分のすべてのプロジェクトで、段として名付けないままやってきた。
そしてここで、この段を前の段から分ける一文を手元に置くとよい。業界で最も高くつく混同であり、九語で解ける:カバレッジはテストを数える。赤はそれが役に立つかを言う。九十パーセントというカバレッジの数字は、テストがどれだけのコードを実行するかを教えるが、振る舞いが壊れたときにそのテストのどれかが赤くなるかについては何も教えない。それを言うのは第8段で、偽装できない唯一の方法で言う:赤を見ることだ。カバレッジはこの段の数字。赤は前の段の受領証だ。(この定式化は方法を別の形式に翻案した最初のものに由来し、パートFで出典を示している。)
docs/CODE_QUALITY.md。docs/GATES.md のゲート。利用者のいるどんなプロジェクトでも必須で、実際の利用者がいないときだけ任意の、ミューテーションテスト(わざと植えた誤りを、テストがいくつ捕まえるかで数えるもの)。ブロックごとの得点をカバレッジの隣に。peldanos/peldano-09-calidad-de-codigo.md。自動テストはモデルが書きモデルが走らせ、モデルが理解したことを検証する。欠けているのは、人が自分の目と自分の手で、台本に従って行うテストだ。台本は、その機能を構築したのと同じ者が、同じ瞬間に、受け入れ基準から書く。それを人が実行するのは各ブロックの締め、受け入れ、そして各デプロイの後。失敗したものは要件としてループへ戻る。プロセスの図が示す円環の閉じだ。
docs/MANUAL_TESTS.md(識別子、保留項目、前提条件、何をし何が見えるかの手順、人が検証できるバックエンドでの効果を含む期待される結果、データ、実行の表)。記録された実行。失敗ごとに一つの修正の保留項目。peldanos/peldano-10-casos-de-prueba-manual.md。一方の端(サーバー、データベース、ロボット)を変えたら、もう一方の端(画面、カウンタ、レポート)も同じコミットで変わらなければならない。それを支える原則はすべてのリストには一人の所有者しかいないということだ。そして既に一度払った誤りは、二度払わないよう自動検証付きで記す。
peldanos/peldano-11-simetria-y-antipatrones.md。コードを読まないのなら、エージェントの報告は信頼できなければならず、それは自然には起きない。モデルは役に立ち完全であるよう訓練されており、「これは検証できなかった」と言う報告は「完了」と言う報告より役に立たないと感じられる。だから悪い知らせ、盲点、やらなかったことを明示的に要求すること。
peldanos/peldano-12-verificacion-honesta.md。ときどきシステム全体を新鮮な目で見なければならず、見えたものは保管される報告には行かない:保留項目のキューに行く。重要なのは「新鮮な目」:構築していない誰かが監査すること。構築した者は自身の前提を共有するからだ。別の指示ファイルを持つモデルの別のセッションで足りる。
peldanos/peldano-13-auditoria.md。疑いや故障の前で、システムは行動しない。そしてそう言う。当たり前に聞こえるが、ソフトウェアが既定でやることの逆だ。ソフトウェアは疑いの前で進む。この段は世界に作用する機能を構築する前に来る。後ではない。
peldanos/peldano-14-fail-closed.md。本番に至ることは再現可能なパッケージでなければならない:テストは一度走り、デプロイはパッケージしてアップロードするだけ、設定はリポジトリではなくサーバーに住み、ロールバックは試されている。この大半は骨組みから既に存在する。この段はそれを本番へ向けて完成させる。
peldanos/peldano-15-ci-entornos-secretos-deploy.md。本番で何かが失敗したとき、一つの識別子だけで、コードを開かずに、画面からデータベースまで一つの行動を追いたい。本番での記録の詳細さを一分で、再デプロイせずに上げられるようにしたい。そして帰結のあるすべての行動が、アプリケーションが消せない跡を残すようにしたい。
docs/OBSERVABILITY.md。peldanos/peldano-16-observabilidad-y-trazabilidad.md。データベースはシステムがゆっくり死ぬ場所だ:百件ではよく、十万件では悪く、いつ始まったのか誰も知らない。ここでは数字で、本番の前に、そして第7段の方法で決める:計測し、変え、同じデータの上で計測し直す。
docs/PERSISTENCE.md、変更ごとの前と後の表、経路ごとの予算、テーブルごとの保持とともに。予算ごとに一つのテスト。peldanos/peldano-17-persistencia.md。監査(13)はときどき、判断力でシステム全体を見る。この段はただ一つのこと、セキュリティを、いつも、機械で見る:依存関係、コード、履歴の中の秘密、そしてサーバーの設定。そして一つのルール:依存関係の更新は変更であり、ループから入る。
docs/SECURITY_[日付].md、発見と未走査のものとともに。docs/SECURITY.md、方針とともに。docs/GATES.md のゲート。それぞれの保留項目とともに直されたP0とP1。peldanos/peldano-18-vulnerabilidades.md。第3段は計算でサイジングした。この段は動いているシステムでその計算を確かめる:期待される量で、「十倍」で、そして何かが壊れるまで。破断点はこの区間で最も役に立つ数字だ。そこから第21段の警報の閾値が出るからだ。
docs/PERFORMANCE_[日付].md、三つの実行、破断点、診断とともに。docs/PERFORMANCE.md、閾値とゲートとともに。ボトルネックごとに一つの保留項目。peldanos/peldano-19-rendimiento-y-punto-de-ruptura.md。システムはエージェントなしで、あなたなしで、使い、保守し、復旧できなければならない。エージェントがいない日にデプロイできないなら、完成していない。そしてモデルで文書を再生成するのは無料なので、ルールは「同じコミットで」になる。
誰でも読み終わる前に理解できる一語で言えば:これらのマニュアルがなければ、持ち主は持ち主ではなく、借主だ。システムを持ち、代金を払い、中に住んでいて、鍵を失くしたら入れない:起動するにも、復旧するにも、なぜ動かなくなったのかを理解するにも、作った人——あるいは作ったモデル——が引き続き手に入り、引き続き気が向いていることに依存する。システムの所有とはコードではない:許可を求めずに運用できることだ。(この定式化は方法を別の形式に翻案した最初のものに由来し、パートFで出典を示している。)
peldanos/peldano-20-documentacion-viva.md。第19段のテストは、ある一日にシステムがどうふるまうかを言う。本番は毎日であり、データは増え続ける。この段は、資源の使用と、各関数、各クエリの応答時間を、第19段の閾値と、そしてそれ自身の歴史と比べて見張り、何かが範囲外に出たら知らせ、オーナーと読む周期報告を生む。各逸脱は一つの保留項目だ。
docs/MONITORING.md。約束の中の読みのルーチン。peldanos/peldano-21-monitoreo-de-recursos-y-rendimiento.md。本番のシステムは誰も報告しないエラーを生む。この段はそれらを、隠れる三つの場所(バックエンド、ジョブ、利用者のブラウザ)で捕捉し、まとめ、新しいものと増えているものを知らせ、周期報告を生む。ルールは二つ:保留項目のないエラーは一つもない。そして、なぜ許容するのかいつまで許容するのかを言う保留項目のない「既知のエラー」は存在しない。
docs/MONITORING.md。約束の中のルーチン。peldanos/peldano-22-monitoreo-de-errores.md。最後の段には同じサイクルを閉じる二つの部分がある。第一:エージェントが限定された範囲で、人の名において行動しながら本番に常駐する。第二:方法自体が数字で見直され、学んだことが次のプロジェクトのために第0段へ戻る。
peldanos/peldano-23-agente-residente-y-retrospectiva.md。八つの部分のカードは、各段が何を目指し、いつ登り、何を残すかを言う。だが段が本当に理解されるのは、どう頼み、何が返ってくるべきで、完全に返ってきたとどう知るかを見たときだけだ。だから各段にはカードに加えて、peldanos/ 内の専用ファイルに契約があり、常に同じ五つの節を持つ:
その完全性の検証は三十二の契約に分かれている。段ごとに一つ、ステーションごとに一つだ。プロジェクトが進行中ならそれで役に立つ。だが三十二の契約が手元にない、もっと前の瞬間がある:誰かがあなたにシステムを作りましょうと申し出る会合だ。その瞬間のために一枚の紙がある:提供者への二十五の質問。同じ完全性の検証をまとめ、ソフトウェアを一度も発注したことのない人のために書き、何を約束されているかで並べたものだ。各質問は、どんな答えが見られるか——ファイル、コマンド付きの数字、赤を見たテスト、マニュアル、署名——と、どの段から出ているかを言う。印刷して持っていく。
そして各契約のヘッダに:区間、いつ、形式、規模(すべてのプロジェクトで必須か比例か)。
プロンプトは英語で、それぞれに翻訳が付く。 三つの理由で取った決定だ:同じ内容がスペイン語では30〜50%多くのトークンを占める。モデルの指示追従能力は英語でより良く較正されているため、英語のプロンプトは曖昧になることなく簡潔さによく耐える。そして業界の語彙(test、commit、 rollback、mock)は英語である。だが英語が方法を読む障壁になってほしくはない:各プロンプトの下に何を求めているかとなぜ各条項があるかの説明があり、HTML版には文書の言語に翻訳されたプロンプトを表示するボタンがある。モデルに貼り付けるプロンプトは英語。翻訳はあなたが理解するためのものだ。そしてすべて "Reply in my language" で終わる。プロンプトは英語でも、会話まで英語である必要はないからだ。
すぐに出る問い:「小さいシステムにこれ全部?」答えは、二十四の段は二十四の長い段階ではなく、いくつかは一セッションで登れ、比例するものはプロジェクトとともに縮む、だ。縮まないのは譲れないもののリストだ。この表は方法を最初から最後まで使う最初のプロジェクトで確認すべき提案 仮説である:
だが表の前に、どうやって段を小さくするところに至るのかを言っておくとよい。表だけだと許可証のように読めるが、そうではない。三つの時機があり、順序がある。
まずは完全にやる。何のためかわからないものも含めて。 方法を初めて適用するとき、どの部分が余っているかを知る状態にはない:官僚的に見える段こそ、まだ起きていない問題を防ぐ段であり、リスト全体は既に起きた問題から出てきた。一度完全にやるほうが、何を飛ばすかの議論より安い。そしてそれが次の段階のための判断を与える唯一のものだ。
次に目の前にあるものに合わせる。 二十四段を一度登ったなら、それぞれが何を生むかを知っており、寸法を決められる:五ページではなく半ページ、経路ごとの予算ではなく一回の実行、週次の報告ではなく月次の報告。それがこの表の提案だ。そして決定は持ち主のもので、段ごとに、声に出して行う:このプロジェクトでどれを小さくし、どれを譲らないか。始める前に書き、最初の問題のあとではない。書かれた決定で小さくした段は釣り合いだ。黙って小さくしたら、それは負債だ。
そして最後に、あとから来る人たちのために改良する。 第23段は、梯子への変更提案としてここに戻ってくる振り返りで閉じる。適用して発見したことはあなたの逸話ではない:この表の次の行だ。この文書がバージョン4にあるのはそのためだ。
| 段 | 小さいプロジェクト(一人のオーナー、少数のユーザー、金銭なし) | ユーザーと帰結のあるプロジェクト |
|---|---|---|
| 0 適格性 | 必須 | 必須 |
| 1 約束 | 必須 | 必須 |
| 2 定義 | 必須、五十行で十分 | 必須 |
| 3 サイジング | 必須、半ページと一つの決定 | 必須、完全版 |
| 4 骨組み | ユーザーを持つなら必須 | 必須 |
| 5 保留項目 | 必須 | 必須 |
| 6 決定 | 必須 | 必須 |
| 7 計測 | 比例:数えて記す | 必須、計器と予算付き |
| 8 赤のテスト | 必須 | 必須 |
| 9 コードの品質 | 最低限:連鎖の中のリンタと大きさの上限 | 必須、完全版、カバレッジのラチェット付きで |
| 10 手動テストケース | 必須:フローごとに一つのケース、各ブロックの締めにオーナーが実行 | 必須、各サイクルで記録された実行付きで |
| 11 対称性 | ルールは必須。地図は任意 | 地図付きで必須 |
| 12 誠実な検証 | 必須 | 必須 |
| 13 監査 | 本番前に一度 | 定期的 |
| 14 フェイルクローズド | 読み取り専用なら任意 | 必須 |
| 15 インテグレーションとデプロイ | 最低限:テスト自動実行、設定は外、ロールバック | 必須、完全版 |
| 16 可観測性とトレーサビリティ | 最低限:設定可能なレベルを持つ構造化された記録と、行動ごとの識別子 | 必須、完全版、不変の監査付きで |
| 17 永続化 | 比例:実際のクエリのインデックスとN+1ループの終わり | 必須、経路ごとの予算付きで |
| 18 脆弱性 | 必須:連鎖の中の依存関係と秘密 | 必須、四つの層すべてと暦とともに |
| 19 性能 | 比例:期待される量での一回と「十倍」での一回 | 必須、破断点と閾値付きで |
| 20 文書 | 最低限:復旧 | 三つのマニュアル |
| 21 資源の監視 | 最低限:月次の報告と二つの警報(ディスク、データベース) | 必須、関数ごとの閾値と週次の報告付きで |
| 22 エラーの監視 | 必須:中央での捕捉と報告 | 必須、その場の警報付きで |
| 23 常駐と振り返り | 一ページの振り返り | 両方 |
要約:どのプロジェクトでも譲れない段が十三(0、1、2、3、5、6、8、最低限の9、10、12、18の依存関係の走査、22のエラーの捕捉、23の振り返り)、プロジェクトに合わせて規模を変えるものが十一。
方法はツールに対して中立である。ツールごとに変わるのは、モデルが読めるよう各成果物をどこに置くかだ。2026年末時点で最も使われるツールへの対応:
| 方法の成果物 | Claude Code | Cursor | Codex CLI / Gemini CLI | Forge |
|---|---|---|---|---|
| 共働の約束(P1)とルーチン(P5、P6、P8、P9、P10、P11、P12、P20) | プロジェクトの CLAUDE.md | .cursor/rules/ | AGENTS.md / GEMINI.md | ゲートごとに注入される教義 |
| プロジェクトの定義(P2) | CLAUDE.md + docs/STATUS.md | 同様、ルールと文書に | 同様 | PROJECT.md + 文脈ファイル |
| 保留項目の記録(P5) | docs/PENDING.md または issue | 同様 | 同様 | 動詞付きのネイティブな保留項目記録 |
| 段のプロンプト(すべて) | 段を登るときチャットに貼る | 同様 | 同様 | ゲート通過時に注入 |
| ゲート(P4) | docs/GATES.md、手動 | 同様 | 同様 | G1からG9、自動 |
| 計器と予算(P7) | テスト付きのリポジトリ内スクリプト | 同様 | 同様 | 同様、加えて静的ラチェット |
Forgeの列が最も自動化するものだ。他の三つも、Forgeが自動でやることをオーナーが手でやれば同じくらい機能する:適切な瞬間に段のプロンプトを貼り、次へ進む前に完全性の検証を要求すること。それが、実際、コースの実践だ。
仮説:明示的な予算としてのトークンとクォータのコスト管理(今日は反応的)。インシデントではなくルーチンとしての秘密のローテーション。そして人間がコードを見るべきときの基準。今日の答えは「決して」だが、見た方がよい局所的な瞬間があると疑っている。はしごを書き終えたとき、私は当然の問いを自分に向けた:これは別の名前で既に存在するのではないか? 2026年10月までに公開された、人工知能でソフトウェアを構築するための方法論、エッセイ、学術研究について、英語、スペイン語、日本語で徹底的な調査を頼んだ。以下がその結果で、正直に要約したものだ:既に他の場所にあるものは、自分のものだと主張する代わりに引用し、見つけられなかったものは「存在しない」ではなく「見つけられなかった」と言う。この部は、新しいものが現れるにつれて広げていくことになる。新しいものは毎週現れる。
短い答え:この方法が束ねているものを束ねた、公開済みの方法は見つけられなかった。見つけたのは、2025年半ばから、その部品のいくつかに別々に収斂しつつある一つの分野全体と、私がこれを公開する三か月前に同じ急進的な前提にたどり着いていた一人の著名な実践者だ。
| 誰が、何を | Urazukeと共有するもの | 欠けているもの |
|---|---|---|
| Robert C. Martin(「Uncle Bob」)、2026年7月。 Xのスレッドと自身のリポジトリ(Acceptance Pipeline Specification、SwarmForge)で、自分のエージェントが書くコードを読まないと表明した。エージェントを、Gherkinの受け入れテスト、ユニットテスト、複雑度の上限、ミューテーションテスト、そして彼自身がときおり手で実行するQA手順という「ガントレット」で囲む。「エージェントにきれいであれとは言えない。エージェントが生み出すきれいさを計測しなければならない。」 | 人間はコードを読まない。前に仕様を、後に証拠を見直す。防壁は約束ではなく機械的なもの。最後の手動テスト。 | 四十年の職歴を持つプログラマであって、プログラムを書かないオーナーではない:防壁はその眼識で築かれる。順序づけられたはしごも、レガシーへの道も、運用も、公開されたプロンプトもない。Grady Boochは、指標は脆弱性もまずい分解も見ないと応じた。 |
| old-coder、「evidence-first development」(リポジトリ)。Uncle Bobに触発されたエージェント向けスキル:SPEC、RED、GREEN、REFACTOR、GAUNTLET、EVIDENCE。 | 人間はテスト計画を承認し、その後、一つのコマンドでもう一度走らせられる証拠報告を読む。コードは決して読まない。 | 一度に一つのタスク。プロジェクトも、レガシーも、運用も、要件工学もない。 |
| Disciplined Agentic Engineering(リポジトリ)。九つのチェックポイント、明示的な退出基準、ゲートとしての二十一の決定的スクリプトを持つキット。 | 「エージェントは指示を飛ばすよう自分を説得できる。ゼロでない終了コードを飛ばすよう自分を説得することはできない。」実装した者から独立した検証。 | エンジニア向けに考えられている。運用も監視もなく、レガシーはバグ用のスキル一つに縮む。 |
Tsumiki / AITDD、Classmethod(日本)、2025年7月(リポジトリ)。要件、設計、タスク、その後 tdd-red、tdd-green、tdd-refactor、tdd-verify-complete、既存コードのためのリバースエンジニアリングのコマンド付き。 | 別々で必須のコマンドとしての赤と緑。独立した一歩としての検証。受け継いだものへの道。そのままのプロンプト。ツール中立。 | 計器にテストがあることを要求せず、検証済み・信じた・盲点の報告がなく、本番にも監視にも至らない。 |
| Addy Osmani、「Brownfield Agentic Engineering」と「Agentic Verification」、2026年9月と10月(brownfield、検証)。 | 「まず振る舞いを固定し、それからエージェントを放て」:前段階としての特性化で、進化・修正の道のステーションN4とほぼ同一。「コードより先に検査を書け。」テストの削除を妨げるラチェット。 | 人間はdiffを読む。番号付きのリストではなく概念上の順序。プロンプトなし。 |
| Consort、Databricks、2026年9月(arXiv 2609.09671)。モデルの外にある決定的なオーケストレータ。作業単位の中の不変のテスト。本物のデータベースに対して要求される緑。 | 本物のフェイルクローズド。「作業者が無視できる統制は、作業者が非決定的であるとき統制ではない。」 | 一つのプラットフォームのバックエンドに限られる。はしごも、レガシーも、運用もない。 |
| IACDM、2026年3月(arXiv 2604.16399)。八つのフェーズ。生成者の外にある検証者。ゲートは状態機械が課す:エージェントは前進を求めることはできても、自分に前進を許すことはできない。 | ゲートと別インスタンスによる監査を持つはしごの形。ツール中立。 | 二十四の段に対して八つのフェーズ。レガシーも、セキュリティも、負荷も、運用もない。 |
| 「Trustworthy Change」と人間・エージェントのセル、2026年9月(arXiv 2609.04630)。SDAD、2026年5月(arXiv 2608.20341)。Agentic Agile-V、2026年5月(arXiv 2605.20456)。 | 同じ権限の分割:エージェントが証拠を生み出し、人間が受け入れを保持する。Agentic Agile-Vは「証拠に基づく受け入れ」を名指し、エージェントは要件工学をより少なくではなく、より多く要求すると言う。 | プロンプト付きの手順ではなく、概念的な枠組みか粗いライフサイクル。人間は技術者。 |
| AI-DLC、AWS、2025年(記事)。Inception、Construction、Operations、人間のゲート付き。 | 運用まで至る唯一の大きな方法。 | 粗い三つのフェーズ。類型化された証拠がない。人間は技術チーム。 |
| Spec Kit、GitHub、2025年(リポジトリ)と、仕様駆動開発の一族:Kiro、BMAD、OpenSpec、GSD、Agent OS、Tessl。 | 永続する成果物、フェーズの順序、文字どおりのプロンプト、要件が先、トレーサビリティ。OpenSpecは「保留項目が計画である」にかなり似ている。 | 緑の前の赤を誰も要求しない。レガシーは軽いガイド。ほぼすべてがマージで終わる。BMADは役割を持つエージェントのチームとして仕事を組織する。Forgeで私はそのモデルを使い、チームが文脈を失っていた時期にやめ、今日それが改善したのを見ている:永続的な進化であって、廃棄ではない。 |
| Reversa、2026年5月(arXiv 2605.18684、リポジトリ)。レガシーから仕様を、信頼度の印(確認済み、推定、空白)付きで回収するエージェント。 | 進化・修正の道のステーションN0にほぼ相当する:コードから記述された機能、出典の印付き。スペイン語とポルトガル語の文書。 | 回収するのは仕様であって、振る舞いではない。触れる前の硬い防壁として特性化を使わない。 |
| Harness Engineering、OpenAI、2026年2月(記事)とStrongDMのSoftware Factory(スタンフォードの研究)。企業の事例:手で書かれた行はゼロ。StrongDMでは、レビューもされない。 | 人間をキーボードから外すという急進的な前提。 | 人間は依然としてエンジニア。StrongDMは合否を別のモデルが出す得点に置き換えた:まさにこの方法が禁じるもの(決定を養う数字は、自分のテストを持つプログラムで計測する)。 |
| Kent Beck、「Augmented Coding」、2025年6月(ニュースレター)。赤、緑、リファクタリングを課す完全なシステムプロンプト。 | 緑の前の赤、文字どおりに、そして丸ごと公開されたプロンプト。「AIはずるをする。」 | Beckはコードを読んで介入する。プロジェクトではなくセッションの規律。 |
| Harper Reed、「My LLM codegen workflow」、2025年2月(記事)。一つずつの質問による仕様、プロンプトの計画、実行。受け継いだもののためのブランチ。 | 文字どおりのプロンプト、一度に一つの質問、レガシーのためのブランチ。 | 三つの段階、ゲートなし。著者は読む。 |
| Anthropic、ベストプラクティスとハーネス設計(プラクティス、ハーネス)。OpenAI、PLANS.md(cookbook)。 | 「検証できないなら、出荷するな。」構築する者とは別のQAエージェントが画面からアプリケーションを操作する。「計画された予測ではなく、観測された結果」:検証済み対信じたに最も近いもの。 | 一つのプロダクトに結びついた、ばらばらのプラクティス。プログラムを書かないオーナーも、レガシーも、運用もない。 |
| 検証についてのエッセイ、2026年:Peter Lavigne、João Queirós、Mihai Avram、John Young(Queirós、Avram、Young)。 | 同じ診断:生成は安くなったが、検証は安くなっていない。「テストは主張であって、証明ではない。」リスクの水準ごとの検証の層。 | 全員が「読む量を減らせ、だが読め」で終わる。 |
| スペイン語圏:Daniel García(機能文書、技術文書、フェーズ間の敵対的分析を伴う実装)、Víctor Robles(十段階のコース)、Daniel Primo(Web Reactiva)、Emilio Carrión(Mercadona TechからのUncle Bobへの応答、記事)。 | Garcíaにはフェーズ間の監査に最も近いものがある。 | 誰にも証拠のゲートはなく、読まないオーナーもいない。この領域で、アルゼンチン、メキシコ、スペインの方法は見つけられなかった。 |
エージェントに課される緑の前の赤は、Beckに、Tsumikiに、Anthropicのプラクティスに、そして 2026年のSimon Willisonのパターンにある。文字どおりのプロンプトを持つ順序づけられた段階は、 Spec Kitに、Tsumikiに、Reedにある。レガシーに先立つ段階としての特性化はOsmaniにあり、この文書の一か月前に公開された。生成者とは別の評価者による、画面からのエンドツーエンドテストは Anthropicにある。前提条件としての要件工学は、仕様駆動開発の運動全体にある。そしてコードを読まない人間は、Uncle Bobに、使い捨てのものについてはKarpathyに、そしてYeggeとKimの本にある。
Birgitta Böckelerは2026年8月に、エージェントにテストが先のサイクルを頼んでも品質が確実には改善しないことを計測した。エージェントはときに赤を装い、あるいは最初から通るようにテストより先に実装するからだ(martinfowler.com)。彼女の研究の中で、見張るテストと飾るテストを区別した唯一のものは、ミューテーションテストだった。同じ年の別の研究は、モデルが自分自身の誤りの三分の一を是認することを示し(arXiv 2605.21537)、また別の研究は、きれいなセッションと別のモデルの組み合わせの方が、同じモデルの二つのセッションより多くの誤りを見つけることを示している(arXiv 2610.01471)。
深刻な反論であり、私はそれを受け止める。方法の答えは三つの部品からなる(D-033)。第8段では、赤は語りではなくレシートだ:正確なコマンド、それが走った対象のバージョン、失敗の数、終了コードを、そのまま貼る。オーナーが一つのコマンドでもう一度走らせられるように、そしてそれをブロックごとに一度、無作為に選んだ保留項目で実際に行うように。第13段では、別のセッションによる監査が、それらのレシートの標本をもう一度走らせる。そして第9段では、ミューテーションテストが利用者のいるどんなプロジェクトでも必須だ(実際の利用者がいないときだけ任意のままになる)。各ブロックの締めにその得点をカバレッジの隣に置く。三つの部品のどれも、オーナーがコードを読むことを要求しない。三つとも、赤を装う方が走らせるより高くつくようにする。
2026年、オスカル・シュミッツは『El Arte de Forjar Sistemas』(『システムを鍛える技』、 191ページ)を出版した。この方法を翻案した小説で、梯子を取り上げて虚構として語る。決める持ち主と、作るチームがいる。上に挙げたものの意味での関連研究ではない——別の方法を提案していない——が、以前には起きていなかったことだ:誰かが別の作品を生むために全コーパスを読んだ。主張ごとに方法の文面と照合して検証し、その検証の報告はリポジトリに残してある。
そこから出てきたもの、そしてそれが参照ではなくこのパートにある理由:参照は自分の事例で、日付とコミットを持つ。小説は事例ではない。実際にしてくれたのは二つのことだ。
私のものより良い四つの定式化をもたらし、この出典表示とともにこの文書に採り入れた:「カバレッジはテストを数える。赤はそれが役に立つかを言う」(第9段)、「持ち主は持ち主ではない:借主だ」(第20段)、段を小さくするのは完全にやったあとに至ることだという考え(パートD)、そして復旧マニュアルの試行は時間、つまずき、理解されなかった語を記録しなければならないということ(第20段)。五つ目は提供者への二十五の質問の紙だ:完全性の検証を、持ち主が会合に持っていく一枚の紙にまとめるという考えは彼のものだ。このリポジトリの二十五の質問は方法の契約からゼロから書いた。彼の版は彼の作品であり、権利は留保されているからだ。
そしてどの監査も見ていなかった方法の構造的な欠陥を示した。これがすべての中で最も価値がある:著者は参照の六つの数字を続けて一つの誤りもなく再現し、附属書Hの四十五のうち二十七のルールを飛ばした。見落としたのではない:この文書が一度も名前を挙げていなかったので、それらが存在することを知らなかったのだ。すべてを読んで方法を適用する読者は、理由がわからないまま公開された五つの関門で止まることになる。それが、附属書がパートA、パートCの冒頭、そしてそれを担う六つの段のカードで名前を挙げられている理由であり、どれかのカードが名前を挙げるのをやめたら赤くなる検証が連鎖にある理由だ。第23段は振り返りが梯子への変更提案として戻ってくることを求める。これは読者から来た最初のものだ。
この方法を地図の上に置くのに役立つ枠組みは、2026年6月のMacedoの分類法だ(arXiv 2606.04967):六つの次元(仕様、文脈、役割、実行、検証、可搬性)と、比較したフレームワークのどれも六つを同時には覆っておらず、プロセスの深さと可搬性のあいだに構造的なトレードオフがあるという確認である。Urazukeは六つすべてを狙い、英語の正確なプロンプトとツール中立への賭けは、まさにそのトレードオフを破ろうとする試みだ。
この文書に登場するすべての略語、固有名詞、口語表現の説明。アルファベット順(原文の配列に沿って)。いくつかの項目は起源リポジトリのファイル名やコミットメッセージに現れる用語で、証拠を追えるよう保持している。
痛手を重ねて(A los golpes) — 誰かが先に説明したからではなく、うまくいかなかったから何かを学ぶこと。「これらのルールは痛手を重ねて学んだ」の意で使い、この文書ではそれが真実のすべてではないと明確にしている:原則は以前から持っていた。痛手はモデルがそれを適用しない場所を示した。
エージェント(Agente) — 質問に答えるだけでなく行動を実行する人工知能プログラム:ファイルを読み、コードを書き、コマンドを実行し、コミットする。この文書で「エージェント」はClaude Code、またはあなたが使うツール。
警報(Alerta) — 数字が範囲外に出たこと(超えられた閾値、新しいエラー)の、その場の自動の知らせ。方法のルール:発報しても誰も読まない警報は警報の欠陥であり、直すか取り除く。
静的解析(Análisis estático) — コードを実行せずに機械で読み、既知の危険なパターン(インジェクション、コードに書かれた鍵)を探すこと。第18段の脆弱性の走査の四つの層の一つ。
アンカー(Ancla、附属書Hの) — 附属書Hの部品がある段の条件になる地点。部品がなければその段の関門は緑にならない。第5、8、9、10、12段に五つあり、それぞれのカードがそれを挙げている。推奨でもベストプラクティスでもない:測られるものの一部だ。
附属書H(Anexo H) — 方法のヒューリスティクスの附属書(ANEXO_HEURISTICAS.md):検証可能な四十五のルール、コード品質の十八と使いやすさの二十七で、それぞれが安定した識別子、重大度、それを測る道具を持つ。義務であり四つの区間を横断する:第2段で二つの前提入力とともに、第5、8、9、10、12段で五つのアンカーとともに入る。「H」はヒューリスティクスのHだ。
匿名化(Anonimización) — この文書では実際の顧客を「共済組合」「認可者」「協会」と呼び、そのシステムを「Autorizaciones」「Kikan」と呼ぶ。意図的なものだ:名前は使用許可を得るまで非公開とする。
アンチパターン(Anti-patrón) — 妥当に見えるが悪い結果に終わると知られているやり方。「パターン」(実証された良い実践)の反対。
セマンティックツリー(Árbol semántico) — 木の形のシステムの地図:根にシステム。その下にドメイン。その下にアクター、プロセス、状態を持つエンティティ、画面、インテグレーション。そして各ノードから、それに触れる保留項目と決定がぶら下がる。エージェントが構築し、あなたが修正し、エージェントがコードに触れる前に読むもの。B.5参照。
天井を締める(Apretar el techo) — 限界(予算、許容最大値)を計測値のすぐ上まで下げ、どんな悪化もテストを失敗させるようにすること。
自動承認者(Aprobador automático) — Autorizacionesで、ルールに従って注文を自動承認するロボット。行動させる前にまず「ドライランモード」(dry-run参照)で走った。
成果物(Artefacto) — 生み出される具体的なもの:ファイル、テスト、スクリプト、文書。はしごでは各段が成果物を残す。
非同期 / 同期(async / sync) — 同期呼び出しは進む前に結果を待つ。非同期呼び出しはタスクを進行中のまま進み、後で結果を回収する。Nodeの実際のデータベースは非同期だ。だからインターフェースは最初からそうでなければならない。
自動発見(Autodescubrimiento) — 進化・修正の道で、誰も書かなかった入力を手に入れるやり方:エージェントがシステムそのもの(コード、データベースのスキーマ、設定、ログ、あるだけの文書)を読んで復元し、各主張にその出所の印([コード]、[データベース]、[設定]、 [文書]、[推定]、そしてオーナーが確認したものには[業務])を付ける。読めないものは穴と印し、埋めない。
協会(Asociación, la) — この文書でKikanシステムの顧客(実名は非公開)をこう呼ぶ:家族を支援し、オムニチャネル窓口とキャンペーンを必要とした市民団体。
AUD-* — 8月にKikanで行われた番号付き監査のシリーズ、保留項目を生んだ。
認可者(Autorizador, el) — 注文を受け取り判定(承認、却下)を返す共済組合のシステムをこう呼ぶ。我々にとっては「オラクル」として機能する:カウンタを検証する真実。
Autorizaciones — 最初の本番システム(実名は非公開)をこう呼ぶ:医療機関向けの共済組合の注文管理の自動化、回路内に人間を置いて。
await — JavaScriptで「この非同期呼び出しの結果を待て」を示す語。await のないデータベース呼び出しは静かなバグだ:コードはデータを得る前に進む。
バックエンド(Backend) — システムの見えない部分:サーバー、ロジック、データベース。「フロントエンド」(画面)の反対。
テスト群(Batería de tests) — プロジェクトのテスト一式、まとめて実行されるもの。
機能ブロック(Bloque funcional) — 一緒になって事業が使える何かをなす、四つから八つの関連する保留項目の集まり。ループの作業単位。その大きさが求めるだけ続く。
金庫(Bóveda, vault) — 秘密(鍵、パスワード)をテキストファイルに置く代わりに保管する暗号化された場所。
錠(Candado) — 明示的な条件なしに危険な行動が起きるのを防ぐ保護。例えば緊急ボタンには専用の錠がある:誤って押せない。
N+1ループ(Bucle N+1) — とてもよくある永続化の誤り:百件の項目を表示するために、システムは一覧のために一つのクエリをし、その後さらに百、項目ごとに一つ行う。一つか二つで済むのに。クエリを数えることで検知され(第7段)、第17段で直される。
セキュリティヘッダ(Cabeceras de seguridad) — サーバーが各応答でブラウザを守るために送る指示(ページを別のサイトに埋め込ませない、暗号化だけを使う、など)。欠けていれば第18段の走査がそれを報告する。
コードの品質(Calidad de código、機械で検証される) — 人間のレビュアーがコードで見るであろうものを、各コミットで道具が計測し、上限を持つ数字に変えたもの:スタイル(リンタとフォーマッタ)、ファイルと関数の大きさ、複雑度、重複、死んだコード、ラチェット付きのカバレッジ、型。第9段。赤のテストの代わりにはならない:正しいが誰も二度と触れないコードを防ぐ。
運用品質(Calidad operativa) — システムが見え、耐えるようにする六つの段:最初のデプロイの前に16可観測性、17永続化、18脆弱性、19性能。後に21と22、二つの監視。別の区間ではない:最初の四つは本番リリースの区間に、最後の二つは運用の区間にある。
進化・修正の道(Camino evolutivo-correctivo) — 方法の三つ目のユースケース:既に存在し、方法で生まれなかったシステムを引き受け、書き直さずに正常化し(八つのステーション、N0から N7)、そのうえでようやく修正モード(失敗しているものを直す)か進化モード(足りないものを加える)ではしごを登る。独自のページを持つ。
特性化テスト(Caracterización, test de) — システムが今日していることを、している通りそのままに、欠陥も含めて捉えるテスト。すべきことではない。緑で生まれ、役に立つことの証明は、わざとフローを壊したとき(ミューテーション)に赤になることだ。レガシーを変えているあいだそれを守るテスト群である。用語はレガシーコードについての文献から来ていて、私はそのまま使う。
手動テストケース(Caso de prueba manual) — 人が機能を試すためのレシピ:識別子、元の保留項目、前提条件、手順(何をし何が見えなければならないか)、人が検証できるバックエンドでの効果を含む期待される結果、テストデータ、そして実行の表。エージェントが機能とともに書き(第10段)、人が実行し、失敗したものが保留項目を再注入する。
根本原因(Causa raíz) — 症状に対する、問題の本当の理由。症状を直せば問題は戻る。根本原因を直せば戻らない。
CI(継続的インテグレーション) — コードをアップロードするたびに自動でテストを実行するサービス(ここではGitHub Actions)。CI/CDは自動デプロイを加える。
安全ベルト(Cinturón de seguridad) — 進化・修正の道で、レガシーの一行を変える前にその周りに存在しなければならないもの:匿名化されたデータを持つテスト環境、繰り返せるデプロイ、コードの外に出してローテーションした秘密、あるものを走らせる継続的インテグレーション、そして特性化テスト群。硬いゲートであり、書かれた例外は一つだけ(本番の緊急)。
CLAUDE.md / PROJECT.md — プロジェクトが何でどう働くか知るため、エージェントが各セッションの最初に読むファイル。
Claude Code — これらのプロジェクトで働き、この文書を書いたAnthropicのツール:リポジトリへのアクセスを持ち、読み、書き、実行し、コミットするモデルのセッション。
コミット(Commit) — コードの歴史の保存点、何がなぜ変わったかを説明するメッセージ付き。各コミットには短い識別子がある(例 2219f7a)。
ゲート(Compuerta, gate) — 進むために満たさねばならない条件。満たされなければ通れない。ForgeではG1からG9まで番号付き。
並行性(Concurrencia) — システムで同時に起きることの数(同時ユーザー、並列プロセス)。
カバレッジ(Cobertura、テストの) — コードの何パーセントが何らかのテストで実行されるか。方法ではラチェットで計測する:今日のものが明日の床だ(第9段)。質ではなく量を計測する。だから第8段の示された赤と一緒に行く。
複雑度(Complejidad、関数の) — 一つの関数がいくつの異なる経路を取りうるか。「もし」が一つ増えるたびに増える。四十の経路を持つ関数は誰にも理解できず、第9段がそれに上限を置く。
CORS — どのドメインからサーバーを呼べるかを決めるブラウザのセキュリティ機構。誤設定されると正当な呼び出しを紛らわしいエラーでブロックする。
受け入れ基準(Criterios de aceptación) — 「ある状況を前提に、あることが起きたとき、ならばある結果が見える」の形で書かれた、要件がいつ満たされたかを定める条件。方法では各保留項目の「どう検証するか」であり、エンドツーエンドテストの台本。
CVE — ソフトウェアコンポーネントの既知のセキュリティ脆弱性の公開識別子。
技術的負債(Deuda técnica) — 「後で直す」として悪いまま残されたもの。方法はこれを禁じる:壊れたものは同じセッションで根本から直す。
食い違い(Discrepancia) — 受け継いだシステムの読み取りで、コード、データベース、文書、そして業務がシステムはこうすると信じていることが一致しない点。それぞれの側の証拠とともに列挙し、オーナーが一つずつ決める:システムが間違っていることもあれば、業務が、コードの覚えていたルールを忘れていたこともある。
教義(Doctrina) — Forgeで、何かをどうするか(どうテストし、どう検証し、どうサイジングするか)を定める短い文書。ツールの中で方法が取る形だ。
ドライバ(Driver、基準) — 決定を一方か他方へ押す要因。第0段では、プロジェクトが適格かを決める要因。
ドライラン(Dry-run、ドライランモード) — プロセスを「空」で実行すること:最終行動以外のすべてをする。自動承認者は最初そう走り、何も承認せずに何を承認したはずか示した。
組み込み(Embebido, embed) — 顧客のシステムの中に常駐アシスタントとして、限定された権限でインストールされたForge。
エンドツーエンド(End to end, E2E) — 人が使うように、画面からデータベースまでシステム全体をテストすること。
環境(Entorno) — システムの分離されたインストール。通常:開発(プログラマのマシン)、 UAT(顧客のテスト)、PROD(本番、本物)。
要件仕様(Especificación de requerimientos) — 古典的方法で、システムがすべきことすべてを記述した長い文書。この方法では分解される:各保留項目が完全な詳細仕様を持ち、保留項目の総和がシステムの仕様。B.5参照。
ステーション(Estación、N0からN7) — 進化・修正の道の正常化の区間の八つの段階のそれぞれ。はしごの二十四と混同されないよう、段ではなくステーションと呼ぶ:新しい段ではなく、立ち上げの段(と第11段、第13段、第14段)を別の順序と別の入口で並べたものだ。
骨組み(Esqueleto, scaffold) — 機能のないプロジェクトの初期構造:起動し、空のテストを持ち、デプロイされる。
処理されない例外(Excepción no manejada) — コードが予期しておらず、していたことを中断させるエラー。第22段はそれらをすべて捕捉する。バックエンドで、ジョブで、そしてブラウザで。
フェイルクローズド(Fail-closed) — 「閉じて失敗する」:疑いや誤りの前でシステムは行動しない。「フェイルオープン」、疑いの前で進む、の反対。
フォールバック(Fallback、レガシーへの) — 新しい経路が失敗したとき古い経路に戻ること。方法はこれを禁じる:古いシステムがあれば監査して移行する。静かな安全網として残さない。
フィクスチャ(Fixture) — テストやデプロイの実行前に読み込むテストデータ。
フリップ(Flip、スイッチ) — コードに触れずに二つの経路(例えば古いエンジンと新しいエンジン)から選ぶ設定変更。
Forge(Yujin Forge) — 私が構築したツール:Claude Codeの上に方法(教義、ゲート、保留項目、チャットパネル、モバイルアプリ、組み込みモード)を加える層。
フロントエンド(Frontend) — システムの見える部分:画面。
フルスキャン(Full scan) — 助けるインデックスがないためテーブル全体を読むデータベースクエリ。小さいテーブルでは気づかない。数百万行ではシステムを倒す。
G-DOC — Forgeで、変更と同じコミットで文書を更新することを要求するゲート。
gate-ci — パッケージする前に継続的インテグレーションが緑で終わるのを待つKikanのデプロイジョブ。
GCP — Google Cloud Platform、協会の二つのシステムのサーバーが動くクラウド。
GOTCHAS — 既知の「罠」を記録するファイル:既に一度払った誤り、その匂い、根本原因、修正、事前の検知法付き。
グリーンフィールド / ブラウンフィールド(Greenfield / brownfield) — ゼロからの新規プロジェクト(グリーンフィールド、「緑の野」)対既存のものから始めるもの(ブラウンフィールド、「使われた野」)。
Grep — ファイル内のテキストを検索するコマンド。「計器であってgrepではない」は:重要な数字はテキスト検索で数えて得るのではなく、テスト付きのプログラムで得る、の意。
機能的収束グループ(Grupo de convergencia funcional) — 附属書Hが機能を束ねる仕方: その人が何をしに来たかで束ね、データベースの表でもコードのモジュールでもない。「診察の代金を受け取る」はグループだが、「支払いテーブル」はグループではない。画面に触れる保留項目はすべて自分のものを宣言する(アンカー1、第5段)。
ヒープ(Heap) — プログラムが使うメモリ。「テスト群がヒープで死んだ」はテストがメモリを使い切り、失敗したように見えたの意。
HITL(human in the loop、回路内の人間) — システムが行動する前に人が承認する設計。 Autorizacionesでは手動承認者。
孤児(Huérfano、孤児ターン) — 起動した者が既に見失っているのに走り続けるプロセス。
インデックス(Índice) — 検索を速くするデータベースの補助構造。インデックスなしではクエリはフルスキャンになる。
相関識別子(Identificador de correlación) — 各行動が始まるとき(クリック、夜のジョブ、届いたメッセージ)にそれに与えられる固有の番号で、その行動が引き起こすすべてに、データベースと外部呼び出しまでくっついて旅をする。記録の中でその番号を探せば、その行動の完全な歴史が現れる。第16段の中心だ。
インデックス(Índice、データベースの) — 本の索引のように:テーブル全体を読まずに行を見つけるためにデータベースが保守する構造。インデックスがなければクエリはフルスキャンをする。インデックスは実際のクエリから導かれるもので、推測されるものではない(第17段)。
要件の取り込み(Ingesta de requerimientos) — 事業の依頼が方法に入る瞬間:まず散文で、オーナーとともに、その後エージェントによって検証可能な保留項目に変換され、エージェントは足りないものを質問する。
インジェクション(Inyección) — 利用者がフォームに書いたものが、システムによって命令(たとえばデータベースへのクエリ)として解釈されてしまう脆弱性。第18段の静的解析がそれを探し、修正の赤のテストがもう通らないことを実証する。同じ考えは、本番を読むエージェント(第23段)や他人のコードと文書(進化・修正の道のN2局)にも当てはまる:ログ、チケット、コメントに指示のように読めるものが含まれていても、それはデータであって命令ではなく、エージェントはそのように扱わなければならない。
IPC(プロセス間のリード) — 二つのプロセス間のチャネル。Forgeでは「リード」として使われた:親プロセスが死ねば子はそれを知って終了する。
JSON(でのストレージ) — データベースの代わりにJSON形式のテキストファイルにデータを保存すること。始めるには役立つ。数百万行には役立たない。
Kikan — 協会のオムニチャネル窓口とキャンペーンのシステム、二番目の本番システム。
レイテンシ(Latencia) — 一つの行動が応答するのにかかる時間。中央値(行動の半分はこれより短かった)と95パーセンタイル(95%はこれより短かった。残りの5%が苦情を言う利用者だ)を見る。第19段と第21段。
レガシー(Legado, legacy) — まだ使われている古いシステム。
基準線(Línea base) — ある数字が普通に出していた値(たとえば直近十四日の平均)。第21段の「範囲外」とは、固定の閾値を超えているか、基準線と大きく違うことだ。
タイムライン(Línea de tiempo) — この文書のパートB:各段をいつ登り、その間にインフラ、取り込み、開発、テスト、人間の目のどんな作業が起きるか。
リンタ / フォーマッタ(Linter / formateador) — リンタはコードを読んで、まずく書かれたものや危険なものを、スペルチェッカーのように印すプログラム。フォーマッタはそれを単一のスタイルに整える。二つとも第9段で各コミットに走る。
ログ(Log) — プログラムが行っていることの記録。「ログで検証しろ」は:エージェントがやったと言うことを信用せず、記録を見ろ、の意。
MariaDB — Kikanが本番で使うSQLデータベースエンジン。
プロフィール別機能行列(Matriz de funcionalidad por perfil) — 行にプロフィール、列に機能を置いた表で、誰が何をできるかを言う。メニュー、ルート、権限は三箇所に三回書く代わりにそこから導かれる。三回書くとひとりでに同期が外れていくからだ。附属書Hのアンカー2 (第8段)の道具だ。
ガード付きの計器(Medidor con guarda) — 何か(クエリの数、ループの数)を測るスクリプトで、計器が正しく測ることを検証する自身のテストを持つもの。「ガード付き」は「テストで守られた」の意。
嘘をつく(Mentir、計器が) — 計器が測るべきものの一部を見ていないため間違った数字を返すこと。我々には二度起きた。
三か月目(Mes tres) — 急いで構築されたシステムが問題を見せ始める時点を指す私の表現:既に実データと実ユーザーを持つとき。
モック(Mock、シミュレート) — テスト中にシステムの実際の部分をシミュレーションで置き換えること。「自分自身をモックしない」はまさに試したい部分をシミュレートしないこと。
ミューテーションによる赤(Mutación, rojo por) — 特性化テストが何かを見張っていることを実証するやり方:一時的な変更でわざとフローを壊し、テストが赤になるのを見て、戻して、緑を見る。ミューテーションによる赤のない特性化テストは、何も見ていないから通るテストだ。
NAC3 — アプリケーションの画面をプログラムから操作できるようにする(インターフェースの各要素が識別子と操作を持つ)Forgeのプロトコル。エンドツーエンドのテストを可能にする。方法に必須ではない:手段であって条件ではない。
記録のレベル(Nivel de registro) — システムが記録にどれだけの詳細を書くか:エラー(失敗したものだけ)、警告、情報(本番での普通)、デバッグ、トレース(一歩ごと)。方法ではレベルは設定で、環境ごとに、再デプロイせずに変える(第16段)。
Node(Node 22) — サーバーのJavaScriptが動く環境。「Node 22固定」はすべての環境が同じものを使うようバージョンを釘付けにしたの意。
正常化(Normalización) — 方法で生まれなかったシステムを、その機能に触れずに、方法がループを開くときに前提としている状態まで持っていくこと。二つの速度で行う:どんな変更よりも前の安全ベルトと、各モジュールに触れたときに払う残りの負債(「触れたときに払う」と印された正常化の保留項目は、そのモジュールに入るブロックと一緒に入る)。決して、始める前の「全体清掃」ではない。
可観測性(Observabilidad) — システムが走っている間にそれが見えること:設定可能なレベルを持つ構造化された記録、行動ごとの相関識別子、健全性の指標。可観測性がなければ、各インシデントは証拠ではなく仮説で診断される。第16段。
共済組合(Obra Social, la) — 最初の本番システムの顧客である医療支援組織(実名は非公開)をこう呼ぶ。
オラクル(Oráculo) — 結果を検証できる外部の真実の源。
P0、P1、P2 — 発見の優先度レベル:P0は今すぐ解決すべきもの。
自動操縦(Piloto automático) — エージェントが何時間も(24または48)単独で、質問せずコミットとプッシュをし、最後に要約を納める書面の委任。
上書きする(Pisar、設定を) — 誤って何かの上に書くこと。
ホワイトボード(Pizarrón、掲示板) — 私が読むためにエージェントが報告を残すForgeの共有掲示板。
プロフィール(Perfil、ユーザーの) — システムを使う人の種類を、何をしに来るかで言ったもの:管理、運用、照会、顧客。技術的な役割でも権限でもない:誰かだ。プロフィール一覧は附属書Hの二つの前提入力の一つで、第2段で書く。附属書がそのあと測るものはすべてプロフィールごとに測る。
Playwright — 人がするように画面をテストするためプログラムからブラウザを制御するツール。
PND(保留項目) — 作業キューの番号付き項目(PND-001、PND-002…)。この方法では、保留項目が計画そのもので、それぞれ詳細な仕様を持ち、閉じた保留項目は完了したことの文書。
ページング(Paginación) — データを全部まとめてではなく、ひと塊ずつ(二十件ずつ、千件ずつ)表示または処理すること。第17段の典型的な修正の一つ。
95パーセンタイル(Percentil 95) — 計測の95%がその下に収まる値。レイテンシでは:「行動の 95%はこれより短かった」。平均は長く待った人を隠すので、これが重要な数字だ。
接続プール(Pool de conexiones) — システムがデータベースとの間に同時に保っている「開いた回線」の数。尽きると行動は待たされるか失敗する。負荷テストで最初に壊れるのはたいていこれだ。
閉じた保留項目(Pendiente cerrado、完了の文書) — 閉じるときにその仕様、それを生んだ決定、閉じたときの証拠、コミット、日付を保持する保留項目。閉じた保留項目のキューはシステムの機能的な履歴。
クエリ予算(Presupuesto de consultas) — アプリケーションの経路がデータベースに対して行えるクエリの最大数、計測されテストで守られる。
赤で証明(Probado en rojo) — 修正が緑にする前に、古いコードに対して失敗することが示されたテスト。
PROD(本番) — 本物の環境、顧客が使うもの。
昇格(Promoción、UAT → PROD) — 何かをテスト環境から本番環境へ制御された方法で渡すこと。
負荷テスト(Prueba de carga) — リポジトリに保存され、自分のテストを持つプログラムで、多くの利用者が同時にシステムを使うところを模擬し、スループット、レイテンシ、エラーを計測し、破断点を見つける。第19段。
ミューテーションテスト(Pruebas de mutación) — コードをわざと壊すプログラム。一度に小さな変更を一つずつ(条件を反転させる、一行を消す、演算子を変える)、テストを走らせ、それらの誤りをいくつ捕まえるかを数える。どのテストも捕まえない誤りは「生き残るミュータント」で、捕まえた割合が得点。第9段では利用者のいるどんなプロジェクトでも必須で(実際の利用者がいないときだけ任意)、エージェントが赤を装えるという反論への答えだ。特性化の「ミューテーションによる赤」と混同しないこと。あれは同じ考えを、一つのフローに手で適用したものだ。
受け入れテスト(Pruebas de aceptación) — 本番のために受け入れる前に、オーナーまたは信頼できるユーザーが本当に使うようにシステムを使って行うテスト。人間によるもので、エージェントは行わない。
破断点(Punto de ruptura) — システムの何かが動かなくなる正確な負荷と、その何かが何か(データベースへの接続、メモリ、キュー)。負荷を一段ずつ上げて見つけ(第19段)、そこから第20 段の警報の閾値が出る。
プル / プッシュ(Pull / push) — リモートリポジトリ(GitHub)からコードをダウンロード、アップロードすること。
レシート(Recibo) — コマンドの出力を出たままの形で貼ったもの。正確なコマンド、それが走った対象のバージョン、数字、終了コードを含み、オーナーがそれが何をするか理解しなくても、もう一度走らせられるようにしたもの。第8段では、赤は語り(「テストは期待どおり失敗した」)ではなく、レシートでなければならない。
Ref. N — 参照文書で日付と証拠とともに説明された実際の事例への短い参照。手順をきれいに保ち、詳細を利用可能にしておくためにある。
構造化された記録(Registro, log, estructurado) — システムが何かをするたびに書く一行で、常に同じ部分を同じ順序で持つ(日付と時刻、レベル、モジュール、相関識別子、アクター、メッセージ)。機械で検索できるように。第16段。
スループット(Rendimiento, throughput) — システムが一秒あたり何件の行動に耐えるか。負荷テスト(19)で計測し、監視(21)で見張る。
周期報告(Reporte cíclico) — 監視(21と22)が毎週か毎月、独りで生成する要約で、その期間の逸脱とエラーを含み、オーナーがエージェントと読んで何が保留項目になるかを決める。警報の反対だ:落ち着いて読む。
回帰(Regresión) — 既に動いていたものが変更後も動き続けることを検証するテスト。
再注入(Reinyección、要件の) — 開発の外から保留項目としてループへ戻ってくるもの:業務からの新しい依頼、手動テストケースの実行で人が見つけた失敗(10)、監視の逸脱(21)、捕捉されたエラー(22)。プロセスの図(パートB)がそれらを戻り矢印として示している。
リポジトリ(Repositorio, repo) — コードがその全歴史とともに住む場所。「標準リポジトリ」はGitで管理され認識可能な構造を持つもの。
保持(Retención, retention) — 各テーブルのデータを削除する前にどれだけ保管するか。
ロールバック(Rollback、戻り道) — デプロイがうまくいかなかったとき前のバージョンに戻ること。デプロイにスキーマやデータの移行が含まれていた場合、コードを元に戻しても移行は元に戻らない。それを元に戻すか埋め合わせるための書かれた計画も別に必要だ(第15段)。
RPAForce — これらのシステムが納品される私のブランド。
ランブック(Runbook) — 一歩ずつ書かれた運用手順。「冪等」は何も壊さず二度実行できるの意。
シーダー(Sembrador, seeder) — 環境にテストデータを読み込むスクリプト。
シフトレフト(Shift left) — テストを開発プロセスのより早い時点へ移すこと。
スメル(Smell、匂い) — 失敗する前の、コードに何か問題がある兆候。
SQ(品質基準) — Forgeでの人間とエージェントの共働の約束。
SQL — リレーショナルデータベースの言語。
フローごとのエラー率(Tasa de error por flujo) — 誰かがあるフローを使った(予約を登録した)百回のうち、何回が失敗したか。オーナーが説明なしに理解する、エラーの報告(22)の数字だ。
タグ(Tag) — バージョンを印すコミット上のラベル。
TDD — 「テストが先、コードが後」。方法はこれを普遍的なルールではなく小さい範囲の選択肢として残す。
トークン(Token) — 二つの意味。AIでは:モデルが処理するテキストを測る(そして課金する)単位。セキュリティでは:アクセス認証情報。
区間(Tramo) — 登る順に並んだ四つの段のグループのそれぞれ:立ち上げ(0から4)、ループ(5から12)、本番リリース(13から20)、そして運用(21から23)。
トレーサビリティ(Trazabilidad) — 二つの意味、どちらも方法の中にある。要件においては:要件を、それを実装する保留項目、それを証明するテスト、それを閉じたコミットまで辿れること。別のマトリクスではなく、保留項目そのものだ。運用においては(第16段):帰結のあるすべての行動が、誰が、いつ、何を、どこから、どんな結果でという跡を、アプリケーションが編集できない監査に残し、そして相関識別子があらゆる行動を画面からデータベースまで追えるようにすること。
ラチェット(Trinquete) — 一方向にしか回らない機構。Kikanでは await なしの呼び出しのカウンタで、下がることしかできない:上がればテストが失敗する。
ターン(Turno) — エージェントとの対話の一往復:ユーザーが頼み、エージェントが働いて答える。
UAT — 本番の前に顧客がテストする環境。
閾値(Umbral) — そこから先は監視が知らせる限界の数字。方法では「目分量」で置かない:余裕を持って破断点(19)から出るもので、計測された書かれた理由なしに、警報を黙らせるために上げてはいけない(21)。
Urazuke(裏付け) — 方法の名前。日本語で、ある主張が持つ根拠、背後から支えるもの。 *裏付ける*、証拠で支える。u-ra-ZU-keと発音する。翻訳しない。
バイブコーディング / バイブコーダー(Vibecoding / vibecoder) — 手でコードを書く代わりに、望むものを描写してAIと会話してソフトウェアを構築すること。バイブコーダーはそれをする人。
番人(Vigía) — Autorizacionesで、何が詰まっているか定期的に確認して押すプロセス、二度押さないためのガード付き。
画面の人間による目視(Vista humana de las pantallas) — オーナーが、画面に触れる各保留項目とともに、テスト環境で新しいまたは変更された各画面の実際のスクリーンショットを見る習慣。どのテストも見つけないものを見つける十秒。
脆弱性(Vulnerabilidad) — 誰かが侵入したり、データを盗んだり、システムに本来すべきでないことをさせたりするのに使える欠陥。他人のソフトウェア部品の既知のものはCVEという番号とともに公開される。第18段はそれを四つの層で機械で探し、保留項目として扱う。
ボリューム(Volumetría) — システムが扱うデータの量:年間の行数、ユーザー、ピーク。
ウォッチドッグ(Watchdog、沈黙の番犬) — 別のプロセスが生きている兆候を出し続けているか確認し、長く黙っていれば殺すプロセス。
Yujin — Forgeがその商業プロダクトであるエコシステム。
ミューテーションによる赤 — 以前のバージョンがなく、テストを走らせる相手がないときに、テストが振る舞いを見分けることを証明する方法。新しい関数に意図的な欠陥を植え、その欠陥に対してテストが失敗し、レシートに欠陥の diff が付く。保留項目ごとにミュータントひとつ(段 8)。コードベース全体のミューテーションテスト(段 9)とは別物。
エラーの発生源 — 捕捉したエラーがどこから来たか。システムからか、それを観測する道具(パネル、常駐エージェント、監視)からか。道具のエラーは別に列挙し、保留項目を開かない(段 22)。
測定の期間 — 行数の集計が対象とする最初と最後のレコード。データベースかログから読む。検証可能な期間がなければ、正しい数でも誤報になりうる(段 21)。