Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
126616f26This file is pinned to the selected release. Download the original to open it in your design tool.
# Visual Programming受け入れ基準
この文書は、Phase 4先行評価で実装するVP-01からVP-19までの受け入れ基準と検証箇所を対応付けます。
| ID | 受け入れ基準 | 主な証拠 |
| ----- | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| VP-01 | 版付きプロジェクト形式で保存、読込、旧形式移行、アセット埋め込みができる。 | `project-format.mjs`、`project-storage.mjs`と各単体試験 |
| VP-02 | 生成物が通常のMODと同じ`onContextCreated(robot)`契約とXSアーカイブを使う。 | `blocks.mjs`、`mod-builder.mjs`、実コンパイル試験 |
| VP-03 | 対象機種ごとの能力、チップ、XS版、ファームウェア版をプロファイルで定義する。 | `capabilities.mjs`と`capabilities.test.mjs` |
| VP-04 | 対象にない能力をツールボックスから除外し、既存ブロックはビルド前に拒否する。 | `project-validator.mjs`と`project-validator.test.mjs` |
| VP-05 | 再実行時にタイマーと入力ハンドラーを破棄し、条件ループへ実行上限を入れる。 | `blocks.mjs`と`blocks.test.mjs` |
| VP-06 | 任意JavaScript入力を持たず、外部依存をSRIまたは検証済みvendorで固定する。 | `visual-programming.md`と`check-editor-artifacts.mjs` |
| VP-07 | 新規、複製、最近使ったプロジェクト、入出力、自動保存、破損データ退避、確認付きワークスペース消去を使える。 | IndexedDB保存、エディタUI、再読込を含むブラウザ回帰試験 |
| VP-08 | 空、孤立、未対応能力、停止しないループ、未使用変数と関数を診断する。 | `project-validator.mjs`と診断タブ |
| VP-09 | XSAをIndexedDBへ渡し、エディタ内ダイアログでシミュレーターを起動、停止、再実行できる。起動成功はMODの準備完了後に通知する。 | `editor.mjs`、`simulator.mjs`、ブラウザ回帰試験 |
| VP-10 | シミュレーター入力からMODのイベントハンドラーを起動し、構造化された実行時エラーから対応ブロックを選択できる。 | WASM入力ブリッジ、`runtime-diagnostics.mjs`、ブラウザ回帰試験 |
| VP-11 | 書込前に実チップ、factoryファームウェア版、XS版、パーティション、容量を確認し、バックアップ、照合、復元、削除ができる。 | `esptool-installer.mjs`、単体試験、CoreS3実機スモーク試験 |
| VP-12 | 表情、発話、動作、LED、入力、条件、反復、変数、リスト、非同期関数を組み合わせられる。 | `blocks.mjs`、`samples.mjs`、5サンプル実ブラウザビルド |
| VP-13 | バージョン1のShape顔アセットをJSONとして作成、検証、保存できる。 | 実装、JSON Schema、`face-assets.test.mjs` |
| VP-14 | 顔エディタでFace領域、左右の目、まぶた、口を編集し、`FaceBase`実装としてXSAへ組み込める。 | `face-editor/`、`mod-builder.test.mjs`、統合シミュレーター確認 |
| VP-15 | シミュレーターとエディタ用WASMを固定手順で再生成し、CIと配信で検査できる。 | 生成スクリプト、`build.yml`、`bundle.yml`、成果物固定検査 |
| VP-16 | 単体、実コンパイル、レスポンシブ、5サンプル、統合シミュレーターの回帰試験をCIで実行する。 | `npm test`と`npm run test:visual` |
| VP-17 | キーボード操作、ラベル、タブ、ダイアログ、共通左ドロワー、390 px幅のレイアウトを提供する。 | エディタHTML/CSSとデスクトップ・モバイル回帰試験 |
| VP-18 | 5分、15分、30分の製品内チュートリアルとコード移行、復旧手順を提供する。 | `tutorial.html`、`TUTORIAL_ja.md`、ブラウザ目視確認 |
| VP-19 | 初回ビルド、シミュレーター、実機、失敗を記録し、複数ログの中央値と合格数を集計できる。 | `metrics.mjs`、集計CLI、`visual-programming-validation.md` |
## 実施状況
2026年7月15日時点で、VP-01からVP-19は、単体試験、実コンパイル、ブラウザ操作、生成画面の目視確認による実装検証を通過しています。
VP-11は、模擬ローダーに加えて、ESP32-S3 rev 0.2、16 MiBフラッシュ、ファームウェア`8.3.0-1-gacf3d5262-dirty`のCoreS3実機で検証しました。
実機では、factoryアプリ、`xs`パーティション、既存MODの有無を読み取り、2,491バイトのXS 17.8.0アーカイブを書き込みました。
アプリ起動前の読戻しは書き込み元とSHA-256まで一致し、起動後は`[vp-hardware] mod ready`まで到達しました。
起動後のアーカイブでは、XSランタイムが`IDEN`とバイトコード内の識別子IDを実機用にマッピングするため、書き込み元とのバイト単位の差が生じます。
この起動後バックアップを削除後に復元し、読戻しの完全一致と同じ起動トレースを確認しました。
最後に`xs`パーティション先頭4 KiBを接続時の全`0xFF`へ戻し、接続時と最終状態のSHA-256が一致することと、MODなしで通常起動することを確認しました。
読戻しが書き込み内容と一致しない場合は失敗とし、デバイスを再起動しないことも単体試験で確認しています。
VP-15は、CIと配信の両方で固定SDKからブラウザ用ビルドツールを再生成し、完全性と追跡済み成果物との差分を検査します。
VP-17は、デスクトップ幅と390 px幅の全主要ページで、表示中の操作要素にアクセシブルネームがあることをブラウザ回帰試験で確認しています。
VP-19は、実ブラウザで初回ビルドと初回シミュレーター成功を記録し、スクリプト操作が15分基準内に収まることと、複数ログの集計CLIを確認しています。
VP-19の評価参加者による15分指標の測定は運用検証として残っています。
## 検証コマンド
```sh
cd web
npm test
npm run check:editor-artifacts
npm run test:visual
npm audit
```
`npm run test:visual`は、5サンプルを実際にXSAへコンパイルし、統合シミュレーター、主要画面、390 px幅を確認します。
実機への書き込みを伴うVP-11のスモーク試験と、評価参加者を必要とするVP-19の測定は自動検証に含みません。
ファームウェア版、パーティション構成、WebSerial実装のいずれかを変更した場合は、VP-11の実機スモーク試験を再実施します。