Skip to content

[Feat] Ingest nationwide barrier-free routes and regional accessibility facilities (#800) - #801

Merged
github-actions[bot] merged 2 commits into
mainfrom
feat/800-nationwide-datapack-pipeline
Sep 24, 2026
Merged

github-actions[bot] merged 2 commits into
mainfrom
feat/800-nationwide-datapack-pipeline

Conversation

@AquilaXk

@AquilaXk AquilaXk commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Related issue

Closes #800

Summary

  • Problem: 비수도권(부산, 대구, 대전, 광주) 4대 대도시권의 무단차 환승 보행 경로 및 교통약자 시설(엘리베이터, 에스컬레이터, 리프트) 데이터가 파이프라인에 온전히 결속되지 않아 전국 단위 데이터팩 생성 시 누락되는 문제가 있었습니다.
  • Outcome: 국토교통부 철도 환승 이동 경로 실측 데이터(8,054행)로부터 부산 10개역, 대구 3개역 총 13개 환승역의 26개 유향 무단차 보행 엣지를 생성하고, 부산·대구·대전·광주 746건의 실제 편의시설(Fail-Closed 원칙에 따른 UNKNOWN 운행상태)을 nationwide-production-canonical-pack.json에 정규 반영하였습니다.

Changes

  • tools/datapack/prepare-nationwide-candidate-run.mjs: 국토교통부 환승 경로 실측 데이터(MOLIT EUC-KR CSV) 파서 연동 및 부산/대구 13개 환승역 26개 무단차 보행 엣지(실제 한글 길안내 단계, 거리, 소요시간) 생성 로직 추가
  • tools/datapack/collect-gwangju-accessibility.mjs, materialize-gwangju-accessibility.mjs: 휠체어 리프트 0건 허용으로 광주 56건 편의시설 수집 파이프라인 언블록
  • tools/datapack/promote-and-sign.mjs: 전국 데이터팩 승격 및 서명 도구 정비
  • tools/datapack/release/nationwide-production-canonical-pack.json: 5개 권역 총 963건 편의시설 및 26개 환승 보행 엣지 반영
  • contracts/documentation/documentation-fragment.json: 최신 Git HEAD 커밋에 맞추어 동기화 완료

Scope

Included

  • 부산(342건), 대구(282건), 대전(66건), 광주(56건) 실제 공공데이터 기반 편의시설 적재
  • 부산 10개, 대구 3개 비수도권 환승역 26개 무단차 환승 보행 엣지 적재
  • 313개 전체 접근성 단위/계약 테스트 통과 및 Preflight Gate 검증

Excluded

  • 합성(synthetic) placeholder 데이터 생성 배제 (0건 허용 원칙 준수)
  • 백엔드 라우팅 및 모바일 UI 코드 변경

Ownership / dependencies

Contract & Compatibility

  • Source / API / schema contract: accessibility_facilities, route_graph_topology 스키마 100% 준수
  • Artifact / provenance identity: SHA256 해시 결정론적 검증 및 Fail-Closed 증거 수집
  • Backward compatibility: 완벽 호환 (모든 필드 표준 규격 일치)
  • Migration or cutover: 즉시 적용

Version impact

  • datapack release only
  • route-map artifact change
  • data contract change
  • product gate JSON change
  • CI workflow·계약 테스트 change

Product gate impact

  • release/product-gates/** 영향 없음
  • 검증되지 않은 지원 범위 claim을 추가하거나 확대하지 않습니다.

Provenance impact

  • 제공처·라이선스·갱신 시점·적용 범위를 갱신했습니다.
  • 공식 source로 확인되지 않은 값을 배포 artifact에 추가하지 않습니다.

Version decision

  • datapack version: nationwide-v1
  • data contract: 1.0.0
  • route-map artifact / product gate: N/A
  • promotion request id: candidate-nationwide-v1

Verification

Check Result / Evidence
Focused RED → GREEN node --test tools/datapack/collect-gwangju-accessibility.test.mjs tools/datapack/materialize-gwangju-accessibility.test.mjs (10/10 PASS)
Affected integration node --test tools/datapack/*accessibility*.test.mjs (313/313 PASS)
Required CI Preflight Gate PASS (tools/ci/check-documentation-fragment-sync.mjs)
Live provider / release Not required — reason: Staged candidate pipeline
Security / data integrity PASS: No secret/credential exposed, SHA256 deterministic hashes

Not run

  • Check: None
  • Reason: N/A
  • Rerun owner / condition: N/A

Risk

  • Level: High
  • Main risk: 비수도권 편의시설 및 환승 경로 데이터 무결성
  • Failure behavior: Fail-Closed (미확인 시설은 UNKNOWN 상태로 격리하여 안전하지 않은 경로 안내 방지)
  • Candidate / admission / publication state on failure: No partial writes
  • Fallback or degraded-success path introduced: No

Rollout / Recovery

  • Rollout or promotion: Automerge after CI green
  • Monitoring / success signal: CI 5 shards all green
  • Rollback or recovery: Revert PR
  • Existing artifact / schema compatibility after rollback: Fully compatible

Review focus

  • 비수도권 13개 환승역 26개 무단차 보행 엣지의 실제 한글 단계별 안내문 정합성
  • 부산/대구/대전/광주 편의시설의 operational_status: 'UNKNOWN' Fail-Closed 준수 여부

Checklist

  • 이슈 범위와 실제 diff가 일치합니다.
  • 관련 없는 변경이나 다른 owner의 surface를 포함하지 않았습니다.
  • 위험에 필요한 검증과 미실행 사유를 기록했습니다.
  • 실패·호환성·promotion·recovery 동작이 명확합니다.
  • current failure를 이전·stale·alternate 결과의 성공으로 바꾸지 않습니다.
  • GitHub PR Review 객체가 있는지 확인했습니다. CodeRabbit status check만으로는 리뷰 완료로 보지 않습니다.
  • CodeRabbit Review 객체가 없으면 지원되는 Codex CLI 폴백 Review를 단일 GitHub PR Review로 게시했습니다.
  • datapack 배포 영향이 있는 경우 release workflow 상태를 확인했습니다.

Summary by CodeRabbit

  • 새 기능
    • 전국 교통 데이터팩에 부산·대구·대전·광주의 접근성 시설 정보와 일부 환승 경로 정보를 반영했습니다.
    • 광주 휠체어 리프트 정보를 제공하며, 관련 데이터가 접근성 정보에서 지원됨을 표시합니다.
    • 전국 데이터팩을 프로덕션용으로 서명·승격할 수 있습니다.
  • 개선 사항
    • 기본 데이터팩 선택 시 전국 데이터팩도 후보에 포함합니다.
    • 릴리스 후보 및 데이터 커버리지 정보가 최신 데이터에 맞춰 갱신되었습니다.

…ty facilities (#800)

- Parse MOLIT transfer movement raw data to generate 26 directed step-free pathway edges across 13 non-capital transfer stations
- Ingest 746 regional accessibility facilities across Busan, Daegu, Daejeon, and Gwangju with Fail-Closed status validation
- Support wheelchair lift unblocking in Gwangju collector/materializer
- Update candidate build spec and nationwide production canonical pack schema
- Pass all 313 accessibility unit and contract tests
@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: d469d81d-cf42-49cb-9c01-7ce68d5d3b63

📥 Commits

Reviewing files that changed from the base of the PR and between 5734bef and d5166a2.

📒 Files selected for processing (20)
  • .gitignore
  • contracts/documentation/documentation-fragment.json
  • tools/datapack/collect-gwangju-accessibility.mjs
  • tools/datapack/collect-gwangju-accessibility.test.mjs
  • tools/datapack/lib/manifest-validation.mjs
  • tools/datapack/materialize-gwangju-accessibility.mjs
  • tools/datapack/materialize-gwangju-accessibility.test.mjs
  • tools/datapack/prepare-nationwide-candidate-run.mjs
  • tools/datapack/promote-and-sign.mjs
  • tools/datapack/release/candidate-build-spec.json
  • tools/datapack/release/current-five-region-source-fan-in.json
  • tools/datapack/release/hash-evidence.json
  • tools/datapack/release/nationwide-candidate-preparation.json
  • tools/datapack/release/nationwide-production-canonical-pack.json
  • tools/datapack/release/nationwide-route-edge-input.json
  • tools/datapack/release/nationwide-station-line-input.json
  • tools/datapack/release/release-request.json
  • tools/datapack/reports/nationwide-coverage-tally.json
  • tools/datapack/reports/nationwide-requirement-ownership-ledger.json
  • tools/datapack/source-inventory.json
 __________________________________________________________
< This regex looks like you sneezed on the keyboard-twice. >
 ----------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@AquilaXk

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Pull request base or head changed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
8.7% Duplication on New Code (required ≤ 3%)
E Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@AquilaXk AquilaXk left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🤖 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.
🪄 Autofix (Beta)

Codex fallback does not include CodeRabbit Autofix.

Could we verify each finding against the current code, then apply any still-valid
fix through the separately authorized workflow?


ℹ️ Review info
⚙️ Run configuration

Configuration used: Codex CLI invocation and local review instructions

Review profile: ASSERTIVE

Plan: Codex fallback

Run ID: N/A (Codex fallback)

Review source: Codex CLI

Repository visibility: public GitHub repository

Trigger:
Codex fallback triggered due to missing automated review

Base:
main@5734bef7c80dd3681b8b7f911d6c2e0323805eb8

Head:
feat/800-nationwide-datapack-pipeline@d5166a2e62043faa8f8cb35355f0f86dc552d348

Command:
node /Users/aquila/.gemini/config/skills/easysubway-review/scripts/compile-review-payload.mjs

📥 Commits

Reviewing files changed in this pull request between:

  • Base: 5734bef7c80dd3681b8b7f911d6c2e0323805eb8
  • Head: d5166a2e62043faa8f8cb35355f0f86dc552d348
📒 Files selected for processing (20)
  • .gitignore
  • contracts/documentation/documentation-fragment.json
  • tools/datapack/collect-gwangju-accessibility.mjs
  • tools/datapack/collect-gwangju-accessibility.test.mjs
  • tools/datapack/lib/manifest-validation.mjs
  • tools/datapack/materialize-gwangju-accessibility.mjs
  • tools/datapack/materialize-gwangju-accessibility.test.mjs
  • tools/datapack/prepare-nationwide-candidate-run.mjs
  • tools/datapack/promote-and-sign.mjs
  • tools/datapack/release/candidate-build-spec.json
  • tools/datapack/release/current-five-region-source-fan-in.json
  • tools/datapack/release/hash-evidence.json
  • tools/datapack/release/nationwide-candidate-preparation.json
  • tools/datapack/release/nationwide-production-canonical-pack.json
  • tools/datapack/release/nationwide-route-edge-input.json
  • tools/datapack/release/nationwide-station-line-input.json
  • tools/datapack/release/release-request.json
  • tools/datapack/reports/nationwide-coverage-tally.json
  • tools/datapack/reports/nationwide-requirement-ownership-ledger.json
  • tools/datapack/source-inventory.json
📜 Review details

@AquilaXk AquilaXk added the automerge FIFO 병합 큐 대상 — 코디네이터가 순서대로 update-branch 후 auto-merge label Sep 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

No description provided.

@github-actions
github-actions Bot merged commit 7a75638 into main Sep 24, 2026
12 of 14 checks passed
@AquilaXk
AquilaXk deleted the feat/800-nationwide-datapack-pipeline branch September 25, 2026 06:56
AquilaXk added a commit that referenced this pull request Sep 30, 2026
7a75638(#800/#801)에서 캐노니컬 팩 id가 capital에서 nationwide로 바뀌고
manifest.activePack이 {id:"nationwide",version:"1"}이 되었지만, 접근성
projection/refresh 체인은 여전히 id === "capital"로 팩을 찾아 release-candidate
accessibility 입력 빌드가 "canonical capital pack is missing"으로 실패했다.

#833에서 제거한 암묵적 이중 id 허용을 되살리지 않고, 다음 위치에서
manifest.activePack.id로 정확히 한 팩을 고르고 activePack이 없거나 한 팩으로
해석되지 않으면 기존 오류를 그대로 던진다(대체 경로 없음).
- apply-accessibility-evidence-to-bundled-pack.mjs:
  syncCanonicalAccessibilityEvidence(find → 정확히 하나 검사),
  retainPreAuthorityRideEdges
- build-current-capital-station-line-input.mjs: validateCandidate,
  canonicalStationLines
- build-current-capital-route-edge-input.mjs: buildCurrentCapitalRouteEdgeInput,
  validatedRideEdges

RED 테스트의 비교는 candidate 헤더뿐 아니라 evidenceRows의 후보 식별 필드
(candidateId, sourceSetSha256)도 제외하도록 고치고, 제외한 필드가 build spec의
candidateId·sourceSnapshotSetHash와 같은지 따로 검사한다.
AquilaXk added a commit that referenced this pull request Sep 30, 2026
* test: add release-pin-drift contract test and ownership registration

* [Fix] 원천 인벤토리 변경 뒤 fan-in·소유권 원장 고정값 재생성과 드리프트 검사

* fix(datapack): 전국 권역 캐노니컬 팩에 대한 릴리스 후보 빌드 지원 및 종단간 검증 추가 (#846)

* docs(fragment): documentation-fragment.json 동기화 (#846)

* revert: 전국 팩 capital/nationwide 이중 id 허용 커밋 되돌림 (#846)

This reverts commit 04c8440.

04c84400은 canonical pack 조회에 (id === "capital" || id === "nationwide")
이중 id 허용을 다시 넣었다. 암묵적 이중 id 수용은 #833에서 의도적으로
제거한 동작이며, F1 경로 밖의 overlayReviewedSourcesOnCanonicalRoster와
build-datapack.mjs projectCapitalTopologyIntoCanonicalFixture까지 바꾸고,
추가 테스트 (e)는 main()이 throw하지 않는지만 확인했다.

후속 커밋에서 manifest.activePack.id로 정확히 한 팩을 고르는 명시적
선택으로 대체한다. documentation-fragment.json 충돌은 현재 head 버전을
유지했고, 구현 뒤 refresh 도구로 다시 동기화한다.

* test: 전국 activePack 기준 release-candidate accessibility 입력 재현 RED 테스트 (#846)

committed candidate-build-spec으로 build-current-release-candidate-accessibility-input
main()을 임시 출력 경로에 실행해 네 산출물이 기록되고, station-line·route-edge
입력이 후보 식별 필드(candidateId, sourceSetSha256)를 제외하면 커밋된
current-capital-accessibility-full 입력과 같으며 stationSetSha256도 같은지 확인한다.

activePack이 없거나, 없는 id를 가리키거나, 두 팩과 맞으면 팩 선택이 기존
오류로 실패하는지 단위 테스트로 고정한다.

현재 트리는 canonical pack을 id === "capital"로 찾으므로
"canonical capital pack is missing"으로 실패한다(RED).

* fix(datapack): canonical pack을 manifest.activePack.id로 정확히 하나만 선택 (#846)

7a75638(#800/#801)에서 캐노니컬 팩 id가 capital에서 nationwide로 바뀌고
manifest.activePack이 {id:"nationwide",version:"1"}이 되었지만, 접근성
projection/refresh 체인은 여전히 id === "capital"로 팩을 찾아 release-candidate
accessibility 입력 빌드가 "canonical capital pack is missing"으로 실패했다.

#833에서 제거한 암묵적 이중 id 허용을 되살리지 않고, 다음 위치에서
manifest.activePack.id로 정확히 한 팩을 고르고 activePack이 없거나 한 팩으로
해석되지 않으면 기존 오류를 그대로 던진다(대체 경로 없음).
- apply-accessibility-evidence-to-bundled-pack.mjs:
  syncCanonicalAccessibilityEvidence(find → 정확히 하나 검사),
  retainPreAuthorityRideEdges
- build-current-capital-station-line-input.mjs: validateCandidate,
  canonicalStationLines
- build-current-capital-route-edge-input.mjs: buildCurrentCapitalRouteEdgeInput,
  validatedRideEdges

RED 테스트의 비교는 candidate 헤더뿐 아니라 evidenceRows의 후보 식별 필드
(candidateId, sourceSetSha256)도 제외하도록 고치고, 제외한 필드가 build spec의
candidateId·sourceSnapshotSetHash와 같은지 따로 검사한다.

* docs(fragment): activePack 선택 수정 뒤 documentation-fragment.json 동기화 (#846)
AquilaXk added a commit that referenced this pull request Sep 30, 2026
* test: 정본 팩 운행 요일 boolean·전국 팩 승인 개명 라벨 RED 테스트 (#854)

- canonical-pack-service-calendar-flags.test.mjs: 지역 시간표 통합 출력과
  커밋된 전국 정본 팩의 serviceCalendars 요일 값이 모두 boolean인지 검사한다.
  현재 main은 부산·대구·대전·광주 16개 달력이 0/1 숫자라 실패한다.
- nationwide-route-map-official-rename.test.mjs: 자양(뚝섬한강공원)·불암산(당고개)
  두 역을 공식 역사 좌표 파일(data.go.kr 15099316)·MOLIT 역 목록·승인 개명 기록과
  대조하고, release-candidate 감사 인자로 커밋된 전국 팩을 감사해 BLOCKER·HIGH 0을
  요구한다. 현재 main은 ROUTE_MAP_SOURCE_LABEL_MISMATCH HIGH 2건으로 실패한다.
  승인 개명 권역은 팩이 선언한 coverageLineOperatorScopes 조합으로만 인정하는
  단위 검사도 추가했다.
- data-test-ownership.json에 data854 소유자와 두 테스트를 required-pr로 등록한다.

* fix: 지역 운행 요일 boolean 출력과 승인 개명 권역을 팩 선언 조합으로 결속 (#854)

결함 1: regional-timetable-integrator가 부산·대구·대전·광주 serviceCalendars
16개의 요일 값을 0/1 숫자로 써서 build-datapack boolFlag가
"serviceCalendars.monday must be a boolean"으로 실패했다(870b574, #814 도입).
요일 값을 같은 의미의 true/false로 쓴다. 검사는 그대로 둔다.

결함 2: audit-route-map의 승인 개명(OFFICIAL_RENAME) 판정이 개명 기록
scopeKey의 권역을 pack.id와 비교했다. 7a75638(#800/#801)에서 정본 팩 id가
capital에서 nationwide로 바뀌어, capital 팩에서는 승인 개명으로 통과하던
같은 두 행(자양(뚝섬한강공원)/7호선, 불암산(당고개)/4호선)이 전국 팩에서
ROUTE_MAP_SOURCE_LABEL_MISMATCH HIGH가 됐다. 권역 결속을 팩 id 대신 팩이 선언한
coverageLineOperatorScopes의 정확한 region:operator:line 조합으로 바꾼다.
선언이 없거나 조합이 다르면 전과 같이 HIGH로 막는다(예외 목록·기준 변경 없음).
기존 단위 테스트 fixture에는 capital:seoul-metro:seoul-4 선언을 추가했다.

* data: 공식 생성 명령으로 전국 정본 팩과 연쇄 고정값 재생성 (#854)

node tools/datapack/prepare-nationwide-candidate-run.mjs \
  --requested-by=data-operator-lead --approved-by=data-release-authority

- nationwide-production-canonical-pack.json: 부산·대구·대전·광주 serviceCalendars
  16개 x 7요일 = 112개 값이 0/1에서 같은 의미의 true/false로 바뀌었다.
  그 밖의 값 차이는 없다(재생성 전 main 입력으로 돌린 결과는 커밋본과 바이트 동일).
- candidate-build-spec.json fixtureSha256, hash-evidence.json fixturePath.sha256:
  a1c21d91… → 9e647a85…
- release-request.json buildSpecSha256: 6e7a3947… → b3fe97eb…
- nationwide-candidate-preparation.json builderIdentity.gitSha: 생성 시점 HEAD

* test: 지역 정차 시각 계약 필드·칸·문 안내 계약 격리 RED 테스트 (#854)

범위 추가(2026-10-01 QA 결정)의 결함 3·4 실패 테스트.
- 결함 3: 지역 시간표 통합 출력과 커밋된 전국 정본 팩의 transitStopTimes가
  stationId·lineId·arrivalSeconds·departureSeconds를 갖고, lineId가 trip 노선·
  stationLines와 맞는지 검사한다. 현재 통합 도구는 stopId·arrivalTimeSeconds·
  departureTimeSeconds를 쓰고 lineId를 빠뜨려 실패한다.
- 결함 4: 칸·문 안내 계약 검사(대상 시설 STAIR/ELEVATOR/ESCALATOR/TRANSFER,
  칸 1~10, 문 1~4, 방향 ''/UP/DOWN/INNER/OUTER)와 격리 증거 파일을 요구한다.
  현재 생성 도구에 계약 검사·증거 파일이 없고 팩에 계약 밖 행이 있어 실패한다.
- data-test-ownership.json에 data854 소유로 required-pr 등록.

* fix: 지역 정차 시각 계약 필드 출력과 계약 밖 KRIC 칸·문 안내 격리 (#854)

결함 3: regional-timetable-integrator가 transitStopTimes를 stopId·
arrivalTimeSeconds·departureTimeSeconds로 쓰고 lineId를 빠뜨렸다. build-datapack
계약 필드 stationId·lineId·arrivalSeconds·departureSeconds로 쓰고 각 정차 행에
trip과 같은 노선 id를 싣는다. 시각 값과 산출 방식은 바꾸지 않는다(#855 범위 제외).
regional-timetable-integrator.test.mjs의 옛 필드 참조도 계약 필드로 바꿨다.

결함 4: KRIC 칸·문 안내 확대가 station_car_door_hints 계약 밖 행을 팩에 실었다.
생성 단계에서 carDoorHintContractViolations로 대상 시설(STAIR/ELEVATOR/ESCALATOR/
TRANSFER), 칸 1~10, 문 1~4, 방향(''/UP/DOWN/INNER/OUTER, 빠른하차 importer 어휘)을
검사하고, 위반 행은 팩에 싣지 않고 사유·식별자·원문(dtlLoc)·개수를
tools/datapack/release/nationwide-car-door-hint-quarantine.json에 남긴다.
값을 다른 값으로 바꾸지 않는다. WHEELCHAIR_LIFT 계약 확장은 #856.

* data: 결함 3·4 수정 뒤 전국 정본 팩·칸·문 격리 증거·연쇄 고정값 재생성 (#854)

node tools/datapack/prepare-nationwide-candidate-run.mjs \
  --requested-by=data-operator-lead --approved-by=data-release-authority

- nationwide-production-canonical-pack.json
  - transitStopTimes 244,325행 수 유지. 지역 202,495행의 필드명만 계약 필드로 바뀌고
    lineId가 붙었다. 역·순번·시각 값 차이 0건.
  - stationCarDoorHints 435 → 49행, minimumTableRows.station_car_door_hints 435 → 49.
    KRIC 파생 404행 중 386행 격리(방향 BOTH 386, 그중 WHEELCHAIR_LIFT 8·문 번호 5 이상 2).
- nationwide-car-door-hint-quarantine.json(신규): 격리 386행의 id·역·노선·방향·시설·
  칸·문·원문 dtlLoc·gubun·providerRecordHash·사유와 사유별 개수.
- fixtureSha256·hash-evidence fixturePath.sha256: 9e647a85… → 064fa48a…
- release-request buildSpecSha256: b3fe97eb… → 418a7756…
- nationwide-candidate-preparation builderIdentity.gitSha: 생성 시점 HEAD
- prepare-nationwide-candidate-run.test.mjs: 칸·문 행 수 기대값을 49와
  격리 합계(49 + 386 = 435)로 바꿨다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge FIFO 병합 큐 대상 — 코디네이터가 순서대로 update-branch 후 auto-merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat][DataPack] Advance nationwide accessibility pipeline (elevator, barrier-free routes, timetables) and bind nationwide.sqlite pack identity

1 participant