Skip to content

docs(config): 발주 주기가 월 단위 정기 발주임을 근거로 기록 (이슈 #54 요청 1번) - #64

Open
choigod1023 wants to merge 2 commits into
devfrom
feat/review-cadence-rationale
Open

docs(config): 발주 주기가 월 단위 정기 발주임을 근거로 기록 (이슈 #54 요청 1번)#64
choigod1023 wants to merge 2 commits into
devfrom
feat/review-cadence-rationale

Conversation

@choigod1023

@choigod1023 choigod1023 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

#54에서 reo-23 님이 요청하신 1번입니다.

src/config.pyDEFAULT_REVIEW_PERIOD_DAYS = 30은 실무와 일치합니다. 다만 지금은 코드에 상수로만 있고 근거 기록이 없으니, 이 확인 내용을 주석이나 정책 파일에 근거로 남겨주시면 좋겠습니다.

⚠️ 이 PR은 #54를 닫는 PR이 아닙니다

"검토주기 = 정기검토 30일"이라는 결정 자체는 확정(ai#54 요청1, 2026-07-30 reo-23 확인)이지만, 그 결정을 실제 DB 재계산에 반영하는 건 이 PR 범위 밖입니다. apply_inventory_policy.py는 여전히 ss/rop/target/status/order_recommendation을 쓰지 않고, inventory_policy.pyinventory_policy_method 라벨도 아직 module_c_continuous_target_stock로 남아있습니다(라벨 정정은 sehyeon03 님 리뷰 권고대로 DB 마이그레이션 반영하는 후속 PR에서 함께 처리).

#54는 계속 열어둡니다.

변경

src/config.pyDEFAULT_REVIEW_PERIOD_DAYS 위에 주석만 추가했습니다. 상수 값은 30 그대로이고 동작 변경은 없습니다.

추가로 apply_inventory_policy.py 모듈 docstring과 실행 로그 문구를, "#54가 미결"이라는 stale한 표현에서 "cadence 결정은 됐고 DB 반영만 별도 PR 대기"로 정정했습니다(sehyeon03 리뷰 지적).

남긴 내용:

  • 보건기관은 월 단위 정기 발주 (확인: 2026-07-30 reo-23, #54)
  • 그래서 연속검토가 아니라 정기검토를 쓰고, 보호기간 = 검토주기 + 리드타임
  • backend가 연속검토 식(SS = z·σ·√L, ROP = μ·L + SS)으로 운영 DB를 채워 온 사실과, 두 모형 공존이 #54였으며 실무 확인으로 정기검토가 정본이 된 경위
  • 운영 DB 재산정은 별도 PR이고, 그때까지 apply_inventory_policy.pyss/rop/target/status/order_recommendation을 쓰지 않는다는 현재 상태

정책 파일이 아니라 주석으로 한 이유

data/mapping/inventory_status_policy.json은 재고 판정(zero_stock_reason·urgent_shortage·ledger_rule) 정책이라 발주 주기를 넣을 자리가 아니라고 봤습니다. 새 정책 파일을 만드는 것도 읽는 코드가 없어 과해 보였습니다.

발주 주기 전용 정책 파일이 필요하다고 보시면 알려주세요 — 그렇게 옮기겠습니다.

검증

ast.parse 통과, 상수 값 30 유지 확인, 관련 테스트 9건 통과. 주석/로그 문구만 변경이라 동작 영향 없습니다.

Type

  • 새로운 기능
  • 버그 수정
  • 리팩토링
  • 문서/주석
  • 의존성 추가/수정

PR Checklist

  • Commit Message Convention을 준수했습니다.
  • Code Convention을 준수했습니다.
  • 변경한 기능이 잘 동작하는지 테스트했습니다.

#54 에서 reo-23 님이 조달 실무를 확인해 주셨다 — 보건기관은 재고 소진 시 수시
발주가 아니라 **월 단위로 정기 발주**한다. 따라서 정기검토 모형(보호기간 =
검토주기 + 리드타임)이 실무에 부합하고, DEFAULT_REVIEW_PERIOD_DAYS = 30 은
실무와 일치한다.

그동안 이 값은 코드에 상수로만 있고 근거가 없었다. 다음에 보는 사람이
"30일은 어디서 나온 값인가"를 다시 묻지 않도록 확인 경위와 날짜, 이슈 번호를
남긴다. reo-23 님 요청 1번이다.

함께 적어 둔 것

- 왜 연속검토가 아니라 정기검토인지 (실무가 정기 발주이므로)
- backend 가 연속검토 식(SS = z·σ·√L, ROP = μ·L + SS)으로 운영 DB 를 채워 온
  사실과, 두 모형 공존이 #54 의 내용이며 실무 확인으로 정기검토가 정본이 된 경위
- 운영 DB 재산정은 별도 PR 이고, 그때까지 apply_inventory_policy.py 가
  ss/rop/target/status/order_recommendation 을 쓰지 않는다는 현재 상태

상수 값은 바꾸지 않았다(30 유지). 주석만 추가한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sehyeon03

Copy link
Copy Markdown
Contributor

2026-08-10 전체 재검토

결론: 비기능 문서 변경으로는 병합 가능하지만, #54를 해결하거나 닫는 PR은 아닙니다.

head 05af509의 관련 테스트 8개와 전체 회귀 테스트를 확인했고, 전체 232개 통과·로컬 TCP 제한 1개 skip이었습니다. 변경은 src/config.py 주석뿐이라 실행 결과는 바뀌지 않습니다.

현재 남은 불일치:

권장:

  1. 이 PR 본문에 "30일 정기검토 근거 기록만 수행하며 [정합성] 안전재고 모형이 ai/backend 에 두 개 공존 — 어느 쪽이 정본인지 확인 요청 #54 완료가 아님"을 명시
  2. 후속 PR에서 review_mode=periodic, review_period_days=30, 정책 버전·결정 근거를 산출물 metadata로 고정
  3. method 이름과 stale 안내문을 정정하되, DB migration 전 SS/ROP 보호 쓰기는 그대로 유지
  4. wide 데이터 재고가용량 수식과 DB backfill 검증까지 끝난 뒤 [정합성] 안전재고 모형이 ai/backend 에 두 개 공존 — 어느 쪽이 정본인지 확인 요청 #54 종료

따라서 이 PR은 부분 문서화로 병합 가능, #54는 계속 열어두는 판단입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants