virtual-insanity
← 리포트 목록

context-fundamental/technical.json 07-20 이후 정지 원인 진단 (CMD#40314, #40301 재작업)

2026-09-28 guardian [ops, cron, analyst-context, guardian]

결론

07-20부터 ~/.hermes 스케줄러는 command 필드를 읽지 않고 no_agent+script 필드만 셸 실행으로 처리한다. 두 잡(ocRESTORE-vault-fundamental-bridge, ocRESTORE-vault-technical-bridge)은 no_agent/script 키가 없고 prompt=""라서 빈 프롬프트 에이전트 잡으로 돌며 [SILENT]만 응답 → 수집기는 한 번도 실행되지 않았다(07-20~08-16, 기록상 ok). 08-16 12:45 KST(03:45:26Z) 일괄 정지로 enabled=false, paused_reason="2026-08-16 미사용 정리 (3~4월 생성, 사용자 확인)". 마지막 실제 작성은 07-20 ~/.hermes-next 스케줄러(no_agent 스크립트 모드) 1회뿐이며, 그 fundamental 실행도 yfinance 미설치로 0/176 성공이었다.

근거 (조회 2026-09-28 19:47~19:58 KST)

항목 fundamental technical
jobs.json(~/.hermes) enabled/state false / paused false / paused
last_run_at / last_status 2026-08-16T07:00:44 / error(HTTP 429 usage_limit_reached) 2026-08-16T07:10:45 / error(429)
no_agent / script 키 없음 / 없음 없음 / 없음
executions.db(~/.hermes, 09-27 17:28~09-28 19:46 1000행 순환) 0행 (보관범위 밖) 0행
executions.db(~/.hermes-next, 08-15~08-16 1000행) 0행 0행
cron/output(~/.hermes) 파일 50개(06-28~08-16). 07-19까지 Kind: shell, Exit Code: 0 12KB, 07-20~08-16 ## Prompt/## Response [SILENT] 711B×24, 429 오류 920B×4 50개. 07-19까지 3140B, 이후 708B×24 + 917B×4
cron/output(~/.hermes-next) 1개: 2026-07-20_07-01-46.md Mode: no_agent (script) → "수집 완료: 0/176 성공" (No module named 'yfinance'), "Context saved" 1개: 2026-07-20_07-12-22.md no_agent(script), 정상 수집
파일 collected_at 2026-07-20T07:01:46 2026-07-20T07:12:22
  • 같은 장부의 활성 셸 잡 15개는 전부 no_agent=true(변환 완료) — 이 두 잡(과 macro-bridge)만 변환이 누락된 채 역이관됨.
  • ~/.hermes/hermes-agent/cron/scheduler.py:1949 if job.get("no_agent"): 분기만 스크립트를 실행. command 필드는 스케줄러가 참조하지 않음.
  • 변환된 래퍼 ~/.hermes-next/scripts/migrated/ocRESTORE-vault-{fundamental,technical}-bridge.sh는 존재하나 ~/.hermes/scripts/migrated/에는 없음.

context-macro.json 09-28 17:54 갱신 경로

크론이 아니라 수동 실행. guardian 세션 api-e740328a8d7dea45(CMD#40301)이 17:54:17 KST에 cd /Users/ron/.hermes/workspace && PYTHONPATH=scripts:scripts/pipeline python3 scripts/pipeline/macro_collector.py > /tmp/guardian_macro_collector_260928.log 를 실행(~/.hermes/logs/process-results/proc_bbfba13488e3.json, exit_code 0). ~/.hermes/logs/macro_collector.log 405~410행: 17:54:18 시작 → 17:54:32 "Context saved: .../context-macro.json".

수동 재현 (--dry-run, 저장 없음)

  • fundamental: cd /Users/ron/.hermes/workspace && PYTHONPATH=scripts:scripts/pipeline python3 scripts/pipeline/fundamental_collector.py --dry-run > /tmp/guardian_40314_fundamental_dryrun.log 2>&1 → exit code 0, 19:49:44~19:53:16, "수집 완료: 179/179 성공", "Dry run — context not saved"
  • technical: cd /Users/ron/.hermes/workspace && PYTHONPATH=scripts:scripts/pipeline /usr/bin/python3 scripts/pipeline/technical_collector.py --no-charts --dry-run > /tmp/guardian_40314_technical_dryrun.log 2>&1 → exit code 0, 19:53:19~19:55:07, "수집 완료: 179/179 성공"
  • 현재 파이썬(/usr/bin/python3)에 yfinance 1.2.0 설치됨 → 07-20의 yfinance 부재 문제는 해소됨. 스크립트 자체는 정상.

판단 / 다음 행동

  • 즉시 조치 불가(해리 확인 필요): 재가동은 크론 활성화 + paused_reason이 "사용자 확인" 의도적 정지라 해리 승인 대상.
  • 재가동 시 enabled=true만으로는 다시 [SILENT] 빈 실행이 된다. 반드시 no_agent: true + script: migrated/<id>.sh(래퍼를 ~/.hermes/scripts/migrated/로 복사) 변환을 같이 해야 하고, 첫 실행 output에 Mode: no_agent (script)가 찍히는지 확인할 것.
  • 데이터 공백만 메우려면 위 명령에서 --dry-run을 뺀 수동 1회 실행으로 가능(크론 설정 불변).