Files
hakorune/docs/development/engineering/box_first_enforcement.md

47 lines
1.9 KiB
Markdown
Raw Normal View History

# Box-First Enforcement Kit運用メモ
このプロジェクトでは「箱を先に積むBox-First」を最優先にし、実装速度のボトルネックを“下の箱境界・足場不足”で詰まらせない方針を採用します。
## PR テンプレ(.github/pull_request_template.md
PR で以下のチェックを通すことを習慣化します。
```
### Box-First Check
- [ ] 境界は1箇所に集約変換はここだけ
- [ ] 設定は JitConfigBox 経由env直読みなし
- [ ] フォールバック常設panic→VM/CPython
- [ ] 観測追加stats.jsonl / CFG dot
### DoD完了条件
- [ ] ゴールデン3件成功/失敗/境界)更新
- [ ] 回帰CI greenenv直読み検出なし
- [ ] stats: fallback率・理由が記録される
```
## CI ガード(.github/workflows/box_first_guard.yml
現状は「アドバイザリcontinue-on-error」で運用。違反箇所を可視化します。
- 直の `std::env::var(``src/jit/config.rs``src/jit/rt.rs` 以外で禁止(アドバイザリ)
- B1 署名のスイッチ箇所以外での `B1` 文字列の出現を禁止(アドバイザリ)
- 将来的に `stats.jsonl` 出力の有無も検査予定
必要になったら `continue-on-error: false` にして強制化します。
## “下の箱”不足の早期警報(運用ルール)
進みが悪い壊れやすい兆候が出たら、まず以下から最小1個だけ足して再挑戦
- BoundaryBox変換一本化
- JitConfigBox設定の箱
- ObservabilityBoxjson/dot出力
- Effect Token副作用の明示
## Box-Fitness ミニ指標PRに1行
- `boundary_changes=1`(変換点の個数)
- `env_reads=0`env直読の個数
- `fallback_paths>=1`(逃げ道の数)
- `stats_fields>=5`(記録の粒度)
この4つを満たせていれば「箱の足場は十分」の合図。