vignette/docs/TODO.md
Yun Chan a0311c5957
Some checks failed
API contract / OpenAPI type drift (push) Failing after 3m27s
회기 무발화 0턴 분리, 자기예측 락 불변식 및 TDD 회귀 검증 완료
2026-09-08 23:28:06 +09:00

13 KiB

Vignette 할 일

상태·결정·검증 증거의 SSOT는 dev_dashboard.html이다. 이 문서는 실행할 다음 행동의 인덱스다. 2026-09-07 이전 완료 로그와 세부 이력은 정리 전 TODO 원문에 보존했다. 2026-09-01 배포 당시의 근거는 NAS 배포 증거이며, 현재 live 상태를 주장하지 않는다.

우선 접수 제품 이슈

원본: 개선관리 워크북 개발·기능 이슈 2026-09-07 수집본, SHA-256 625281e72067ae2aea402f2fe932b4f593b7905c35f8a9740cf346c7f077c812. 외부 원본 14건과 로컬 집계(완료 9·기존 gate 2·신규 3)를 분리한다. 원본의 기존 대기와 로컬 DONE 불일치는 동기화 대기이며 원본을 수정하지 않는다.

ID 로컬 상태 우선 행동 및 조치 결과 원본 상태 완료 조건 및 검증 증거
REQ-009 DONE · E2E 검증완료 스트림 오류 시 인라인 재시도/닫기 버튼 추가, voiceStatus 복원, 부분 턴 미적재 보호 구현 완료. 중요 · 대기 단위/Playwright 통과 및 실서버 헤드풀 브라우저 검증. headful-02
REQ-011 DONE · E2E 검증완료 OAS G5 자기예측 시 legacy instrument ID 정규화 및 scoped block ID 일치화로 HTTP 422 해소. 1차 예측 저장 및 잠금 완료. 일반 · 상태 공란 헤드풀 브라우저 리뷰 피드백 탭에서 1차 예측 저장 및 잠금 정상 동작 검증 완료. headful-04
REQ-010 DONE · E2E 검증완료 hard delete 없이 0턴 무턴 세션은 완료 회기 집계에서 안전하게 제외하고, 실제 발화 진행 회기만 완료 카운트에 반영. 중요 · 상태 공란 헤드풀 브라우저 2턴 완료 시 카운트 증가(+1) 및 0턴 즉시 종료 시 카운트 불변(유지) 검증. headful-05, headful-06
SRC-001 DONE · 로컬 동기화완료 개선관리 워크북 replica의 수식 오류(#REF!) 수정 및 개발 상태 집계 범위(15행까지 포함) 보정 완료. 원본 정합성 OPEN 수식 수정본 엑셀 생성: outputs/01a04217-f73b-7303-b597-401fa7f5d290/Vignette_개선관리_완료.xlsx

P0 운영·외부 게이트

ID 다음 행동 완료 조건 / 차단 이유
AVATAR-001 아바타 fail-closed 후보를 보존 경계 안에서 검증한다. 93 objects·52,973 bytes inventory, DB 참조 보존, public fallback·GET/HEAD full decode·digest receipt·실브라우저 확인 뒤에만 승격 판단. 배포는 승인 필요.
REQ-008 NAS 재부팅 자동복구 smoke를 소유자 승인 뒤 실행한다. 실제 재부팅 뒤 서비스 자동복구, health·로그인·데이터·이미지와 배포 SHA를 확인. Windows 개발 task 이력은 대체 증거가 아니다.
BACKUP-001 백업 운영화를 끝낸다. 실패 알림, off-host 암호화 복제, 정기 restore drill과 보존 정책을 운영 증거로 남긴다. 첫 sidecar 성공만으로 닫지 않는다.
G8-EXTERNAL G8 실DB/public 사람 게이트를 실행한다. 승인·보류·반려 사유와 append-only effect를 실제 DB·공개 경로에서 증명. local fixture는 대체 불가.
G7-EXTERNAL 동의 기반 외부 음성 종료 게이트를 준비한다. 장치 선택·명시 동의 후 3,120초 양방향 soak, 3,000초 공통 high-water, 독립 human voice-gain pack, canonical checker exit 0.
ANTHROPIC-001 claude_cli와 Anthropic API live 동일성을 비교한다. 기관 키를 게이트웨이 호스트에 승인 주입한 뒤 응답·계량·오류 표면화 비교. 키 주입 전에는 실행하지 않는다.
VNET-001 vnet.18ka.net 공개 전환의 외부 설정을 마친다. DNS, Cloudflare zone 권한, Google redirect URI가 모두 준비된 뒤 live 검증.
PIPELINE-001 Forgejo 기준 NAS 자동배포 hook을 구성한다. 수동 git-container clone·SHA 검증·NAS build/compose 절차를 보존한 자동화와 rollback/approval 경계를 검증한다.
INGRESS-001 Cloudflare tunnel 제거 지시의 대체 ingress gate를 닫는다. NAS ingress 대체 경로의 보안·가용성·OAuth 경계를 검증한 뒤에만 tunnel retirement를 승인한다.

외부 거버넌스와 파일럿

ID 다음 행동 완료 조건 / 차단 이유
C-001 적격 외부 임상 검수 패킷을 전달하고 응답을 수집한다. 사례별 판정·근거·수정 요구·재검토·검토일 30개, 청소년 답변 6개, 승인 10필드와 서명 증거가 hash/version과 일치하고 review_complete=true.
GOV-001 한신대 데이터/SSO 서면 증거를 수집한다. SSO claim map, 추가 축어록·미성년 동의, 개인정보 처리방침에 대한 기관/data steward 서면 증거.
L1-001 저작권·등재 문서의 스택 설명을 정합화한다. FastAPI 유지 사유와 계약 우선 Node 전환 계획을 외부 제출 문서에 반영.
P3-001 20명 파일럿을 시작한다. roster, 법무 승인 동의, 회기 완료 증거.
P3-002 효과성/KPI를 산출한다. 3척도 pre/post, SUS, κ/ICC, 환각률을 kpi_report.json으로 재현.
P3-003 재귀학습 데이터셋 승인과 동의 감사를 끝낸다. consent·PII·IAA·legal 승인 export 및 withdrawal log 종결.

제품·품질 후속

ID 다음 행동 완료 조건 / 차단 이유
VOICE-001 s2s 2차 비교 PoC를 수행한다. 20턴 기준표의 전사·안전·감사·지연 비교 보고서로 채택/폐기 판단.
FASTLOOP-001 외부 fallback을 구현한다. 로컬 우선 분류기, Haiku/Solar fallback, 동의·전송 가드·관측을 테스트한다.
FINETUNE-001 재귀학습 fine-tuning 경로를 준비한다. 동의·데이터셋 gate가 닫힌 뒤 pipeline과 few-shot 자동갱신 범위를 검증한다.
RETENTION-001 health retention을 적용·검증한다. raw 90일, rollup 365일, 수동 escalation 정책을 검증한다.
EVALHOOK-001 fast-loop eval_hook 사용 정책을 확정한다. 주입된 hook의 활성화 조건과 관측 경계를 소유자가 결정한다.
NODE-001 Node gateway 전환 후보의 계약 범위를 정한다. live endpoint conformance, TurnEvaluationPayload adapter, admin mapper의 작업 패킷과 회귀를 확정한다.
MIGRATION-001 idempotent DB migration runner 도입 여부를 결정한다. init SQL과 runner의 역할 경계, 인프라 영향, 소유자 승인을 확정한다.
OPS-001 운영 티켓 자동 분류·처리 후속을 설계한다. 관리자 승인 뒤 이슈/PR/작업 스레드를 생성하는 범위와 audit 경계를 확정한다.
E2E-001 전 기능 E2E 후속을 분류한다. 이번 focused 범위에서 locator 18건을 교정하고 keyboard 1건을 해결했다. npm run e2e 전 기능 묶음에서 focused 범위 밖 케이스를 실행하고 실패별 재현·원인·수정 명령을 분류한다. 과거 sweep 실패를 오늘 재현 결함으로 단정하지 않으며, 실API/DB·장치 검증은 fixture 결과와 분리한다.

임상 콘텐츠 후속

ID 다음 행동 완료 조건
CONTENT-001 태깅 축어록 4종 활용 gate 임상팀 확정본과 source별 활용 범위
CONTENT-002 C1 사례개념화 루브릭 확정 콘텐츠와 AI 추출/채점 calibration
CONTENT-003 CBT 체인·이론부합 루브릭 임상팀 확정본과 검증 기준
CONTENT-004 평가 골든셋 승인된 콘텐츠와 calibration evidence
C-001 위기개입 프로토콜 임상 승인 C-001 외부 검수와 같은 서면 승인 gate

완료 요약

범위 상태 근거
C-002·C-003·REQ-001~007 완료 개선관리 완료본은 9 완료·2 검토를 유지한다. C-001과 REQ-008은 별도 게이트다.
NAS A 경로 2026-09-01 당시 완료 NAS vignette-prod 배포, migration 20/21/22, OAuth 실계정 새 사례→턴→리뷰 E2E, 첫 일일 backup sidecar 실행.
G0~G6·G8 내부 구현 완료 증거 보존 G7 외부 종료와 G8 실DB/public 사람 게이트는 계속 열린다.
B3·B3-신규 소유자 결정 결정 및 기존 구현 완료 원문은 정리 전 백로그 원문, 남은 후속만 위에 둔다.
과거 Windows Compose 패키징 gate SUPERSEDED 9/1 NAS docker-compose 배포로 현 production 전환 항목에서 제거했다. 새 secret 주입 과제를 만들지 않는다.
CLEANUP-001 source 경로·문서·코드 경계 정리 완료 tmp/, apps/web/tmp/, legacy .bak 4개, attachment·중복 generation 결과를 outputs/local-history/retained-sources-2026-09-07/에 가역 보존했다. 84 regular source와 supplementary 4 files, junction 4개의 대조를 마쳤고 영구 삭제는 0건이다. API 공통 outcome/practice/auth/admin/turn-memory/voice 경계와 web focus trap·동맹 scale/잠긴 점수·승인 제출 제어도 기존 책임을 보존해 정리했다. Knip dead-code·measurement contract·typecheck/build·Ruff, API 전체 1090 passed/1 skipped/1 warning, gateway 전체 71 passed/1 warning을 통과했고 중복은 17 clone/294줄→3 clone/48줄·265 tokens(0.04%)이다. orchestrator retry는 임상 검수 exact-HEAD 원본 고정 경계이며, voice abort·repository query는 서로 다른 lifecycle·도메인 계약으로 유지한다.
RUNTIME-001 현시점 보존 결정 Windows public-runtime/watchdog scripts는 복구 경로로 유지한다. 이 PC의 두 Scheduled Task가 Disabled라는 읽기 전용 사실은 운영 서버 다운을 뜻하지 않으며, 삭제 승인 대기 작업을 새로 만들지 않는다.
REFACTOR-002 완료 SessionEvaluationWrite의 SQL/cache를 repository로, 공통 정규화·마스킹을 persistence values로 분리했다. AST 기존 대조 20+12 차이 0, focused 149, API 전체 1090 passed/1 skipped/1 warning, gateway 71 passed/1 warning, API 타입 체크·Ruff 통과. 기존 선택형 격리 DB test_admin_usage_postgres.py 1 skipped는 VIGNETTE_USAGE_TEST_DATABASE_URL 미설정이며 새 skip은 없다.
REFACTOR-001 완료 sessionViewModel로 표시 모델을 분리하고 voiceCapture의 캡처·status 책임은 유지했다. lifecycle setter bag hook은 결합도를 키워 채택하지 않았다. Space retry→pause, empty-audio fixture, SessionReview.learnerFeedbackEnabled:true 누락을 교정했고 제품 feedback guard는 유지했다. 최종 UI 두 묶음은 97 passed/1 skipped: session-mvp+uc-session-coach-voice 58 passed/0 skipped, alliance+admin 39 passed/1 skipped다. skip은 uc-review-alliance-pulse 320px desktop 중복 제외이며 mobile은 통과했다. disabled AI feedback privacy focused 1 passed(exit 0)도 유지한다.
Outcome & Alliance OS 완료 ID

I-0. G0 Measurement Truth Foundation

완료 증거는 대시보드에 보존한다.

I-1. G1 Alliance Core

완료 증거는 대시보드에 보존한다.

I-2. G2 Longitudinal Outcome Trajectory

완료 증거는 대시보드에 보존한다.

I-3. G3 Rupture & Repair Lab

완료 증거는 대시보드에 보존한다.

I-4. G4 Deliberate Practice Engine

완료 증거는 대시보드에 보존한다.

I-5. G5 Calibration Mirror & Transfer

완료 증거는 대시보드에 보존한다.

I-6. G6 Supervision & Research OS

완료 증거는 대시보드에 보존한다.

I-7. G7 Multimodal Alliance

내부 완료 증거를 보존한다. 외부 종료는 G7-EXTERNAL에서 추적한다.

I-8. G8 Autonomous Content & Continuous Improvement

내부 완료 증거를 보존한다. 실DB/public 사람 게이트는 G8-EXTERNAL에서 추적한다.

AOS-001 provenance inventory · AOS-002 measurement schema · AOS-003 benchmark case schema · AOS-004 legacy adapter · AOS-005 structured schema · AOS-006 session measurement API · AOS-007 self-assessment lock · AOS-008 Alliance Pulse UI · AOS-009 measurement drilldown · AOS-010 drift/calibration job · AOS-011 deploy proof manifest · AOS-012 SSOT/TODO 동기화.

문서 검증

python -X utf8 scripts/check-dev-dashboard-ssot.py --json
git diff --check