日本語 · English

ai-desk

AIにプログラムを書かせるための土台

人間がやるのは「やりたいこと」を自然言語でAIに伝えることだけ。
コードの読み書き・修正・テストはAIが担当する開発体系。

デモを触る GitHubを見る

どんな人に向いているか

AIに任せて何かを作りたいけれど、毎回コードがバラバラになって続かない。 そんな状況を構造側から解決します。

複雑な状態の組み合わせバグを構造的に潰す仕組みが入っているので、 AIが書いたコードが「途中まで動いて崩壊する」状況になりにくくなっています。 ゲームのルール・業務ロジック・アプリのUI──「条件分岐が多い」ものに特に効きます。

使い方

人間が叩くコマンドはほぼありません。AIに喋るだけです。

何かを作りたいとき
AI_ONBOARDING.md を読んでから、 じゃんけんゲームをブラウザで動くように作ってください。
バグを直したいとき
AI_ONBOARDING.md を読んでから、 ai-eyes を起動して、[バグの現象] を直してください。
既存ファイルに手を入れたいとき
AI_ONBOARDING.md を読んでから、 app.js の [機能名] を [変更内容] してください。

触れるデモ

このページ上でそのまま遊べます。別タブを開きたい場合は各タイトルからどうぞ。

Gravity Field Battle v2

ai-desk v2 で 1 セッションで作ったカードゲーム。constraintBlock(AI 全可能 play 評価)、Block.versions(undo)、マーカーゼロ、単一 HTML 1300 行、bug ゼロ。 ai-desk v2 の効果を 動くもの として実演する demo。

📊 Block Spreadsheet v2

セル = Block として実装した表計算。数式参照 = Block.refs、編集履歴 = Block.versions、再計算 = Graph.impact()。循環参照は構造レベルで検出して拒否。 右パネルでセルの依存・被依存・全 version が見える。

🔗 Node Graph v2

ノード = Block配線 = Block.refs。Const/Add/Sub/Mul/Div/Output を繋いで dataflow を組む。 サイクル検出は Graph.forwardClosure で構造レベル拒否(専用 validator なし、A8 の構造的 enforcement)。各ノードの編集履歴(move / edit / wire / unwire)が Block.versions に append-only。

🗂 Block Kanban v2

カード = Blockカラム = Block(children がカード順序の REAL)。ドラッグでカード移動 = source / target 双方の column が children を更新する 2 commit。 各カードの編集履歴(create / move / edit-text / reorder)が Block.versions に append-only。インスペクタから過去 version への rollback() も 1 クリック。フラットデザイン。

↓ 以下は v1 時代のデモ集(demos-legacy-v1/ に隔離済み)。 新規コードは v2/ を参照してください。

Constraint Burst

クリックで色が伝播する。全部ひとつの色になったら勝ち。指でも遊べる。

Color Swarm

カーソルで粒子を引き寄せたり弾いたり。指でも遊べる。

Space Race

宇宙空間を猛スピードで進みながらリングをくぐる。ドラッグ or 矢印キーで操舵、左下レーダーで次のリングを確認。

Mini Spreadsheet

セル + 数式パーサ + 依存グラフ + 再計算 + UI を 1ファイル 585行で完結。SUM / AVG / IF / 範囲指定 / 循環検出まで動く。

Node Graph

ビジュアルプログラミング。ノードをドラッグ、出力ポートから入力ポートに線を繋いで、Output に値が流れる。DAG 評価 + 循環検出 + パン + 削除まで 1ファイル 514行で完結。

Kanban

列 / カード / ドラッグ&ドロップ (カードも列も並べ替え) / インライン編集 / Undo / 自動保存 — 1ファイル 554行で完結。

Vector Pad

ベクター描画ツール。ツール選択 / 図形 / 選択&リサイズハンドル / レイヤー / プロパティパネル / Undo / PNG エクスポート — 1ファイルで完結。

Windows で gemini-cli + WezTerm をセットアップ

Windows 10/11 を想定した手順。コマンドはすべて PowerShell で実行 (スタートメニュー → "PowerShell")。 Mac/Linux の場合は wingetbrew / パッケージマネージャに、PowerShell の env 設定を ~/.zshrc 等の export に置き換えるだけ。

経験則だが、gemini-cli は WezTerm 上で最も安定して動く (出力崩れ・入力ズレが起きにくい)。理屈の説明はせず事実だけ。

1. WezTerm をインストール
winget install wez.wezterm
winget が無ければ 公式インストーラ から。
2. Node.js (v20+) をインストール
winget install OpenJS.NodeJS.LTS
既に入っていれば node -v で確認。v20 未満なら更新を (gemini-cli が v20+ 必須)。
3. gemini-cli をインストール
npm install -g @google/gemini-cli
完了後 gemini --version が通れば OK。
4. API キーを取得して環境変数に設定 (永続化)
[System.Environment]::SetEnvironmentVariable('GEMINI_API_KEY', '<your-key>', 'User')
キーは aistudio.google.com/apikey から無料取得。 上記コマンドはユーザ環境変数に永続保存 (再起動後も有効)。設定後は WezTerm を 開き直す
5. WezTerm を開いて起動
gemini
あとは AI に自然言語で頼むだけ:
AI_ONBOARDING.md を読んでから [作りたいもの] を作って

バニラJS / 1ファイル構成が基本

上のデモ (Constraint Burst / Color Swarm / Space Race) はすべて、 依存ゼロのバニラ HTML + JS、1 ファイル完結で作られています。フレームワークもビルドもありません。

ai-desk の思想に沿った「重厚関数 + 1 ファイル + ゼロ依存」は、AI がファイル全体を一度にスポットライト内に収められるサイズ (デモ 1 本あたり 200–500 行程度) で書ける、という前提から来ています。

AIに「これを作って」と頼めば、同じ構成でゲーム・可視化・小ツールを次々と量産できます。ここで触ったデモがそのまま「あなたが頼める雛形」です。

もっと知りたい

プレゼン資料

12 スライドずつのプレゼン。HTML はブラウザでスライド再生 (← → / Space)、PDF は配布用。