設計思想
既存のUIライブラリは人間のDXに最適化されている。Axiom UIはLLMによる生成・理解・改変に最初から最適化する。人間はその副次的な受益者になる。
反転(The Inversion)
コードの主要な読み手はもはや人間だけではない。人間の認知負荷向けに積み上げられた抽象化(深い継承、多態、無数の設定オプション)は、LLMにとってはハルシネーションを増やし、context窓とtokenを浪費する負債になる。Axiomはこの負債を持たない。設計上の全判断は、次の問いを通過する:
「この決定は、LLMがこのコンポーネントを一度で正しく生成する確率を上げるか、下げるか?」
上げないものは実装しない。
設計原則 — 5段階のアルゴリズム
順序は不可逆である。
1. 要求を疑う
すべてのprop、コンポーネント、設定に「なぜ必要か」を問う。答えられない要求は、賢い人が作ったとしても愚かな要求である。
2. 削除する
最高のpropは「propがない」こと。1つのことをやる方法は1つだけ — バリアントはハルシネーションの燃料。最高のコンポーネントは「コンポーネントがない」こと。素のHTML/ARIAで足りるものはラップしない。
3. 簡素化する
削除した後に残ったものだけを磨く。削る前に最適化しない。残ったAPIには型と使用例を厚く与える。
4. 高速化する
コンポーネント1個あたりのtoken数とバンドルサイズを計測し、CIでゲート化する。太ったコンポーネントはマージしない。
5. 自動化する — 最後に
MCPサーバー、CLI、ドキュメント生成は、削って一本化した後に作る。存在すべきでないもののための自動化は作らない。
アーキテクチャの帰結
1コンポーネント = 1ファイル
実装・型・ドキュメント・使用例・機械可読manifestを同一ファイルに配置。「context窓に丸ごと入る」ことを設計制約とする。
型が契約
strict: true 前提。状態はdiscriminated unionで表現し、anyを禁止。型定義そのものが一次ドキュメントとして機能する。
コピー&オーン
npmランタイム依存ではなく、CLIでユーザーのリポジトリにコードを注入する。ユーザーがコードを所有する = ブラックボックスなし = LLMが自由に改変できる。
MCPファースト配布
ライブラリ本体と同時にMCPサーバーを提供。エージェントがバージョン整合の取れた仕様をtoken無駄なく取得できる。「docsを貼る」作業自体を消す。
機械可読manifest
各コンポーネントが { intent, props, states, a11y, examples } を構造化データで持つ。エージェントがコンポーネントを「説明」ではなく「選択して描画」できる土台にする。
ゼロコンフィグ・デフォルト
propなしで正しく動く。エスケープハッチは用意するが、必須にはしない。
Non-Goals(作らないもの)
- テーマの無限カスタマイズ機構(1つの良いデフォルトを持つ)
- 複数フレームワーク同時サポート(v0では)
- 「あらゆるユースケースに対応」を謳うことすべて
- 同じ目的を果たす2つ目のAPI
- 使われるか不明な機能のための設定オプション
成功の測定基準
主観ではなく数値で判定する:
-
token/component— 平均コンポーネントが単一のcontext窓に収まること。 -
bundle/component— コンポーネント単位のバイト数を追跡し、退行させない。 -
one-shot generation rate— 主要KPI — LLMが修正なしで正しいコードを生成する割合。 -
deletion ratio— リリースごとの、追加行数に対する削除行数の比。
The best part is no part. The best process is no process. — 本ライブラリは、これをUIに適用する試みである。