【素朴な疑問】QuintやLemmaScriptが複雑な不等式とか時相論理のケースでバグを見つけることができ、品質向上に寄与するのはわかった。でも、現実に起きるバグってその種類に限らないし、むしろそんなのレアケースでは?
■ その見方は基本的に正しい
・現実のバグの多くは、形式手段が得意な種類ではない
・形式検証は、限られた種類のバグに対する、高価で強力な道具という位置づけ
■ 形式手段がほぼ効かないバグ
・要求の誤解:そもそも作るべきものを取り違えている
・外部とのつなぎ:APIの使い方の誤り、設定ミス、ライブラリの想定外の挙動
・環境:デプロイ、権限、ネットワーク、バージョン違い
・UIや使い勝手、性能の問題
・仕様の書き漏らし:仕様に書いていないことは検証されない
・このあたりが日常のバグの大半を占め、レビュー、普通のテスト、型、監視で対処するもの
■ それでも形式手段が使われる理由
◆ 頻度は低いが、被害と発見の難しさが大きい
・並行処理や分散システムで、特定の順序やタイミングでしか起きないバグ
・テストではほぼ再現せず、本番で初めて出て、データ破損や二重課金のような取り返しのつかない形になりやすい
・AWSの報告でも、モデル検査で見つかったのは長い手順を踏まないと起きない、レビューやテストでは見つからなかった種類のバグだった
・「レアケース」だからこそ、テスト以外の手段が要る
◆ 書く過程で要求の曖昧さが見つかる
・仕様を厳密に書こうとすると、「この場合どうするの」が次々に出てくる
・実際には、検証ツールを回す前のこの段階で見つかる設計の穴が、得られる価値の大きな部分を占めることが多い
・これは上の「要求の誤解」にも一部効く
■ 現実的な使いどころ
・全体に適用するものではなく、壊れると致命的で、テストでは見つけにくい一部分に絞って使う
・お金、権限、データ整合性、並行・分散のプロトコル
・それ以外は、普通のテストとプロパティテストで十分なことが多い
■ 前の投稿の主張の割り引き方
・「AI生成のユニットテストが見逃しがちな、別の種類のバグを見つける」という言い方は妥当
・ただし、それはバグの一部の種類であって、コード品質全体を底上げする万能策ではない
・投稿者自身の「魔法の弾丸ではない」という但し書きが、まさにこの点
★SMTソルバーとは★
・論理の条件が混ざった連立方程式・不等式に、解があるかを自動で判定する道具
・正式名はSatisfiability Modulo Theories(理論つきの充足可能性判定)
・用語としては「制約充足問題を自動で解く道具」
■ 扱える条件
・等式と不等式
・「かつ」「または」「でない」「ならば」による組み合わせ
・整数、実数、配列、ビット列、文字列などの未知数
・真偽値だけを扱うSATソルバーに、これらの「理論」を足したもの
■ 検証での使い方
・「性質が破れる状況」を条件として渡す
・解がない(unsat)→ 性質は破れない=証明成功
・解がある(sat)→ その解がそのまま反例(バグの起きる入力)
・連立方程式と違い、目的は解を求めることより「解がない」と示すこと
■ 代表例と使われ方
・Z3(Microsoft発)、cvc5が定番
・Dafny(LemmaScriptの変換先)、Apalache(quint verify)、Verusなどが裏側で使っている
■ 限界
・非線形な掛け算や「すべての〜について」を含む式が苦手
・答えが出ずにタイムアウトや「不明」で終わることがある
・そのため人が補題やループ不変条件でヒントを与える
・それでも届かない部分は、Leanなどの証明支援系で人が証明を組み立てる
・TLA+やQuintは、見た目はプログラムでも、書いているのは「状態の組についての論理式」と「その上の時相論理式」
・モデル検査は、その含意が成り立つかを有限の範囲で機械的に確かめる作業
・数学や論理学の話は、使い方の表面ではなく、意味の土台にある
・TLA+は、作者のLamportが「仕様はプログラムではなく数学だ」と強調している言語
・土台は、集合論(ZF集合論)と時相論理
■ なぜ実務では数学が表に出にくいか
・仕様を書いてモデル検査にかけるだけなら、プログラムを書く感覚で使えてしまう
・Quintはまさに、その使い方に合わせて文法をプログラマー向けにしている
・数学が前面に出てくるのは、詳細化を示すとき、活性を扱うとき、TLAPSで証明するとき
■ 形式検証の大まかな歴史と流れ
・形式検証の主流は、もともとカリー・ハワードとは別の流れから来ている
・ただし最近、カリー・ハワード系(Leanなど)が勢いを増しているという変化はある
■ 大まかな歴史
◆ 1960〜70年代:論理でプログラムを検証する流れ
・FloydやHoareが、プログラムに事前・事後条件を付けて正しさを示す方法(ホーア論理)を提案
・LemmaScriptやDafnyの直接の祖先で、型ではなく論理式で考える
・Milnerの LCF:タクティクで証明を組み立てる方式。HOL系やIsabelleの祖先で、カリー・ハワードではない
・抽象解釈(Cousot夫妻、1977年)もこの時期
◆ 同じ頃のカリー・ハワード系
・de BruijnのAutomath(1960年代末)、Martin-Löfの型理論(1970年代)
・カリー・ハワード対応が広く知られるようになったのも1970年代以降
・ただしこちらは主に論理学・数学基礎論側の関心で、実用的な検証の主流ではなかった
◆ 1980〜90年代:自動化の流れが本格化
・モデル検査(Clarke、Emerson、Sifakis)。後にチューリング賞
・Coq(構成の計算に基づく)が登場し、カリー・ハワード系の証明支援系が実用に近づく
・Pentiumの除算バグ(1994年)をきっかけに、ハードウェア業界でモデル検査や定理証明が本格導入される
◆ 2000〜2010年代:SMTの時代
・SMTソルバー(Z3など)の性能向上で、Dafny、有界モデル検査、ドライバ検証などの自動化が一気に実用的になる
・同時期に、Coqによる検証済みコンパイラCompCert、IsabelleによるOSカーネルseL4といった、証明支援系の大型成果も出る
・AWSのTLA+活用、MetaのInferなど、産業での採用事例が増える
■ 最近の流れ
◆ Leanの台頭
・Lean 4と数学ライブラリmathlibを中心に、数学者のコミュニティが大きく育った
・カリー・ハワード系の証明支援系が、初めて広い利用者層を持ち始めている
◆ AIとの組み合わせ
・従来、証明支援系の最大の弱点は「人が証明を書く手間」だった
・最近はAIがLeanの証明を書く研究が急速に進んでいる(数学オリンピックの問題をLeanで解いた例など)
・証明の正しさはカーネルが機械的に検査するので、AIが書いた証明でも信頼できる
・つまり「手間が高すぎる」という、カリー・ハワード系が主流になれなかった理由そのものが崩れつつある
■ 最初の投稿とのつながり
・LemmaScriptがDafnyとLeanの両方を変換先に持ち、「エージェントが迅速にイテレーションできる」と言っているのは、まさにこの流れ
・人には重すぎた証明作業を、AIに回させて、機械が検査する
・形式検証の費用対効果の計算が、AIで変わり始めている、というのが今の状況
生成AI・AIコーディング ニュース(2026年11月7日)
今日の注目:AIのセキュリティ能力をめぐる発表が続きました。Google DeepMindがAIエージェントで旧来の1024ビットRSAに2つの弱点を見つけたと発表し、OpenAIはサイバーセキュリティ能力を自社基準で最高の「Critical」と評価したGPT-6 Cyberを、限られた組織だけに提供し始めました。
■ Google DeepMind、AIエージェントで旧来の1024ビットRSAに2つの弱点を発見
Google DeepMindが11月6日、人間の暗号研究者とAIエージェントが協力して、旧来の1024ビットRSAに2つの弱点を見つけたと発表しました。1つは署名偽造に関するもので、条件によっては従来の最良手法より理論上約1,600倍効率的です。もう1つは鍵の一括因数分解で、1024ビット鍵を1本追加で破るときの平均コストが約30分の1に下がります。2048ビット以上の鍵は影響を受けないとしています。
出典: officechai.com/ai/google-dee…
■ OpenAI、セキュリティ研究者向けの「GPT-6 Cyber」を限定提供
OpenAIがGPT-6 Astraをサイバーセキュリティ向けに特化させた「GPT-6 Cyber」を公開しました。Preparedness Frameworkではサイバーセキュリティ能力を最高の「Critical」と評価しています。エクスプロイト開発タスクの96%を完了しており、当面はDaybreak Redの審査を通った組織だけが使えます。
出典: deploymentsafety.openai.com/…
■ OpenAI、評価額1.25兆ドルで110億ドルを調達とBloomberg報道
Bloombergが11月6日、OpenAIが評価額1.25兆ドルで新たに110億ドルを調達したと報じました。この調達ラウンドは合計約200億ドルになる見込みで、数週間以内に完了するとされています。9月の報道では評価額1.4兆ドルで300億ドルを目指すとされており、それを下回る水準です。
出典: techcrunch.com/2026/11/06/op…
■ Cursor、クラウドエージェントでWebアプリを作って公開まで行う「Build Live Apps」を提供
Cursorが、クラウドエージェントで動くWebアプリを作り、そのまま公開できる機能を発表しました。アプリの土台作り、必要に応じたPostgresデータベースの用意、Cursor SSOによる認証、ホスティングまでを自動で設定します。公開前には決まった手順の検査とエージェントによる検査の両方でセキュリティを確認し、ユーザーが明示的に公開を決めるまで公開されません。クラウドエージェントを有効にした全有料プランで使えます。
出典: cursor.com/changelog/build-l…
■ Anthropic、Claude Enterpriseにセキュリティチーム向けの管理機能を追加
Anthropicが11月5日、Claude Enterpriseにセキュリティセンター(ベータ)を追加しました。組織の設定をAnthropicの推奨設定と比べられます。プロンプトやツール呼び出しの前にDLPなどの検査を挟める「Inference hooks」は一般提供になりました。親組織の一元管理コンソール、Admin APIによるメンバーのサインアウト、IPアローリスト、CoworkでのEDR対応もベータで加わっています。
出典: claude.com/resources/article…
■ GitHub、Copilotの効果ダッシュボードでチャットとVS Codeエージェントの利用も集計
GitHubが11月6日、Copilot impact dashboardのエージェント導入チャートにCopilot ChatとVS Code Agentsウィンドウを加え、集計対象を9機能にしました。「Passive users」という区分は「Chat-first users」に名前が変わりました。企業・組織向けの28日間利用状況レポートにも同じ2機能が加わります。
出典: github.blog/changelog/2026-1…
■ METRの独立評価、AnthropicのAI研究開発のペースが約1.9倍に
評価機関のMETRが11月5日、AnthropicのAI研究開発がどれだけ加速しているかを独自に評価した結果を公開しました。2025年10月以降、Anthropicの能力指標の伸びは1.9倍(95%信頼区間1.5〜2.8倍)に速まったと推定しています。METRは、加速分の「おそらく約80%」はAIによるものとみています。ただし、METRが最も重要とした証拠の多くはAnthropicが非公開にしています。
出典: metr.org/blog/2026-11-05-ant…
■ Thinking Machines Lab、MoEモデル「Inkling 2 Small」を発表
Thinking Machines Labが「Inkling 2 Small」を発表しました。総パラメータ数5,940億、アクティブ17B(170億)のMixture-of-Expertsモデルで、画像入力にも対応します。まずTinker経由で提供し、外部の安全性テストを経たうえで、重みを「来週」Apache 2.0ライセンスで公開する予定です。
出典: thinkingmachines.ai/news/ink…
今日の学び。outputstyle=LearningでClaude Codeに教えてもらうと学習がとてもはかどります。
Q. テストと検証は違うのか。
A. 一般と形式手法の世界の用法という分野によって「検証」の意味は違います。
Q. ソフトウェア工学一般での「検証」とは何か。
A. 「仕様どおりに作られているか」を確かめる活動の総称です。この定義では、テスト、レビュー、静的解析、モデル検査、定理証明がすべて検証の手段です。IEEE や ISO の用語集はこの立場で、V&V(Verification and Validation)の V がこれです。対になる「妥当性確認」(validation) は「そもそも作るべきものを作っているか」です。この用法では「テストは検証の一種」なので、「テストと検証は違う」とは言えません。
Q. 形式手法の世界での「検証」とは何か。
A. 「性質が成り立つことを数学的に示す」ことに限定します。この用法ではテストは検証に含まれず、さっき説明した区別になります。Quint の verify も、この狭い意味です。
Q. 結局どう理解すればよいか。
A. 文脈で範囲が変わります。ソフトウェア工学一般では、検証は仕様適合を確かめる活動すべてを指し、テストも検証に含まれます。形式手法では、検証は数学的に正しさを示すことだけを指し、テストは含まれません。私がさっき「違う」と言い切ったのは Quint の文脈だったからで、一般論としては「テストは検証の一手段だが、網羅性のない弱い手段」が正確な言い方です。
Q. なぜ同じ語で意味がずれるのか。
A. 分野ごとに語が育った歴史が違うからです。形式手法の人が「テストでは検証できない」と言うときは狭い意味、品質保証の人が「テストで検証した」と言うときは広い意味で、どちらも誤りではありません。混乱を避けたいなら「網羅的か」「ok が何を保証するか」で言い換えるのが安全です。語の定義争いより、保証の中身を
Q. テストは反例探しか。
A. 本質的にはそうです。テストは「この入力で、この結果になるはず」という主張を立て、実際に動す行為です。破れれば反例が見つかったことになり、破れなければ「この入力では反例がなかった」としか言えません。Dijkstra の「テストはバグの存在を示せるが不在は示せない」という言葉は、テストが反例探しであることをそのまま述べています。
Q. では quint run とふつうのテストは同じものか。
A. 構造は同じで、違いは入力の選び方だけです。ふつうの単体テストは人間が入力を選びます。quint run は乱数が選びます。プロパティベーステスト(QuickCheck など)も乱数で選びます。どれも「性質を書き、入力を与え、破れを探す」という形で、run はプロパティベーステストを状態遷移系に適用したものと見なせます。
Q. モデル検査も反例を出すが、それはテストではないのか。
A. 反例を出す点は同じですが、入力の選び方が「全部」です。TLC は到達可能な全状態を訪ね、Apal論理式で一括して扱います。全部調べて反例がなければ「範囲内に反例は存在しない」と言えるので、そこが反例探しを超えて検証になる境目です。言い換えると、モデル検査は「網羅的な反例探し」で、テストは「部分的な反例探し」です。
Q. テストが反例探しなら、テストに価値はないのか。
A. 逆です。反例が見つかること自体が最大の価値で、実務で見つかる誤りの大半はテストで見つかります。網羅しなくても、1 手で破れるような誤りは数回の試行で踏みます。今回も 0 → -52 は 22 ms でした。網羅が要るのは、特定の状態にしか現れない深い誤り、たとえば残高ちょうど 100 でだけ起合です。テストで取れる誤りを安く取り、残りを検証に回す、という分担が自然です。
Quintおもろい
■ HN AIダイジェスト 2026/11/7(agents-radar より)
■ 特に注目
◆ Claude Code が訪問先サイトにメールアドレスを送信(1554pt / 493コメント)
・Claude Code がアクセスしたサイトに、User-Agent ヘッダー経由でログイン中アカウントのメールアドレスを送っていたという報告。この日の HN AI 系で断トツの1位
・最新版 v2.1.319 の時点で、アカウントのメールや User-Agent 文字列を含むシェル呼び出しを拒否する修正が動いている模様
・業務で使っているなら、バージョンと外部アクセスの経路は確認しておきたい
◆ Jev を使った LLM ジャッジで Opus のコストを75%削減
・ダイジェストの総評で目玉扱い。精度を上げつつコストを大幅に下げたという話。元記事のリンクは未掲載なので要確認
◆「AI が AI 研究を劇的に加速している」(207pt / 158コメント)
・AI による研究の自己加速を論じた長文
・同日に「AI の研究開発が独創的だとは信じがたい」という反論(180pt)も上がり、賛否が割れている
■ その他の新着
◆ モデル・研究
・Gemini Omni 1.2 Flash(297pt):低遅延のマルチモーダルモデル。「ベンチ向け最適化では」という声も
・Memorilla(86pt):潜在意味索引で LLM に長期記憶を持たせる論文
◆ ツール
・NVKE(122pt):Nvidia の GPU ワークロード向け Kubernetes
・AegisKernel:AI エージェント向けのゼロトラスト POSIX ランタイム
・LEGO の機構を資料からエージェントが推論してアニメ化する Show HN
◆ 業界・議論
・Anthropic の IPO、買い手側の想定評価額は1.1兆ドルまで低下(235pt / 492コメント)
・Google が Crusoe のワイオミング州のデータセンター用地を取得
・OpenAI API で外部への SIP 発信が全組織に開放
・大学図書館に AI クローラーが殺到し、一般公開が危うい(125pt)
■ 空気感
「何ができるか」から「どう安全に作り、運用するか」へ。ベンダー製品のデータの扱いが不透明なことに、開発者が厳しくなっている。
■ 参照リンク
・news.ycombinator.com/item?id…
・github.com/anthropics/claude…
・news.ycombinator.com/item?id…
・news.ycombinator.com/item?id…
・news.ycombinator.com/item?id…
・github.com/duanyytop/agents-…
uehaj retweeted
Lean 4は、実際にはどのような仕組みで動いているのでしょうか?
その根底にある考え方は、驚くほどシンプルです。
「命題は型であり、証明はプログラム。そして、証明の検証は型チェックである。」
ある命題 P を証明したければ、型が P であるような項(term)を構築すればよいのです。定理証明器の仕事は、その項が本当に主張された型を持っているかを確認することです。
では、これは実際にはどのように実現されているのでしょうか?型チェッカーは、帰納法、等式、再帰、あるいは rw や simp のようなタクティクを、どのように扱っているのでしょうか?
今回、Rustで実装した最小限のLean 4風定理証明器 MiniLean4 と、その内部実装をゼロから解説する無料のインタラクティブな教材を公開しました。
learn.h5i.dev
この教材は、わずか5種類の項と8つの型付け規則から始まります。そこから少しずつ機能を追加し、実際に動作する証明チェッカーを構築していきます。
まず、型推論と型チェックを実装します。次に、簡約(reduction)と定義上の等価性(definitional equality)を導入します。これによって、カーネルは計算によって同じ結果になる式を等価なものとして認識できるようになります。
続いて、帰納型(inductive types)を実装します。 自然数から始めて、リスト、木構造、さらに一般的な帰納型の族(inductive families)へと拡張していきます。また、recursor(再帰子)を導出することで、再帰や数学的帰納法が内部的にどのように実現されているのかを理解します。
さらに、等式そのものも帰納型として実装し、少数の型付け規則と計算規則だけで、式の書き換え(rewriting)をどのように正当化できるのかを見ていきます。
最後に、タクティクエンジンを構築します。intro、apply、induction、rw といったタクティク自体を信頼する必要はありません。タクティクは証明項を構築するだけで、その正しさはカーネルが独立して検証します。
そのほかにも、宇宙レベル(universe levels)、代入、正規化、そして論理的な矛盾を避けるために型理論がどのように設計されているのかについても解説しています。
インタラクティブなデモも多数用意しました。実際のRust製カーネルをWebAssemblyにコンパイルしているため、ブラウザ上で直接証明を実行できます。
型付けの導出過程を確認したり、式が簡約される様子をステップごとに追ったり、タクティクによって証明状態がどのように変化するかを視覚的に確認したりできます。
このプロジェクトの目標は、定理証明を魔法のようなものではなく、普通のプログラミング言語の実装として理解できるようにすることです。
形式検証という言葉をよく聞くけど結局何をしているのか気になっている方、Lean 4を使ったことはあるけれど、by の裏側で何が起きているのか知りたい方、あるいは、型付け規則がなぜ形式検証の基盤になり得るのか興味がある方に、ぜひ読んでいただければと思います。
e-Bookはこちら!:learn.h5i.dev/
ソフトウェアファクトリーにしたい理由は、CI/CDをしたい動機と全く同じなんだ。
コーディングやレビューがAIのおかげでビルドやデプロイのような単純作業に成り下がったとき、品質検証を強化してビルド・デプロイパイプラインのステップの一つにしたいと言うだけの話。至極当然の話だ。
そうなると、そのパイプラインもソフトウェアシステムなので、対象化され、ISUCONみたいなやり方でチューニング可能になる。これがハーネスエンジニアリング。
注意すべきなのは、2点。
まず一つはファクトリーで開発される対象プロダクトはベルトコンベアにのって通常は手に触れないものになるにせよ、ソフトウェアシステムとしてのファクトリーの開発やデバック、検証は少なくとも当面は手元端末なりで直接開発されることになり、ファクトリーの恩恵はそんなに受けない。ここは人間に律速される。当面は。
2つ目は、ソフトウェアファクトリーは全自動を意味していない。品質の自動検証を努力して強化すればするほど自動に近づくが、それをやらなければ人間がMRレビューを頑張って補う、2つの玉をヒモで結んだ振り子のような関係になる。ヒューマンインザループは残っている。判断と検証をフラグ変数のようにどっちに倒すかは判断になる。責任は逃れられない。そして、検証を頑張るとしたら、その部分は開発対象プロダクト固有になり、ここも手元端末での開発が残る第二の部分だ。
ようはCI/CDを時代に合わせて1段階ブラッシュアップしようぜ、と言うだけのこと。SaaSにする必要なんかもない。
■ 形式検証の大まかな歴史と流れ
・形式検証の主流は、もともとカリー・ハワードとは別の流れから来ている
・ただし最近、カリー・ハワード系(Leanなど)が勢いを増しているという変化はある
■ 大まかな歴史
◆ 1960〜70年代:論理でプログラムを検証する流れ
・FloydやHoareが、プログラムに事前・事後条件を付けて正しさを示す方法(ホーア論理)を提案
・LemmaScriptやDafnyの直接の祖先で、型ではなく論理式で考える
・Milnerの LCF:タクティクで証明を組み立てる方式。HOL系やIsabelleの祖先で、カリー・ハワードではない
・抽象解釈(Cousot夫妻、1977年)もこの時期
◆ 同じ頃のカリー・ハワード系
・de BruijnのAutomath(1960年代末)、Martin-Löfの型理論(1970年代)
・カリー・ハワード対応が広く知られるようになったのも1970年代以降
・ただしこちらは主に論理学・数学基礎論側の関心で、実用的な検証の主流ではなかった
◆ 1980〜90年代:自動化の流れが本格化
・モデル検査(Clarke、Emerson、Sifakis)。後にチューリング賞
・Coq(構成の計算に基づく)が登場し、カリー・ハワード系の証明支援系が実用に近づく
・Pentiumの除算バグ(1994年)をきっかけに、ハードウェア業界でモデル検査や定理証明が本格導入される
◆ 2000〜2010年代:SMTの時代
・SMTソルバー(Z3など)の性能向上で、Dafny、有界モデル検査、ドライバ検証などの自動化が一気に実用的になる
・同時期に、Coqによる検証済みコンパイラCompCert、IsabelleによるOSカーネルseL4といった、証明支援系の大型成果も出る
・AWSのTLA+活用、MetaのInferなど、産業での採用事例が増える
■ 最近の流れ
◆ Leanの台頭
・Lean 4と数学ライブラリmathlibを中心に、数学者のコミュニティが大きく育った
・カリー・ハワード系の証明支援系が、初めて広い利用者層を持ち始めている
◆ AIとの組み合わせ
・従来、証明支援系の最大の弱点は「人が証明を書く手間」だった
・最近はAIがLeanの証明を書く研究が急速に進んでいる(数学オリンピックの問題をLeanで解いた例など)
・証明の正しさはカーネルが機械的に検査するので、AIが書いた証明でも信頼できる
・つまり「手間が高すぎる」という、カリー・ハワード系が主流になれなかった理由そのものが崩れつつある
■ 最初の投稿とのつながり
・LemmaScriptがDafnyとLeanの両方を変換先に持ち、「エージェントが迅速にイテレーションできる」と言っているのは、まさにこの流れ
・人には重すぎた証明作業を、AIに回させて、機械が検査する
・形式検証の費用対効果の計算が、AIで変わり始めている、というのが今の状況
【素朴な疑問】QuintやLemmaScriptが複雑な不等式とか時相論理のケースでバグを見つけることができ、品質向上に寄与するのはわかった。でも、現実に起きるバグってその種類に限らないし、むしろそんなのレアケースでは?
■ その見方は基本的に正しい
・現実のバグの多くは、形式手段が得意な種類ではない
・形式検証は、限られた種類のバグに対する、高価で強力な道具という位置づけ
■ 形式手段がほぼ効かないバグ
・要求の誤解:そもそも作るべきものを取り違えている
・外部とのつなぎ:APIの使い方の誤り、設定ミス、ライブラリの想定外の挙動
・環境:デプロイ、権限、ネットワーク、バージョン違い
・UIや使い勝手、性能の問題
・仕様の書き漏らし:仕様に書いていないことは検証されない
・このあたりが日常のバグの大半を占め、レビュー、普通のテスト、型、監視で対処するもの
■ それでも形式手段が使われる理由
◆ 頻度は低いが、被害と発見の難しさが大きい
・並行処理や分散システムで、特定の順序やタイミングでしか起きないバグ
・テストではほぼ再現せず、本番で初めて出て、データ破損や二重課金のような取り返しのつかない形になりやすい
・AWSの報告でも、モデル検査で見つかったのは長い手順を踏まないと起きない、レビューやテストでは見つからなかった種類のバグだった
・「レアケース」だからこそ、テスト以外の手段が要る
◆ 書く過程で要求の曖昧さが見つかる
・仕様を厳密に書こうとすると、「この場合どうするの」が次々に出てくる
・実際には、検証ツールを回す前のこの段階で見つかる設計の穴が、得られる価値の大きな部分を占めることが多い
・これは上の「要求の誤解」にも一部効く
■ 現実的な使いどころ
・全体に適用するものではなく、壊れると致命的で、テストでは見つけにくい一部分に絞って使う
・お金、権限、データ整合性、並行・分散のプロトコル
・それ以外は、普通のテストとプロパティテストで十分なことが多い
■ 前の投稿の主張の割り引き方
・「AI生成のユニットテストが見逃しがちな、別の種類のバグを見つける」という言い方は妥当
・ただし、それはバグの一部の種類であって、コード品質全体を底上げする万能策ではない
・投稿者自身の「魔法の弾丸ではない」という但し書きが、まさにこの点
オーケストレータと言うより手元の作業端末(個別的だから「ペット」)から、クラウドじゃなくていいから「家畜」開発マシンで開発を回したい。
自動化は元々スキルでやってる話で、自分以外の人もそれに乗せたい。「一人開発」ではなくしたい。そして記録したい。そして数値ベース、根拠ベースで改善したい。
Software Factoryつくってる人たちに
何度でも思い出して欲しいのが
世界最大のリアルファクトリーを
作ってきたイーロンの言葉で
「自動化は最後」
ってやつね
5ステップある最後
これを逆順でやろうとする人が
多すぎというのがイーロンの主張
自動化は楽しいからね
でも多すぎるということは
そこに市場があるということでもあり
Slopware Factory作る方がバズるし
儲かるんだろう
今は
エージェントオーケストレーター
がそれだと思っている
ゴールドラッシュのときに
ツルハシとジーンズという道具を
売るのが一番儲かったけど
ユーザーは結果が出なかった的な
別にLevi’sが悪意でジーンズを
売りまくったとは思ってない
ただ、失敗すると思っているのに
知らん顔してツールを売るのは
倫理的な葛藤があるのも事実で
自分はまたしても馬鹿正直に
全自動では結果出ないよ
ちゃんとグリップしようね
自動化の前に深い理解だよ
だから /relay なんだよ
と世間の波に対して恐らくまだ
早すぎる結論を提示するという
人生で何度目かわからない愚を
おかしているのかもしれない
他の大多数の人と同じように
オーケストレーター作りたい!
と無垢に多くの人が欲しがる
ツルハシとジーンズを作るのに
邁進できる人生が良かったの
かもしれない
なんでもいいからとにかく
売れれば嬉しいと思える人生が
先が見えすぎるのは呪いだぞ
その呪いの存在に自覚的な今でも
それを解除する呪文を持たない
ただ、手だけは止めない
自分の仮説を証明するために
死力を尽くすのみ
何年かかっても













