virtual-insanity
← 리포트 목록

OpenClaw kill phase1 — Hermes 이관 필요 4개 점검 및 b2g_signal_updater 이관

2026-04-24 hermes [openclaw-kill, hermes-migration, b2g, cron]

결론

가장 안전한 1개인 b2g_signal_updater를 Hermes로 이관했다.

  • OpenClaw: b2g_signal_updater disabled 처리
  • Hermes: b2g_signal_updater active 등록, 다음 실행 2026-04-25T09:07:00+09:00
  • 수동 실행 검증: 성공, 5개 B2G 시그널 갱신, missing 2개는 의도된 last-known 처리

1) 이관 필요 4개 점검

종류 위치 코드 위치 의존성/주의 판단
com.openclaw.codex-proxy LaunchAgent ~/Library/LaunchAgents/com.openclaw.codex-proxy.plist /Users/ron/chatgpt-codex-proxy/dist/index.js Node service, KeepAlive, 오늘 5.4→5.5 업데이트된 운영 본체. 로그는 ~/.hermes/logs/codex-proxy.log지만 스케줄/프로세스 소유권은 OpenClaw LaunchAgent 가장 위험. 별도 설계 후 마지막에 이관
b2g_signal_updater OpenClaw jobs.json ~/.openclaw/cron/jobs.json ~/.openclaw/workspace/scripts/b2g_signal_updater.py shared.cycle_base, shared.db, shared.frontmatter, yfinance/requests. 결정론적이고 notify 없음 이번 이관 대상
daily-context-snapshot OpenClaw jobs.json ~/.openclaw/cron/jobs.json ~/.openclaw/workspace/scripts/pipeline/daily_context_snapshot.py OpenClaw/Hermes jobs 둘 다 읽고 ~/knowledge/800 운영/.../세션로그에 씀. 영향 작지만 해리 볼트 write 포함 다음 주 이관 후보
intelligence-discovery-filter OpenClaw jobs.json ~/.openclaw/cron/jobs.json ~/.openclaw/workspace/scripts/pipeline/discovery_filter.py shared.vault_paths, shared.evaluator, OpenClaw memory 경로 고정. Hermes에는 ocRESTORE-intelligence-cluster가 discovery_filter 포함 체인을 이미 갖고 있음 중복/통합 여부 확인 후 이관 또는 제거

2) 실행한 이관

백업

  • /Users/ron/.hermes/cron/jobs.json.bak-b2g-migration-20260424T140758
  • /Users/ron/.openclaw/cron/jobs.json.bak-b2g-migration-20260424T140758
  • /Users/ron/.hermes/workspace/scripts/b2g_signal_updater.py.bak-before-migration-20260424T140715

파일 복사/경로 보정

cp ~/.openclaw/workspace/scripts/b2g_signal_updater.py ~/.hermes/workspace/scripts/b2g_signal_updater.py

보정:

WORKSPACE = Path.home() / ".hermes" / "workspace"

기존 OpenClaw shared import 대신 Hermes shared를 쓰도록 실행 PYTHONPATH를 Hermes 기준으로 등록했다.

Hermes jobs.json 등록

{
  "id": "b2g_signal_updater",
  "enabled": true,
  "state": "scheduled",
  "schedule": {"kind": "cron", "expr": "7 9 * * *", "tz": "Asia/Seoul"},
  "command": "PYTHONPATH=/Users/ron/.hermes/workspace/scripts:/Users/ron/.hermes/workspace/scripts/shared /usr/bin/python3 /Users/ron/.hermes/workspace/scripts/b2g_signal_updater.py",
  "next_run_at": "2026-04-25T09:07:00+09:00",
  "last_run_at": "2026-04-24T14:08:13+09:00",
  "last_status": "ok"
}

OpenClaw jobs.json 비활성화

{
  "id": "b2g_signal_updater",
  "enabled": false,
  "migration": {
    "target": "hermes",
    "hermes_id": "b2g_signal_updater",
    "status": "verified_cutover",
    "verified_at": "2026-04-24T14:08:13+09:00"
  }
}

3) 검증 결과

구문/JSON

python3 -m py_compile /Users/ron/.hermes/workspace/scripts/b2g_signal_updater.py
python3 -m json.tool /Users/ron/.hermes/cron/jobs.json
python3 -m json.tool /Users/ron/.openclaw/cron/jobs.json

모두 통과.

dry-run

PYTHONPATH=/Users/ron/.hermes/workspace/scripts:/Users/ron/.hermes/workspace/scripts/shared /usr/bin/python3 /Users/ron/.hermes/workspace/scripts/b2g_signal_updater.py --dry-run

결과: 5개 시그널 계산 성공.

실제 실행

PYTHONPATH=/Users/ron/.hermes/workspace/scripts:/Users/ron/.hermes/workspace/scripts/shared /usr/bin/python3 /Users/ron/.hermes/workspace/scripts/b2g_signal_updater.py

출력:

- macro-signal-b2g-dod-budget.md: $1.5T total resources / $1.1T base discretionary / $350B mandatory (FY2027 topline) | updated=2026-04-24 | missing=False
- macro-signal-b2g-defense-backlog.md: Top2 confirmed $465.0B / Top5 est. $695.0B (RTX+LMT 공시, NOC/GD/BA last-known) | updated=2026-04-24 | missing=True
- macro-signal-b2g-chips-disbursement.md: $6.0B last-known disbursed (2025-07 snapshot); Commerce public page still says >$4B | updated=2026-04-24 | missing=True
- macro-signal-b2g-cfius-blocks.md: CY2024 hard-stop 9건 (abandoned 7 + presidential 2), mitigation 16건 | updated=2026-04-24 | missing=False
- macro-signal-b2g-ndaa-passage.md: FY26 NDAA enacted 2025-12-18 (P.L. 119-60); FY27 cycle upcoming | updated=2026-04-24 | missing=False
[b2g_signal_updater] dry_run=False date=2026-04-24 signals=5

상태 파일:

{
  "run_at": "2026-04-24T14:08:13+09:00",
  "date": "2026-04-24",
  "dry_run": false,
  "signals": 5,
  "missing": [
    "macro-signal-b2g-defense-backlog.md",
    "macro-signal-b2g-chips-disbursement.md"
  ]
}

Hermes CLI 확인:

b2g_signal_updater [active]
  Schedule:  7 9 * * *
  Next run:  2026-04-25T09:07:00+09:00

참고: hermes cron run b2g_signal_updater도 호출했으나 CLI는 “next scheduler tick에 실행”으로 예약만 표시했다. 그래서 실제 검증은 동일 Hermes command 직접 실행 결과로 판정했다.

4) 잔존 3개 권고

  1. daily-context-snapshot — 다음 이관 1순위. 단, ~/knowledge/800 운영/.../세션로그 write가 있으므로 output path를 유지할지 knowledge-agent staging으로 바꿀지 먼저 결정.
  2. intelligence-discovery-filter — Hermes의 ocRESTORE-intelligence-cluster 체인에 이미 포함되어 보인다. 독립 job으로 살릴지 cluster만 유지할지 중복 확인 후 OpenClaw 비활성 가능.
  3. com.openclaw.codex-proxy — 운영 본체라 LaunchAgent relabel/이관은 별도 롤백 플랜 필요. 지금 건드리지 않음.

자체평가

  • 정확성: 4.4/5 — 4개 위치/코드/의존성 확인, 1개 실제 이관 및 실행 검증.
  • 완성도: 4.3/5 — 백업, Hermes 등록, OpenClaw disable, 다음 실행 확인 완료.
  • 검증: 4.4/5 — py_compile, JSON validation, dry-run, actual run, Hermes list 확인.
  • 최소 변경: 4.5/5 — 한 잡만 이관, codex-proxy 등 위험 잡은 조사만 수행.

DONE