Commit Graph

37 Commits

Author SHA1 Message Date
이정수 184839434c docs(changes): 포스트 카테고리 시드/뷰 재설계 기록 + 세션 회고 교훈 반영
- docs/changes: 2026-07-24 포스트 카테고리 시드+뷰 재설계 문서 신규 + index/coverage-checklist/이전 리디자인 문서 교차링크.
- 회고 교훈 2건 docs-first 반영: verification-strategies(기존 컨트롤러 시그니처 변경도 full test 의무 — baseline RED 방지), workflow-patterns(도메인/상호작용 모델은 UI taxonomy 가정 전 permission enum·work-log 로 접지).
- ATP 세션 산출물(report/설계도/검증/문서화) 동봉.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UqyLwTxF3FmW1eJCWN8yAo
2026-07-24 17:25:13 +09:00
이정수 64e91e4786 docs(dev): AskUserQuestion 사실전제 grep 선검증 규칙(#4) 등재 + \u 이스케이프 재발 기록
game-register.jsp 세션에서 orchestrator가 CSS 변수 대체 가능성을 grep
없이 옵션 전제로 제시했다가 재확인 왕복이 발생한 사례를 규칙 4로 명문화.
같은 세션에서 AskUserQuestion \u 이스케이프 손타이핑 실수(규칙 2)도
재발했음을 발원 사례에 추가 — 이번엔 스키마 검증에서 걸렸으나 항상
그렇게 걸리지는 않는다는 점을 명시.

세션 20260701-142000 report.md 기록.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6etRXJLx1xdfxmVcHjBg
2026-07-01 14:39:06 +09:00
이정수 86b052813d feat(fe): game-register.jsp 리디자인 누락분 보강 + 재발방지 체크리스트
/game/new 가 2026-06-30 9단위 리디자인 목록에서 빠져 있던 것을 사용자가
지적해 발견. 실사용 스샷 대조 결과 레이아웃/토큰은 이미 sibling(recruit-form
등)과 일치해, 필수(*) 표시 2건 + 미리보기 eyebrow 라벨만 recruit-form.jsp
패턴 재사용으로 보강(단일 JSP, 로직 무변경). 로컬 CSS 토큰 전지역 통합은
sibling 관례와 갈라지므로 이번 세션 범위에서 제외, 별도 과제로 이월.

재발방지: frontend-redesign-coverage-checklist.md 신설(뷰 파일 23개 전수
상태표) + workflow-patterns.md 에 "전 페이지 반영 서술은 실제 파일 전수와
대조 필요" 패턴 등재.

L1 362/362 GREEN. L2 로그인 후 라이트/다크 육안 확인(known JSP stale
렌더링 함정 회피 위해 docker compose restart 후 재대조).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6etRXJLx1xdfxmVcHjBg
2026-07-01 14:25:47 +09:00
이정수 0205dca0f7 docs(dev): 사용자 의사결정/리포트 컨벤션 4건 workflow-patterns 로 이전 + 재발방지 규칙 등재
3개 독립 리뷰 서브에이전트(감사A/감사B/정책진단)의 수렴 결과에 따라:
- verification-strategies.md 에서 스코프 위반이 명확한 4개 항목(모호한 시각
  결함 다축스캔 선행, 시각 디자인 결정 프리뷰 공동확인, needs_user_verification
  결정분기 구조화, needs_user_verification 이월 시 known pitfall 교차인용)을
  workflow-patterns.md 로 이전 — 전부 "사용자와 어떻게 합의하는가"이지 코드
  정오 검증이 아님.
- design-advisor/orchestrator 운영 규율 성격 항목(SSR 영향맵, scope-fence,
  트레이드오프 확정, multi-worker git diff 교차검증, Test.java 소유태그,
  graphify 스캔범위)은 이번 라운드에서 보류 — ATP 메커니즘 성격이 강해
  별도 판단 필요.
- document-category-classification.md 에 재발방지 규칙 추가: 기존 문서에
  append 하기 전 그 문서의 자기선언 스코프와 먼저 대조하고, 같은 파일 안의
  선례를 정당화 근거로 삼지 않는다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6etRXJLx1xdfxmVcHjBg
2026-07-01 12:26:08 +09:00
이정수 15023c0373 docs(dev): freeze 근거확인 + frontend-design fork 위임 패턴도 workflow-patterns 로 이전
verification-strategies.md 에 남아있던 나머지 두 "작업 방식" 패턴
(freeze/동결 분류 판단절차, frontend-design 스킬 fork 위임)을
workflow-patterns.md 로 이전. index.md 목록 설명도 항목 위치에 맞게 정정.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6etRXJLx1xdfxmVcHjBg
2026-07-01 12:19:17 +09:00
이정수 4c54b9db38 docs(dev): 다중 UI 안 Artifact 시각비교 패턴을 verification 대신 workflow-patterns 로 재배치
검증 전략(verification-strategies.md)은 "코드가 옳은가" L1/L2/L3 판정
레지스트리 범위인데, 직전 커밋(810fa21)에서 사용자 합의 수렴 절차(작업
진행 방식)를 그 안에 잘못 등재했다. 신규 docs/development/workflow-patterns.md
로 옮기고 index.md 목록도 정정.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6etRXJLx1xdfxmVcHjBg
2026-07-01 12:07:51 +09:00
이정수 810fa211a5 docs(dev): 다중 UI 안 Artifact 시각비교 → AskUserQuestion 선택 수렴 패턴 등재
game-detail.jsp 리뷰 레이아웃 세션(20260701-113509)에서 검증된 워크플로우
— 실제 CSS 토큰을 이식한 Artifact 로 후보 N안을 한 화면 비교 제시 →
AskUserQuestion 으로 확정 → 그 후에만 소스 반영 — 를 재사용 가능한
긍정 패턴으로 verification-strategies.md 에 기록하고 index.md 목록에 반영.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6etRXJLx1xdfxmVcHjBg
2026-07-01 12:05:32 +09:00
이정수 f086b12142 docs(dev): AskUserQuestion 비ASCII 리터럴 작성 + 복수대상 스코프확인 규약 추가
세션 회고 반영. 두 교훈 모두 이번 세션에서 실제 재질의 왕복 비용을
발생시킨 구조적 결함:
1. 한글을 \u 코드포인트로 수동 타이핑하다 오타로 2회 깨짐 → 리터럴
   UTF-8 작성 규칙 명문화.
2. "각 그래프"(복수) 지적을 미터바 단수로 임의 축소 해석 → 사용자
   정정("내가 말한건 육각 그래프였어") 발생 → 복수 표현 시 전체
   후보 나열 규칙 명문화.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h6etRXJLx1xdfxmVcHjBg
2026-07-01 11:26:31 +09:00
이정수 7572e86605 docs(dev): SQL data-only 검증레벨 표 등재 + needs_user_verification known-pitfall 교차인용 규약
retrospective-advisor 회고(세션 20260701-100731) 반영:
- "버그 범주 → L 레벨" 표에 'SQL data-only(DML)' 행 추가 — L1 해당없음
  명시 + L2(API/DB 값 일치) 필수. 매 seed/백필 세션마다 즉흥 재정당화
  하던 스킵 근거를 레지스트리에 고정.
- needs_user_verification 이월 시 최근 세션에 docs화된 렌더 관련
  known pitfall(예: JSP stale 렌더링)과 경로가 겹치면 명시 인용하는
  규약 추가. 직전 세션(20260701-093754)의 JSP 즉시반영 실패 교훈이
  후속 세션에 인용 안 된 사례를 근거로 신설, 이번 report.md 에도
  소급 적용.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-07-01 10:16:33 +09:00
이정수 e3890b3c6f docs(dev): JSP 즉시반영 실패 사례 + 검증 방법 정정
카드 여백 수정 세션에서 JSP CSS 수정이 "저장 즉시 반영" 문서 설명과
달리 컴파일 캐시로 반영 안 되는 사례 발견. 브라우저 스크린샷만으로
검증한 1차 확인이 stale 렌더링을 보고 false pass를 냄(사용자가
재캡처 스샷 대조로 발견). docker compose restart app으로 해소.

향후 JSP 수정 검증 시 curl로 서빙 CSS/마크업을 파일과 직접 대조하는
단계를 local-dev-setup.md 함정 항목으로 추가.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bn6vdHrUHqVzzUfC9da6fS
2026-07-01 09:55:51 +09:00
이정수 6b24386623 docs(dev): 시각 프리뷰 공동확인 + 정적 html charset 교훈
세션 20260701-083240 회고 반영.
- 시각 디자인 결정은 앱 정적경로(/css/) 프리뷰 서빙으로 사용자·에이전트 공동 확인
  (텍스트 diff 예측 한계). 결정 후 프리뷰 삭제.
- 정적 .html(DefaultServlet)도 meta charset 필수 — §299 의 정적파일 짝.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-07-01 09:34:26 +09:00
이정수 20789a2922 docs(changes): UI 다축평가 비율·가시성 수정 사례 추가
세션 20260630-175023 을 changes 사례로 문서화. 다축 멀티에이전트
평가(6 에이전트)로 모호 시각어휘를 13건 결함으로 확장한 패턴 기록.
verification-strategies.md 교훈과 양방향 교차링크. graphify-out/ gitignore.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-06-30 19:24:08 +09:00
이정수 c688aa67d8 docs(dev): 모호 시각어휘 다축 스캔 선행 교훈 + 세션 회고
세션 20260630-175023 회고 반영.
- verification-strategies.md: "모호 시각 결함 어휘는 단일 결정축 협소화
  전 다축 스캔 선행" 레슨 추가 + §4.4 item5 선행게이트 강화 권고.
- work-session 보고서 + 회고 섹션.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-06-30 18:29:10 +09:00
이정수 d379a1c353 docs(dev): 정적 include jspf pageEncoding 교훈 추가
브라우저 리뷰에서 빈상태 파편 mojibake 발견(fix a4d163d). 정적
include 파편은 부모 pageEncoding 미상속 → 자체 UTF-8 선언 필수.
JSP 검증 섹션에 재현성 교훈 추가.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 16:56:00 +09:00
이정수 8d52b1082f docs(dev): JSP 변경 런타임 스모크 의무 교훈 추가
회고 교훈 jsp-runtime-smoke-gate 반영. JSP 사전컴파일 미설정이라
WAR 빌드 PASS가 EL/taglib 오류를 은닉 → JSP 변경 시 런타임 스모크
의무 + 디자인 이식 stray taglib grep 체크. 근거: errer.jsp JSTL
taglib 결함(세션 20260630-160000).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 16:44:57 +09:00
이정수 925eb73a62 test(seed): 관리자 테스트 계정 추가 (admin@bibimbap.local)
기존 tester 계정은 USER 용으로 유지하고,
admin@bibimbap.local / test1234! (role=ADMIN) 를 seed-dev.sql 에 추가.
screenshot-guide.md 계정 표를 용도·role 포함 2행으로 확장.
teardown 은 %@bibimbap.local 전체 삭제라 수정 불필요.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-06-30 14:36:31 +09:00
이정수 aa55524191 docs(screenshot): 인증 흐름 추가 변경 기록 및 교차 링크
- docs/changes/2026-06-30-screenshot-guide-auth.md 신규 작성
- docs/changes/index.md 링크 추가
- docs/development/screenshot-guide.md 변경 이력 섹션 추가
- .atp/work-session/20260630-141415/ 세션 보고서 포함

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-06-30 14:32:15 +09:00
이정수 872f51c91c docs(screenshot): 테스트 계정 정보 + 전체 실행 명령 추가
tester@bibimbap.local / test1234! — seed-dev.sql user3

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-06-30 14:29:11 +09:00
이정수 6e6d6b2b46 fix(docs): 로그인 nav 감지 expect_navigation으로 교체 + 오류 stdout 출력
wait_for_url lambda → expect_navigation 컨텍스트 매니저로 교체.
로그인 실패 오류 메시지를 stderr 아닌 stdout에도 출력.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-06-30 14:26:07 +09:00
이정수 5dd639fd7a feat(docs): 스크린샷 가이드 — 인증 후 세부 화면 캡처 추가
로그인 전 7장만 캡처하던 스크립트를 확장:
- SCREENSHOT_EMAIL/PASSWORD env var로 인증 세션 획득
- 로그인 후 홈·프로필·게시글폼·모집폼 캡처
- game-detail 리뷰·댓글 composer hidden 제거 후 캡처
- AJAX 로그인 흐름(fetch + window.location) wait_for_url 대응

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
2026-06-30 14:22:20 +09:00
이정수 9098325e7c docs(dev): Playwright 헤드리스 스크린샷 가이드 추가
- screenshot-guide.py: 로컬 Chrome 헤드리스로 7개 주요 페이지 캡처
- 출력 경로: /tmp/bibimbap-screenshots/ (Claude Design 연동용)
- index.md 링크 추가

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017mhnv7hDExHaXUmbaYAxZd
2026-06-30 14:10:34 +09:00
이정수 3726ce54f2 docs(retro): 세션 20260630-113258 회고 교훈 3건 docs 반영
- CLAUDE.md: 정적 CSS/JS Tomcat DefaultServlet 서빙 경로 규약 추가
- security-remediation-checklist: B5 recruit-form CSRF 폴백 갭 (P0) 추가
- verification-strategies: graphify 스캔 범위 JSP/CSS/JS 미포함 교훈 추가
- report.md: ended_at 기록

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-30 12:11:04 +09:00
이정수 db816e10fc docs(dev): MyBatis null 캐스트 규약 + docker-compose override --build 함정 기록
verification-strategies.md: MyBatis annotation SQL에서 nullable 파라미터를
#{p} IS NULL 조건으로 사용 시 ::bigint/::timestamptz 명시 캐스트 필수 규약 추가.
컴파일·L1 MockBean 테스트로 탐지 불가 — 코드리뷰 rg 체크 항목 포함.

local-dev-setup.md: docker-compose.override.yml 존재 시 `docker compose up --build`
(base 명시 없이)는 override 의 build: !reset null 로 무효화된다는 경고 추가.
로컬 Java 변경 반영은 `docker compose restart app` 으로 충분함을 명시.

근거: 세션 20260630-105459 포스팅 500 버그 수정 회고.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-30 11:23:24 +09:00
이정수 7047e06791 docs(verification): 회고 교훈 2건 반영 (20260629 세션)
- 버그범주 표: HTTP 상태/예외 매핑 변경 → L1 + 런타임 스모크 의무
- 구조교훈: HTTP 상태변경 런타임 스모크(전역 핸들러 가림 주의) + multi-worker advisor 산출 git diff 교차검증

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 19:24:22 +09:00
이정수 aae7629562 docs: B2·B4·FE 반영 + OWASP/multipart 가이드·dev prefetch 노트
- security-remediation-checklist §B2·§B4 완료조건 [x] 갱신
- 신규: owasp-dependency-check-guide, multipart-size-risk, changes/work-log 기록
- local-dev-setup: SNAPSHOT→GA 후 online plugin prefetch 함정 노트
- analysis: 제거된 dead code(abstracts/GameCatalog/header.jspf) stale 정정

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 19:10:42 +09:00
이정수 c7ea189c85 chore(dev): 로컬 도커 dev override 추가 (이미지 재빌드 없이 spring-boot:run)
로컬은 docker-compose.override.yml 로 app 을 소스 bind-mount + mvn spring-boot:run
(offline, 호스트 ~/.m2 캐시)으로 재정의 — JSP 즉시 반영, Java 는 restart.
배포 이미지는 base Dockerfile(WAR 굽기)로 분리: docker compose -f docker-compose.yml up --build.
devtools 는 컨테이너 spring-boot:run 에서 이득 적고 SNAPSHOT offline 불안정해 미도입.
가이드(local-dev-setup.md) 갱신.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 17:36:22 +09:00
이정수 076085a7c9 docs(dev): 코드·JSP 변경 후 앱 재빌드·재시작 함정 가이드 추가
좋아요 수정이 "안 됨" = 돌던 앱이 구 버전(미재배포)이었던 사례.
local-dev-setup.md 에 구동방식별 재빌드·재시작 표 + 미재배포 증상 식별 추가.
핸드오프 시 재배포 단계 명시 교훈 memory 기록.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 17:18:08 +09:00
이정수 e1790423e4 docs(dev): local-dev-setup 가이드 추가 (93525cb 보완)
선행 커밋(93525cb)에서 add 중단으로 누락된 문서 보완.

- docs/development/local-dev-setup.md 신설: 업로드 저장루트(~/.bibimbap/uploads)
  경로 규약 · @Value 기본값 유지 근거 · 자산 이전 이력 표 · SSRF DNS 캐시 운영 참고
- docs/development/index.md 목록 링크 추가

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 15:06:27 +09:00
이정수 a4866b6420 docs(w4): 배지표시·하드닝 변경이력 + L3 배포후 체크리스트 + 회고 교훈 3건
- changes 2026-06-29-w3-w4: 후속 세션(배지 배선·하드닝 b1/b2·DDL 적용완료·L3 이월) 기록
- maintenance/post-deploy-verification-checklist.md 신설: L3 deferred 5기능 +
  b2 자산 수동이전 절차(static/profile/8 → ~/.bibimbap/uploads)
- verification-strategies: 교훈 3건(needs 결정분기 구조화·표시배선 후행 독립트랙
  실증·런타임 의존 L1/L3 레이어 분리)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 15:01:27 +09:00
이정수 31554f8886 docs(w3-w4): W3(잔여)+W4 변경이력·구현추적 + 회고 교훈 4건 반영
- docs/changes/2026-06-29-w3-w4-features.md 신규 — W3-1/3-4/3-3/3-5/W4 5기능 변경(테이블·컨트롤러·매퍼·보안게이트·검증 347/347 + 커밋 35f1dc3~305cc73) + needs_user_verification
- docs/changes/index.md 링크 추가
- work-log 풀설계 요약 구현추적 갱신 — "W3(잔여)·W4 설계만(미구현)" → 11기능 전부 구현 완료 + 교차링크
- verification-strategies.md 회고 교훈 4건 append: (1) 보안 거부 테스트 차별 입증(vacuous 회피) (2) 보안핵심 verification+adversarial 병렬 (3) 표시면 의존 scope-fence 예외 (4) 설계 트레이드오프 1차 결론 못박기 + 프로토콜 개선 권고 5건

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 12:54:50 +09:00
이정수 7ae6589b39 docs(dev): W2 회고 교훈 3건 반영 — (검증)태그·케이스폴딩 기준·공유헬퍼 grounding
설계·테스트 단계 체크리스트(append-only):
- 신규 *Test.java 는 "(검증)" 소유태그여도 구현 산출물(verification은 실행만, Write 없음)
- 매퍼 alias 케이스폴딩 기준 = Map resultType/집계 SELECT (VIEW 여부 아님). POJO 직접매핑은 비인용 허용 — BUG-2 교훈 정밀화
- 신규 컨트롤러 호출 공유 헬퍼는 정의 존재를 grounding(rg)으로 선확인(test-compile 비신뢰)

외부 번들 권고 2건 추가(design-advisor owner 표기 분리·impl-advisor 헬퍼 grounding). 근거 W2 세션(20260624).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 14:23:12 +09:00
이정수 e0eb8eae15 docs(dev): 검증 회고 교훈 반영 — DB-방언 계약 L2 + stale 빌드 가드
W3-2 L3 검증 세션(20260622-170857) 회고에서 채택한 재현성 교훈 2건 docs 반영.

- verification-strategies.md: 버그범주→L레벨 표에 "MyBatis 매퍼/SQL alias·집계 뷰
  변경 = L1+L2(dev DB contract)" 행 추가 + mock-vs-reality 노트(alias 케이스 폴딩,
  뷰 fan-out 실증) — L1 @MockBean 이 DB-방언 계약을 구조적으로 우회함을 명시.
- local-setup.md §4.2: L3 검증 진입 전 "가동 앱이 현재 빌드인지" 확인 절차 신설
  (JSP docBase 동결 → stale spring-boot:run 라이브 리로드 불가, 재기동 필수).
- work-session 회고 산출물(report.md Retrospective/applied_changes) 동봉.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 17:58:47 +09:00
이정수 5a8080ddd3 docs(dev): 비-메인스트림 브랜치 커밋 표준 승인 정책 추가
비-메인스트림 브랜치(main/master·보호 브랜치 외)에서는 작업 단위마다 매번
묻지 않고 커밋하도록 표준 승인(durable authorization)을 명문화. 하니스
기본규칙('사용자 요청 시에만 커밋')과 모순 없음 — 프로젝트 지침이 사전·상시
승인을 부여하는 형태. push 는 브랜치 무관 명시 요청 한정, 메인스트림은
branch-first 유지.

- docs/development/git-workflow.md: 정본 신설. 브랜치 분류·표준 승인·push
  제외·커밋 단위·Conventional Commits + Co-Authored-By 트레일러 규약.
- CLAUDE.md 작업 원칙: 표준 승인 요지 2불릿 + 정본 링크.
- docs/development/index.md: 정본 등재.

ADR 아닌 development 규칙으로 분류(가역적 운영 절차). 부수 발견: 보고서들이
참조하는 ADR-0010 은 docs/adr/ 에 실재하지 않는 phantom 참조.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 16:59:09 +09:00
이정수 b9d836d5f4 feat: W3-2 댓글/리뷰 고도화 — 다축 평점·육각형 레이더·페이지네이션·집계뷰
W3-2 코어 위에 FINAL SPEC 전체 구현 (resumed_from 20260618-145152).

- 다축 평점: game_review_axes(6축·리뷰당6행) + overall 자동평균/수동(is_rating_manual)
- 육각형 SVG 레이더(요약+카드, frontend-design 폴리시), 6축 radiogroup(roving tabindex)
- A1 commentView 통일 / A2 하이브리드 작성자명+탈퇴자 마스킹(QG-2) / A3 edited·updated_at
- B1 페이지네이션(limit+1 hasMore) + sort 화이트리스트(@SelectProvider, ${} 미사용)
- B2 본문 최소10자 / B3 TextNormalizer 정규화
- C3 game_review_stats 집계뷰(W3-2 일반 DDL, 잼평가 동결 무관). 클라 평균계산 폐기
- DDL 멱등 ALTER/CREATE (game-reviews-ddl.sql + db/schema.sql 동기화)

검증: ./mvnw test 43/43 GREEN(회귀0). DDL 적용·L3 스모크 = 사용자 환경.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 12:29:21 +09:00
이정수 e98c437765 feat: W3-2 댓글/리뷰 분리 구현
기존 game_comments(닉네임 자유입력, localStorage 전용)를 서버 영속화 +
로그인 연동으로 전환하고, 별점 5점 + 서술 평가 형태의 game_reviews 도메인 신설.

- 댓글 서버 영속화: localStorage → DB game_comments. user_id NULL FK 비파괴 추가,
  content 200자 앱레벨 검증. 레거시 nickname 레코드 보존(비마이그레이션, QG-2).
- game_reviews 신설: 게임당 1회(partial UNIQUE), rating CHECK(1~5), soft-delete.
- 권한: 작성자 본인 OR ROLE_ADMIN. 비로그인 쓰기 401, CSRF 미검증 403.
- GameController.deleteGame 에 리뷰 cascade soft-delete 추가.
- GameCommentController(C1~C4) / GameReviewController(R1~R5) 신규.
- 컨트롤러 단위 테스트 추가, BibimbapApplicationTests 매퍼 @MockBean 보강.
- 보안 체크리스트 댓글 항목 충족 마킹, 좋아요 항목은 범위 밖 미결 유지.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019tHAb6XYHWDPzb82FNKugo
2026-06-18 14:35:24 +09:00
이정수 f9590e59bc docs: 에이전트 출력 규약 추가 — 의사결정 제시문 압축 비적용
W3 합의 세션 회고 교훈을 MEMORY 대신 docs/development/ 에 반영(사용자 지시).
사용자 대면 의사결정 제시문은 배경+선택지+권장 풀어쓰기, 압축은 내부 산출물 한정.
발원: 20260617-174635 세션 W3-1 마무리 질문 과압축 → 사용자 파악 실패.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 10:16:09 +09:00
이정수 33a4465e0e docs: ATP 문서 체계 도입 및 프로젝트 종합 분석 추가
docs/ 카테고리 트리(adr·analysis·architecture 등)와 ATP 워크플로 문서를 신규 추가하고,
4축(아키텍처·보안·품질·도메인) read-only 종합 분석을
docs/analysis/2026-06-16-project-analysis.md 로 기록한다.

- 신규 분석 문서 + docs/analysis/index.md 링크
- 기존 docs 2건(db-update-query-generator, user-signup-schema)에 교차링크 추가
- CLAUDE.md 프로젝트 지침, .atp/work-session 분석 세션 기록, .serena 프로젝트 설정 포함

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 12:18:56 +09:00