Skip to content

#474 남은 조각 추적 — ①은 있고 ②③은 0건. 열람 프록시부터 (지금 셋 · 데모 뒤 셋) #609

Description

@yoonjiseok

#474(설계) · #475(② 서버) · #494(③ 화면)에 흩어진 남은 조각을 한 자리에 모은다. 설계 근거는 저 셋에 있고 여기는 「무엇이 남았고 누구 몫이고 언제냐」만 든다. 조각이 닫히면 여기서 체크한다.

main 23a6b73 기준 실측 (2026-09-11). 결정은 #475 의 ⓐ(승인 = git 커밋 · 서버 stateless)로 9/6 에 났고, 그 뒤 ②③ 구현이 0건이다.

관리자 화면 → 업로드 → 파스 → 추출 → 루브릭 후보 → 사람 승인 → YAML(PR) → CI → 배포
                                     ✅ ①            ❌ ②③            ❌ ②

① ai-service — 윤지석

  • POST /internal/rubric/propose 후보 생성 (#476)
  • GET /internal/rubrics[/{item_id}] 열람 (#493)
  • POST /internal/template/gaps 아무 항목도 안 덮는 문면 (#499)
  • ❗**status: draft 가 채점에서 아무 일도 안 한다** — is_draft 가 선언만 있고 호출 0건. 17종 중 7종이 draft 인 채로 confirmed 와 똑같이 채점된다. ⓐ 의 「승인 → draft」 흐름이 이 위에 선다. 갈래는 #475 코멘트(ⓑ: Judgment 에 rubric_status 표시 — 계약 변경이라 @hd0rable 승인). 지금 해도 채점이 안 바뀐다
  • #476 응답 모양 ↔ approve 요청 모양 정합 재확인 — 제 9/6 안에 빈칸 셋(productType·name·unlinkedUntil) 있었다. 고친 모양은 #475 코멘트(09-11). #476 쪽은 바꿀 것 없음
  • (데모 뒤) 1번 칸 — POST /internal/template/propose 항목 후보. 재현율 분모라 F-EXT-003 과 같이 (#474 코멘트)

② server — 강희진 (#475)

  • ❗열람 프록시 — 결정 없이 된다. 지금. GET /products/rubrics[?productType] · /{itemId} → /internal/rubrics. @junseo2323 님이 9/6 에 이것만 먼저 달라고 했고 5일째 답이 없다
  • AiServiceClient.proposeRubric(parsedDocument, itemIds?) + POST /products/{id}/rubric/propose 프록시 (읽기 전용 · 상태 안 남김)
  • (데모 뒤) POST /products/{id}/rubric/approve — 요청에 u1Requires·status·relatedMisconceptions(비면 unlinked_until) 를 사람이 채우고, 응답은 {yaml, catalogDiff, warnings, appliedOnDeploy: true}. 파일 안 쓴다 · DB 안 쓴다
  • ❗catalogDiff 에 risk_item_catalog.yaml 거울 줄이 같이 나가야 RiskItemCatalogMirrorsRubricsTest 가 안 빨개진다 — 사슬을 사람 기억에 안 맡긴다

② 권한·기록 — 정세현

  • rbac_policy.yaml 에 rubric:read — #610. ❗제가 적은 「(audited) · 프록시와 같이」가 둘 다 틀렸다(정세현 실측): everyAuditedActionIsReachable 이 «audited 인데 아무도 안 쓰는 action» 을 잡아 audited 는 프록시 뒤여야 하고, audited 여부 자체도 미결이다. 순서: ① permissions(#610) → ② 프록시(강희진) → ③ audited 판단(정세현, ② 위에 스택). ❗그리고 #610 리뷰: SELLER 를 빼야 한다 — README:92 «루브릭은 판매 직원에게 열지 않는다»
  • (데모 뒤) rubric:approve — ADMIN·COMPL 범위. 판매 라인(SELLER)은 없다(ADR-001 과 같은 결)
  • warnings 문면 — "루브릭이 바뀌면 eval 표본이 낡는다". 응답이 들고 있어야 curl 로 쓰는 사람도 본다

③ web — 오준서 (#494)

  • ❗열람 화면 — 열람 프록시가 붙으면 같은 날. 공개 의무(기획서 5절)를 화면이 보이는 자리
  • 15-demo-mode.sh 지도에 /api/products/rubrics 줄 — SELLER 가 없어서 ADMIN 으로 (#494 9/7 코멘트)
  • (데모 뒤) 후보 검토·승인 화면 — evidence.spans 로 원문에 표시(P6). u1Requires 를 사람이 정하는 칸과 relatedMisconceptions ↔ unlinked_until 배타를 화면이 강제한다(#284 (a) 가 그 자리에서 3주)
  • (데모 뒤) 승인 결과 화면 — 「즉시 반영 아님 · PR 로 올린다 · 직접 푸시하면 ai-service 가 안 뜬다」

안전장치 — 이미 있는 것 (새로 만들 것 없음)

_parse / all_rubrics()               깨진 yaml 하나 → 채점 전부 죽는다 → PR 의 CI 가 막는다
RiskItemCatalogMirrorsRubricsTest    거울 어긋남
assert_related_misconceptions_exist  링크가 라이브러리에 없으면 기동 경고
매 배포 --build · app/ 마운트 없음    승인본은 이미지로만 닿는다 (appliedOnDeploy 의 전제)

순서 (제안)

지금        ② 열람 프록시 + rubric:read  →  ③ 열람 화면  →  ① draft 표시
데모 뒤     ② approve  →  ③ 승인 화면  →  ① 템플릿 후보

앞 셋은 S-01(#406)과 무관하고 채점 경로를 안 건드린다 — 9/6 의 「데모 뒤」 근거가 안 걸린다.

관련: #474 · #475 · #494 · #473 · #476 #493 #499 · #367(u1_requires) · #284(unlinked_until) · #409(eval 사슬)

@hd0rable @gitIt-sehyeon @junseo2323

Activity

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

Metadata

Metadata

Labels

ai-serviceFastAPI (:8100, 내부망 전용)serverSpring (:8000)webVite (:5173)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions