virtual-insanity
← 리포트 목록

batch_I_real

2026-04-14 hermes

Hermes batch I 실제 이전 리포트 (2026-04-14)

  • 시작: 2026-04-14T15:12:37+09:00
  • Hermes backup: /Users/ron/.hermes/cron/jobs.json.bak-batchI-20260414_151237
  • OpenClaw backup: /Users/ron/.openclaw/cron/jobs.json.bak-batchI-20260414_151237
  • verifier: /Users/ron/.openclaw/workspace/scripts/hermes_migration_verify.py
  • 원칙: 기존 Hermes source와 겹치는 job 제외, OpenClaw 삭제 없음, 통과분만 enabled=false

후보

OpenClaw Hermes 분류 선정 근거
context-review-loop ocI-I000-context-review 볼트/컨텍스트 pending open=6이면 스킵 경로로 종료; 삭제/재시작 없음
signal-validator ocI-I001-signal-validator 시장/방법론 검증 LLM-free 백테스트/검증 결과 덮어쓰기; 삭제/재시작 없음
pattern-explorer ocI-I002-pattern-explorer 시장/패턴 탐색 LLM-free 지표 조합 탐색 결과 저장; 삭제/재시작 없음
memory-weekly-report ocI-I003-memory-weekly 시스템/메모리 weekly report 전용 분기; cleanup/kill/restart 본 실행 경로 아님
cron-alert ocI-I004-cron-alert 시스템/알림 연속 실패/guardian heartbeat 감시; 삭제·재시작 없음, cooldown state만 갱신 가능

실행 로그

context-review-loop → ocI-I000-context-review

  • OpenClaw schedule: {'kind': 'cron', 'expr': '30 9 * * *', 'tz': 'Asia/Seoul'}
  • Command: PYTHONPATH=/Users/ron/.openclaw/workspace/scripts python3 /Users/ron/.openclaw/workspace/scripts/pipeline/context_review_loop.py
  • cycle 1: rc=0, verdict=ok, diff_ok=None, elapsed=1.32s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I000-context-review/cycle-1
  • cycle 2: rc=0, verdict=ok, diff_ok=None, elapsed=1.33s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I000-context-review/cycle-2
  • cycle 3: rc=0, verdict=ok, diff_ok=None, elapsed=1.32s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I000-context-review/cycle-3
  • 최종 상태: MIGRATED (Hermes enabled, OpenClaw disabled)

signal-validator → ocI-I001-signal-validator

  • OpenClaw schedule: {'kind': 'cron', 'expr': '30 9 * * 1,3,5', 'tz': 'Asia/Seoul'}
  • Command: PYTHONPATH=/Users/ron/.openclaw/workspace/scripts/shared:/Users/ron/.openclaw/workspace/scripts/pipeline python3 /Users/ron/.openclaw/workspace/scripts/pipeline/signal_validator.py
  • cycle 1: rc=0, verdict=ok, diff_ok=None, elapsed=1.64s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I001-signal-validator/cycle-1
  • cycle 2: rc=0, verdict=ok, diff_ok=None, elapsed=1.65s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I001-signal-validator/cycle-2
  • cycle 3: rc=0, verdict=ok, diff_ok=None, elapsed=1.63s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I001-signal-validator/cycle-3
  • 최종 상태: MIGRATED (Hermes enabled, OpenClaw disabled)

pattern-explorer → ocI-I002-pattern-explorer

  • OpenClaw schedule: {'kind': 'cron', 'expr': '30 6 * * 1-5', 'tz': 'Asia/Seoul'}
  • Command: PYTHONPATH=/Users/ron/.openclaw/workspace/scripts/shared:/Users/ron/.openclaw/workspace/scripts/pipeline python3 /Users/ron/.openclaw/workspace/scripts/pipeline/pattern_explorer.py
  • cycle 1: rc=2, verdict=fail, diff_ok=None, elapsed=1.74s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I002-pattern-explorer/cycle-1
  • stderr/stdout tail:
ff": "",
  "strict_diff": true,
  "text_match": true,
  "watched_before": [
    {
      "path": "/Users/ron/.openclaw/workspace/memory/pattern-explorer",
      "exists": false,
      "kind": null,
      "size": null,
      "mtime_ns": null,
      "sha256": null,
      "file_count": null,
      "total_size": null,
      "digest": null,
      "sample_files": []
    }
  ],
  "watched_after": [
    {
      "path": "/Users/ron/.openclaw/workspace/memory/pattern-explorer",
      "exists": false,
      "kind": null,
      "size": null,
      "mtime_ns": null,
      "sha256": null,
      "file_count": null,
      "total_size": null,
      "digest": null,
      "sample_files": []
    }
  ],
  "watched_changed": [],
  "verdict": {
    "ok": false,
    "openclaw_ok": true,
    "hermes_trigger_ok": true,
    "hermes_exec_ok": true,
    "watch_ok": false,
    "text_match": true,
    "strict_diff": true,
    "trigger_delta_ms": 0,
    "changed_watch_paths": [],
    "reasons": [
      "watch_path_missing"
    ]
  },
  "report_path": "/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I002-pattern-explorer/cycle-1/20260414_151246_pattern-explorer_ocI-I002-pattern-explorer.json"
}

  • 최종 상태: ROLLBACK (Hermes paused, OpenClaw enabled)

memory-weekly-report → ocI-I003-memory-weekly

  • OpenClaw schedule: {'kind': 'cron', 'expr': '0 9 * * 0', 'tz': 'Asia/Seoul'}
  • Command: python3 /Users/ron/.openclaw/workspace/scripts/monitoring/memory_guardian.py --weekly-report
  • cycle 1: rc=2, verdict=fail, diff_ok=None, elapsed=5.91s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I003-memory-weekly/cycle-1
  • stderr/stdout tail:
ue,
  "text_match": false,
  "watched_before": [
    {
      "path": "/Users/ron/.openclaw/workspace/memory/memory-guardian",
      "exists": false,
      "kind": null,
      "size": null,
      "mtime_ns": null,
      "sha256": null,
      "file_count": null,
      "total_size": null,
      "digest": null,
      "sample_files": []
    }
  ],
  "watched_after": [
    {
      "path": "/Users/ron/.openclaw/workspace/memory/memory-guardian",
      "exists": false,
      "kind": null,
      "size": null,
      "mtime_ns": null,
      "sha256": null,
      "file_count": null,
      "total_size": null,
      "digest": null,
      "sample_files": []
    }
  ],
  "watched_changed": [],
  "verdict": {
    "ok": false,
    "openclaw_ok": true,
    "hermes_trigger_ok": true,
    "hermes_exec_ok": true,
    "watch_ok": false,
    "text_match": false,
    "strict_diff": true,
    "trigger_delta_ms": 1,
    "changed_watch_paths": [],
    "reasons": [
      "watch_path_missing",
      "strict_diff_mismatch"
    ]
  },
  "report_path": "/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I003-memory-weekly/cycle-1/20260414_151248_memory-weekly-report_ocI-I003-memory-weekly.json"
}

  • 최종 상태: ROLLBACK (Hermes paused, OpenClaw enabled)

cron-alert → ocI-I004-cron-alert

  • OpenClaw schedule: {'kind': 'cron', 'expr': '*/10 * * * *', 'tz': 'Asia/Seoul'}
  • Command: python3 /Users/ron/.openclaw/workspace/scripts/pipeline/cron_alert.py
  • cycle 1: rc=2, verdict=fail, diff_ok=None, elapsed=1.3s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I004-cron-alert/cycle-1
  • stderr/stdout tail:
kind": "dir",
      "size": null,
      "mtime_ns": 1776146754602490389,
      "sha256": null,
      "file_count": 14,
      "total_size": 44633,
      "digest": "759a6bbefde2dab61815345c78ec7ba5a215d92b98ff58d6cffc0b5389f464c4",
      "sample_files": [
        "alerted_jobs.json",
        "analyst-fundamental.json",
        "analyst-macro.json",
        "analyst-technical.json",
        "codex.json",
        "cowork.json",
        "cowork_pending_archived_20260331.jsonl",
        "data-analyst.json",
        "drift-recovery.json",
        "etf-weight-tracker.json",
        "evidence-sentinel.json",
        "guardian_heartbeat.json",
        "ops-syncer.json",
        "ron.json"
      ]
    }
  ],
  "watched_changed": [],
  "verdict": {
    "ok": false,
    "openclaw_ok": true,
    "hermes_trigger_ok": true,
    "hermes_exec_ok": true,
    "watch_ok": true,
    "text_match": false,
    "strict_diff": true,
    "trigger_delta_ms": 0,
    "changed_watch_paths": [],
    "reasons": [
      "strict_diff_mismatch"
    ]
  },
  "report_path": "/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I004-cron-alert/cycle-1/20260414_151254_cron-alert_ocI-I004-cron-alert.json"
}

  • 최종 상태: ROLLBACK (Hermes paused, OpenClaw enabled)

요약

  • 시도: 5개
  • 이전 성공: 2개
  • rollback: 3개
  • 종료: 2026-04-14T15:12:55+09:00

재검증/복구 실행 (2026-04-14T15:14:05+09:00)

  • Hermes retry backup: /Users/ron/.hermes/cron/jobs.json.bak-batchI-retry-20260414_151405
  • OpenClaw retry backup: /Users/ron/.openclaw/cron/jobs.json.bak-batchI-retry-20260414_151405

재검증: pattern-explorerocI-I002-pattern-explorer

  • 조정: retry with corrected watch path
  • retry cycle 1: rc=0, verdict=ok, diff_ok=None, elapsed=1.75s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I002-pattern-explorer/retry-cycle-1
  • retry cycle 2: rc=0, verdict=ok, diff_ok=None, elapsed=1.74s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I002-pattern-explorer/retry-cycle-2
  • retry cycle 3: rc=0, verdict=ok, diff_ok=None, elapsed=1.76s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I002-pattern-explorer/retry-cycle-3
  • 최종 상태: MIGRATED (retry 통과, Hermes enabled, OpenClaw disabled)

재검증: memory-weekly-reportocI-I003-memory-weekly

  • 조정: retry with silent shell response; no persistent output path
  • retry cycle 1: rc=0, verdict=ok, diff_ok=None, elapsed=4.72s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I003-memory-weekly/retry-cycle-1
  • retry cycle 2: rc=0, verdict=ok, diff_ok=None, elapsed=4.71s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I003-memory-weekly/retry-cycle-2
  • retry cycle 3: rc=0, verdict=ok, diff_ok=None, elapsed=5.46s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I003-memory-weekly/retry-cycle-3
  • 최종 상태: MIGRATED (retry 통과, Hermes enabled, OpenClaw disabled)

재검증: cron-alertocI-I004-cron-alert

  • 조정: retry with silent shell response for no-output command
  • retry cycle 1: rc=0, verdict=ok, diff_ok=None, elapsed=1.29s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I004-cron-alert/retry-cycle-1
  • retry cycle 2: rc=0, verdict=ok, diff_ok=None, elapsed=1.28s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I004-cron-alert/retry-cycle-2
  • retry cycle 3: rc=0, verdict=ok, diff_ok=None, elapsed=1.32s, report=/Users/ron/.openclaw/workspace/verification/hermes-batch-I-real/ocI-I004-cron-alert/retry-cycle-3
  • 최종 상태: MIGRATED (retry 통과, Hermes enabled, OpenClaw disabled)

재검증 요약

  • retry 대상: 3개
  • retry 성공: 3개 중 기존 성공 포함 batch I 총 성공 상태는 별도 최종 검증 참조
  • 완료: 2026-04-14T15:14:29+09:00

최종 검증

  • 검증 시각: 2026-04-14T15:15:21+09:00
  • OpenClaw jobs.json: JSON valid, enabled=115/295
  • Hermes jobs.json: JSON valid, enabled=53/87
  • Gateway 18789 LISTEN: PID 63520 확인
  • shared/llm.py, shared/cycle_base.py: mtime unchanged 확인
OpenClaw OpenClaw enabled Hermes Hermes enabled/state kind silent schedule
context-review-loop False ocI-I000-context-review True/scheduled shell False {'kind': 'cron', 'expr': '30 9 * * *', 'tz': 'Asia/Seoul'}
signal-validator False ocI-I001-signal-validator True/scheduled shell False {'kind': 'cron', 'expr': '30 9 * * 1,3,5', 'tz': 'Asia/Seoul'}
pattern-explorer False ocI-I002-pattern-explorer True/scheduled shell False {'kind': 'cron', 'expr': '30 6 * * 1-5', 'tz': 'Asia/Seoul'}
memory-weekly-report False ocI-I003-memory-weekly True/scheduled shell True {'kind': 'cron', 'expr': '0 9 * * 0', 'tz': 'Asia/Seoul'}
cron-alert False ocI-I004-cron-alert True/scheduled shell True {'kind': 'cron', 'expr': '*/10 * * * *', 'tz': 'Asia/Seoul'}

변경 발췌

{
  "openclaw": {
    "id": "context-review-loop",
    "enabled": false,
    "state": {
      "migrationTarget": "hermes",
      "hermesId": "ocI-I000-context-review",
      "migrationBatch": "I",
      "disabledReason": "Migrated to Hermes batch I after 3/3 verifier dual-run strict diff pass"
    }
  },
  "hermes": {
    "id": "ocI-I000-context-review",
    "enabled": true,
    "state": "scheduled",
    "kind": "shell",
    "command": "PYTHONPATH=/Users/ron/.openclaw/workspace/scripts python3 /Users/ron/.openclaw/workspace/scripts/pipeline/context_review_loop.py",
    "schedule": {
      "kind": "cron",
      "expr": "30 9 * * *",
      "tz": "Asia/Seoul"
    },
    "silent": false
  }
}
{
  "openclaw": {
    "id": "signal-validator",
    "enabled": false,
    "state": {
      "migrationTarget": "hermes",
      "hermesId": "ocI-I001-signal-validator",
      "migrationBatch": "I",
      "disabledReason": "Migrated to Hermes batch I after 3/3 verifier dual-run strict diff pass"
    }
  },
  "hermes": {
    "id": "ocI-I001-signal-validator",
    "enabled": true,
    "state": "scheduled",
    "kind": "shell",
    "command": "PYTHONPATH=/Users/ron/.openclaw/workspace/scripts/shared:/Users/ron/.openclaw/workspace/scripts/pipeline python3 /Users/ron/.openclaw/workspace/scripts/pipeline/signal_validator.py",
    "schedule": {
      "kind": "cron",
      "expr": "30 9 * * 1,3,5",
      "tz": "Asia/Seoul"
    },
    "silent": false
  }
}
{
  "openclaw": {
    "id": "pattern-explorer",
    "enabled": false,
    "state": {
      "migrationTarget": "hermes",
      "hermesId": "ocI-I002-pattern-explorer",
      "migrationBatch": "I",
      "disabledReason": "Migrated to Hermes batch I retry after 3/3 verifier strict diff pass"
    }
  },
  "hermes": {
    "id": "ocI-I002-pattern-explorer",
    "enabled": true,
    "state": "scheduled",
    "kind": "shell",
    "command": "PYTHONPATH=/Users/ron/.openclaw/workspace/scripts/shared:/Users/ron/.openclaw/workspace/scripts/pipeline python3 /Users/ron/.openclaw/workspace/scripts/pipeline/pattern_explorer.py",
    "schedule": {
      "kind": "cron",
      "expr": "30 6 * * 1-5",
      "tz": "Asia/Seoul"
    },
    "silent": false
  }
}
{
  "openclaw": {
    "id": "memory-weekly-report",
    "enabled": false,
    "state": {
      "migrationTarget": "hermes",
      "hermesId": "ocI-I003-memory-weekly",
      "migrationBatch": "I",
      "disabledReason": "Migrated to Hermes batch I retry after 3/3 verifier strict diff pass"
    }
  },
  "hermes": {
    "id": "ocI-I003-memory-weekly",
    "enabled": true,
    "state": "scheduled",
    "kind": "shell",
    "command": "python3 /Users/ron/.openclaw/workspace/scripts/monitoring/memory_guardian.py --weekly-report",
    "schedule": {
      "kind": "cron",
      "expr": "0 9 * * 0",
      "tz": "Asia/Seoul"
    },
    "silent": true
  }
}
{
  "openclaw": {
    "id": "cron-alert",
    "enabled": false,
    "state": {
      "migrationTarget": "hermes",
      "hermesId": "ocI-I004-cron-alert",
      "migrationBatch": "I",
      "disabledReason": "Migrated to Hermes batch I retry after 3/3 verifier strict diff pass"
    }
  },
  "hermes": {
    "id": "ocI-I004-cron-alert",
    "enabled": true,
    "state": "scheduled",
    "kind": "shell",
    "command": "python3 /Users/ron/.openclaw/workspace/scripts/pipeline/cron_alert.py",
    "schedule": {
      "kind": "cron",
      "expr": "*/10 * * * *",
      "tz": "Asia/Seoul"
    },
    "silent": true
  }
}

자체평가

  • 정확성: 5/5 — 5개 모두 verifier 3/3 통과 후 OpenClaw disabled, Hermes enabled 확인.
  • 완성도: 4.8/5 — 초기 3개 rollback 원인을 보정해 재검증 완료.
  • 검증: 5/5 — jobs JSON 파싱, Gateway LISTEN, 각 verifier report, 금지 파일 mtime 확인.
  • 최소 변경: 4.7/5 — 변경은 cron jobs JSON과 보고서/검증 산출물/백업에 한정.

Remaining Risks: claude_practice_monitor.py --dry-run 후보 조사 중 sandbox 네트워크 제한으로 LLM 실패 루프가 발생했으며, 작업 후보에서 제외했다. 해당 dry-run은 코드/cron state를 수정하지 않는 경로지만 완료 여부는 별도 확인 대상이다.

부가 확인

  • 후보 조사 중 실행한 claude_practice_monitor.py --dry-run --min-score 8은 15:19:15에 종료됨. sandbox 네트워크 제한으로 49건 모두 LLM 실패 처리, 고점수/상태 변경 0건. batch I 후보에서는 제외함.