virtual-insanity
← 리포트 목록

4개 analyst 신선도 마커 NO_SEND 렌더링 검증

2026-04-24 freshness [analyst, freshness, telegram, no-send, render-verify]

4개 analyst 신선도 마커 NO_SEND 렌더링 검증

결론

4개 analyst 모두 실제 발송 없이 NO_SEND/dry-run으로 렌더링했다. 최종 상태는 모두 정상이다.

  • macro: 정상 — 본문 2번째 줄에 📊 데이터 기준 표시, 길이 2183자, HTML 정상
  • fundamental: 정상 — 본문 2번째 줄에 📊 데이터 기준 표시, 길이 2291자, HTML 정상
  • technical: 정상 — 본문 2번째 줄에 📊 데이터 기준 표시, 길이 2484자, HTML 정상
  • pm: 정상 — 본문 2번째 줄에 📊 데이터 기준 표시, 길이 2455자, HTML 정상

실행 방식

실제 발송 방지:

ANALYST_COMMON_NO_SEND=1 ANALYST_COMMON_PRINT_BODY=1 python3 macro_redesign_report.py --no-send --print-body ...
ANALYST_COMMON_NO_SEND=1 ANALYST_COMMON_PRINT_BODY=1 NO_SEND=1 python3 fundamental_redesign_report.py --no-send ...
ANALYST_COMMON_NO_SEND=1 ANALYST_COMMON_PRINT_BODY=1 python3 analyst_common_sender.py technical ...
ANALYST_COMMON_NO_SEND=1 ANALYST_COMMON_PRINT_BODY=1 python3 analyst_common_sender.py pm ...

stdout/stderr 및 본문 캡처 위치:

/tmp/freshness_marker_verify_260424_r2/

발송 상태:

  • macro/technical/pm: JSON 결과 status=dry_run, message_id=null, error=no_send_dry_run
  • fundamental: --no-send 경로 사용, message_id=null, body_len=2291, blacklist_hits=[]

발견 문제와 수정

초기 렌더링에서 마커가 일관되지 않았다.

  • macro: 상단에 📊 데이터 기준:이 없고 하단 <i>as-of ...</i>만 존재
  • fundamental: 기준:만 있고 📊 데이터 기준: 문구가 없음
  • technical/pm: 날짜:만 있고 📊 데이터 기준: 문구가 없음

즉 “상단 신선도 마커” 요구와 실제 발송 형태가 어긋났다. 아래 3개 파일을 백업 후 최소 수정했다.

/Users/ron/.hermes/workspace/scripts/macro_redesign_report.py
/Users/ron/.hermes/workspace/scripts/fundamental_redesign_report.py
/Users/ron/.hermes/workspace/scripts/analyst_common_sender.py

백업:

macro_redesign_report.py.bak-freshness-render-20260424
fundamental_redesign_report.py.bak-freshness-render-20260424
analyst_common_sender.py.bak-freshness-render-20260424

수정 후 py_compile 통과.

비교 매트릭스

analyst 마커 표시 길이 HTML 정상 데이터 기준일 no-send 상태
macro 정상 2183 정상 2026-04-24 dry_run
fundamental 정상 2291 정상 2026-04-24 dry_run
technical 정상 2484 정상 2026-04-24 dry_run
pm 정상 2455 정상 2026-04-24 dry_run

Telegram 4096자 제한:

  • 4개 모두 4096자 미만
  • 최대 technical 2484자

HTML 검증:

  • <b>, <i>, <code> 등 Telegram HTML 허용 태그만 사용
  • HTMLParser feed 통과
  • unsupported tag 없음

실제 메시지 샘플

macro 샘플

<b>🌍 매크로 브리핑</b>\n📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25 KST</code>\n<b>📌 헤드라인</b> WTI 97.19(2026-04-17 yfinance CL=F) 기준. 호르무즈 기뢰 제거와 우회로 복구가 에너지 프리미엄을 낮췄다.\n전일 대비: Recovery 유지, 

마커: 📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25 KST</code>

fundamental 샘플

<b>📊 펀더멘탈 리포트</b>\n📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25 KST</code>\n\n<b>📌 헤드라인</b>\n• 오늘 신규 공시 6건을 우선 반영한다. 상장폐지·정리매매 같은 노이즈성 시장안내는 본문 판단에서 제외한다.\n• 최근 48시간 지식 입력 7건에서 반복된 산업 논리를

마커: 📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25 KST</code>

technical 샘플

<b>📈 테크니컬 리포트</b>\n📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25:35 KST</code>\n\n<b>📌 한줄 판단</b>\n• 상승 우위: 지수는 동반 상승 쪽이나 주도축 강도 확인이 필요하다 (NDX 1.7%, SPY 1.0%, IWM 2.1%). 자금은 반도체(SOXX) 쪽으로 

마커: 📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25:35 KST</code>

pm 샘플

<b>🧭 PM 리포트</b>\n📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25:35 KST</code>\n\n<b>판정</b>\n🟢 <b>선별 적극</b> · 확신도 <b>76%</b>\n• Recovery 유지와 반도체 리더십은 공격을 허용하지만, macro 전환 유보와 이벤트 리스크 때문에 &#x2

마커: 📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25:35 KST</code>

원문 캡처 파일

/tmp/freshness_marker_verify_260424_r2/macro.body.txt
/tmp/freshness_marker_verify_260424_r2/fundamental.body.txt
/tmp/freshness_marker_verify_260424_r2/technical.body.txt
/tmp/freshness_marker_verify_260424_r2/pm.body.txt
/tmp/freshness_marker_verify_260424_r2/summary.json

검증 출력 요약

[
  {
    "analyst": "macro",
    "marker": "📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25 KST</code>",
    "date": "2026-04-24",
    "len": 2183,
    "under4096": true,
    "html_ok": true
  },
  {
    "analyst": "fundamental",
    "marker": "📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25 KST</code>",
    "date": "2026-04-24",
    "len": 2291,
    "under4096": true,
    "html_ok": true
  },
  {
    "analyst": "technical",
    "marker": "📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25:35 KST</code>",
    "date": "2026-04-24",
    "len": 2484,
    "under4096": true,
    "html_ok": true
  },
  {
    "analyst": "pm",
    "marker": "📊 데이터 기준: <code>2026-04-24</code> · 전송: <code>2026-04-24 13:25:35 KST</code>",
    "date": "2026-04-24",
    "len": 2455,
    "under4096": true,
    "html_ok": true
  }
]

자체평가

기준 점수 근거
정확성 4.5/5 4개 analyst를 실제 NO_SEND 경로로 렌더링하고 마커/길이/HTML을 정량 검증
완성도 4.5/5 문제 발견 후 3개 sender 수정, 재검증 완료
검증 4.5/5 py_compile, body capture, JSON dry_run 결과, HTML check 포함
최소 변경 4.3/5 마커 문구/위치만 수정. 발송 로직은 건드리지 않음

종합: 4.45/5

DONE