Axiom UI
EN / JA

設計思想

既存の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に適用する試みである。