Phase v7-4: Policy Box 導入 (L3 層の明確化とフロント芯の作り直し)

- SmallPolicyV7 Box: L3 Policy layer に配置、route 決定を一元化
- Route kind enum: SMALL_ROUTE_ULTRA / V7 / MID_V3 / LEGACY
- ENV priority (fixed): ULTRA > v7 > MID_v3 > LEGACY
- Frontend integration: v7 routing を Policy Box 経由に変更 (段階移行)
- Legacy compatibility: 既存の tiny_route_env_box.h は併用維持

Box Theory layer structure:
- L0: ULTRA (C4-C7, FROZEN)
- L1: SmallObject v7 (research box)
- L1': MID_v3 / LEGACY (fallback)
- L2: Segment / RegionId
- L3: Policy / Stats / Learner ← Policy Box added here

Frontend now follows clean "size→class→route_kind→switch" pattern.
ENV variables read once at Policy init, not scattered across frontend.

Future: ULTRA/MID_v3/LEGACY consolidation, Learner integration, flexible priority.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Moe Charm (CI)
2025-12-12 03:50:58 +09:00
parent 2bdf29a9ed
commit 8143e8b797
7 changed files with 407 additions and 6 deletions

View File

@ -340,3 +340,51 @@ RegionIdBox / SegmentBox_v7 / PageStatsBox
---
## 7. Phase v7-4: Policy Box (L3 層の明確化)
### Policy Box の役割
SmallPolicyV7 Box を L3 に配置し、「どのクラスをどの層に送るか」を一元管理:
```c
typedef struct SmallPolicyV7 {
SmallRouteKind route_kind[8]; // C0-C7
} SmallPolicyV7;
const SmallPolicyV7* small_policy_v7_snapshot(void);
```
### フロントの責務
フロントは Policy Snapshot を読んで route を選ぶだけ:
```c
const SmallPolicyV7* policy = small_policy_v7_snapshot();
SmallRouteKind route = policy->route_kind[class_idx];
switch (route) {
case SMALL_ROUTE_ULTRA: // L0
case SMALL_ROUTE_V7: // L1
case SMALL_ROUTE_MID_V3: // L1'
case SMALL_ROUTE_LEGACY: // L1'
}
```
### ENV の一元化
ENV 変数は Policy init で一度だけ読む:
- `HAKMEM_TINY_C7_ULTRA_ENABLED`
- `HAKMEM_SMALL_HEAP_V7_ENABLED` + `HAKMEM_SMALL_HEAP_V7_CLASSES`
- `HAKMEM_MID_V3_ENABLED` + `HAKMEM_MID_V3_CLASSES`
優先順位: ULTRA > v7 > MID_v3 > LEGACY (固定)
将来的にはクラスごとの柔軟な優先順位設定や、Learner 連携による動的ルート選択も可能。
### 段階移行
Phase v7-4 では v7 関連のみ Policy box 経由に変更。
ULTRA/MID_v3/LEGACY は既存の `tiny_route_env_box.h` を併用(後で統合予定)。
---