Skip to content

[test] 추출 실패 code enum 을 infra 카탈로그에 묶는 메타 테스트 #32

Description

@m-a-king

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@v4TeamPiKi/infrashared-infra 경로에 받는다. deploy.yml 이 이미 쓰는 패턴 그대로다.
  • 메타 테스트 신설ExtractionErrorCode 의 상수 집합이 카탈로그의 key 집합과 정확히 일치하는지 검사한다. 한쪽에만 있으면 실패하고, 실패 메시지가 어느 쪽에 무엇이 빠졌는지 알려준다.
  • docs/api-contract.md 를 infra 포인터로 축소 — 복사본을 남기면 그게 다시 어긋남의 씨앗이 된다. 정본 위치와 한 줄 안내만 남긴다.
  • enum 주석 교정NO_EXTRACTABLE_CONTENT 의 주석이 EMPTY_SHELL 을 "일시, 에스컬레이션 대상"이라 서술하는데, 실제 팩토리는 permanent=true, escalatable=true 다. escalatablepermanent 를 한 단어로 뭉갠 서술이라 읽는 사람이 오해한다.

참고

카탈로그가 담는 것은 code 이름, disposition(permanent/transient), bucket(운영 분류)이다. disposition 은 검증용 메타데이터이며 런타임 판정 입력이 아니다 — 일시/확정의 정본은 지금처럼 각 예외 팩토리의 permanent 플래그가 쥔다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    test테스트만 만지는 작업

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions