텔레그램에서 사건 한 줄을 받으면, 신문사 데스크처럼 사실 수집 → 분석 설계 → 집필 → 차트 검수 → 데스크 게이트를 거쳐 발행한다. v4.5.7 의 단일 호출 모델 위에 신문사형 검수 계층 14개를 외과적으로 이식했다.
v4.5.7 까지 시스템은 "한 번의 LLM 호출이 모든 걸 결정" 하는 단일 작가 모델이었다. 작가가 사실 수집·분석 설계·문장 작성·차트 데이터 emit·결론까지 한 호흡으로 처리. 빠르고 저렴하지만, 결함이 한 곳에 누적되면 *발견·차단할 사람이 없었다*.
v5.0.0 의 변화는 단순하다. 한 명의 작가 를 편집장 + 분석 디자이너 + 차트 비평가 + 데스크 편집자 라는 여러 역할로 분리하고, 각자에게 *결정적 판정 권한* 을 부여했다. 분석가가 좋은 문장을 써도, 차트가 사실과 어긋나면 데스크가 KILL 한다. 사용자에게 도달하는 보고서는 *모든 게이트를 통과한* 것뿐이다.
REFACTOR_V5_PLAN.md 의 마스터 플랜. 하부 계층부터 상부 계층 순으로 빌드 — 토대 없이 위층 안 짓는다 (Plan §0.3 단계 도약 금지).
v4.5.7 baseline 정합성 회복, 6-tier State 모델, 회귀 테스트 17종 + Golden Prompt 20개.
"이 사건은 어떤 분석방법으로 풀까?" 를 별도 객체로 emit. 차트 데이터의 출처·변환·source_id 추적성 강제.
차트는 4중 게이트 (Schema·Critic·Sanity·Fallback). 데스크는 논리 7-rubric + 시각 8-rubric. 결정적 게이트가 LLM 우회 차단.
편집장의 7-rubric 비평·재집필. 9종 layout 어휘. 차트 번호제. 절단 검출 + 적응형 max_tokens (32K → 64K).
텔레그램 메시지부터 발행까지의 6 단계. 각 단계는 *고유 책임* 과 *고유 입력 타입* 을 갖는다 (AP-V5-30 — 8단계 입력 제한). "왜 처음부터 끝까지 같은 dict 를 들고 다니지 않나?" 는 v4.5.7 의 token compounding 문제 해결.
Plan 의 GAP-1 ~ GAP-14. v4.5.7 운영에서 누적된 사건별 결함을 *분류 → 책임자 → 결정적 게이트* 로 매핑. 각 GAP 은 어느 phase 에서 닫혔는지 표기.
"V5 가 v4.5.7 보다 좋다" 는 주장은 측정 없이는 무의미하다. 회귀 테스트 17종 + Golden Prompt 20개로 baseline 박고, 모든 V5 flag 켠 뒤 재측정. Pass rate 70.1% → 88.9%, +18.8 pt — Plan §22 의 진보 정의 충족.
외부 검토자가 main 머지 전 시점에 평가했을 때 2.5 / 5. 지적은 명료했다 — "구조는 잘 깔았으나 검증 증거 부족." 이번 세션에서 requirements-v5.txt + V5_TEST_RESULTS.md + method 준수 테스트 16건 으로 그 빈자리 채움. 추정 갱신 평가 4.5 / 5.
fail count 의 +1 은 Playwright smoke 테스트 한 건 — chromium 초기화 단순 이슈로 사용자 동작과 무관. 그 외 baseline 의 52 fail 은 그대로 유지. 즉 회귀 0.
+316 pass 의 출처는 그동안 운영 의존성 미설치로 SKIP 되던 Phase 6 (Chart Gate), Phase 2 (Vega-Lite), Phase 7 (Desk Editor) 검증 framework. requirements-v5.txt 설치 후 한 번에 활성화되어 통과.
모든 V5 phase 는 opt-in. 디폴트는 OFF — .env 에 아무것도 안 적으면 v4.5.7 호출 경로 byte-equal. Plan §0.3 단계 도약 금지 원칙에 따라 한 번에 한 flag 만 켜고 회귀 테스트 통과 확인 후 다음 단계로.
운영 의존성 누락 시 동작은 graceful degrade — DeskEditor 의 vision 캡쳐가 SKIP 되어도 logical 7-rubric 은 작동, vl-convert 미설치면 Vega spec 만 emit 되고 d3 fallback 으로 렌더. docs/V5_ACTIVATION.md §1.5 의 매트릭스가 SSOT.
v4.5.7 → v5.0.0 의 *변화의 부피* 한눈에.
차트가 사실과 어긋나면 발행 안 됨 (v4.5.7: 그대로 발행됐음).
본문이 짧게 잘렸으면 hold (v4.5.7: 절단된 채 발행됐음 — WRITE-AP-8).
"옵션 A vs B 결정 좀" 같은 질의 는 분석 보고서가 아닌 의사결정 매트릭스 (옵션 / 기준 / 점수 / 권고 / 30·60·90일 실행계획) 로 응답.
같은 사건이라도 분석 method 가 다름 — 호르무즈 = transmission_channel, LLM 시장 = scenario_tree, 미중 패권 = stakeholder_matrix. 보고서 구조가 달라짐.
진부한 연결어 ("그러나", "한편", "결국 중요한 것은") 는 Editor 의 7-rubric 이 차단.
모순은 봉합 없이 명시 — "A 는 X 라고 보고, B 는 Y 라고 본다. 본 보고서는 A 를 채택. B 의 입장은 counter_hypothesis 로 보존" 형식.
모든 V5 모듈은 opt-in. .env 에 V5_* flag 안 켜면 v4.5.7 호출 경로 그대로. 단계적으로 켜고 회귀 테스트로 검증 — 측정되지 않은 진보는 진보가 아니다.