왜
ExtractionErrorCode enum 과 계약 문서의 code 표가 사람 손으로만 동기화된다. enum 에 code 를 더하고 문서를 안 고치거나, 문서에 적고 구현이 없어도 아무것도 깨지지 않는다.
실제로 core 쪽에서 이미 어긋남이 발견됐다. 계약 문서가 NO_EXTRACTABLE_CONTENT 의 core 동등물을 명시했는데 core 에 그 구현이 없었고, CI 는 계속 초록불이었다.
code 목록 일치는 사람 판단이 낄 여지가 0 이라 오탐 없이 기계 판정이 가능하다. 산문에 둘 이유가 없다.
무엇을
선행: infra 의 contracts/extraction-error-codes.yaml 신설 이슈가 머지된 뒤 착수한다.
ci.yml 에 infra 체크아웃 스텝 추가 — actions/checkout@v4 로 TeamPiKi/infra 를 shared-infra 경로에 받는다. deploy.yml 이 이미 쓰는 패턴 그대로다.
- 메타 테스트 신설 —
ExtractionErrorCode 의 상수 집합이 카탈로그의 key 집합과 정확히 일치하는지 검사한다. 한쪽에만 있으면 실패하고, 실패 메시지가 어느 쪽에 무엇이 빠졌는지 알려준다.
docs/api-contract.md 를 infra 포인터로 축소 — 복사본을 남기면 그게 다시 어긋남의 씨앗이 된다. 정본 위치와 한 줄 안내만 남긴다.
- enum 주석 교정 —
NO_EXTRACTABLE_CONTENT 의 주석이 EMPTY_SHELL 을 "일시, 에스컬레이션 대상"이라 서술하는데, 실제 팩토리는 permanent=true, escalatable=true 다. escalatable 과 permanent 를 한 단어로 뭉갠 서술이라 읽는 사람이 오해한다.
참고
카탈로그가 담는 것은 code 이름, disposition(permanent/transient), bucket(운영 분류)이다. disposition 은 검증용 메타데이터이며 런타임 판정 입력이 아니다 — 일시/확정의 정본은 지금처럼 각 예외 팩토리의 permanent 플래그가 쥔다.
왜
ExtractionErrorCodeenum 과 계약 문서의 code 표가 사람 손으로만 동기화된다. enum 에 code 를 더하고 문서를 안 고치거나, 문서에 적고 구현이 없어도 아무것도 깨지지 않는다.실제로 core 쪽에서 이미 어긋남이 발견됐다. 계약 문서가
NO_EXTRACTABLE_CONTENT의 core 동등물을 명시했는데 core 에 그 구현이 없었고, CI 는 계속 초록불이었다.code 목록 일치는 사람 판단이 낄 여지가 0 이라 오탐 없이 기계 판정이 가능하다. 산문에 둘 이유가 없다.
무엇을
선행: infra 의
contracts/extraction-error-codes.yaml신설 이슈가 머지된 뒤 착수한다.ci.yml에 infra 체크아웃 스텝 추가 —actions/checkout@v4로TeamPiKi/infra를shared-infra경로에 받는다.deploy.yml이 이미 쓰는 패턴 그대로다.ExtractionErrorCode의 상수 집합이 카탈로그의 key 집합과 정확히 일치하는지 검사한다. 한쪽에만 있으면 실패하고, 실패 메시지가 어느 쪽에 무엇이 빠졌는지 알려준다.docs/api-contract.md를 infra 포인터로 축소 — 복사본을 남기면 그게 다시 어긋남의 씨앗이 된다. 정본 위치와 한 줄 안내만 남긴다.NO_EXTRACTABLE_CONTENT의 주석이EMPTY_SHELL을 "일시, 에스컬레이션 대상"이라 서술하는데, 실제 팩토리는permanent=true, escalatable=true다.escalatable과permanent를 한 단어로 뭉갠 서술이라 읽는 사람이 오해한다.참고
카탈로그가 담는 것은 code 이름,
disposition(permanent/transient),bucket(운영 분류)이다.disposition은 검증용 메타데이터이며 런타임 판정 입력이 아니다 — 일시/확정의 정본은 지금처럼 각 예외 팩토리의 permanent 플래그가 쥔다.