← 리포트 목록
BAMLC0A0CM.json 09-28 07:10 갱신 주체 특정
2026-09-28
guardian
[ops, cron, macro-timeseries, BAMLC0A0CM, US-IG-OAS]
BAMLC0A0CM.json 09-28 07:10 갱신 주체 특정
조회 시각: 2026-09-28 11:10~11:20 KST (조회만, 변경 없음)
결론
갱신 주체는 크론 fi-morning-brief (해외채권 모닝 브리핑, enabled=true, 평일 07:10) 이다.
이 잡의 래퍼 스크립트 /Users/ron/.hermes/scripts/migrated/fi-morning-brief.sh 10~12행이
브리핑 발송 직전에 핵심 11개 FRED 시리즈를 scripts/pipeline/macro_series_collector.py --series <ID>로 재수집한다.
BAMLC0A0CM 은 그 목록의 9번째다. market-indicator-tracker 는 이 파일을 쓰지 않는다(비활성, 무관).
(1) 파일 수정시각
stat -f '%Sm' -t '%Y-%m-%d %H:%M:%S' memory/macro-timeseries/BAMLC0A0CM.json→2026-09-28 07:10:50- 같은 폴더에서 07:10:40~07:10:53 사이 갱신된 파일은 정확히 11개이며, 순서가 래퍼 스크립트 루프 순서와 1:1로 같다: DGS2 07:10:40 / DGS5 :41 / DGS10 :42 / DGS30 :44 / T10Y2Y :45 / DFII10 :46 / T10YIE :47 / T5YIFR :49 / BAMLC0A0CM :50 / BAMLH0A0HYM2 :52 / BAMLEMCBPIOAS :53
- 파일 내용:
last_updated: 2026-09-28, 최신 관측치 2026-09-23=0.77, 2026-09-24=0.79 (FRED 공표 지연으로 관측일은 09-24에 머묾 — 파일 쓰기는 됐지만 새 관측치는 없음)
(2) executions.db 06:55~07:20 실행 기록
- 주의:
sqlite3 -readonly /Users/ron/.hermes/cron/executions.db직접 실행은unable to open database file (14)로 실패(WAL 공유메모리 파일 생성 불가 추정). 라이브 DB를 건드리지 않기 위해/tmp/exec_copy.db로 복사본을 떠서sqlite3 -readonly로 조회함. - 쿼리:
SELECT job_id,status,started_at,finished_at,error,delivery_outcome FROM executions WHERE started_at/finished_at/claimed_at BETWEEN '2026-09-28T06:55' AND '2026-09-28T07:20:59'→ 35행 반환. - 테이블에 exit code 컬럼은 없음 →
status(completed/failed)와error로 대체. 35행 전부 status=completed, error 빈값. - 07:10 창과 겹치는 잡:
| job_id | 시작 | 종료 | 상태 | 비고 |
|---|---|---|---|---|
| fi-morning-brief | 07:10:39.98 | 07:11:48.85 | completed | 파일 mtime 07:10:40~53이 이 실행 구간 안 |
| industry-fix-choi-report-collect | 07:10:39.95 | 07:10:43.52 | completed | choi_report_collector.py만 실행, macro-timeseries 무관 |
| telegram-outbox-flusher | 07:10:39.98 | 07:10:40.12 | completed | 무관 |
| research-broker-retry-0600 | 07:10:39.99 | 07:10:40.19 | completed | 무관 |
- 크론 출력 증빙:
/Users/ron/.hermes/cron/output/fi-morning-brief/2026-09-28_07-11-48.md→[send] ok=True model=openai-codex/gpt-5.4 len=3224
(3) jobs.json 참조 잡과 enabled 상태 (총 158개 잡 중)
ocRESTORE-market-indicator-tracker(jobs.json 3101행):scripts/pipeline/market_indicator_tracker.py --notify, enabled=false, 마지막 실행 2026-08-16 07:05 errormacro-series-collector(jobs.json 157행):scripts/pipeline/macro_series_collector.py, enabled=false, 마지막 실행 2026-08-14 06:50 okfi-morning-brief(jobs.json 6569행): scriptmigrated/fi-morning-brief.sh, enabled=true, 스케줄10 7 * * 1-5, 마지막 실행 2026-09-28 07:11:48 ok — jobs.json 문자열 검색에는 macro-timeseries가 안 잡히지만 래퍼 셸 스크립트 안에서 수집기를 호출함 (이게 지난 3회 조사에서 놓친 지점)- 참고:
market_indicator_tracker.py882행은 BAMLC0A0CM을IG_SPREAD지표로 참조만 함.
(4) 로그 grep
grep -rIn "2026-09-28[ T]0(6:5[5-9]|7:[01][0-9]|7:20)" /Users/ron/.hermes/logs | grep "BAMLC0A0CM|market_indicator"→ 3행, 전부agent-queue-guardian.log(177057/177102/177206행)의 이 조사 태스크 본문 자체이며 실제 실행 로그 아님 → 실행 로그 0건.- 래퍼가 수집기 출력을
>/dev/null 2>&1로 버리기 때문에 로그에 흔적이 남지 않음. 파일 mtime 순서와 executions.db 실행 구간으로 특정함.
판단
- 즉시 조치: 없음 (정상 설계된 경로. 2026-07-22 수정 주석: "발송 직전에 금리/크레딧 핵심 시리즈만 FRED에서 재수집해 최신 종가 반영")
- 함의: 시장지표 수집 크론이 꺼져 있어도 IG OAS 등 11개 시리즈는 평일 07:10에 매일 갱신된다. 주간 크레딧 리포트의 IG OAS 입력은 이 경로로 신선도가 유지됨. 단 나머지 35개 시리즈는 macro-series-collector 비활성으로 갱신 여부 별도 확인 필요.
- 개선 후보(ops_todos 후보, 해리 확인 불필요한 조회 수준): 래퍼의
>/dev/null 2>&1을 로그 파일 리다이렉트로 바꾸면 다음부터 갱신 주체가 로그로 바로 보임 — 코드 변경이므로 codex 위임 대상.
검증 명령
stat -f '%Sm' /Users/ron/.hermes/workspace/memory/macro-timeseries/BAMLC0A0CM.jsonsed -n '10,12p' /Users/ron/.hermes/scripts/migrated/fi-morning-brief.shcp /Users/ron/.hermes/cron/executions.db /tmp/exec_copy.db && sqlite3 -readonly /tmp/exec_copy.db "SELECT job_id,started_at,finished_at,status FROM executions WHERE job_id='fi-morning-brief' ORDER BY started_at DESC LIMIT 1"