virtual-insanity
← 리포트 목록

bond-study 데이터 복구 + commodity-alerts 신규 데이터 검증

2026-04-14 data

bond-study 데이터 복구 + commodity-alerts 신규 데이터 검증

발견

bond-study

  • 웹앱은 채권 브리핑을 /Users/ron/.openclaw/workspace/memory/bond-briefing에서 읽는다.
  • 라우트 근거: /Users/ron/.openclaw/workspace/scripts/pipeline/webapp/blueprints/market.py:2458,2635,2657
  • JSON: bond-briefing/{date}.json
  • PDF: bond-briefing/briefing_{date}.pdf
  • 생성 스크립트는 /Users/ron/.openclaw/workspace/scripts/pipeline/bond_daily_report.py다.
  • 저장 경로: MEMORY_DIR = WORKSPACE / "memory" / "bond-briefing" (bond_daily_report.py:34)
  • PDF 저장: briefing_{date_str}.pdf (bond_daily_report.py:478,703-704)
  • JSON/latest 저장: {date_str}.json, latest.json, explained_terms.json (bond_daily_report.py:716-750)
  • 현재 스냅샷 기준 memory/bond-briefing 디렉터리가 없다.
  • 확인: ls /Users/ron/.openclaw/workspace/memory/bond-briefingNo such file or directory
  • 마지막 성공 실행 증거는 2026-04-09 14:44:33 KST이며, 생성 대상 데이터 날짜는 2026-04-08이었다.
  • 로그: PDF 생성: .../memory/bond-briefing/briefing_2026-04-08.pdf (152KB)
  • 로그: 메모리 저장 완료. 볼트: /Users/ron/knowledge-agent/100-inbox/119-크레딧메일/260408_브리핑_2026-04-08.md
  • 현재 스크립트가 찾는 최신 황대진 원본 노트도 2026-04-08 자료다.
  • _find_latest_hwang_note() 결과: /Users/ron/knowledge/100 수신함/119 크레딧메일/260408_황대진_전달-일일-48-수-낙찰-및-마감정리-DS증권-황대진.md
  • 파싱 결과: date=2026-04-08, email_type=낙찰정리, auction_count=1
  • 스크립트 CLI는 --once를 지원하지 않는다.
  • python3 bond_daily_report.py --help → 지원 옵션은 --dry-run, --notify뿐.

commodity-alerts

  • 현재 파일 존재:
  • /Users/ron/.openclaw/workspace/memory/commodity-alerts/2026-04-14.json
  • /Users/ron/.openclaw/workspace/memory/commodity-alerts/latest.json
  • 파일 mtime: 2026-04-14 12:41:09 KST
  • 생성 스크립트 추적:
  • /Users/ron/.openclaw/workspace/scripts/pipeline/commodity_spike_analyzer.py:35ALERT_DIR = MEMORY_DIR / "commodity-alerts"
  • commodity_spike_analyzer.py:458-489notify()가 일자별 JSON과 latest.json 저장
  • 로그 근거:
  • 2026-04-14 12:40:38 morning_mode 시작 (dry_run=True, force=True)
  • 2026-04-14 12:41:09 [DRY-RUN] 텔레그램 전송 스킵
  • 2026-04-14 12:41:09 알림 로그 저장: /Users/ron/.openclaw/workspace/memory/commodity-alerts/2026-04-14.json

진단

bond-study 404 원인

  • 직접 원인: 웹앱이 요구하는 memory/bond-briefing/2026-04-14.jsonbriefing_2026-04-14.pdf가 없다.
  • 생성 실패 원인:
  • 2026-04-14 02:31 KST 실행은 시작됐지만 LLM 단계에서 실패했다.
    • 로그: 2026-04-14 02:33:30 [ERROR] LLM 실패: ollama/qwen3.5:9b-nothinker: HTTP Error 400: Bad Request
  • 수동 복구 실행도 LLM 호출 단계에서 실패했다.
    • 로그: 2026-04-14 13:32:26 [ERROR] LLM 실패: ollama/qwen2.5:3b: <urlopen error [Errno 1] Operation not permitted>
  • 현재 로컬 원본 입력도 2026-04-08까지만 확인된다. 따라서 2026-04-14 브리핑을 지금 생성하면 날짜가 맞지 않는 데이터를 억지로 만들 위험이 있다.
  • 크론 상태:
  • bond-daily-report: enabled, schedule 30 2 * * 2-6 Asia/Seoul, payload kind agentTurn, command=PYTHONPATH=... python3 .../bond_daily_report.py --notify
  • bond-morning-poll: enabled, schedule 3,33 7-9 * * 1-5 Asia/Seoul, payload kind agentTurn, command=python3 .../gmail_credit_monitor.py --fixed-income-only && echo '완료'
  • 별도 크론 실행 로그에는 과거에 명령이 실제 스크립트 실행이 아니라 일반 에이전트 응답처럼 처리된 흔적도 있다. 이 설정은 신뢰성 리스크지만 이번 작업에서는 코드/크론 설정을 수정하지 않았다.

commodity-alerts 상태

  • latest.json은 스키마상 정상이다.
  • 필수 top-level: timestamp, date, dry_run, triggered, analysis, message_preview 확인됨.
  • triggered 항목 필수 필드: key, name, close, change_pct, mom_pct, zscore, severity, trigger 확인됨.
  • 검증 결과: schema_errors=[]
  • 단, 운영 알림 데이터로 보기는 어렵다.
  • dry_run=true
  • 모든 항목의 trigger=force
  • 로그상 텔레그램 전송은 스킵됨.
  • 값 자체는 현재 파일 안에서 일관적이다.
  • WTI유: close 100.2, change +3.76%, MoM +1.51%, Z 0.21
  • 천연가스: close 2.64, change -0.30%, MoM -15.68%, Z 1.67
  • 구리: close 5.99, change +1.98%, MoM +4.76%, Z 2.32
  • BDI: close 10.85, change +1.36%, MoM +3.38%, Z 1.80
  • 금: close 4761.2, change -0.01%, MoM -5.77%, Z 0.54
  • 은: close 75.6, change -0.96%, MoM -6.57%, Z 0.62
  • VIX: close 19.5, change +1.40%, MoM -28.28%, Z 1.57

복구 액션

bond-study

  • --once 방식 수동 트리거를 확인했으나 스크립트가 해당 옵션을 지원하지 않음을 확인했다.
  • 대신 저장까지 수행하는 내부 실행 경로로 수동 실행을 시도했다.
  • 형태: bond_daily_report.run(notify=False, dry_run=False)
  • 텔레그램 전송은 끄고, 저장은 허용하는 방식.
  • 결과:
  • 스크립트 시작 및 2026-04-08 원본 파싱까지는 성공.
  • LLM 호출에서 차단되어 JSON/PDF 생성 전 중단.
  • 코드 수정 없이 재시도 가능한 범위에서는 2026-04-14 데이터 복구 실패.
  • 웹앱 재확인:
  • curl http://127.0.0.1:8080/market/bond-study/2026-04-14
    • HTTP/1.1 404 NOT FOUND
    • 본문: 브리핑 없음
  • curl http://127.0.0.1:8080/market/bond-study/2026-04-14/pdf
    • HTTP/1.1 404 NOT FOUND
    • 본문: PDF 없음
  • 확인 시각: 2026-04-14 13:50:06 KST (Date: Tue, 14 Apr 2026 04:50:06 GMT)

commodity-alerts

  • latest.json2026-04-14.json 존재 확인.
  • 생성 로그와 생성 스크립트 확인.
  • 스키마 검증 수행: 오류 없음.
  • 운영 의미를 재분류했다.
  • “신규 생성된 파일”은 맞음.
  • “실제 발송된 운영 알림”은 아님.
  • “dry-run + force로 생성된 검증/테스트성 알림 로그”로 보는 것이 맞다.

결과

  • bond-study 2026-04-14 복구: 실패 / 현재 조건에서 복구 불가로 분류
  • 이유: 2026-04-14 원본 입력 부재 + LLM 단계 실패 + 출력 디렉터리/파일 부재.
  • 거짓 복구 방지를 위해 2026-04-08 데이터를 2026-04-14로 복제하지 않았다.
  • commodity-alerts 검증: 정상 파일로 확인, 단 dry-run force 데이터
  • 스키마 정상.
  • 생성 원인과 생성 시각 확인.
  • 원본 웹앱 감사의 “파일 없음” 주장은 시점 차이로 설명 가능하다. 현재는 2026-04-14 12:41 KST 생성본이 존재한다.
  • 금지 준수:
  • bond_daily_report.py 수정 없음.
  • shared/llm.py 수정 없음.
  • shared/cycle_base.py 수정 없음.
  • 확인 중 shared/llm.py, shared/cycle_base.py의 git modified 상태가 보였지만, 이번 작업에서 수정하지 않았다.

잔존 리스크

  1. memory/bond-briefing 디렉터리가 과거에는 생성됐지만 현재 없어졌다. 삭제/정리 주체는 이번 조사에서 확인되지 않았다.
  2. bond-daily-report는 LLM 단계가 안정화되어야 저장까지 완료된다. 현재 로그상 2026-04-14 실행은 LLM 400 오류로 실패했다.
  3. bond-morning-poll 또는 관련 Gmail 수집 경로가 최신 황대진 원본을 못 가져오면, LLM이 복구돼도 2026-04-14 브리핑은 생성할 수 없다.
  4. 크론 payload가 agentTurn + command 형태라 명령 실행 신뢰성 리스크가 있다. 이번 작업 범위에서는 수정하지 않았고, 별도 크론 설정 정리가 필요하다.
  5. commodity-alerts 최신 파일은 존재하지만 dry_run=true, trigger=force라 운영 알림/실제 이상징후로 해석하면 안 된다.

다음에 할 일

  • LLM 라우팅 수정이 끝난 뒤, 최신 황대진 원본이 있는지 먼저 확인한다.
  • 최신 원본이 있으면 아래 방식으로 저장 실행을 재시도한다.
cd /Users/ron/.openclaw/workspace
PYTHONPATH=/Users/ron/.openclaw/workspace/scripts/shared:/Users/ron/.openclaw/workspace/scripts/pipeline \
python3 - <<'PY'
import sys
sys.path.insert(0, '/Users/ron/.openclaw/workspace/scripts/pipeline')
import bond_daily_report
bond_daily_report.run(notify=False, dry_run=False)
PY
  • 실행 후 반드시 재검증한다.
curl -i http://127.0.0.1:8080/market/bond-study/2026-04-14
curl -i http://127.0.0.1:8080/market/bond-study/2026-04-14/pdf

자체 평가

  • 정확성: 4.6/5
  • 완성도: 4.5/5
  • 검증: 4.6/5
  • 최소 변경: 5.0/5
  • 종합: 4.7/5

미달/한계: bond-study 실제 복구는 못 했지만, 현재 로컬 입력과 LLM 실행 제한상 허위 데이터 생성 없이 막는 것이 맞다고 판단했다.