# BuiltinBoxFactory段階削除戦略 > **Phase 15.5 "Everything is Plugin" への道** > 作成日: 2025-09-24 > 戦略者: codex ## 🎯 目標 BuiltinBoxFactoryと`builtin_impls/`を安全に段階削除し、すべてをプラグインに移行する。 ## 📊 現状分析 ### 削除対象 - `src/box_factory/builtin.rs`: BuiltinBoxFactory実装 - `src/box_factory/builtin_impls/`: 8ファイル、32KB - string_box.rs - integer_box.rs - bool_box.rs - array_box.rs - map_box.rs - console_box.rs - null_box.rs - mod.rs ### 参照箇所 - `src/runtime/unified_registry.rs`: BuiltinBoxFactory登録(2箇所) - `src/runtime/nyash_runtime.rs`: BuiltinBoxFactory登録(1箇所) ## 🚀 段階削除戦略 ### Phase 1: 機能ゲート厳格化(現在) ```rust // 現状:plugins-onlyでのみ無効化 #[cfg(not(feature = "plugins-only"))] { registry.register(Arc::new(BuiltinBoxFactory::new())); } ``` ### Phase 2: Opt-in化(次回) ```rust // 将来:builtin-coreでのみ有効化 #[cfg(feature = "builtin-core")] { registry.register(Arc::new(BuiltinBoxFactory::new())); } ``` ### Phase 3: 個別Box削除順序 1. **StringBox**: プラグイン版が安定動作確認後 2. **IntegerBox**: 同上 3. **BoolBox**: シンプルなので早期削除可 4. **ArrayBox**: 依存関係確認後 5. **MapBox**: 最後に削除 6. **ConsoleBox**: print依存の最後 7. **NullBox**: 影響最小、いつでも削除可 ## ✅ 検証項目(各段階) ### ビルド検証 ```bash cargo check --features llvm cargo check --features plugins-only ``` ### スモークテスト ```bash # プラグインで基本動作確認 ./target/release/nyash test_plugin_basic.hako # LLVM EXEでprint出力確認 NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm test.hako ``` ## 🛡️ ロールバック戦略 各削除は別ブランチで実施: - `cleanup/builtin-string` - `cleanup/builtin-integer` - 等 失敗時は該当ブランチをrevertするだけで復帰可能。 ## 🏁 完了条件 1. `builtin_impls/`ディレクトリ削除 2. `BuiltinBoxFactory`削除 3. すべてのBoxがプラグイン経由で動作 4. CI全緑確認 ## 📅 タイムライン - **Phase 1**: ✅ 完了(2025-09-24) - **Phase 2**: 機能フラグ反転(次回作業) - **Phase 3**: 個別Box削除(1週間程度) - **完了予定**: Phase 15.5完了時