P04-01の次段階S2bコード準備を、実Opusとして具体的に設計しモデルを選んでrun判断してください。実state repair_ready used14/maxnull。最新提出877dee40bc19559bf726502ff2d1f3fb84bac034はRoot製品1338sourceでS2a native r03 import85229/parse85263/Writer85303/Reader85425全PASS、owned4終了・全guard0。実1440売上25G1tx、非zero payroll255G1txを実勤務にjoin、upkeep5G3rowsだが1tx、同1440公開advance_to再呼出しOK/replaytrue/processed0/dailyclose0、formal別PID全memberSHA・全Runtime typed・canonical day1 typed一致を確認。rawgetter byte差はStringName→Stringとキー順の既存保存契約だけで、型fingerprint120keys/22values/19orders差を隠さず保持。根拠同task build/audit-support/p04-whole-closure-r01/ROOT_S2A_NATIVE_R03_RESULT.json、全raw同build/p04-s2a-native-r03/。S1 r02も保持、再実行不要。原P04全体未達。新877初回必須wholevalidateは一回のみindex未収集FAIL→通常repair14へ移行、同版反復なし。
次は原frozen条件night_staff_absent（minute1081,stateWAITING_FOR_STAFF,night_staff_count0）、overtime_task（interrupt_level0,is_overtime true,duty_recorded_once true）の2つ。2件は原15条件の一部で、新成果単位に加点しない。S2bでこの2caseを1本のstrictQA/Writer/別PIDReaderにまとめる案を判断してください。S3/collector/Aは今回は編集しない。
再利用する実在確認済み資料:
1) source worktree tests/supply/test_supply_logistics_bridge.gd:40-79 の原warehouse/kitchen/staffdoor、公的Gina hire/DAY割当、購入8、実pickup/cargoから_loadedを作る手順。:285-296 _test_shift_boundaryはloaded noninterruptible taskのdestinationを公開path_service.set_cell_temporary_blockで塞ぎ1081まで保持し、安全な荷下ろし後にOFF_DUTYとなる実既存case。:319-360 helperを必要分だけ再利用し、expiry snapshot書換えやfaultinjection部分は不要。既存の経路・価格・材料・賃金・勤務枠を変えない。
2) 同worktree tests/staff/test_task_work_clock.gd、tests/staff/test_shift_rush.gd、tests/s3/test_runtime_staff_assignment.gd:216-249（公的再割当でWAITING_FOR_STAFF、原5分grace/復帰）、scripts/staff/staff_service.gdとshift_instance.gd。Rootはこの6ファイルが製品側とWで全SHA一致を確認済み。根拠同build/audit-support/p04-whole-closure-r01/ROOT_S2B_EXISTING_SOURCE_AUDIT.json。
3) 実証済み18:00 setup: /Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-whole-closure-r01/current-patterns/approved-shift-current-r01.gd（Rootが元案SHA一致を再確認済み、パスの置き忘れなし）。DAY server2人の実通勤、原cafe duration/price、Guestplanned_exit=boundary+原durationを持つ。night_absentは予定完了をboundary+2へずらす試験入力で18:01に未完了にし、NIGHT担当は登録せず、DAY除去後1081 WAITING_FOR_STAFF/夜担当0/未完了時課金0/元予約を実観測する。原サービス時間・価格を変えて合わせない。planned_exitは原durationからの既存式を使い早期退場で混同しない。厨房FLEXという元診断fixture前提と自然hire実証の区別を保持する。
4) 現行s1/run_s1_native.py、s2/run_s2a_native.py/S2_ROOT_RUN.mdでstrict private stage/cache clone/owned cleanup/source/defaultplayer guardsを再利用。--check-onlyはPython wrapperでengine0/private-profile読取0、Rootのみ製品1338freshplan/nativeを実行する。
S2b実装案: allowed docs/plans/original-completion-2026-10-02/execution/p04-01/s2b/ に p04_s2b_shift_probe.gd / run_s2b_native.py / S2B_ROOT_RUN.mdの必要最小限。QA override1を維持するため1GDが元cafe setupと必要なsupply構築/helperを再利用し2freshbranchにする。実運搬Taskはinterrupt0を実体からassertし、1079→1080→1081のShiftInstance worked/overtime実delta各1・同じtask/staff/cargo所有を採取。安全荷下ろし後の終了も採取する。未実装を外部block理由にしない。
正式保存は各caseの境界前/直後など必要点だけ公的SaveServiceで保存し、別PID/profile Readerが原/copied4member全SHA、原不変、全Runtime typed完全一致を確認。可能ならReader境界前ロードから普通のclockで境界2tickを再生し元Writer snapshotと全型付き一致とduty一回を確認。独立fresh stateのseed・入力・実command戻り値・minute・staff/task/shift ID・予約/cargo・ledger・phase観測・rawJSON+typedvarを保存する。state enum snapshotはStringの定義を読む（過去intキャスト誤読を再発させない）。Dictionary getterとcanonical保存契約を区別し、全Runtime typed条件を緩めない。
StaffService._update_shift_statesのprivate直接二重呼出しやShiftInstance.record_duty_minute自体を不支持の方法で二重呼出しして製品不具合としない。実clockの各分deltaと、公開advance_one_minuteのMINUTE_ALREADY_APPLIED guardを必要な場合だけ使う。新しい勤務・残業ルールや数値は作らない。Variant(_runtime等)のcallを`:=`で受けず明示型を付ける静的確認を必須にし、前回のraw_day parse失敗を再発させない。
workerはcode-readyまで、py_compile/Pythonwrapper--check-onlyのみ(engine0)、全回帰/手動commit0。Root実測で不具合が見つかれば同S2b内で原因を特定する。既存s1/s2/A/checker/C/protocol/product/DB/契約/base/分母/権限/課金は0編集。原15+EV/7領域/安全性3結果/30-88/部分点0を維持。台帳だけでなく実測可能なコード提出が成果。source worktree古い1300確認はRoot製品1338の代用にしない。モデルSol既定だが今回の2系統統合・勤務記録/正式再生が難しければ実OpusあなたがAstraを具体理由で選ぶこと。run.reasonはworkerへ自己完結の指示と絶対参照pathを含め、contextadapterを増やさない。
