docs(S15P11A705-292): 프리셋 표시 라벨·축 정의 개정안 P47 신설 - #105
Merged
Conversation
외부 리뷰 문서를 P47 제안 문서로 다시 써서 `docs/proposals/` 에 넣는다. 색인(`proposals/README.md`)과 `WORKLOG.md` 에 각각 한 줄이 붙는다. §6(표시 라벨)은 이 문서를 쓰는 사이에 반영이 끝났다 — 같은 티켓이 `ai#102`(`dev`)·`ai#104`(`main`)로 나갔다. 그래서 그 절만 제안이 아니라 기록으로 쓰고 표의 「권장 표시명」을 실제 반영값으로 맞췄다. 초안과 갈린 셋을 확정으로 남긴다 — `ALONE` 은 초안의 `1인` 을 기각하고 `혼자` 유지, `TRENDY` 는 `감성`, `RETRO` 는 초안에 없던 결정으로 `복고`. 값의 정본은 문서가 아니라 `data/keyword_preset.yaml` 임을 표 앞에 못박았다. 「프리셋을 고치면 기존 판정을 전부 재처리한다」가 정해지면서 선결 조건이 바뀐다. 「판을 구분할 경로」(행 `version` 을 올릴 경로가 없다는 사실, `S15P11A705-269`)는 §3-F 로 내려가고, 그 자리에 「재처리할 수단이 없다」가 들어간다 — 완료 State 를 되돌리는 코드가 없고, 재스캔이 잡는 상태에 완료가 없으며, 한 번에 밀면 게이트웨이 한도에 걸려 재시도 예산이 소진되면 실패로 굳는다. 부재의 범위는 `ai#100` 이 다룬다. 「정할 것」이 아니라 「만들 것」이라 §13 0단계가 구현 항목이 되고, 같은 이유로 §10.3 세트 release 는 운영 용도가 빠져 우선순위가 내려간다. 문서 전체는 `Proposed` 로 둔다. §7 이후가 미실행이고 §11 실측이 없다. 부분 반영은 문서 상태를 올리지 않는다. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
외부 리뷰 문서를 P47 제안 문서로 다시 써서
docs/proposals/에 넣는다. 프리셋의 표시 라벨·축 정의·스키마 개정안이다.§6(표시 라벨)은 이미 반영됐고, 나머지는 제안으로 남는다. 표시명 명사화는 같은 티켓이 #102(
dev)·#104(main)로 이미 내보냈다. 이 PR 은 그 결과를 문서에 반영하고, 아직 실행되지 않은 나머지(§7 이후)를 제안 상태로 남긴다.문서 변경만 있다. 코드·데이터·계약 파일을 건드리지 않는다 —
data/keyword_preset.yaml은#102에서 이미 병합됐고 이 PR 은 그 파일을 열지 않는다.Jira (필수)
S15P11A705-292— https://ssafy.atlassian.net/browse/S15P11A705-292#102·#104에서 끝났다.새 티켓을 발행하지 않았다. P47 §6 이
-292작업의 근거이고 이 문서가 그 결과를 담으므로 같은 티켓에 묶는다. 조회 시점의 상태는진행 중이었다.변경 사항
docs/proposals/P47-keyword-preset-label-axis.md(신설)examples· 스키마 · loader/DB · 평가 · 적용 순서docs/proposals/README.mdProposed).tools/check_docs_index.py는 proposals 를 검사하지 않으므로 손으로 맞췄다 — 기존 행과 컬럼 형식을 대조했다docs/WORKLOG.mdmerge=union대상이라 추가만 한다문서 안에서 오늘 확정·실행된 것에 맞춰 고친 지점은 다음과 같다.
#102·#104, 관련 티켓에-292추가. 「§6 은 반영 완료」를 머리말에서 밝힌다.version을 올릴 경로가 없다는 사실을 여기로 옮기고, 우선순위를 낮춘 근거를 붙였다.N이 이미 반영됐으므로 실측 기준선이BASE가 아니라N임을 덧붙였다.examples정비와 그 측정만 남는다.Accepted가 아니다」는 유지하되, §6 이 실측 없이 먼저 나갔다는 사실을 감수 항목으로 새로 넣었다.설계 결정
1. 왜
Proposed인가§6 만 실행됐고 §7(
examples) 이후가 전부 미실행이며 §11 의 실측이 없다. 부분 반영으로 문서 상태를 올리면 나머지 절이 확정된 결정처럼 읽힌다 —proposals/README.md가 「Accepted 인 것은 확정된 결정이며 구현이 따라야 한다」로 규정하므로 그 오독의 대가가 크다.대신 반영된 절만 문서 안에서 격상했다. 상태 필드는 문서 단위이고 반영 여부는 절 단위라 층이 다르다.
2. 왜 값을 안 적었는가
§0 이 이 문서의 규칙이다 — 측정 수치·현행 상수·코드 행 번호·배포 상태 값을 넣지 않고 어디에 있는지만 가리킨다. 값은 시점에 묶이는데 문서는 따라가지 않고, 낡은 값이 다음 결정의 근거가 된다(이 프로젝트에서 세 번 났다).
이번 수정에도 같은 규칙을 적용했다. 새로 쓴 문장에 수치·행 번호가 없다. 티켓·PR·이슈 번호는 좌표라 넣었다.
예외는 §6.2 의 표 하나다. 표시명 자체가 결정 내용이라 안 적을 수 없다. 그래서 표 앞에 정본은
data/keyword_preset.yaml이고 표와 어긋나면 YAML 이 옳다고 못박았다.3.
ALONE·TRENDY·RETRO를 어떻게 정했는가ALONE1인권장혼자유지TRENDY감성으로 두되 판단 유보감성code는 유행을 가리키지만examples가 실제로 가리키는 것은 사진·인테리어의 미감이다. 표시가 실제 의미를 따른다RETRO복고description이 이미 「복고」를 쓴다TRENDY는 표시만 정했고code와 뜻의 간극은 남는다 — §14 가 감수 항목으로 안는다.4. 선결 조건을 왜 갈아치웠는가
원래 선결 조건은 「개정 전후 판정을 DB 에서 구분할 경로」였다. 「전부 재처리한다」가 정해지면서 그 용도가 사라졌다 — 골라낼 일이 없으면 판을 구분할 이유가 준다.
대신 재처리할 수단이 없다는 것이 선결 조건이 된다. 완료 State 를 되돌리는 코드가 없고, 재스캔이 잡는 상태에 완료가 없으며, 한 번에 밀면 게이트웨이 한도에 걸려 재시도 예산이 소진되면 실패로 굳는다. 부재의 범위는 #100 이 다룬다. 「정할 것」에서 「만들 것」으로 성격이 바뀌었다.
테스트 / 검증
문서 전용 변경이라 런타임 영향이 없다. 애플리케이션 코드·데이터·스키마를 건드리지 않으므로 RED/GREEN 이 적용되지 않는다. 대신 문서가 지킬 수 있는 것을 검사했다.
RED
ALONE을1인,RETRO를레트로로 적고 있었고TRENDY는 판단을 유보한 상태였다. 셋 다 실제 반영값과 달랐다.GREEN
git show origin/main:data/keyword_preset.yaml에서 뽑은display_name과 §6.2 표를 프로그램으로 짝지어 비교했다. 27/27 일치.Regression
ruff check .— All checks passedpython -m compileall app tools— exit 0pytest --cov=app --cov-branch --cov-report=term-missing— 실행하지 않았다. 이 PR 은app/·tests/를 건드리지 않아 커버리지 분모·분자가 움직이지 않는다. CI 의ai-ci / check가 전량 돌리며, 실패하면 병합 전에 고친다.python tools/check_docs_index.py— 문서 색인 정합 통과CI 가 검사하는 것 — PR 제목 형식(
{type}(S15P11A705-N):), base 브랜치 규칙, Ruff, compile, pytest/Testcontainers, coverage 게이트, 컨테이너 빌드. 이 PR 이 실질적으로 거는 것은 앞의 셋이다.tools/check_docs_index.py는proposals를 검사하지 않는다. 그쪽 전수 표는M##처럼 개별 문서가 없는 행을 담고 상태 전이가 파일의 용도 자체라 자동 검사의 대상이 아니다(.gitattributes주석에 근거가 있다). 따라서 P47 색인 행은 사람이 맞췄고, 기존 행과 컬럼 형식을 대조했다.리뷰 포인트
display_name과 같은가. 프로그램으로 대조했으나 눈으로도 봐 주면 좋다. 틀렸을 때의 정본은 YAML 이며 그 사실이 표 앞에 적혀 있다.리스크
docs레포)·spec/을 건드리지 않는다. §12.4 가 스키마 개정 시 따라올 공용 계약 개정 단계를 예고할 뿐이다.visibility정책은 이 PR 의 범위 밖이며 §6.1 이 「바꾸지 않는다」로 고정한다.mainpush 에서만 일어나고 이 PR 의 base 는dev다. 프리셋 봉인 값은#102에서 이미 갱신 요청됐다.범위 밖 / 후속
이번 PR 에서 다루지 않는 항목:
examples정비와 그 측정 — §7·§11·§13 1단계. 축 오염 제거와 전체 재임베딩·반복 회차 측정.version개정 경로 — §3-F.S15P11A705-269가 추적한다.display_name실측 재평가 — §6 반영이 판정에 얼마나 파급됐는지는 재지 않았다. §11 에 남는다.data/keyword_preset.yaml수정 —#102에서 병합됐고 이 PR 은 열지 않는다.후속 Jira:
S15P11A705-269(preset_version 경로) ·S15P11A705-270(DE 부호) ·S15P11A705-271(description 층 분리). 재처리 수단과 저빈도 프리셋 처분은 아직 티켓이 없다.영구 문서
docs/proposals/P47-keyword-preset-label-axis.md— 신설docs/proposals/README.md— 색인 한 줄docs/WORKLOG.md— 시간축 한 줄관련 GitHub Issue (선택)
FAILED회수 경로 부재. §4 의 재처리 수단 부재와 같은 구멍의 다른 면이다.