- 누적 작업트리 커밋: 회기 평가 복구·durable 저장, 라이브 코치 이력/근거, 교수자 학생분석, 음성 비언어 메타, PII 마스킹, 운영 티켓/헬스 등 - 문서: 완료 기록 docs/archive/ 냉동 보관, docs/ 단일 인덱스(docs/README.md)+통합 TODO(docs/TODO.md)로 정리 - 리팩터(행위 보존): Stage enum SSOT(taxonomy 소유·state_machine re-export), store recent/masked_turns 중복 제거, speaker_ko_label 단일 헬퍼, _list_sessions N+1 제거(state/turns 배치 + 턴평가 하이드레이션 배치) - 검증: 백엔드 pytest 352 passed, _list_sessions E2E chromium-single-run 2 passed
6.1 KiB
Vignette 백로그 — 열린 항목만 (현행본)
SSOT는
docs/dev_dashboard.html이다. 상태·검증 증거·결정·로드맵의 권위 기준은 대시보드다. 이 파일은 대시보드와 일치하는 아직 열린 작업(외부/환경 게이트) 만 얇게 유지한다. 완료된 작업의 변경 로그·검증 기록(구 "최신 동기화 추가"·"이번 세션에 닫은 것"·B1~B3[x]상세)은docs/archive/ops/backlog-2026-06-26-full-history.md로 냉동 보관했다. 필요할 때만 이력용으로 본다.운영 원칙: 가짜 증거로 DONE 표기 금지. 실증 불가·외부 의존·소유자 결정 항목만 여기서 추적한다. 분류: B1 비차단 폴리시 · B2 환경 제약(증거 생산 불가) · B3 소유자 결정 · B4 외부 거버넌스
B0. 원천문서 갭 — 한신대 산학협력 원천문서 갭(critical/high/medium)은 SSOT 대시보드 "원천문서 갭 분석" 섹션과 상세 근거
docs/ops/source-docs-gap-analysis-2026-06-26.md에서 추적한다. C1~C3/H·M 구조는 코드로 선제 구축했고, 임상 문안·평가기준·골든셋 콘텐츠는 임상팀(구훈정·어유경) 외부 정의로 받는다.
B1. 비차단 코스메틱/후속 폴리시
- 운영 티켓 자동 분류·처리 후속 — Claude Recipe headless 자동 수정 후보, 관리자 승인 후 이슈 등록·PR/작업 스레드 생성, 처리 결과 audit trail 확장은 아직 설계/승인 필요. 담당 그룹 자동 배정·우선순위 escalation·raw/rollup 보존기간 같은 운영 정책은 B3에서 이미 결정됨(수동 승인·미도입 고정). 자동 수정은 운영자 승인 전까지 실행하지 않는다.
B1 완료 항목(셸 구분선, 세션 종료 UX/다크테마, 아바타 PSD v2, SEO/공유 카드, 레이아웃 정렬, 권한 위임, 메일링, 아카이브 API, TTS voice map, 빈상태 레이아웃, 평가 실패 복구 UX, SSE 저장, live-coach 표면화, 음성 메타, 위기 게이트 UI, 운영 티켓/헬스 샘플러 등)의 상세·검증 로그는 아카이브 full-history 참조.
B2. 환경 제약 — 이 워크스테이션에서 증거 생산 불가
vnet.18ka.net공개 live 전환 — 코드/스크립트는vnet.18ka.net·api-vnet.18ka.net허용까지 갱신됨. 남은 블로커: (1)vnet.18ka.net/api-vnet.18ka.netDNS A record 부재, (2) cloudflared 현재 인증 컨텍스트가18ka.netzone이 아니라chanpaca.netzone에 route dns 생성, (3) Google Console redirect URIhttps://api-vnet.18ka.net/auth/callback등록 필요. 현재 prod API 8001은db:true/engine:true로 건강. 상세:docs/ops/tailscale-vnet-runtime-2026-06-27.md.- 실배포
infra/.envowner-secret fill-in + real preflight — 필수 소유자 비밀값:APP_DB_PASSWORD,OAUTH_GOOGLE_CLIENT_ID,OAUTH_GOOGLE_CLIENT_SECRET,OPENAI_API_KEY,SESSION_SECRET, production-safe engine/voice flags. 로컬 stray 값(ENGINE_MODE=claude_p, prod sample TTS flag 등)은 운영값으로 복사 금지. 실제 secret 주입 후scripts/check-deploy-preflight.pyDB 포함 모드 + 배포지 health를 별도 증거로 닫는다. - 공개 Google OAuth 실제
/turnproof — 로그인 가능한 계정으로storageState캡처 후E2E_PUBLIC_AUTH=1chromium-public-auth1회 통과 필요. (소유자 지시로 보류 중.) 실행 명령은 대시보드 "다음 실행 명령" 참조.
- 음성 캐스케이드 live — 로컬 API 실제 OpenAI STT/TTS 경로는 live WS smoke 통과. 남은 범위: 실제 Deepgram interim/final WSS, 물리 마이크, 공개 WSS, 50분 양방향 장시간 실측.
- claude_cli ↔ Messages API 폴백 동일성 —
ANTHROPIC_API_KEY가 있어야 Messages API 경로 동일성 검증 가능. claude_cli 경로는 게이트웨이 probe로 live 실측 완료. - 재부팅 후 watchdog smoke —
watch-public-runtime.ps1+ Scheduled Task가 재부팅 후 엔진/API/터널을 복구하고 public/turn이 통과하는지 실측. 재부팅 불가로 미실행(parser/check-only 경로는 확인). DNS 개통 후api-vnet.18ka.net은-AdditionalPublicHealthUrls로 명시 추가. 상세:docs/ops/public-runtime-watchdog.md.
B3. 소유자(윤찬) 결정 — 전건 확정(2026-06-30)
7건(평가설계 H1 κ/ICC·환각률, s2s 2차 PoC 채택, 페르소나 음성 모델·권리, fast-loop 외부 API 허용, 재귀학습 fine-tuning 범위, 운영 보존기간·에스컬레이션, 추가 축어록 수급 20건/1개월)은 전건 확정됐다. 결정 상세는 대시보드 "윤찬 결정 상세" 탭, ADR은
docs/decisions/(voice-s2s-poc.md,backend-node-transition.md)에 있다. 각 결정의 구현·실측은 후속 build/GATE로 남는다.
B4. 외부 거버넌스 — 한신대/데이터 steward 서면 증거
- 한신대 데이터/SSO 거버넌스 게이트 — SSO claim mapping, 추가 축어록 수급, 미성년 원본 활용동의, 개인정보
처리방침. 로컬 골격
docs/ops/hanshin-data-governance-gate.md준비됨, 외부 서면 증거 필요. (소유자 보류 중.) - L1 스택 정합성·저작권 등재 문서 반영 — 백엔드는 Node.js 교체 가능성 우선으로 결정됐지만, 신청서/저작권
등재 문서에는 현재 FastAPI 유지 사유와 계약 우선 전환 계획을 반영해야 한다. 로컬 결정 기록은
docs/decisions/backend-node-transition.md; 외부 제출/등재 증거 필요.
Phase 3 파일럿 게이트 (실참여자 필요)
- 20명 교육용 파일럿 운영 / 효과성·KPI 측정(SUS·자기효능감·κ/ICC·환각률) / 재귀학습 데이터셋 approved 산출 /
개인정보·동의 감사. 문서·checker·dry-run exporter는 준비됨(
docs/phase3/*,scripts/check-phase3-artifacts.py,scripts/export-recursive-dataset.py,scripts/export-phase3-kpi.py). 공식 문항 확정, 통계 검정, 실험/통제군 배정, 실제 approved evidence는 파일럿·steward/legal 검수·IAA 통과 시점의 GATE다.