배경#
Problem/Decision → Project/Person 관계 recall이 바닥이던 문제(root cause: missing_graph_endpoint — 관계 엔드포인트가 활성 그래프 노드로 해소 안 됨). 프로젝트 추론은 원문에 없어 불가능, 신뢰 가능한 신호는 화자(제기자) — 결정론적. 여기서 RAISED_BY(Problem/Decision → Person, "누가 발언했나") 도입.
Stage 1-3 (이전 배포, 커밋 3239e8a/06910cb)#
- verbatim 근거 계약:
locate_verbatim_span()— 근거가 원문의 유일한 축자 substring일 때만 offset 반환. RKA_VERBATIM_EVIDENCE 기본 ON(A/B 증명 후). speaker_linking_pass: verbatim 근거 위치 → 직전[화자][mm:ss]라벨 → 유일 참석자 Person 해소 → RAISED_BY 방출. not_verbatim/화자N/다중화자/모호 Person이면 추측 없이 skip.DETERMINISTIC_ONLY_GRAPH_RELS={RAISED_BY}— LLM 관계 어휘에서 제외, 화자 패스만 생성.- feedback.py step 2.5: promote 직전 RAISED_BY 생성 → 엔드포인트와 같은 batch 승격.
③ RAISED_BY 답변 활용 — person_ongoing_work 스킬 연결 (2026-07-24)#
- 변경:
rka/ontology/knowledge_skills.yamlperson_ongoing_work. Person <-RAISED_BY- Problem/Decision traverse(direction: in, rel_types: [RAISED_BY]) 2스텝(raised_problems, raised_decisions) 추가, problem_pool·decision_pool inputs 맨 앞 합류. 결정론적 귀속이라 provenance 공동출현보다 신뢰 높아 pool 앞. - project_status 미포함: RAISED_BY는 본질적으로 Person 엣지, 프로젝트 문맥 문제의 제기자는 답변 1홉 확장에서 자동 노출. 과설계 회피.
- 커밋
1208c31. 4개 앱 서비스(console/ask-api/mcp/slackbot) 재배포 healthy. 배포 이미지에서 raised_problems/raised_decisions 스텝 확인.
정직한 caveat (검증됨)#
- 배포 직후 그래프 RAISED_BY 엣지 = 0. 기존 노드 근거는 paraphrase라 소급 불가(측정: 기존 근거 2/220만 verbatim = 0%). 효과는 배포 이후 처리되는 새 회의부터 누적. 실제 QA 검증은 다음 실제 회의 처리 후.
- Stage 2 A/B(0703 회의): verbatim OFF→ON 시 P/D locatable 0%→100%, recall 손실 없음. 단 speaker 해소는 3/12(나머지 9 = 화자N diarization 한계) — 병목이 verbatim(해결)에서 diarization으로 이동.
다음 할 일#
- ① diarization 개선(화자N 감소 → RAISED_BY 수율↑) — H100 영역. (미완료, 2026-09-11 기준)
- ② 다음 실제 회의로 end-to-end 검증(verbatim + speaker 패스). (미완료, QA 결과 미기록)
- ④ 소급 불가(deferred).
관련 테스트 37개 통과(knowledge_skills/context_executor/ontology/speaker_linking_pass/locate_verbatim_span).
Sagwan Revalidation 2026-07-24T09:21:52Z#
- verdict:
ok - note: 최신 배포·한계·후속조건이 명시돼 현재 재사용 가능함
Sagwan Revalidation 2026-07-26T11:50:29Z#
- verdict:
ok - note: 이전 검증 후 이틀뿐이며 배포·caveat·권장안 모두 여전히 유효함
음성지문 앵커 구축 — 사용자 귀 검증 (2026-07-28)#
enrollment 오염 대책으로 사람당 불변 클린 앵커를 만드는 중. 사용자가 후보 구간을 귀로 검증.
확정 9명 앵커 (data/meetings/_anchor_verify.md): 권우현(081552Z 0:00–1:15 자기소개), 김인수(083315Z 6:39–8:00), 무르타자(082632Z 21:44–23:10 영어), 신현주(083315Z 42:46–44:10), 최인호(081552Z 4:42–6:05), 임동성(081552Z 3:06–4:10), 문승연(012430Z 11:18–13:00 + 20260720 3:32–4:40), 송세경(083315Z 70:13–71:45, 73:16+ 오염 제외), 이호준(083211Z 5:10–7:15). 신현미=제외(단일 장발화 없음).
교훈들: 1. 앵커 길이는 ASR 전사 텍스트가 아니라 voiced audio(파형) 기준으로 재야 함. 글자밀도 필터는 조용하지만 발화 있는 구간을 과소평가 → 임동성 3:06–4:10(~64s)을 21s로 오판했음. 2. 유사목소리군 {문승연·임동성·최인호}는 회의 간 라벨이 서로 뒤바뀜 — 격리된 3뱅크와 일치. 자동 후보 선정이 오염을 그대로 노출. 사람 귀가 유일한 ground truth. 3. transcript 라벨 오염이 그래프 지식 귀속까지 전파되진 않았음: "자비스 UI 애니메이션" Task는 최인호(ASSIGNEE)로 정상. 4. 송세경(대표) 뱅크의 717초 "네네네/선물선물" 구간 = 과병합 오염, 앵커 금지.
다음(구현: codex, 검토: 나): (a) 앵커 저장 스키마 {name}_anchor.npy 불변. (본문 이후 섹션 truncated — 원본 소스에서 복원 필요)
관련 노트#
- 유사음성 분리 한계 실측 및 3단 융합 전략:
personal_vault/knowledge/agent-experience/ml/cross-recording-speaker-id-voiceprint-graph-fusion.md— voiceprint 단독으로는 cosine 0.87 유사 화자 쌍 분리 불가, HITL 융합이 정답임을 2개 독립 임베딩 모델로 확인. - 핵심 패턴 증류 캡슐:
personal_vault/projects/ops/librarian/capsules/Deterministic speaker-linked RAISED_BY edges are safer than inferred project attribution for meeting Problem and Decision nodes.md
2026-09-11 사관 재점검#
- 아키텍처 결정 유효: verbatim 계약·DETERMINISTIC_ONLY_GRAPH_RELS·speaker_linking_pass 설계는 여전히 유효. 캡슐로 정상 증류됨.
- 미확인 open items: 다음 할 일 ①(diarization H100 개선)·②(end-to-end QA) 완료 여부 미기록. 후속 회의에서 RAISED_BY 실제 누적량 및 speaker 해소율 개선치 기록 필요.
- diarization 병목 보강: 유사음성 한계(cosine 0.87)는 cross-recording voiceprint 노트에서 독립 실측 완료. 3단 융합(voiceprint + 그래프 귀속 + HITL)으로 전략 수렴.
- voice anchor npy 섹션: 원본 본문 말미 truncated. 구현 완료 여부 확인 후 본 노트에 추가 기록 필요.
Sagwan Revalidation 2026-09-15T12:54:03Z#
- verdict:
refresh - note: QA·diarization·voice anchor 완료 여부 미기록에 active dispute도 있음