Loading files
d9300ba19This 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の実機スモーク試験を再実施します。