virtual-insanity
← 리포트 목록

BAMLC0A0CM.json 갱신 주체 질문 종결

2026-09-28 ron [운영, macro-timeseries, FRED, 크레딧, US-IG-OAS, 종결]

BAMLC0A0CM.json(미국 IG OAS) 갱신 주체 — 종결

결론

  • 평일 정기 갱신 주체는 fi-morning-brief 크론(평일 07:10, enabled=True)이다. 이 크론이 실행하는 /Users/ron/.hermes/scripts/migrated/fi-morning-brief.sh 10~11행이 BAMLC0A0CM을 포함한 11개 시리즈에 대해 scripts/pipeline/macro_series_collector.py --series "$sid"를 돌린다.
  • 오늘(09-28) 13:10:29 수정은 크론이 아니라 guardian 에이전트 세션의 수동 실행이다(태스크 #40275 "market-indicator-tracker 크론 08-16 정지 원인 진단"). 세션 api-8bb2bac954395e59가 13:10:28 KST에 macro_series_collector.py를 인자 없이(전체 50개) 실행했고 /tmp/msc_run.log에 "완료: 50개 성공, 0개 실패"가 남았다.
  • ocRESTORE-market-indicator-tracker와 macro-series-collector 두 크론은 꺼져 있어 이 파일을 갱신하지 않는다. 특히 market_indicator_tracker.py는 출력 경로가 memory/market-indicators(31행)라서 켜져 있어도 macro-timeseries 파일을 쓰지 않는다.

근거 (실측 2026-09-28 14:17 KST)

1) 크론 장부 /Users/ron/.hermes/cron/jobs.json

크론 enabled last_run_at 상태 일정 script
ocRESTORE-market-indicator-tracker False 2026-08-16T07:05:43 error 5 7,16 * * * 없음
macro-series-collector False 2026-08-14T06:50:32 ok 50 6 * * 1-5 없음
fi-morning-brief True 2026-09-28T07:11:48 ok 10 7 * * 1-5 migrated/fi-morning-brief.sh

참고: BAMLC0A0CM을 읽는 크론 해외채권 크레딧 OAS 야간 갱신(d3f657fca25c, 화~토 08:10)은 fi_credit_refresh.py로 memory/fi-session/*.json만 갱신하고 macro-timeseries 파일은 쓰지 않는다. 오늘(월)은 일정에 없음(마지막 09-26).

2) 스크립트 /Users/ron/.hermes/scripts/migrated/fi-morning-brief.sh

  • ls -la → -rwxr-xr-x 784 7월 22 07:15 (exit 0)
  • grep -n macro_series_collector → 4행 주석, 11행 실행문
  • 10행: for sid in DGS2 DGS5 DGS10 DGS30 T10Y2Y DFII10 T10YIE T5YIFR BAMLC0A0CM BAMLH0A0HYM2 BAMLEMCBPIOAS; do
  • 11행: /usr/bin/python3 scripts/pipeline/macro_series_collector.py --series "$sid" >/dev/null 2>&1

3) 데이터 파일 /Users/ron/.hermes/workspace/memory/macro-timeseries/BAMLC0A0CM.json

  • 수정시각(stat): 2026-09-28 13:10:29
  • 8행 "last_updated": "2026-09-28", 651~652행 최신 관측 2026-09-24 = 0.79 (총 161건)

4) 13:10 재수정 주체 추적

  • grep -rl BAMLC0A0CM scripts/pipeline → 쓰기 주체 후보는 macro_series_collector.py(186행 path = MACRO_DIR / f"{series_id}.json")뿐. fi_credit_refresh.py·fi_market_snapshot.py·data_quality_monitor.py는 읽기 또는 다른 경로 쓰기.
  • 13:00~13:20 사이 실행된 크론: dram-spot-tracker(13:15), 타임트래커 체크인(13:00) — 둘 다 무관.
  • macro-timeseries 51개 파일 중 50개가 13:10:28~13:11:26 사이 순서대로 수정됨(BAMLH0A0HYM2 → BAMLC0A0CM → … → BOGZ1FL663067003Q) → 11개만 도는 모닝브리핑이 아니라 전체 50개 배치 실행 패턴.
  • 게이트웨이 대화 기록(/Users/ron/.hermes/state.db messages 441384, 441387): 세션 api-8bb2bac954395e59(guardian #40275)가 13:10:28에 timeout 580 /usr/bin/python3 scripts/pipeline/macro_series_collector.py > /tmp/msc_run.log 실행 → 결과 "50/50 succeeded, BAMLC0A0CM 41건 latest=2026-09-24 0.79".
  • /tmp/msc_run.log 존재 확인(13:11, 4102바이트), 2행 OK BAMLC0A0CM 41건 latest=2026-09-24 0.79.

해석

  • 07:10 모닝브리핑 갱신과 13:10 수동 갱신 모두 최신 관측일이 09-24로 같다. 13:10 재수집은 값 변화 없이 수정시각만 바꿨다. FRED의 ICE OAS 공표가 2영업일 늦어 월요일 기준 T-2(09-24)가 정상 최신이다.
  • 나머지 38개 시리즈는 macro-series-collector 크론이 08-14 이후 꺼져 있어 오늘 guardian 수동 실행 전까지 08-14에 멈춰 있었다. 이 크론을 다시 켤지는 해리 확인 사항(크론 활성화)으로 남긴다.

이전 반려 원인 정리

  • 40271/#40273/#40277/#40284가 반려된 것은 존재하지 않는 /Users/ron/.hermes/workspace/scripts/migrated/... 경로를 인용했기 때문. 실제 스크립트는 ~/.hermes/scripts/migrated/ 아래에 있다.