[Chore] 계획 시간표 신선도 클래스에 KRIC 역별 시간표 원천 추가 - #3025
Conversation
- planned_timetable sourceIds에 kric-subway-timetable-station-lines를 추가하고 data 계약 번들 v1.0.0·v1.1.0을 재생성한다. - 같은 KRIC subwayTimetable 계획 시간표 원천이므로 기존 기준(P30D 재검증)을 그대로 따른다. - data 등록 전까지 Hub 사본에 없는 원천 닫힌 목록에 사유와 함께 추가한다. Refs AquilaXk/easysubway-data#903
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: AquilaXk/easysubway/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
AquilaXk
left a comment
There was a problem hiding this comment.
Actionable comments posted: 0
🎯 Linked issue & acceptance criteria audit
- Linked issue: #903 [Feat] Load official timetables for lines without timetable support
- Goal summary: Prerequisite step: register the new KRIC timetable sourceId in the SLA class.
- Acceptance criteria verified: 3/3
| ID | Acceptance criterion | Status | Evidence |
|---|---|---|---|
| C1 | Only the new sourceId joins planned_timetable; cadence unchanged. | PASS | release/product-gates/datapack-freshness-sla.json |
| C2 | Bundles v1.0.0 and v1.1.0 are regenerated by the official tool. | PASS | contracts/bundles/data-contracts-v1.0.0.json, contracts/bundles/data-contracts-v1.1.0.json |
| C3 | The contract test asserts membership and the closed exception list. | PASS | tools/repo/data-contract-bundle.test.mjs |
🛡️ Adversarial audit evidence
- Falsifiability verified: No (Not applicable: The change is a data list entry, not executable logic. Reason: No mutable production operator exists; deepEqual pins membership.)
- Hollow assertions detected: 0
- Production backdoors detected: 0
- Ground-truth sources verified:
build-data-contract-bundle --check all exit 0bundled SLA resource equals policy for v1.0.0 and v1.1.0SLA policy JSON compared with origin/main
🤖 Prompt for all review comments with AI agents
Could we verify each finding against the current code and keep only those that
still apply? Could we make the smallest validated fix and briefly note why any
finding no longer applies?
Inline comments:
None.
---
Outside diff comments:
None.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Hub CLAUDE.md invariants and full.md PR template, read by the reviewer.
Review profile: ASSERTIVE
Plan: Aquila fallback
Run ID: N/A (Aquila fallback)
Review source: Aquila CLI
Repository visibility: public GitHub repository
Trigger:
Discovery review requested for the current head of the pull request.
Base:
main@506306c666ecc23d77c254a99d990fa23e3e8261
Head:
chore/station-lines-freshness-903@021ba57178b1bfc4e00fc0f6a1a7b75085011645
Command:
aquila-review discovery
📥 Commits
Reviewing files changed in this pull request between:
- Base:
506306c666ecc23d77c254a99d990fa23e3e8261 - Head:
021ba57178b1bfc4e00fc0f6a1a7b75085011645
📒 Files selected for processing (4)
contracts/bundles/data-contracts-v1.0.0.jsoncontracts/bundles/data-contracts-v1.1.0.jsonrelease/product-gates/datapack-freshness-sla.jsontools/repo/data-contract-bundle.test.mjs



관련 이슈 / Related issue
Refs AquilaXk/easysubway-data#903
Refs AquilaXk/easysubway-data#862
작업 배경 / Summary
subwayTimetable역별 응답으로 재구성하고, 새 sourceIdkric-subway-timetable-station-lines로 등록한다. 기존kric-subway-timetable은 4호선 pilot 활성화 체인과 충돌하므로 쓰지 않는다. data CI는 validate-source-inventory를 실행하는데, 이때 Hub data 계약 번들의 freshness 정책을 쓴다. governance의 모든 sourceId가 freshness 클래스에 있어야 하므로(SOURCE_FRESHNESS_POLICY_MISSING), 이 계약이 먼저 바뀌어야 data 등록이 가능하다.planned_timetable클래스sourceIds에kric-subway-timetable-station-lines를 추가했다. 같은 KRIC 계획 시간표 원천이므로 기존 기준(재검증P30D,serviceEffectiveAtbasis)을 그대로 쓴다. 새 기준은 만들지 않았다. data 레포는 이 PR이 병합된 뒤 통합 PR에서 lock pin을 올린다([Chore] 노선 topology 신선도 정책을 P1D에서 P7D 만료 안전망으로 전환 #3024 → data#904와 같은 절차).작업 내용 / Changes
release/product-gates/datapack-freshness-sla.json:planned_timetable.sourceIds에kric-subway-timetable-station-lines를 추가했다. 다른 클래스와 필드는 바꾸지 않았다.contracts/bundles/data-contracts-v1.0.0.json,data-contracts-v1.1.0.json:node tools/repo/build-data-contract-bundle.mjs --write all로 재생성했다. 손으로 고치지 않았다. 새 v1.0.0 sha256은517a3dd3d9b9c572b5312387d497dc70394bc5ebdf0982a347d8a65700a5cf9f다.tools/repo/data-contract-bundle.test.mjsplanned_timetablesourceIds에 새 id가 있는지 고정했다.Scope
Included
Excluded
Ownership / dependencies
Documentation impact
NONE: NONE.node tools/repo/refresh-documentation-fragment.mjs --check결과 IN SYNC다(바뀐 파일 중 fragment 등록 resource 없음).검증 / Verification
node --test tools/repo/data-contract-bundle.test.mjs를 실행했다. 변경 전에는planned_timetablesourceIds가['korail-metropolitan-planned-timetable','kric-subway-timetable']라 실패했다. 정책을 바꾸고 번들을 재생성한 뒤에는 닫힌 목록 단언이 실패했고, 사유와 함께 목록을 갱신해 pass 9 / fail 0이 됐다.node --test tools/repo/*.test.mjs: tests 347 / pass 346 / fail 0.node --test tools/ci/check-contracts.test.mjs tools/ci/datapack-release-workflow.test.mjs tools/repo/sync-component-mirrors.test.mjs: tests 197 / pass 197.node tools/ci/check-contracts.mjs --workspace contracts/workspaces/hub.json --current-only --local-contracts-only: exit 0.node tools/repo/build-data-contract-bundle.mjs --check all: exit 0.검증 증거
Version impact
Route commercialization gate impact
Route release readiness tracker impact
Version decision
Not run
리뷰어 메모 / Review focus
planned_timetable기준을 그대로 쓰는지(새 기준이 없는지), 닫힌 목록 추가 사유리스크 / Risk
--check all과 계약 테스트가 실패한다.Rollout / Recovery
체크리스트 / Checklist