← 리포트 목록
애널리스트 완료보고 수치-원천파일 대조 게이트 제안서
2026-09-27
hermes
[completion-gate, analyst-macro, numeric-claim, proposal]
수치-원천파일 대조 게이트 (#40188 실사례)
[권고]
- 1순위: 완료보고
근거:/근거파일:에memory/macro-timeseries/<SERIES>.json이 인용되면,결론:의 bp 수치를 그 JSON으로 재계산해 오차 1bp 초과 시numeric_claim_mismatch로 반려한다. 기대효과: #40188류 수치 날조 done 0건. - 2순위: 현재 존재만 보고 조기 통과시키는
_completion_has_macro_timeseries_collector_evidence분기(agent_queue_worker.py 1575행)를 수치 대조 통과 뒤로 옮긴다. 구현은 codex 위임.
[현황] — #40188 재계산 (조회 2026-09-27 KST, 기준 09-16→09-23)
| 시리즈 | 보고값 | JSON 실제 | 차이 |
|---|---|---|---|
| BAMLC0A0CM (IG) | -15bp | 0.78→0.77 = -1bp | 14bp |
| BAMLH0A0HYM2 (HY) | -10bp | 2.70→2.73 = +3bp | 13bp, 부호 반대 |
| BAMLEMCBPIOAS (EM) | -20bp "확장" | 1.34→1.31 = -3bp | 17bp, 서술 모순 |
- 통과 원인: 1575행 if _completion_has_macro_timeseries_collector_evidence(text): return [] — JSON·수집기 경로 실존 + 검증값 정규식만 보고 값 자체는 안 본다(798~820행). 정책 문서 반려 기준 1~5(completion_evidence_policy.md 87~98행)에도 "수치 일치" 항목이 없다. |
판정 로직 (설계, 코드 아님)
- 적용 대상:
claimed_by가 analyst-* 또는 data-analyst이고, result_note에memory/macro-timeseries/*.json경로가 1개 이상 있는 done 제출. - 추출:
결론:블록에서 시리즈 별칭(IG/HY/EM 또는 시리즈 ID)과 가장 가까운[+-]?N(bp|베이시스)쌍을 뽑는다. "수축/축소/타이트닝"=음수, "확대/확장/와이드닝"=양수로 부호를 보정하고, 숫자 부호와 서술 방향이 서로 반대면 그 자체로numeric_direction_conflict. - 재계산: JSON
data의 최신 관측일과 그로부터 7일(주간) 전 이하 최근 관측일 차이 × 100(unit=percent일 때). 결론에 기간 명시(예: "09-16~09-23")가 있으면 그 날짜를 우선한다. - 판정: |보고값 − 재계산값| > 1bp 이면 반려. 사유에 시리즈·보고값·실제값·기준일을 넣어 재제출을 유도한다.
예외
- 결론에 bp 수치가 없거나, 인용 JSON과 매칭되는 시리즈 별칭이 없으면 게이트 미적용(통과, 로그만 남김).
- 월간/연초대비 등 기간을 명시하면 그 기간으로 재계산. 기간 해석 불가 시
numeric_period_unresolved로 경고만(반려 아님). - JSON이 제출 시각 이후 갱신된 경우 제출 시각 이전 마지막 관측으로 계산.
[리스크] 오탐 위험
- 기간 불일치: 애널리스트가 금요일 종가, JSON이 목요일까지면 1~3bp 차이 → 기준일 명시 없는 경우 최신 2개 기준일 모두 계산해 하나라도 1bp 이내면 통과.
- 별칭 오매칭: "EM"이 EM 국채인지 회사채인지 모호 → 인용된 JSON 시리즈 ID와만 대조, 매칭 불확실 시 미적용.
- 단위 혼동(% vs bp): unit 필드가 percent가 아니면 미적용.
- 단일 장애점: 정규식 파서에 의존 → 도입 1주는 반려 대신 경고 모드로 돌려 오탐률 측정.
[검증방법]
-
40188 result_note 재판정 시
numeric_claim_mismatch3건 발생(기대값). 최근 30일 analyst done 전수 재판정 시 오탐률 5% 이하면 경고→반려 전환, 초과 시 롤백.