# WAT_SingleHTML_WASI_Recipe_v3 - "AI->WAT->wasm32-wasi"を**単一HTML**でコンパイル&実行するための完全テンプレート (COI不要 / CDN ESMのみ / 最小限WASI直接実行) > このレシピは添付の単一HTML(最新版)を**フルテキストテンプレート**として採用し、**Math-RECIPEと同等の「テンプレートパワー」**を達成するためにv3で改良されました。 > これによりPoCフローのシームレスな再現を可能にします:**ユーザーリクエスト -> AIがWATを生成 -> 単一HTMLが.wat->.wasmにアセンブル -> ブラウザがWASIで実行**。 --- ## 1. 役割分担(AIと単一HTML) - **AI(WAT生成エージェント)** - ユーザーリクエスト(自然言語)を**WAT(WebAssemblyテキスト)**に変換します。 - 生成したWATコードを以下のテンプレートHTML内の``の**コンテンツ全体を置換**。 - **タグの属性、ID、`type`を変更してはならない**(削除も禁止)。 **ステップC:HTMLの他の部分には触れない** - **CDN URLは`index.js`のみ**(`/wabt.js`や`/dist/wabt.js`は**使用しない**)。 - **ロード順の変更禁止**(jsDelivr -> UNPKG -> esm.sh)。 - UI IDの名前、ログフォーマット(`stdout equality - PASS`など)の変更禁止。 --- ## 3. **変更不可チェックリスト**(AI/人間の両方が遵守すること) - [ ] **` ``` --- ## 6. 動作確認(チェックリスト) 1) ページを開く -> 上部ステータスが**ロード済み**(CDN成功)。 2) **アセンブル** -> **WASMサイズ / SHA-256**が更新、**ダウンロード**が利用可能に。 3) **実行** -> `stdout`に期待する文字列が表示、終了コード=0。 4) **セルフテストを実行** -> - `[TEST1] stdout equality - PASS` - `[TEST2] syntax error detection - PASS` 5) 既存の`main.wasm`を選択して**実行**でも動作。 --- ## 7. 既知の制限とトラブルシューティング - **すべてのCDNがブロックされている場合は実行できません。**(このテンプレートはローカルロードがありません) - 文字列長のミス(`iov.len`)により**視覚的に一致してもFAIL**となることがあります(NUL挿入など)。 - `"_startも_mainも見つかりません"`:WATで`_start`をエクスポートしていない可能性があります。 - **HTTPS配信推奨**でブラウザの差異を軽減(`file://`でも動作することが多いが環境依存)。