9.3 KiB
Vignette 백로그 — 2026-06-26
이 세션(레이아웃 시각 수용 마감 + live 운영 증거 라운드) 이후 남은 항목을 한곳에 모은다.
대시보드(docs/dev_dashboard.html)의 상태와 일치한다. 운영 원칙상 가짜 증거로 DONE 표기하지 않으므로,
실증/외부 의존/소유자 결정이 필요한 항목은 여기서 추적한다.
분류: B1 비차단 폴리시 · B2 환경 제약(증거 생산 불가) · B3 소유자 결정 · B4 외부 거버넌스
B0. 원천문서 갭 분석 (2026-06-26 추가) — 한신대 산학협력 원천문서 5종 정독으로 도출한 "부족한 부분"(critical 3 / high 4 / medium+ 6)은 SSOT 대시보드
docs/dev_dashboard.html"원천문서 갭 분석" 섹션과 상세docs/ops/source-docs-gap-analysis-2026-06-26.md에서 추적한다. C1 사례개념화 산출물·C2 위기개입 프로토콜·C3 이론모드/CBT가 신규 critical. 이는 아래 B1~B4보다 상위 우선순위 입력이며, 콘텐츠 정의는 임상팀(구훈정·어유경) 소유라 코드는 '편집 가능 구조'만 선제 구축한다.
B1. 비차단 코스메틱 폴리시
- 공용 셸 사이드바 구분선 전체 높이 — (2026-06-26 처리)
.vg-nav border-right(sticky·뷰포트 높이)를 제거하고,.vg-shell__body컨테이너 배경 하어라인(linear-gradient1px×100%,--nav-cur로 그리드·구분선 폭 동기화)으로 본문 그리드 전체 높이를 따라가는 세로 구분선을 그린다. 1024 축소폭은--nav-cur: var(--nav-w-collapsed)로, 720 이하(상단 가로바 전환)는background-image:none으로 정합.components/shell/shell.css. 검증:npm run typecheckPASS +vite buildPASS. 시각 회귀 게이트(gate 7/7 + 포커스 E2E + session-layout 8/8)는 web+api+DB 스택(Docker 미기동·secrets 부재)으로 이 환경 미실행 — 스택 가용 시 1회 시각 확인 권장. - 빈상태 컬럼 높이 여백 — session-review 1280 masonry 우측 컬럼, session-prestart 우측 '진행 초점' 컬럼, learner-home 1440 하단 등 데이터 0건 빈상태에서만 두드러지는 컬럼 높이 불균형/여백. 실데이터면 채워진다. (미착수, 의도적) 0건 전용 시각 균형이라 러닝 앱에서의 시각 반복 없이 블라인드 수정 시 악화 위험 → 스택 가용 시 시각 확인하며 처리. 빈상태 전용 균형 레이아웃 채택 자체가 별도 폴리시 결정.
- learner-home 로딩 스켈레톤 밀도(390) — (2026-06-26 처리) '연습 대상' 로딩 스켈레톤을 빈 div 단일 셰이머에서 실제 카드 구조(마크 박스 + 이름/메타/요약 2줄 플레이스홀더)를 모사하도록 밀도 보강.
LearnerHome.tsx(.lh-skel__box/.lh-skel__line*), reduced-motion 분기 동반 갱신. 검증:npm run typecheckPASS +vite buildPASS.
검증 기준: 변경 후 npm run typecheck, e2e/layout-visual-gate.spec.ts(7/7), 레이아웃 포커스 E2E(54), e2e/session-layout.spec.ts(8/8) 무회귀. (E2E 게이트는 web+api+DB 스택 필요 — 현재 워크스테이션은 Docker 미기동·API secrets 부재로 미실행. 코드 변경은 typecheck+vite build로 1차 검증함.)
B2. 환경 제약 — 이 워크스테이션에서 증거 생산 불가
vnet.18ka.net공개 live 전환 — 코드/스크립트는vnet.18ka.net·api-vnet.18ka.net을 허용하도록 갱신 완료. Tailnet 주소https://alpaca-home.taile93291.ts.net은 로그인까지 검증됨. 공개 vnet은 현재 (1)vnet.18ka.net/api-vnet.18ka.netDNS 부재, (2) cloudflared 현재 인증 컨텍스트가18ka.netzone이 아니라chanpaca.netzone에 route dns를 생성, (3) prod API용 Postgres127.0.0.1:55432미기동으로 8001 fail-closed, (4) Google Console redirect URIhttps://api-vnet.18ka.net/auth/callback등록 필요 때문에 live 완료 아님. 상세:docs/ops/tailscale-vnet-runtime-2026-06-27.md.- 공개 Google OAuth 실제
/turnproof — 로그인 가능한 계정으로storageState캡처 후E2E_PUBLIC_AUTH=1+chromium-public-auth1회 통과 필요. (소유자 지시로 이번엔 보류.) - 음성 캐스케이드 live — 실제 Deepgram STT / OpenAI TTS provider 키, 물리 마이크, 공개 WSS 50분 양방향 실측. provider 키/하드웨어 부재로 미실행(백엔드 계약·UI synthetic 경로는 단위/E2E로 증명됨).
- claude_cli ↔ Messages API 폴백 동일성 —
ANTHROPIC_API_KEY가 있어야 Messages API 경로를 돌려 동일성 검증 가능. claude_cli 경로는 게이트웨이 probe로 live 실측 완료. - 저항엔진 openness 곡선 DB 실증 — fast-loop 평가의
client_state_read→app.turn_client_state적재 경로는 추가됨. 다만 dev DB 실데이터/다수 실턴(real LLM) 기반 openness 곡선 증거는 아직 필요. 현재는app.test_state_machine_resistance단위테스트와app.test_evaluation_persistence매핑 테스트로 1차 증명. - 마스킹 게이트 운영 외부-send 관측 —
audit.llm_call_log0행(앱이 payload를 적재하지 않음). 엔진으로 나가는 실제 요청 payload를 캡처해 raw PII 부재를 관측하려면 로깅 경로 또는 프록시 캡처 필요. 현재는app.test_orchestrator_masking로 generate/stream payload에 phone/email/RRN 부재를 증명. - 재부팅 후 watchdog smoke —
watch-public-runtime.ps1+ Scheduled Task가 재부팅 후 엔진/API/터널을 복구하고 public/turn이 통과하는지 실측. 재부팅 불가로 미실행(parser/ check-only 경로는 확인됨). - 상주 엔진풀 RSS 실측 — probe로 TTFT/세션재사용/cost는 live 확인. 프로세스 RSS(메모리)는 별도 OS 계측 항목으로 남김.
B3. 소유자(윤찬) 결정 필요 — 단독 결정 시 월권
결정되면 대시보드
결정 필요탭과 관련 Phase 항목을 갱신한다.
- s2s 2차 PoC 채택 여부 — 캐스케이드만 / s2s 2차 PoC 유지. 영향: 음성 아키텍처·전송 비용·로그 보존. 기준표
docs/decisions/voice-s2s-poc.md. - 서비스용 페르소나 음성 모델·권리 정책 — (2026-06-27) P1 서연 음성 아트 PoC는 Higgs v3 무참조 synthetic seed 방식으로 생성(
docs/voice-art/p1-seoyeon-higgs-v3-20260627/). 실존 인물/성우 reference 사용 금지 확정.VIGNETTE_VOICE_POC_SAMPLE_TTS=true개발 플래그로/voice/wsP1 sample TTS provider에 연결했지만, 서비스 배포 전 선택 필요: Higgs 상업 라이선스 확보 / 동의 받은 reference voice만 사용 / 배포 가능한 대체 TTS provider 채택. - fast-loop 외부 API 허용 — 로컬 전용 / 외부 Haiku·Solar 폴백 허용. 영향: 데이터주권·레이턴시·장애 대응.
- 재귀학습 fine-tuning 범위 — few-shot 자동갱신만 / fine-tuning 포함. 영향: 동의서·데이터셋 품질·운영 리스크.
- 자유연습 기본값 — 기본 ON(+피드백 권장 배지+교수자 토글) / 교수자 승인 후 ON. 영향: 학습자 자율성·평가 품질·안전 정책.
- 추가 축어록 수급 규모·일정 — 목표 N건/일정 확정. 영향: 평가 타당도·페르소나 다양성·Phase 3 측정력.
B4. 외부 거버넌스 — 한신대/데이터 steward 서면 증거
- 한신대 데이터/SSO 거버넌스 게이트 — SSO claim mapping, 추가 축어록 수급, 미성년 원본 활용동의, 개인정보 처리방침. 로컬 문서 골격
docs/ops/hanshin-data-governance-gate.md준비됨, 외부 서면 증거 필요. (소유자 지시로 이번엔 보류.)
Phase 3 파일럿 게이트 (실참여자 필요)
- 20명 교육용 파일럿 운영 / 효과성·KPI 측정(SUS·자기효능감·κ/ICC·환각률) / 재귀학습 데이터셋 1차 산출 / 개인정보·동의 감사. 문서/checker는 준비됨(
docs/phase3/*,scripts/check-phase3-artifacts.py), 실제 evidence는 파일럿 시점.
이번 세션에 닫은 것(참고)
- 레이아웃 시각 수용: 게이트 7/7 + 적대적 재검수 7/7 accept + 코스메틱 폴리시(공용 셸 1건 제외) — DONE.
- live 운영 증거: engine config 운영값, 상주 엔진풀 probe(TTFT/cost/세션재사용), Postgres RLS/audit smoke 5 checks PASS, turn cost telemetry(app.turns 13행) — DONE.
- P1 서연 음성 아트 PoC: Higgs v3 무참조 synthetic seed + 5개 정서/속도 변주(mp3/wav) 생성. 실존 reference voice 미사용.
/voice/ws에는 dev-only sample TTS provider로 연결했고 live text_turn smoke에서p1-sample-pocbinary 20 chunks/78,573 bytes 수신 확인. 이 provider는 TTS override만 담당한다(마이크/STT는 OpenAI 키 필요). 프로덕션 탑재는 라이선스/권리 결정 전 금지. - 부수: RLS smoke 스크립트 cleanup RLS 컨텍스트 버그 수정,
vignette_app(NOBYPASSRLS) dev 역할 프로비저닝. - 평가 SSOP 1차:
TurnRecord.evaluation을app.feedback_scores/turn_technique/turn_client_state/supervisor_comment로 정규화 적재·복원. 원시 평가 테이블은 evaluator/admin RLS로 제한하고 서버가 evaluator 컨텍스트로 적재한다.app.turnsinsert는RETURNING id확인으로 silent success 제거. deep-loopalternative_utterance정규화는 후속. 검증:app.test_session_turn_persistence+app.test_evaluation_persistence14 tests OK.