AIは最高級言語になれるのか? -「動いている挙動が正義」から始める設計論- ②
※本記事は、筆者の考えをもとに、生成AI(ChatGPT)と対話しながら構成・文章化したものです。
目次 / Contents
私が理想とする「最高級言語」構想
――仕様駆動AI開発という、言語未満の実装から
ここからは、
私が今「最高級言語」と呼んでいる構想について書く。
ただし最初に断っておくと、
これは最初から「言語を作ろう」として考えたものではない。
今のところ、
仕様駆動AI開発手法と呼ぶ方が、意味としては正確だ。
では、どんな構想なのか。
“最高級言語”が成立する形
この構想が、
実験として一番美しく回る形は、おそらく次の構成だ。
- 仕様書
入出力契約と安全策だけを書く
(DDNS への負荷制限、タイムアウト、多重起動防止など) - テスト
ブラックボックスの受け入れ試験
合否判定はここだけに集約する - 計測
ログやメトリクスによって
「期待値とのズレ」を機械的に抽出する - 修正
AI がテスト失敗レポートを読み、自己修正する - 人間
実機テストと最終承認のみを担当する
このループが自然に回り始めたとき、
AIは“最高級言語”として振る舞い始める
人間は「どう書くか」ではなく、
「どう振る舞ってほしいか」だけを指定すればよくなる。
なぜ GitHub / GitHub Actions が効くのか
この構想において、
GitHub と GitHub Actions は単なる便利ツールではない。
構造的に必須だ。
1. 環境を固定できる(再現性)
GitHub Actions のランナーは、
- 同じ OS イメージ
- 同じ初期状態
- 同じ手順
で必ず実行される。
つまり
「俺の環境では動く」が成立しない。
- ubuntu-latest(※実運用では pin 推奨)
- Alma 系もコンテナや VM で再現可能
AI にとって、
再現性は思考よりも重要な前提だ。
2. 失敗時の証拠が自動で残る(観測)
Actions は失敗した瞬間に、
- stdout / stderr
- キャッシュファイルの中身
- 生成物(設定、ログ、バイナリ)
- 期待値との差分そのもの
を自動で残す。
これは
AIに渡すための「現実の証拠」 が
毎回揃うということを意味する。
3. テストが仕様になる(契約の固定)
Actions で回るテストは、
そのまま 合格条件=仕様 になる。
例えば:
- 人間が実装したものと、AIが実装したものの振る舞いを比較するテスト
- 回数制限・タイムアウト・多重起動防止といった性質テスト
- 「DDNS サーバーに負荷をかけない」ことを回数で縛る
ここまで定義できると、
実装が Rust でも C でも
あるいはアセンブリでも関係なくなる
残るのは、挙動だけだ。
4. バグ修正ループを機械的に回せる(自動化)
- PR が出る
- テストが走る
- 落ちたら、落ちた証拠が残る
「直したつもり」が激減する。
さらに一歩進めると、
- AI が修正案をコミットする
(人間はレビューと実機テストのみ) - Actions が判定する
- 落ちたらログを材料に AI が再修正する
これはもはや
“自己修正コンパイラ” の土台だ。
5. 証拠が“会話”ではなく“履歴”に残る
ここが、この構想で最も重要な点だ。
- issue
- PR
- commit
- workflow logs
- artifacts
これらすべてが、
仕様の進化ログ として残る。
1年放置しても、
「なぜそうなったのか」に戻ってこれる。
これは 私の自作DDNSクライアント が大事にしてきた
「状態をファイルに置く」という思想の、
開発プロセス版でもある。
GitHub Actions は AI のための「現実判定装置」
AI + GitHub + Actions は、
「仕様(テスト)→ 実装 → 実行 → 証拠 → 修正」
というループを、
人間の記憶や理解力から切り離して
機械的に回すことができる。
だから GitHub Actions は、
AI にとっての 現実判定装置 になる。
仕様駆動AI開発と「最高級言語」の違い
最後に、この二つの違いをはっきりさせておく。
- 仕様駆動AI開発
AI と GitHub を「どう使えばいいか」を説明するもの - 最高級言語
AI と GitHub を使っていることを
使う側に意識させないもの
違いはそれだけだ。
だがこの差は、
方法論 と 言語 を分ける、決定的な一線
だと私は考えている。
私の再定義と Li+
- プログラミング言語は
プログラムを書く言語 - プログラム言語は
プログラムを作る言語
私はそう勝手に再定義し、
この最高級プログラム言語を
Li+(リプラス)言語 と呼ぶことにした。

