Skip to content

추출 계약 문서를 부분값 성공 규약으로 갱신 - #48

Merged
m-a-king merged 2 commits into
mainfrom
docs/47-extraction-contract-partial-values
Aug 15, 2026
Merged

추출 계약 문서를 부분값 성공 규약으로 갱신#48
m-a-king merged 2 commits into
mainfrom
docs/47-extraction-contract-partial-values

Conversation

@m-a-king

Copy link
Copy Markdown
Contributor

Situation

Task

  • 응답 규약을 "세 필드 non-null 보장" 에서 실제 동작으로 맞춘다.
  • 이미지 경로 서술도 함께 낡았다. 크롭 불가 포맷의 위장 업로드를 고치면서 업로드 object key 가 항상 .png 가 아니게 됐다.

Action

네 자리를 고쳤다.

자리
link 성공 규약 세 필드 non-null 을 Extractor 가 보장, 못 채우면 422 하나라도 채우면 200, 하나도 못 채우면 422
책임 소재 Extractor 단독 보장 Extractor 가 채운 만큼 + 사용자가 나머지
이미지 업로드 key items/{uuid}.png 고정 결과물을 따름: 크롭했으면 png, 원본 그대로면 원본 확장자·content-type
UNTRUSTWORTHY_VALUE 설명 non-null 보장을 못 채웠다 값을 하나도 못 채웠다 (일부만 채운 결과는 200)
  • 왜 규약을 풀었는지도 문서에 남겼다. 사진에 가격이 박혀 있지 않은 것은 정상 입력이라, 셋을 다 요구하면 "쇼핑몰 화면 캡처" 만 통과하는 계약이 된다. 규칙만 바꾸고 이유를 안 남기면 다음 사람이 되돌리기 쉽다.
  • 이미지 경로의 imageUrl 은 여전히 항상 non-null 이라는 점을 명시했다. 업로드 결과라 크롭에 실패해도 원본이 올라가서, 그 경로가 값 0개로 422 가 되는 일은 사실상 없다.
  • contracts/extraction-error-codes.yaml 은 code 집합과 disposition 이 그대로라 건드리지 않았다. 각 repo 의 메타 테스트가 이 카탈로그와 코드를 대조하므로, 불필요하게 만지면 양쪽 CI 만 흔든다.

Result

  • 세 repo 의 서술이 한 방향으로 맞는다. 이 문서, core 의 상태 모델, extractor 의 응답 경계가 같은 규약을 말한다.
  • 이 PR 은 문서만 바꾸므로 배포 순서와 무관하다. 다만 구현 PR 두 개(core 먼저, extractor 나중)가 머지되기 전에 이 문서가 먼저 머지되면, 짧은 기간 문서가 구현보다 앞선 상태가 된다.

연관 이슈

- 세 필드(name·imageUrl·currentPrice) non-null 을 Extractor 가 보장하고 못 채우면 422 라는 규약을, "하나라도 채우면 200 / 하나도 못 채우면 422" 로 바꾼다. 사진에 가격이 박혀 있지 않은 것은 정상 입력이라 셋을 다 요구하면 "쇼핑몰 화면 캡처"만 통과하는 계약이 된다
- 세 필드를 채우는 책임이 Extractor 단독에서 "Extractor 가 채운 만큼 + 사용자가 나머지" 로 갈렸음을 명시한다. 호출자는 부분값을 INCOMPLETE 로 받는다 (TeamPiKi/core#944)
- 이미지 경로의 업로드 object key 를 items/{uuid}.png 고정에서 결과물을 따르는 확장자로 고친다. 크롭 불가 포맷(HEIC·WebP·HEIF)의 원본을 png 로 위장 저장하던 버그를 함께 수정했기 때문이다 (TeamPiKi/extractor#35)
- imageUrl 은 이미지 경로에서 업로드 결과라 여전히 항상 non-null 이고, 그래서 그 경로가 값 0개로 422 가 되는 일은 사실상 없다는 점을 함께 적는다
- code 표의 UNTRUSTWORTHY_VALUE 설명도 같은 기준으로 고친다. error-codes.yaml 은 code 집합·disposition 이 그대로라 변경 없다
@m-a-king m-a-king added the docs 문서만 만지는 작업 label Aug 15, 2026
@m-a-king m-a-king self-assigned this Aug 15, 2026
@m-a-king m-a-king linked an issue Aug 15, 2026 that may be closed by this pull request
@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Important

Review available on request

  • 🔍 Trigger review

Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment @coderabbitai review to review the latest changes. For a full review, comment @coderabbitai full review.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: eb988a35-0510-47d5-b2fe-56869fa69a55


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.

@m-a-king
m-a-king merged commit 2ca8268 into main Aug 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs 문서만 만지는 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

추출 계약 문서를 부분값 성공 규약으로 갱신한다

1 participant