# NEXT SESSION ENTRY — Mother-platform 6 원칙 + cap fix Default + cycle β scope (2026-06-05 오후)

> 이 세션의 큰 finding + cycle β 진입 인수인계. 다음 세션은 이 문서로
> 이어받음. 어제 cap[:1000] 발견 (handover `v0.4-multihop-synth-context-
> fix-2026-06-05.md`) 의 후속.

## 한 줄 현황

이번 cycle 가장 큰 finding 은 단일 fix 효과 아닌 **mother-platform 평가
6 원칙 정립**. PR-A (cap default flip) land 완료. V2/P-1 은 단답 specific
옵션 (원칙 3) 으로 land. cycle β 진입 시 원칙 6 (IntentClassifier
auto-selection) 으로 V2 의 graded tradeoff 해결 가능.

## Mother-platform 6 원칙 (다음 cycle 의무 reading)

| # | 원칙 |
|---|---|
| 1 | 코드 끼워 맞춘 옵션형 거둬내기 + 추론 다이얼 조정 = 올바른 방향 |
| 2 | 평가 metric 맞춘 단답 specific 구조 추가 = 틀린 방향. NATURAL 답 차단 극단 다이얼 X |
| 3 | 단답 needed 시 specific 옵션 layer 로 setting |
| 4 | 기존 옵션형 코드 → 사용자 답변 방식 옵션으로 setting |
| **5** | **NATURAL 답에 지장 없는 개선 = Default 인정** (multi-axis 회복 필수) |
| **6** | **JAMES 가 단답 query 자동 파악 → 단답 specific 자동 장착 = Default 인정** (IntentClassifier auto-selection) |

## 이번 cycle 의 진짜 finding

### Phase 0 — cap[:1000] discovery (어제, sealed)

- synth `engine_synth.py` 의 hardcoded `context[:1000]` 1줄이 multi-hop
  evidence cut → platform-wide 추론 불구화
- env-gate fix + multi-axis 검증 (PM-10 cap=8000): primary +0.03, graded
  +0.077, abst_F1 +0.088
- handover doc: `v0.4-multihop-synth-context-fix-2026-06-05.md`

### Phase 1 — (c1) reflect engine critique→revise leak (오전, sealed)

- §22 진단: `reflect.py` 의 REVISE_PROMPT_EN 가 critique 본문 노출 →
  모델이 "## Revised Answer" / "This revision focuses on..." 양식
  자연 prior 활성
- band-aid: stripper 5 EN 패턴 + REVISE_PROMPT_EN forbidden 확장
  (commit `2d96192`)
- systemic: V2 redesign — critique 비노출 + 4-tag flag 압축
  (commit `9ed1af7`)
- PM-16 V2 효과: primary 0.480 → 0.580 (+0.10), meta 38 → 3 (-92%)
- **단 graded 0.49 → 0.373 (-0.11)** = NATURAL multi-fact 답 약화
- → 원칙 2 위반 (평가-fitting). 원칙 3 적용: V2 = env-gate OFF default,
  terse opt-in

### Phase 2 — (c2) planner plan-prepend leak (오후, sealed)

- §24 진단: `pipeline_synth.py:73-89` 가 sub-tasks numbered list +
  "위 계획에 따라 단계별로 답변하라" directive 를 system_prompt 앞에
  prepend → 모델에 step-by-step 양식 강제
- P-1 fix: terse 모드에서 plan prepend skip (commit `bc2ddae`)
- PM-17 (V2+P-1) 효과: meta 3→0, comp +0.08, temp +0.12, 단
  **abst_F1 -0.112**, null -0.16
- → 원칙 3 적용: P-1 = terse conditional, Default 무관

### Phase 3 — 6 원칙 정립 + PR-A flip (저녁, sealed)

- §27 사용자 통찰: Default = JAMES 모체 평가 원칙
- §29 6 원칙 (원칙 5 + 6 추가): NATURAL 지장 없는 개선 Default 인정 +
  단답 query auto-selection 시 단답 specific auto-mount Default 인정
- **PR-A** (commit `b59e7ee`): cap default 1000 → 8000 flip
  - 원칙 1 + 5 정합 (추론 다이얼 + multi-axis ↑)
  - Quality Delta Card 본문 포함 (CLAUDE.md rule #2)

## 현재 production Default (이 cycle 마감 시점)

### `.env` (production 환경)
```
JAMES_ENABLE_QUERY_REWRITE=1
JAMES_ENABLE_PLANNER=1
JAMES_ENABLE_REFLECT=1
JAMES_ENABLE_VERIFY=1
JAMES_ENABLE_FACT_CHECK=1
JAMES_ENABLE_ENTITY_ANCHOR=1
JAMES_GRAPH_EDIT=1
JAMES_GEMMA4_E4B_THINK_OFF=1
JAMES_EMBEDDING_MODEL=BAAI/bge-m3
```

### 코드 default (env 미설정 시)
- `JAMES_SYNTH_CONTEXT_CHARS` = **8000** (PR-A 후 land, legacy=1000 명시 시 회귀)
- `JAMES_REVISE_PROMPT_V2` = **0** (V2 OFF, terse opt-in)
- `response_style` = **NATURAL** (NATURAL_PRESET)
- `JAMES_EPISODIC_CONTEXT` = **1**

## 진짜 Default verdict (terse fixture 측정, n=100)

| Cell | 환경 | primary | graded | abst_F1 | 의미 |
|---|---|---|---|---|---|
| raw e4b | no JAMES | 0.520 | 0.403 | 0.561 | 모델 자체 능력 |
| PM-1b legacy | cap=1000 | 0.450 | 0.413 | 0.523 | PR-A 전 production |
| **PM-10** | **cap=8000** | **0.480** | **0.490** | **0.611** | **PR-A 후 production — e4b** |
| **PM-12-final** | cap=8000, mixtral | **0.450** | **0.450** | **0.667** | **PR-A 후 production — mixtral 47B (완료)** |
| PM-16 +V2 (opt-in) | +V2 | 0.580 | 0.373 ↓ | 0.621 | terse 단답 옵션 |
| PM-17 +V2 +P-1 | +V2 +P-1 | 0.560 | 0.360 | 0.509 ↓ | meta-deterministic 옵션 |

⚠️ PM-10 = stripper 미적용 측정. 현 production code 는 stripper land —
약간 underestimate.

**PM-12-final 결과 (완료, §32)**: mixtral 47B Default = 0.450 / 0.450
/ 0.667. **같은 모델 통제 = JAMES 스택 contribution +0.13** (paper
Mixtral 0.32 vs JAMES Default 0.45). **4B 가 47B 보다 primary/graded
약간 우위** = JAMES 스택이 모델 size 영향 흡수. mother-platform 가치
정량 입증.

## JAMES 스택 진짜 가치 (raw vs Default)

| 차원 | raw e4b | PM-10 Default | Δ |
|---|---|---|---|
| primary (단축) | 0.520 | 0.480 | -0.04 (약간 손해) |
| graded (multi-fact) | 0.403 | 0.490 | **+0.087** ↑ |
| abst_F1 (회피 정확도) | 0.561 | 0.611 | **+0.05** ↑ |

→ **JAMES 모체 진짜 가치 = 다축** (multi-fact + abstention). 단축
단답 정확도 아님. Framing B⁴ (최종, 6 원칙 정합).

## vs Paper baseline (단답 primary 한정)

PM-10 JAMES Default e4b (4B) 가 paper Mixtral-8x7B (47B) 0.32 / Llama-
70b 0.28 / ChatGPT 0.44 초과. GPT-4 / Claude-2.1 / PaLM 미달 — 정직.

**중요한 caveat (§33 보강, 2026-06-05)**: paper RAG = **LlamaIndex
vanilla baseline** (chunk 256 / top-10 / no reranker / 단답 prompt).
JAMES vs paper 비교는 **다른 RAG framework** — JAMES advanced 스택
(planner / reflect / verify / graph / bge-m3 / multi-arm retrieval) vs
LlamaIndex vanilla. "JAMES 스택 contribution +0.13" 의 정확한 의미 =
"같은 모델 (mixtral 47B) 위에서 JAMES advanced 스택 vs LlamaIndex
vanilla baseline + 0.13". 모델 자체 능력 비교 아님. 4B Default ≈ 47B
Default 만 JAMES 내부 비교라 framework 변수 없음 (size 흡수 정량 입증
유효). 자세한 framework 비교 = §33.

**§34 4-way matrix 정밀 분해 (2026-06-05 후속 측정)**: Layer B
framework comparison (PM-LL-mixtral + PM-LL-e4b, JAMES corpus + paper
prompt + top-10 + no rerank, 양 모델) 완료. **Scenario B+ 양 모델
동일 trade-off pattern 확정**:
- **Corpus retrieval 기여**: +0.18 (mixtral) / +0.21 (e4b 4B 가 47B
  paper 보다도 ↑). JAMES bge-m3 + chroma + indexing 이 paper LlamaIndex
  (voyage-02 / ada-002) 보다 명확 우위.
- **JAMES advanced 스택 단축 contribution**: −0.050 (양 모델 정확히
  동일). 모델-무관 trade-off.
- **JAMES advanced 스택 다축 contribution**: graded +0.093-0.267,
  abst_F1 +0.052-0.236. 다축 명확 우위.
- **4B vanilla 0.530 > 47B paper-style 0.500** (양쪽 JAMES corpus,
  paper prompt). 모델 size 영향 미미.

→ "+0.13 contribution" 의 진짜 의미: +0.18 (retrieval) − 0.05
(advanced 단축 손해). retrieval 이 절대값, advanced 는 단축 net
negative + 다축 positive trade-off. cycle β AnswerStyleClassifier
(원칙 6) 가 trade-off 해결의 진짜 길 — 양 모델 동일 pattern → fix
효과 모델-무관 입증. 자세한 4-way 매트릭스 + cycle β scope 재편 = §34.

## 이번 cycle commits (17 ahead of origin/main)

```
e40e880 docs §29 — 6 원칙 정합화 + framing B⁴
b59e7ee feat(synth) — cap default 1000 → 8000 (PR-A) ⭐
ec84348 feat(research) — JAMES_TERSE_SESSION_MODE env-gate
b678416 docs §28 — PM-17+PM-14 verdict
7ef20d6 docs §26-§27 — 다차원 보강 + Default 평가 원칙
f8c82f9 docs §22-§25 — 진단·systemic fix·measurement
bc2ddae fix(pipeline_synth) — P-1 (planner terse-skip)
9ed1af7 feat(reflect) — Option B V2 redesign (env-gate)
2d96192 fix(reflect) — stripper 5 EN 패턴 + REVISE_PROMPT_EN forbidden
ba938bc docs §18-§20 — temporal drift + 두 번째 ROOT CAUSE 진단
af1b529 fix(research) — per-query session_id (episodic isolation)
6c0c75e docs(handover) — synth context-truncation entry
d96f047 docs §11-17 — cap[:1000] ROOT CAUSE
eb871c3 fix(synth) — env-gate JAMES_SYNTH_CONTEXT_CHARS
49a699f docs §10-11 — raw vs JAMES-full decomposition
b659b3e docs(research) — raw vanilla-RAG baseline runner
4b145e8 docs(research) — paper-aligned terse measurement
```

## Cycle β scope (다음 cycle, 6 원칙 후속)

### 핵심 작업 (priority, Scenario B+ 양 모델 확정 후 재편)

| # | 작업 | 원칙 | priority |
|---|---|---|---|
| 1 | **AnswerStyleClassifier hybrid + auto-selection wiring** — `core/answer_style_classifier.py` 신설 (IntentClassifier 검증 패턴 재사용: regex fast 70% + LLM fallback 30%). 단답 query 자동 인식 → V2 + P-1 자동 활성. 분석 query → NATURAL 유지. V2 graded tradeoff 해결의 진짜 길. **§34 4-way matrix 가 양 모델 동일 −0.05 trade-off 입증 → fix 효과 모델-무관 보장**. (3-4h, 자세한 design = §31) | **6** | **⭐⭐⭐** |
| 2 | **NATURAL-grade oracle 신설** — LLM-judge / multi-axis. terse/exact-match 한계 극복. **§34 advanced 스택 다축 가치 (graded +0.093-0.267, abst_F1 +0.052-0.236) 직접 검증 인프라**. | 5 | ⭐⭐⭐ |
| 3 | **Per-layer ablation cycle (advanced 스택 컴포넌트 분리) NEW** — 양 모델 −0.05 가 어느 컴포넌트 (planner / reflect / verify / graph / NATURAL rule_text / multi-arm 등) 기여 정량. PM-6/7/8 단축 ablation 확장 + 결합 효과. | 1 (ablation) | ⭐⭐ NEW |
| 4 | 기존 옵션형 코드 옵션화 — NATURAL rule_text 보고서 양식 강제 / planner directive / `inject_character_directives` / `inject_sources_header` 등 옵션 layer 로 이동 | 4 | ⭐⭐ |
| 5 | Hidden defect audit — cap[:1000] 패턴 N개 추가 발굴 | 1 | ⭐⭐ |
| 6 | runner `sources` count→list 수정 — path coverage 측정 | 측정 인프라 | ⭐ |
| 7 | LlamaIndex strict baseline (publication 직전) — corpus re-index (paper chunk 256 + voyage-02 embedding) | publication | ⭐ |

### Cycle β의 큰 design 변화 (원칙 6 적용 예측)

```
Before (현재):
  사용자 → query → JAMES → answer
  (양식 = production NATURAL default,
   사용자 명시해야 단답)

After (cycle β):
  사용자 → query → JAMES IntentClassifier → 양식 auto-selection
  ├── 단답형 → V2 + P-1 auto-activate
  ├── 분석형 → NATURAL + 보고서 양식
  ├── 사실확인 → brief + V2
  └── 대화형 → NATURAL + 의도 확인
  사용자 명시 override 가능 (advanced)
```

이게 mother-platform 의 진짜 지능. V2/P-1 → Default 통합 (단답 query
한정 auto-mount).

### NATURAL-grade oracle 후보

| 후보 | cost | 정확도 |
|---|---|---|
| LLM-judge (blind pairwise) | 외부 LLM call cost | 높음 (사람 평가 근사) |
| Graded multi-axis (기존 oracle 확장) | 0 (재사용) | 중간 (multi-term hit ratio) |
| Pairwise preference (V2 vs Default 답) | 외부 LLM call cost | 직접 fix 검증 |
| Task-specific 평가 (research / support) | fixture 구축 cost | production-realistic |

권고: 두 단계 — (a) graded multi-axis 즉시 활용 (이미 인프라 있음) +
(b) LLM-judge 신설 (mid-cycle β)

## 즉시 할 일 (다음 세션 첫 작업)

### 1. PM-12-final 결과 확인 (background 진행 중)
- task `b3nk49s8d`, output `..tasks/b3nk49s8d.output`
- 결과 JSON `reports/multihop_terse_mixtral-8x7b_<timestamp>.json` 최신
- 채점: `JAMES_WORKSPACE=./workspaces/hotpot_eval python -c "..."` (PM-12-final
  채점 명령은 §28 / §29 doc 참고)
- mixtral PR-A 후 Default 검증 + 모델 무관성 확정

### 2. PM-12-final 결과 §29 보강 + commit
- Framing B⁴ 에 mixtral 동일 통제 비교 추가
- JAMES 스택 contribution +0.12 (mixtral 47B same-model paper 통제) 갱신

### 3. push 결정
- 17+ commits ahead of origin/main
- cycle 마감 시점 = push 권고
- 단 사용자 명시 확인 의무

### 4. cycle β 진입 결정
- 6 원칙 의무 reading
- 핵심 작업 1+2 (NATURAL oracle + auto-selection) 부터
- handover doc 위치 — 이 doc

## 사용자 박은 룰 (이번 cycle 추가 reading 의무)

- `feedback_finding_size_honest_framing` — 단일 axis over-claim 거부
- `feedback_n1_verdict_inflation_n3_caught` — paired n=3 필요 caveat
- `feedback_fixture_fitness_before_verdict` — terse fixture 한정,
  NATURAL 별도 oracle 필요
- `feedback_evidence_grounded_validity_check` — 답 sample inspection
- `feedback_methodological_chain_before_plan` — plan 전 verdict/diagnostic/
  role 5종 라벨링
- (신규 후보) **mother-platform 평가 6 원칙** — Default vs Option 분리
  + NATURAL 지장 없는 개선 통합 + auto-selection 단답 자동 mount

## 미해결 / 후속 후보

- mixtral PM-12-final 결과 (진행 중)
- paired n=3 measurement (PM-1b / PM-10 / PM-12-final 각각 ±0.03 noise
  band 검증)
- NATURAL-grade oracle 신설 (cycle β)
- IntentClassifier auto-selection wiring (cycle β)
- 한국어 fixture (현재 영문 MultiHop-RAG 만)
- path coverage 측정 (runner sources list 수정 후)

## 재현 도구

- 측정 runner: `scripts/research/multihop_terse_run.py`
  - `JAMES_TERSE_SESSION_MODE=fixed-shared` — production-mirror Default
  - `JAMES_TERSE_SESSION_MODE=per-query` (default) — measurement isolation
  - `JAMES_SYNTH_CONTEXT_CHARS=8000` (이제 default, env 없어도 동일)
  - `JAMES_REVISE_PROMPT_V2=1` — V2 활성 (terse opt-in)
- 채점: `eval/qvt/oracle.py` — `score_paper_aligned_accuracy` /
  `score_graded_answer` / `score_abstention_f1` / `score_path_coverage`
- 실험 로그: `reports/research-runs/alpha-8-paper-comparison-experiment-
  log-20260604.md` (§11-§29 전체 cycle 기록)
