칸반 보드
담당자별 백로그입니다. 티켓 1건 = 파일 1개(jekyll/_backlogs/)이므로 네 사람이 동시에 자기 티켓을 고쳐도 병합 충돌이 나지 않습니다.
주차별 목표는 8주 마일스톤, 일자별 기록은 개발 로그, 아직 정하지 못한 것은 미결 항목에 있습니다.
정성윤 61 / 69 완료
할 일 (3)
완료 (61)
류준 75 / 78 완료
할 일 (0)
진행 중 (1)
완료 (75)
09-15 남은 배선·후보 출처는 w4-j5-routing-decision(장민석, decisions/313)에서 끝났다
09-21 실측 — 8 kHz WER Beginner 0.412 · Intermediate 0.266 · Advance 0.225 · Fluent 0.198(등급당 n=20, 상한). 남은 것: 왕복 지연 · 코어 유지 판단
막힘 — 통화 단위 음성 골든셋 없음(발화 클립뿐). 학습은 하지 않는다(decisions/210) — 규칙 판정. 하네스 배선·어댑터는 09-21 완료(run_eval 이 NO_SAMPLES 로 찍힌다), 채점은 표본이 생기면
09-15 dense 0.979/0.885 (BM25 0.833/0.659) · 운영 ES 에는 벡터 없음
09-15 RRF 0.927/0.828 < dense 0.979/0.885 — 비채택(decisions/206)
09-15 누락 3→0 (n28, --no-ner 대조) · 운영은 PII_NER_MODEL_DIR 설정 전까지 규칙만
09-15 10% 에서 bm25 0.812 · dense·rerank 0.979 — 낙관적 곡선(흉내 못 내는 몫 46.9%)
09-15 띄어쓰기 보강 후 규칙+NER 누락 0(0~5%) → 1(10~20%, 주입기의 가짜 음절) · 하네스 부분 마스킹 가짜 통과 수정
09-21 실측 — 8 kHz WER Beginner 0.412 · Intermediate 0.266 · Advance 0.225 · Fluent 0.198(n=20/등급, 상한). 측정 기록은 w3-a5-translation-spike 09-21 절
대본 24건(09-18 +10) + QA 검수 + 재생기 + Google TTS(w5-persona-tts-google) + E2E 검사(w5-persona-e2e) — 사람 검토·결정 209 합의·운영 시연 남음
09-15 서류 목록 카드 · 출처 100% · 화면 환각 0 · p95 0.92~0.98초(로컬, 예산 초과 우려)
09-15 원출력 환각 kanana 27/96 · 화면 0(필터) · 출처 100% · 96문항(150 미달)
09-15 kanana 채택(decisions/207) — 같은 조건 원출력 환각 96→27 카드
09-15 규칙 v1 · 골든셋 재현율·정밀도 1.0(상한) · 실제 상담원 발화 보류 절반 과탐지 2/4,952
09-15 적중 p95 2.1ms vs 미적중 238ms · 품질 불변 · --recreate 무효화 확인 · 운영 적중률 측정 불가
09-15 [추정] 통화당 생성 약 2,400토큰·GPU 5.4s · STT 146s(하한) → 일 캡 600s 로 하루 4건
09-15 D-2 유형 제안 0.872(AI Hub 1,009 대화) · D-1 모델 요약 42/50 통과 · 규칙 초안 위에 얹음 · 운영 미켜짐
장민석 65 / 66 완료
할 일 (0)
진행 중 (0)
완료 (65)
조서희 57 / 61 완료
할 일 (0)
진행 중 (2)
완료 (57)
티켓 추가하는 법
jekyll/_backlogs/ 에 파일을 하나 만듭니다. 다른 사람 파일은 건드리지 않습니다.
---
title: "카카오 로그인 API 연동"
assignee: "류준" # 정성윤 | 류준 | 장민석 | 조서희
role: "ai" # infra | ai | app (배지 색 — ai: 류준·장민석, app: 조서희)
status: "in-progress" # todo | in-progress | done | cancelled
sprint: 1
priority: 5 # 같은 칸 안에서의 정렬 순서
date: 2026-08-25
note: "모델 학습 후 진행 예정 — 정확도 측정" # (선택) 카드 제목 아래에 뜨는 한 줄 메모
paths: # (선택) 이 티켓 소관 파일 — 붙여두면 상태 갱신을 잊었을 때 경고해 줍니다
- "apps/dashboard/*"
depends_on: # (선택) 앞 단계 티켓. 일부러 나눈 단계는 중복 경고에서 빠집니다
- "w2-baseline"
requirement: # (선택) 이 티켓이 만드는 기능 ID — 카드에 기능 이름 배지로 붙습니다
- "B-2"
---
무엇을 / 왜 / 완료 조건을 적습니다.
파일명은 w{주차}-{영문-슬러그}.md 로 짓습니다(예: w1-eval-ci.md). 한글 파일명은 URL이 깨집니다.
상태를 바꿀 때는 자기 티켓의 status 한 줄만 고칩니다.
requirement 는 기획서의 기능 ID를 그대로 씁니다 — 새 접두어를 만들지 않습니다.
같은 ID를 코드 파일 상단에도 # Requirement: B-2 로 답니다. 두 곳이 같은 ID라 백로그에서 코드까지
추적이 이어집니다.
보드에는 ID 가 아니라 기능 이름(「실시간 자막」·「문서 검색」·「추천 카드」…)으로 뜹니다.
프론트엔드가 카드만 보고 어느 화면을 짜야 하는지 바로 알 수 있게 하기 위해서입니다 —
A-1·SEC-1 같은 코드는 화면을 만드는 쪽에서 읽히지 않습니다. ID→이름 대응은 kanban.markdown
안의 case 블록에 있고, 같은 이름으로 겹치면 배지 하나로 합칩니다(D-1+D-2 → 「통화 후 요약」).
정확한 ID 는 배지에 마우스를 올리면 보입니다.
배포·저장소 정리처럼 기능 ID 대상이 아닌 티켓은 비워 둡니다.
세션을 끝낼 때 python3 scripts/check_session_end.py 를 돌리면 상태가 실제와 어긋난 티켓과
중복 티켓을 알려줍니다. 진행 기록을 빠뜨리면 Stop 훅이 세션을 끝내지 못하게 막습니다.