# Phase‑31.3 — Gate‑C / Verify 緑化(Selfhost JSON → Mini‑VM) Status - DONE: JsonEmitBox を再帰連結化(blocks/instructions が空になる不具合の根治) - DONE: mir_call(Extern) の name 混線(ArrayBox 化)をリテラル保持で回避(Builder に literal パラメータ追加) - DONE: スモーク緑化 — `selfhost_mircall_extern_from_builder_vm.sh` - TODO: LocalSSA の `.get` 撤退(実行パスを BoxAPI で統一) What changed - Gate‑C JSON 仕様を明文化(docs/reference/mir/json-v0.md) - Verify 規則(Phi/Exit/Extern 正規化)を明文化(docs/reference/mir/verify-rules.md) - テストガイドに Gate‑C パスを追記(docs/guides/testing.md) Next - 実行パスの `.get` → `call("MapBox.get/2")` / `call("ArrayBox.get/2")` へ統一 - MirSchema/JsonEmit に dev assert を追加(異常形は早期 Fail‑Fast) - Gate‑C 負例スモークの追加(不正 callee/不正 args 形状) Notes - Phi/Exit の Fail‑Fast は Verify に寄せる。Mini‑VM 実装差ではなく形状規約で守る方針。 - CoreExtern(String/Array/Map)は Extern 統一。strict 検査は `NYASH_VERIFY_CORE_EXTERN=1`。