Hermes migration batch H — real cutover
- 기준 시각: 2026-04-14 15:03 KST
- 결과: 5개 OpenClaw cron을 Hermes shell-job으로 이전 완료
- 판정 기준:
hermes_migration_verify.pydual-run 3회,--hermes-exec direct,--strict-diff, 각 회차 PASS - 최종 상태: 성공 5개는 OpenClaw
enabled=false, Hermesenabled=true/state=scheduled/status=verified_cutover
백업
- Hermes 최초 백업:
/Users/ron/.hermes/cron/jobs.json.bak-batchH-20260414T144810 - Hermes 교체 후보 추가 전 백업:
/Users/ron/.hermes/cron/jobs.json.bak-batchH-replacements-20260414T145746 - OpenClaw disable 전 백업:
/Users/ron/.openclaw/cron/jobs.json.bak-batchH-disable-20260414T145142
이전 완료 5개
1) technical-data-collector → ocH-005-tech-data
- 스케줄:
40 7,9,11,13,15,17 * * 1-5 - 명령:
PYTHONPATH=/Users/ron/.openclaw/workspace/scripts/shared:/Users/ron/.openclaw/workspace/scripts/pipeline cd /Users/ron/.openclaw/workspace && python3 scripts/pipeline/technical_data_collector.py - 산출물 힌트:
/Users/ron/.openclaw/workspace/memory/technical-signals/latest.json - dual-run 3회: PASS
/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145107_technical-data-collector_ocH-005-tech-data.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145109_technical-data-collector_ocH-005-tech-data.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145110_technical-data-collector_ocH-005-tech-data.json- 최종: OpenClaw disabled / Hermes scheduled
2) quant-signal-generator → ocH-007-quant-signal
- 스케줄:
45 7 * * 1-5 - 명령:
python3 /Users/ron/.openclaw/workspace/scripts/pipeline/quant_signal_generator.py - 산출물 힌트:
/Users/ron/.openclaw/workspace/memory/quant-signals - dual-run 3회: PASS
/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145858_quant-signal-generator_ocH-007-quant-signal.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145900_quant-signal-generator_ocH-007-quant-signal.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145902_quant-signal-generator_ocH-007-quant-signal.json- 최종: OpenClaw disabled / Hermes scheduled
3) daily-context-snapshot → ocH-008-daily-context
- 스케줄:
0 0 * * * - 명령:
cd /Users/ron/.openclaw/workspace && python3 scripts/pipeline/daily_context_snapshot.py - 산출물 힌트:
/Users/ron/.openclaw/workspace/memory/daily-context-snapshot/latest.json - dual-run 3회: PASS
/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145910_daily-context-snapshot_ocH-008-daily-context.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145911_daily-context-snapshot_ocH-008-daily-context.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145912_daily-context-snapshot_ocH-008-daily-context.json- 최종: OpenClaw disabled / Hermes scheduled
4) signal-synthesizer-4axis → ocH-009-signal-4axis
- 스케줄:
10 7 * * 1-5 - 명령:
cd /Users/ron/.openclaw/workspace && python3 scripts/pipeline/signal_synthesizer.py - 산출물 힌트:
/Users/ron/.openclaw/workspace/memory/sector-signals/latest.json - dual-run 3회: PASS
/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145918_signal-synthesizer-4axis_ocH-009-signal-4axis.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145919_signal-synthesizer-4axis_ocH-009-signal-4axis.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_145920_signal-synthesizer-4axis_ocH-009-signal-4axis.json- 최종: OpenClaw disabled / Hermes scheduled
5) quant-signals → ocH-010-quant-signals
- 스케줄:
55 8 * * * - 명령:
python3 /Users/ron/.openclaw/workspace/scripts/pipeline/quant_signal_generator.py - 산출물 힌트:
/Users/ron/.openclaw/workspace/memory/quant-signals - dual-run 3회: PASS
/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_150200_quant-signals_ocH-010-quant-signals.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_150202_quant-signals_ocH-010-quant-signals.json/Users/ron/.openclaw/workspace/verification/hermes-migration/batchH/20260414_150204_quant-signals_ocH-010-quant-signals.json- 최종: OpenClaw disabled / Hermes scheduled
롤백/중복 처리
fed-liquidity-aggregator → ocH-000-fed-liq: OpenClaw/Hermes 양쪽 모두 실행 실패. 원인: 당일 필수 데이터WALCL/RRP/TGA누락. Hermes disabled, OpenClaw 유지.alt-data-collector,trendforce-collector,strategy-flow-collector,job-fe743793: batch H에서 검증은 했지만, 다른 batch의 활성/선행 이전과 충돌 가능성이 확인되어 H 쪽 Hermes job은 disabled 처리. H 성공 5개에는 포함하지 않음.energy-data-collector → ocH-006-energy: 양쪽 텍스트 출력은 같았지만 로컬 DNS/API 실패로latest.json산출물이 생성되지 않아 harness verdict FAIL. Hermes disabled, OpenClaw 유지.bio-pharma-collector,defense-collector,nuclear-collector: 후보였으나 batch G 활성 이전이 확인되어 선택하지 않음.
최종 검증
~/.hermes/cron/jobs.json: JSON 파싱 OK~/.openclaw/cron/jobs.json: JSON 파싱 OK- H active verified_cutover: 5개
ocH-005-tech-dataocH-007-quant-signalocH-008-daily-contextocH-009-signal-4axisocH-010-quant-signals- 각 성공 항목의 OpenClaw 원본:
enabled=false - 각 성공 항목의 Hermes 대응 job:
enabled=true,state=scheduled,migration.status=verified_cutover - 중복 active migration: 없음
hermes cron status: Gateway running, HTTP API healthy, Scheduler tick healthy, active jobs 28개, next run2026-04-14T15:40:00+09:00curl /v1/health: 현재 Codex sandbox에서 loopback 접속이Operation not permitted로 차단됨. 대신lsof로 18789 LISTEN 및hermes cron status의 HTTP/Scheduler healthy를 확인.
변경 파일
/Users/ron/.hermes/cron/jobs.json/Users/ron/.openclaw/cron/jobs.json/Users/ron/.openclaw/workspace/scripts/hermes_migration_verify.py— strict diff 정규화 보강(초/분duration 노이즈 처리)/Users/ron/knowledge-agent/400-reports/260414_hermes_batch_H_real.md
금지 파일 shared/llm.py, shared/cycle_base.py는 수정하지 않음.