diff --git a/docs/dev_dashboard.html b/docs/dev_dashboard.html index 8d31b3d..da49fa6 100644 --- a/docs/dev_dashboard.html +++ b/docs/dev_dashboard.html @@ -103,6 +103,38 @@ .list { display:grid; gap:10px; margin:0; padding:0; list-style:none; } .list li { display:grid; grid-template-columns:10px minmax(0,1fr); gap:10px; color:var(--ink-2); font-size:13px; } .list li:before { content:""; width:6px; height:6px; margin-top:8px; border-radius:50%; background:var(--accent); } + .roadmap { + display:grid; + grid-template-columns:repeat(5,minmax(0,1fr)); + gap:12px; + align-items:stretch; + } + .phase-card { + min-width:0; + background:var(--surface); + border:1px solid var(--hair); + border-radius:12px; + padding:16px; + box-shadow:0 1px 2px rgba(28,42,42,.05); + } + .phase-card.current { border-color:color-mix(in srgb, var(--accent) 42%, var(--hair)); background:linear-gradient(180deg, var(--accent-tint), var(--surface) 58%); } + .phase-card.next { border-color:color-mix(in srgb, var(--warn) 35%, var(--hair)); } + .phase-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; } + .phase-id { font:760 13px/1 var(--num); color:var(--accent-deep); } + .phase-card h3 { margin:0; font-size:15px; line-height:1.35; } + .phase-card p { margin:8px 0 0; color:var(--ink-2); font-size:12px; } + .phase-list { display:grid; gap:6px; margin:12px 0 0; padding:0; list-style:none; } + .phase-list li { color:var(--ink-2); font-size:12px; line-height:1.45; } + .phase-list li b { color:var(--ink); font-weight:700; } + .source-note { + margin-top:14px; + padding:14px 16px; + border:1px solid var(--hair); + border-radius:12px; + background:var(--paper-2); + color:var(--ink-2); + font-size:13px; + } code { font-family:var(--num); font-size:12px; background:var(--paper-2); padding:2px 6px; border-radius:6px; } .wide { grid-column:1 / -1; } .commands { display:grid; gap:10px; } @@ -116,6 +148,7 @@ main { width:min(100% - 28px, 1180px); padding-top:28px; } .hero { grid-template-columns:1fr; } .grid { grid-template-columns:1fr; } + .roadmap { grid-template-columns:1fr; } } @media (max-width:520px) { .summary { grid-template-columns:1fr; } @@ -127,14 +160,14 @@
Vignette 개발 대시보드
-
2026-06-26 15:18 KST
+
2026-06-26 15:35 KST
team lead review
-

Phase 0는 검증 가능한 운영 안전장치와 E2E 안정화까지 마무리됐다.

+

전체 로드맵 기준 현재 위치는 Phase 0 종료 직전이다.

이번 세션은 seed persona 결합 제거, 비개발 fail-closed 설정, compose OAuth 주입, admin 모바일 overflow 수정, persona 인증 경계 보강, 전체 Playwright 재통과, 공개 API prod 전환까지 완료했다. @@ -145,6 +178,7 @@ Cloudflare Pages production 배포 `0fe8f3cc`도 완료했고, 커스텀 도메인이 새 asset을 서빙하는 것을 확인했다. 과거 Mao/Haru Live2D demo 자산은 repo와 번들에서 제거했고, `/live2d/*` 운영 경로는 404로 차단했다. 로컬 프로세스는 prod API 8001, engine gateway 9099, cloudflared tunnel 1개만 남기고 dev API와 임시 Vite preview를 내렸다. + 다만 이 HTML은 지금까지 Phase 0 상태판처럼 쓰였고, 아래에 Phase 1 이후 전체 계획을 보강했다. 공개 Google OAuth 실제 `/turn` 증명만 storageState 캡처 후 남아 있다.

@@ -153,11 +187,75 @@
Pages Production0fe8f3cc
Public APIprod OK
Backend unittest20 OK
-
App Commit543d48c
-
Decision조건부 GO
+
RoadmapP0-P3
+
DecisionP0 조건부
+
+
+
+

전체 개발 로드맵

+

`docs/MASTERPLAN.md`와 `docs/redteam/MASTERPLAN_REVISIONS.md`를 합친 팀장 판단용 단계표

+
+
+
+
+
Phase 0closing
+

기반 정렬 / 운영 안전장치

+

인프라, 인증 경계, fail-closed, 공개 배포, 회귀 테스트 안정화.

+
    +
  • 상태: 대부분 완료, 공개 `/turn` proof만 남음
  • +
  • 검증: build + backend 20 + Playwright 72
  • +
  • 운영: prod API 8001, engine 9099, tunnel 1개
  • +
+
+
+
Phase 1next
+

MVP 코어 루프

+

1 페르소나 상담, 실제 턴 저장, 회기말 피드백, 저항 엔진 검증.

+
    +
  • DoD: 로그인 → P1 상담 완주 → 피드백 수신
  • +
  • 추가: 음성 왕복 1턴 PoC 포함
  • +
  • 증거: cost/turn DB 적재 + openness 곡선 대조
  • +
+
+
+
Phase 2aplanned
+

3역할 / OAuth / 페르소나

+

학습자, 교수자, 관리자 권한 분리와 페르소나 확장.

+
    +
  • DoD: 타인 session 직접 접근 403
  • +
  • 범위: OAuth BFF, RBAC, 교수 검수 루프
  • +
  • 주의: visible_to와 인간 권한은 별도 레이어
  • +
+
+
+
Phase 2bplanned
+

음성 캐스케이드

+

STT → 엔진 → TTS 왕복, WSS/터널 안정성, barge-in 로깅.

+
    +
  • DoD: 50분 WSS 끊김 실측
  • +
  • 범위: Deepgram STT, OpenAI TTS, voice preset
  • +
  • 리스크: 실시간 레이턴시는 실측 전 완료 표기 금지
  • +
+
+
+
Phase 3planned
+

교육용 파일럿 / 효과성

+

수련생 파일럿, 사전사후 효과 측정, 재귀학습 데이터셋 산출.

+
    +
  • DoD: 20명 완주 + KPI 충족
  • +
  • 측정: SUS, 자기효능감, κ/ICC, 환각률
  • +
  • 정정: IRB 게이트가 아니라 데이터 활용동의/개인정보 게이트
  • +
+
+
+
+ 정정 기준: `MASTERPLAN` 원본의 IRB 신청/승인 게이트는 `MASTERPLAN_REVISIONS` 기준으로 제거한다. Phase 2는 2a(3역할/OAuth/페르소나)와 2b(음성 캐스케이드)로 분리하고, Phase 1 DoD에는 얇은 음성 왕복 1턴 PoC를 포함한다. +
+
+
@@ -382,7 +480,7 @@ powershell -NoProfile -ExecutionPolicy Bypass -File scripts\start-public-runtime
  • `frontenddesign` 스킬은 현재 세션에 없었다. 다음 세션에서 보이면 먼저 사용하고, 없으면 `docs/DESIGN_CONCEPT.md`를 따른다.
  • 학습자 홈과 active session UX는 사용자가 강하게 불만을 말한 영역이다. fake 기록/통계 금지, 0회 기록은 실제 서버 세션 0개 기반 빈 상태로 유지, active session 전체화면/무문서스크롤 유지.
  • -
  • worktree는 원래부터 dirty다. 관련 없는 변경을 되돌리지 말 것.
  • +
  • 추적 파일 기준 worktree는 깨끗하게 유지한다. `.env`, 로그, `node_modules` 같은 ignored runtime 파일은 운영/개발 상태로만 취급하고 커밋하지 않는다.
  • OAuth secret은 출력하지 말 것. 실제 secret은 환경 파일/인프라 설정에만 둔다.