Files
hakorune/docs/private/roadmap/phases/phase-20.25

Phase 20.25 — Boxes→Plugins 集約 + 正規化恒久化MVP

目的

  • String/Array/Map の代表機能をプラグイン(動的/静的へ集約し、VM/Core/Runner から統一的に呼び出す。
  • Method/ModuleFunction→Extern の正規化を構造化Router/Verifier 側へ段階移行。GateC のローカル正規化は最小限に。
  • 既定挙動は不変。全て optin トグルで導入し、FailFast を維持。

ステータス: MVP 完了20251030

背景(現状)

  • GateC フォールバック経路で Method/ModuleFunction→Extern の正規化を実装済みrunner/normalize
  • VM 側 extern_adapter が nyrt.box.* を受理する互換を実装済みiface/method 別名の吸収)。
  • quick プロファイルは緑Pass 53 / Skip 13 / Fail 0

範囲

  • Plugins 集約(代表):
    • String: length(size), indexOf, lastIndexOf, substring代表
    • Array: size, push, pop, get, set, clear
    • Map: len(size), get, set, delete, keys, values代表
  • Router/Verifier 側の恒久正規化(段階導入; 既定OFF → 構造確認 → 既定ON
  • CLI トグルの実効化(既定は変えない)

非対象(このフェーズではやらない)

  • 全外部APIの正規化・網羅代表に限定
  • 文字列/配列/連想の全オプション動作(境界・負荷の細部は次フェーズで拡張)

トグル/ENV既定OFF

  • HAKO_GATE_C_ENABLE_PLUGINS=1GateC(Core) plugin 経路の optin
  • NYASH_NORMALIZE_CORE_EXTERN=1既定ON; 問題時の一時 optout 用)
  • SMOKES_ENABLE_CORE_CANARY=1(スモーク optin

受け入れ基準MVP

  • quick プロファイル緑の維持(新規 canary は optin→ 達成
  • GateC(Core)+plugins の対称file/pipeで代表ケースが PASS → 達成plugins カナリアは optin で SKIP/ PASS 運用)
  • 正規化Method/ModuleFunction→Externは runner/normalize へ一本化済みSSOT参照
  • 外部名の揺らぎは VM extern_adapter が吸収SSOT 文書と一致)