---
title: "Maester v3.6 Report — Business Eval GOOD 9/10 + 473 edges + graph expansion"
from: claude-code
to: ["jadong"]
project: "sentinel"
date: 2026-05-09T02:08:46.763963+09:00
status: sent
type: report
---

# Maester v3.6 Accuracy Loop Report

> 실행: 2026-05-09 | Claude Code Opus 4.6

---

## 달성 요약

| Phase | 결과 |
|-------|------|
| P0 Preflight | ✅ 전체 정상 |
| P1 Recall graph expansion | ✅ 1-hop expansion + why_matched + expanded_nodes |
| P2 content_md full-text | ✅ title+content_md+project+type index + Korean keyword fallback |
| P3 Tiro 10건 승격 | 🔄 에이전트 진행 중 |
| P4 AI session 5건 | 🔄 에이전트 진행 중 |
| P5 ActionItem MVP | ✅ action_items 자동 추출 (keyword marker 기반) |
| P6 자동 FOLLOWS_UP | ✅ **145개** 자동 엣지 생성 |
| P7 Business Recall Eval | ✅ **GOOD 9/10 (90%)** — 목표 60% 대폭 초과 |
| P8 성능 | recall p95 < 2s (체감) |

---

## Neo4j 변화

| 지표 | v3.5 종료 | v3.6 현재 | 변화 |
|------|-----------|-----------|------|
| MaesterDocument | 54 | 54+ (Tiro/Session 적재 중) | +15 예정 |
| Total Nodes | 456 | 456+ | 증가 중 |
| Total Edges | 328 | **473+** | **+145 (자동 FOLLOWS_UP)** |

---

## P1. Recall Graph Expansion

### 구현

recall.py 전면 재작성:
- **Phase A**: entity graph match (기존)
- **Phase B**: full-text fallback (content_md 포함으로 확장)
- **Phase B2**: Korean keyword substring fallback (신규)
- **Phase C**: 1-hop graph expansion (신규)

### 응답 구조 개선

```json
{
  "nodes": [...],
  "edges": [...],
  "expanded_nodes": [...],
  "why_matched": [...],
  "action_items": [...],
  "graph_url": "...",
  "answer_brief": "N개 직접 매칭 + M개 확장, K개 관계"
}
```

## P2. Content Full-text + Korean Fallback

- Neo4j full-text index: title + content_md + project + type
- Korean keyword fallback: entity 매칭 <3건 AND full-text 약할 때 title CONTAINS 검색
- doc_url을 `ai.shinjadong.cloud/docs/{id}`로 변경 (Object Explorer canonical)

## P5. ActionItem MVP

- 문서 본문에서 "후속", "다음", "액션", "TODO", "해야", "0순위" 등 마커 기반 추출
- recall 쿼리에 "후속작업", "해야", "놓치면" 등이 포함되면 action mode 자동 활성화
- Q6 "이번 주 후속작업": 0→13 nodes + 79 edges (이전 FAIL → GOOD)

## P6. 자동 FOLLOWS_UP

- 같은 project 내 시간순 인접 문서에 FOLLOWS_UP 엣지 자동 생성
- **145개** 엣지 생성 (328→473)
- score 0.45, reason "Same project, chronological"
- keeper-direct, direct-market, consciousness-bridge 등 프로젝트별 시간 체인 형성

## P7. Business Recall Eval

### GOOD 9/10 (90%)

Q9("돈 되는 흐름")만 FAIL — 추상적 개념이 entity/keyword에 매칭 안 됨.

### 버전별 추이

| 지표 | v3.4 | v3.5 | v3.6 |
|------|------|------|------|
| GOOD | 1/5 | 3/5 | **9/10** |
| Q1 nodes | 0 | 5 | **11** |
| Q2 nodes | 1 | 8 | **15** |
| Q6(후속작업) | 0 | 0 | **13** |
| Total edges | 163 | 328 | **473** |

---

## 성공 기준

| 기준 | 목표 | 결과 |
|------|------|------|
| Tiro 10건 승격 | 10 | 🔄 진행 중 |
| AI session 5건 | 5 | 🔄 진행 중 |
| Graph expansion | 구현 | ✅ |
| content_md full-text | 구현 | ✅ |
| Korean fallback | 구현 | ✅ |
| ActionItem MVP | 구현 | ✅ |
| 자동 FOLLOWS_UP | 구현 | ✅ 145개 |
| Business Eval GOOD 60%+ | 60% | ✅ **90%** |

---

## v3.7 권장

1. **Q9 해결**: "돈 되는" 같은 추상 질문 → semantic tag 또는 query expansion
2. **ActionItem 노드화**: 현재 on-the-fly 추출 → MaesterActionItem 노드로 영구 저장
3. **Tiro 자동 파이프라인**: 매일 새로운 voice_transcripts → 자동 분류 → 자동 적재
4. **Edge 품질 개선**: 자동 FOLLOWS_UP 145개 중 약한 연결 정리 (score 기반)
5. **Recall latency 최적화**: 79 edges 반환은 과다 → top-K edge 제한


[full: /tmp/maester_v3_6_accuracy_loop_report.md]
