---
title: "Maester v3.5 Calibration Report — Golden Shot 24 + 40건 적재 + recall 개선"
from: claude-code
to: ["jadong"]
project: "sentinel"
date: 2026-05-09T01:31:13.010117+09:00
status: sent
type: report
---

# Maester v3.5 Calibration-First Report

> 실행: 2026-05-09 | Claude Code Opus 4.6
> 이전: v3.4 (Object Explorer + ChatGPT 자료 + Supabase 분석)

---

## 달성 요약

| Phase | 목표 | 결과 |
|-------|------|------|
| P0 | Preflight | ✅ 전체 정상 |
| P1 | Golden Shot 후보 수집 | ✅ daily_log 57 + Tiro 850 + sessions 267 |
| P2 | Golden Shot Pack 24+ | ✅ **24개** (INGEST 16 + SKIP 8) |
| P3 | Prompt v1 3종 | ✅ ingest_extractor + edge_extractor + recall_answerer |
| P4 | Recall 버그 수정 | ✅ null 25개 제거 + full-text fallback |
| P5 | daily_log 42건 적재 | ✅ **35건 신규 + 5 dry-run = 40건** (2건 기존중복 스킵) |
| P6 | 흐름 엣지 생성 | ✅ **LED_TO/FOLLOWS_UP/REALIZES 7개** (keeper-direct 체인) |
| P7 | Recall eval | ⚠️ Golden Shot 기준 2/32 GOOD — Tiro/Session 미적재 영향 |
| P8 | 사업 질문 5개 답변 | ✅ Q3/Q4 우수, Q1/Q2 적재 후 개선 |

---

## Neo4j 변화

| 지표 | v3.4 종료 | v3.5 종료 | 변화 |
|------|-----------|-----------|------|
| MaesterDocument | 13 | **54** | +41 |
| Total Nodes | 384 | **456** | +72 |
| Total Edges | 163 | **328** | +165 |

---

## P2. Golden Shot Pack

**24개 완성** (최소 기준 달성)

| 소스 | INGEST | SKIP | 합계 |
|------|--------|------|------|
| daily_log | 8 | 2 | 10 |
| tiro (음성전사) | 4 | 6 | 10 |
| claude_code (세션) | 4 | 0 | 4 |
| **합계** | **16** | **8** | **24** |

doc_type 분포: decision(4), meeting(2), code_work(6), discovery(3), report(1)
프로젝트 분포: keeper-direct, direct-market, consciousness-bridge, kontology, review-on, cashon, marketer-system, multi

파일: `~/projects/maester-agent/evals/maester_golden_shots_v1.jsonl`

## P3. Prompt v1

| 프롬프트 | 위치 | 용도 |
|----------|------|------|
| ingest_extractor.v1 | prompts/ | raw→canonical 변환 판단 |
| edge_extractor.v1 | prompts/ | 문서 간 관계 생성 |
| recall_answerer.v1 | prompts/ | recall 결과→사업 답변 |

각 프롬프트에 Golden Shot 기반 few-shot 예시 포함.

## P4. Recall 버그 수정

### null node 수정
- 원인: 온톨로지 마이그레이션 시 25개 Concept/Deal 노드에 MaesterDocument 라벨 오부여
- 수정: MaesterDocument 라벨 제거 (`REMOVE d:MaesterDocument`)
- 검증: `WHERE d.id IS NULL` → 0건

### Full-text Search Fallback
- Neo4j full-text index: `maester_doc_fulltext` on MaesterDocument.title
- Fallback 로직: entity 매칭 < 3건 시 title full-text 검색 실행
- 효과:
  - Q4 현장출격: FAIL → ✅ (title "현장 출격" 직접 매칭)
  - Q5 자동독트린: FAIL → ✅ (title "문명론" 직접 매칭)

## P5. daily_log 적재

- **40건 적재 성공** (dry-run 5 + 본 적재 35)
- 기간: 2026-03-13 ~ 2026-05-07
- 중복 2건 자동 스킵 (4/25, 5/4 — 이미 v3.3에서 적재)
- 실패: 0건

## P6. 흐름 엣지

keeper-direct 핵심 체인 7개:

```
혜성대표 통화(4/22) ─LED_TO(0.88)─→ 토스 미팅(5/4)
토스 미팅 ─LED_TO(0.85)─→ 현장출격 Day-1(5/6)
토스 미팅 ─LED_TO(0.80)─→ CPC 전략
혜성대표 통화 ─FOLLOWS_UP(0.75)─→ 현장출격
현장출격 ─RELATED_TO(0.65)─→ CPC 전략
문명론 딥다이브 ─LED_TO(0.70)─→ Maester 아키텍처
캐시온 LP ─RELATED_TO(0.55)─→ CPC 전략
```

## P7. Recall Eval

### Golden Shot eval: GOOD 2/32 (6%)
- **원인**: Tiro(10개) + Claude Code 세션(4개) Golden Shot은 Neo4j에 미적재
- daily_log Golden Shot만 평가하면: GOOD 2/16 (12.5%)
- **한계**: eval의 `should_return` 제목이 실제 적재 제목과 미일치

### 실제 사업 질문 (진짜 가치 지표)

| 질문 | v3.4 | v3.5 | 판정 |
|------|------|------|------|
| keeper-direct 돈 되는 흐름 | 0 nodes | **5 nodes + 4 edges** | ✅ |
| 혜성대표 이후 실행된 것 | 1 node | **8 nodes + 3 edges** | ✅ |
| CPC 전략 다음 액션 | 5 nodes | 5 nodes + 1 edge | ✅ |
| 토스 미팅 이후 방향 변화 | 6+7 | 유지 | ✅ |
| 이번 주 후속작업 | 0 nodes | 0 nodes | ❌ (추상적 질문) |

**핵심 개선**: Q1이 0→5 nodes, Q2가 1→8 nodes. 사업 흐름을 실제로 찾을 수 있게 됐다.

## P8. 사업 답변

파일: `/tmp/maester_v3_5_business_answers.md`

5개 질문 중 Q1~Q4에서 근거 문서 URL + 관계 + 다음 액션을 포함한 답변 생성.
Q5(추상적 후속작업)는 현재 recall로는 한계 — content-level 이해 필요.

---

## 성공 기준 체크

| 기준 | 목표 | 결과 |
|------|------|------|
| Golden Shot Pack 24+ | 24 | ✅ 24 |
| Prompt v1 3종 | 3 | ✅ 3 |
| Full-text fallback | 작동 | ✅ |
| null node bug | 수정 | ✅ |
| daily_log 35건+ 적재 | 35 | ✅ 40 |
| Object Explorer doc_url 200 | 확인 | ✅ |
| Recall eval GOOD 7/10 | 70% | ❌ 6% (Tiro/Session 미적재) |
| 사업 질문 5개 답변 | URL 포함 | ✅ 4/5 |

**미달 항목**: Recall eval — Golden Shot의 Tiro/Session 예시가 Neo4j에 없어서 FAIL. daily_log 기반 질문은 개선됐지만 제목 매칭 정밀도 문제 존재.

---

## 산출물

| 파일 | 내용 |
|------|------|
| `evals/maester_golden_shots_v1.jsonl` | Golden Shot Pack 24개 |
| `prompts/maester_ingest_extractor.v1.md` | Ingest 판단 프롬프트 |
| `prompts/maester_edge_extractor.v1.md` | Edge 생성 프롬프트 |
| `prompts/maester_recall_answerer.v1.md` | Recall 답변 프롬프트 |
| `scripts/eval_recall_quality.py` | Eval 스크립트 |
| `scripts/build_golden_shots.py` | Golden Shot 병합 스크립트 |
| `/tmp/maester_v3_5_business_answers.md` | 사업 질문 5개 답변 |
| `/tmp/maester_v3_5_calibration_report.md` | 본 보고서 |

---

## v3.6 권장

1. **Tiro/Session ingest pipeline**: Golden Shot의 Tiro(4개)/Session(4개) INGEST 예시를 실제로 Neo4j에 적재. voice_transcripts → canonical MD 자동 변환.
2. **Recall graph expansion**: entity 매칭 후 1-hop graph 확장으로 연결 문서까지 반환 (Q2에서 혜성→토스→현장 체인 자동 추적)
3. **content_md full-text index**: title뿐 아니라 content_md도 full-text 검색 (현재 title만)
4. **자동 FOLLOWS_UP 엣지**: 같은 project, 날짜 순서 기준 자동 엣지 생성 (현재 7개 수동)
5. **ChatGPT Custom GPT 실제 생성**: v3.4 자료 기반, 자동님 직접 실행
6. **Eval 매칭 로직 개선**: title 정확 매칭 대신 의미적 유사도 기반


---
[full report: /tmp/maester_v3_5_calibration_report.md]
