피드로 돌아가기
Contract-Fed Scheduler Rails for the TD2 SDL Port
Dev.toDev.to
Infrastructure

하드코딩된 Scheduler Rails를 Contract 데이터로 전환하여 175개 검증 체크 확보함

Contract-Fed Scheduler Rails for the TD2 SDL Port

Nivando Soares2026년 4월 1일2advanced

Context

TD2 SDL 포트에서 세 개의 scheduler rails 중 두 개가 하드코딩된 C 브랜치로 구현되어 재사용 가능한 계약으로 취급하기 어려웠음. 런타임은 검증된 데이터 backing 없이 정적 분기에 의존하는 한계를 가졌음.

Technical Solution

  • Contract File: rom_analysis/docs/scheduler_rail_contracts.jsonc에 menu handoff (1500→2050 프레임), gameplay seed (0→11 프레임)의 validated frame windows를 정의함
  • Contract Loading: td2_scheduler에서 내장 앵커 테이블을 제거하고 versioned contract 데이터로부터 menu/gameplay rail을 로드하도록 변경함
  • Smoke Test 강화: scheduler.contract_loaded, segment_count, scheduler_contract 상태 검증을 추가하여 156개에서 175개 체크로 확장함
  • Wiki Automation: 임시 isolated git worktree에서 wiki를 rebuild하여 스테이징 워크트리의 더티 파일 상태와 격리된 상태로 생성함

Impact

Smoke test 체크 156개에서 175개로 19개 증가함. 동일한 세 개의 rails가 green 상태 유지됨.

Key Takeaway

하드코딩된 분기 로직을 versioned contract 데이터로 전환하면 런타임 rails가 branch-backed에서 data-backed 형태로 진화하며 검증 가능한 상태 소스를 확보할 수 있음.

Practical Takeaway

게임 엔진 스케줄러에서 검증 프레임 윈도우를 하드코딩하지 말고 별도의 계약 파일로 분리할 것. CI/CD 파이프라인에서 wiki 자동화 시 isolated worktree를 활용하면 로컬 워크스페이스 상태와 독립적으로 문서 생성을 관리할 수 있음.


게임 런타임 스케줄러에서 하드코딩된 frame boundary를 contract JSON으로 추출하면 테스트 재현성과 유지보수성이 향상됨. Wiki 자동화 워크플로우는 별도 worktree에서 실행하여 메인 워크스페이스의 dirty 상태와 격리해야 함.

원문 읽기