---
schema_version: 2
sid: 20260622-162345
started_at: 2026-06-22T16:23:45+09:00
ended_at:
user_request: |
  docs/game-reviews-ddl.sql 같이 sql 추가되면 로컬엔 테스트 가능하게 바로 적용하도록
  docs 반영해주고, sql도 지금 바로 반영해줘.
Summary: |
  신규 docs/*-ddl.sql 을 실행 중 로컬 DB 에 즉시 적용하는 반복 절차를 docs 에 명문화하고,
  현재 미적용 상태인 game-reviews-ddl.sql 의 W3-2 고도화 블록을 실행 DB(dev)에 즉시 적용한다.
Invocations: []
Decisions: []
---

# Advisor Invocation Decision Log
# 각 advisor 호출/스킵 판단 즉시 1줄 append
- advisor: requirements-advisor
  decision: skip
  rationale: '요청 명확 — 절차 문서화 + 멱등 DDL 즉시 적용. 스코프 모호 없음.'
  checked_at: 2026-06-22T16:23:45+09:00
- advisor: graphify-lookup-advisor / research-advisor
  decision: skip
  rationale: 'DB/docs 상태를 orchestrator 가 inline 으로 직접 조사 완료(실행 DB 델타·local-setup.md·schema.sql).'
  checked_at: 2026-06-22T16:24:00+09:00
- advisor: design-advisor
  decision: skip
  rationale: '결정 축 단일·이산(스크립트+doc vs doc-only). AskUserQuestion 으로 직접 위임.'
  checked_at: 2026-06-22T16:24:30+09:00
- advisor: implementation-advisor
  decision: skip
  rationale: '산출=docs 1~2파일 편집 + 멱등 DDL psql 적용. 마이크로 편집 범위, orchestrator 직접 수행.'
  checked_at: 2026-06-22T16:24:30+09:00

# 조사 결과 (inline research)
- 마이그레이션 도구 없음(flyway/liquibase 부재). 권위 DDL = docs/*-ddl.sql, Docker init = db/schema.sql.
- db/schema.sql 은 컨테이너 *최초* 기동 시 docker-entrypoint-initdb.d 로 1회만 자동 주입.
  이후 추가된 DDL 은 실행 DB 에 자동 반영 안 됨 → down -v 재기동(데이터 소실) 외엔 수동 적용 필요.
- 실행 컨테이너: bibimbap-db (postgres:16, host:5433), db=bibimbap user=bibimbap schema=dev.
- 실행 DB dev 스키마 델타 (game-reviews-ddl.sql 기준):
  - 적용됨: game_reviews 테이블, game_comments.user_id
  - 누락됨: game_comments.updated_at, game_reviews.is_rating_manual,
            game_review_axes 테이블, game_review_stats 뷰  (= DDL L102~187 고도화 블록)
- DDL 전체 멱등(IF NOT EXISTS / DO $$ guard / CREATE OR REPLACE VIEW) → 전체 재실행 안전.

Decisions:
  - id: D1
    decision: '반복 절차 형태 = 헬퍼 스크립트 + 문서 (Option A, 사용자 선택)'
    rationale: 'DDL 전부 멱등 + 마이그레이션 도구 부재 → "바로 적용" 을 한 명령으로 만드는 스크립트가 적합.'
  - id: D2
    decision: 'DDL 적용은 데이터 보존(비파괴) — docker exec psql 직접 적용. down -v 미사용.'
    rationale: 'down -v 는 로컬 데이터 소실. 모든 docs/*-ddl.sql 멱등이라 직접 적용이 안전.'
  - id: D3
    decision: 'search_path 강제(PGOPTIONS -c search_path=dev) 를 스크립트/문서에 명시.'
    rationale: 'docs/*-ddl.sql 은 unqualified 테이블명 사용. dev 스키마 타겟 보장 필수.'

# verified_by_me
- 'L1(typecheck/unit): N/A — src/ 코드 변경 0건 (DDL 적용 + 운영 스크립트 + docs 만).'
- '게임리뷰 DDL 적용: docs/game-reviews-ddl.sql → bibimbap-db dev 스키마, ON_ERROR_STOP=1 무에러.'
- '적용 후 객체 검증(전부 존재): game_review_axes 테이블 / game_review_stats 뷰 / game_comments.updated_at / game_reviews.is_rating_manual / axis_key check 제약.'
- 'game_review_stats 뷰 SELECT 정상 동작 (기존 시드 game_id=3, review_count=5 집계 반환).'
- 'db/apply-local-ddl.sh 전체 실행 검증: docs/*-ddl.sql 3개 멱등 재실행 성공(기존 객체 skip, 누락분 생성, 종료 0).'
- '나머지 DDL 멱등성 사전 확인: recruit-posts / security-hardening 둘 다 가드≥문장, DROP/TRUNCATE/DELETE/bare INSERT 0.'

# needs_user_verification
- '(선택) 앱 기동 후 리뷰 다축평점/집계뷰 기능 스모크 — 실행 DB 에 객체는 적용됐으나 UI 경로 E2E 는 미수행.'
- '커밋: 사용자 요청 시 진행 (CLAUDE.md/하니스 정책 — 커밋은 명시 요청 시에만). 변경 파일: docs/usage/local-setup.md (M), db/apply-local-ddl.sh (신규).'

# graph_refresh
- 'graph-refresh-checker 판정: fresh (src·docs 양 scope). 재생성 불필요.'
- '근거: src 변경 0; docs 변경(local-setup.md §4.1 추가)은 기존 문서 내 산문 보강 — 신규 md/카테고리/DDL 0, 구조 시그널 0. 참조 DDL 3종은 이미 docs scope 인덱싱됨.'
- 'db/apply-local-ddl.sh 는 scope(src/,docs/) 밖 — 신규 scope 신설 불요(향후 db/ 운영 스크립트 다수화 시 재검토 권고).'
- 'source_commit b9d836d (HEAD=375a2de) 차이는 graph 메타 커밋 1건뿐 — 다음 실질 변경 시 동기화. 단독 갱신 불요.'

# Invocations
- agent: atp-graphify:graph-refresh-checker
  tier: large
  result: 'fresh (src·docs). 재생성/삭제/index 갱신 모두 불필요.'
  tokens: 12263

# user_signals
positive:
  - 'AskUserQuestion 반복절차 형태 결정에서 Recommended(스크립트+문서) 1회 선택 — 옵션 설계 수용.'
negative: []

# retrospective
- 'retrospective-advisor 정식 호출 skip — 마이크로 편집 경로(advisor 전체 skip), negative 시그널 0, 구조적 피드백 0.'
- 'memory_candidate: 없음 — 핵심 교훈(schema.sql 최초 1회만 자동주입 → 신규 DDL 수동 적용 필요)은 산출물 자체(local-setup.md §4.1 + db/apply-local-ddl.sh)에 docs-first 로 이미 codify 됨. 별도 MEMORY 불요.'

# follow_on (동일 세션 후속 요청)
followup_request: |
  커밋 진행 + "비-메인스트림 브랜치면 커밋 전제로 작업" 정책을 docs 에 반영.
followup_method: |
  read-only 조사 워크플로우(Survey 4 병렬 explorer → Design 합성, ultracode) 로
  정책 문서 위치·기존 규칙·하니스 충돌 표면 전수 조사 후 plan-gate → 적용.
followup_decisions:
  - id: D4
    decision: '커밋 정책 = development 규칙 급(신규 ADR 미발행).'
    rationale: 'ADR 은 기술/아키텍처 되돌리기 어려운 결정 한정(docs/adr/index.md). 본건은 가역적 운영 절차 → document-category-classification 상 development/. 부수 발견: ADR-0010 은 work-session 보고서들의 phantom 참조(docs/adr/ 에 번호 ADR 미실재).'
  - id: D5
    decision: '하니스 기본규칙과 정합 = durable authorization 프레이밍.'
    rationale: "비-메인스트림 브랜치 커밋을 '프로젝트 지침이 부여한 표준 승인' 으로 명문화 → '사용자 요청 시에만 커밋' 위반 아님. push 는 명시 요청 한정 유지, 메인스트림 branch-first 유지."
  - id: D6
    decision: 'CLAUDE.md=선언+링크, docs/development/git-workflow.md=정본 신설, index.md 등재.'
    rationale: 'CLAUDE.md 는 하니스 상시 로드 → 표준 승인 선언 효력. 상세 규약은 재사용 개발규칙이라 development/ 정본.'
followup_edits:
  - 'CLAUDE.md 작업원칙: 비-메인스트림 커밋 표준승인 + 메인스트림 branch-first 불릿 2개.'
  - 'docs/development/git-workflow.md 신규: 브랜치 분류·표준승인·push 제외·커밋 단위·Conventional Commits + Co-Authored-By 트레일러.'
  - 'docs/development/index.md: git-workflow.md 등재.'
followup_commits:
  - 'feat(db): 로컬 DDL 즉시적용 스크립트 + 셋업 절차 문서화 (db/apply-local-ddl.sh, docs/usage/local-setup.md)'
  - 'docs(dev): 비-메인스트림 브랜치 커밋 표준 승인 정책 추가 (CLAUDE.md, git-workflow.md, dev/index.md)'
  - 'chore(atp): work-session 산출물 기록 (20260618-145152, 20260622-092800, 20260622-162345 — 사용자 "셋 다 커밋" 선택)'
user_signals_followup:
  positive:
    - 'orphan work-session 처리 "셋 다 커밋" 1회 선택 — 추적 관행 일관성 복원 승인.'

# ended_at
ended_at: 2026-06-22T16:48:00+09:00

# open_items
- '미커밋 변경 2건 — docs/usage/local-setup.md(M), db/apply-local-ddl.sh(신규). 이번 작업 단위. 사용자 커밋 지시 대기.'
- '.atp/work-session/ untracked 디렉토리 3개 — 세션 산출물(ADR-0010 추적 대상이나 별도 커밋 정책).'
