← 리포트 목록
Hermes scripts 잔존 .openclaw 경로 치환/처리
2026-04-15
migrate
[hermes, migration, residual-paths, openclaw]
Hermes scripts 잔존 .openclaw 치환/처리 보고
결론
- 대상 범위:
/Users/ron/.hermes/workspace/scripts/ - 최초
grep -rln "\.openclaw": 132개 파일 - 활성 텍스트 파일(백업/pycache 제외): 49개
- 실제 파일시스템 경로·작업 디렉터리·로그 디렉터리·문서 예시 경로만 Hermes 기준으로 치환: 18개 파일
.openclaw를 포함한 Python 캐시(__pycache__/*.pyc)는 재생성 가능한 산출물이므로 삭제 처리: 64개- 검증 후 최종
grep -rln "\.openclaw": 52개 파일 .bak백업 파일: 19개 — 지시대로 미수정- Docker/Podman 컨테이너·volume mount 관련: 5개 — 지시대로 미수정
- 비경로 semantic identifier/launchd label/bundle id/ontology namespace/마이그레이션 도구 변수명: 28개 — “경로만 치환” 원칙 때문에 미수정
__pycache__: 0개
추가로, 실제 디렉터리 경로 패턴에 가까운 \.openclaw/ 기준으로 백업/pycache 제외 후 남은 활성 파일은 4개이며 모두 컨테이너 volume mount 파일이다: podman/openclaw.container.in, run-openclaw-podman.sh, test-live-gateway-models-docker.sh, test-live-models-docker.sh.
주의: 최종 grep 결과가 “컨테이너 관련과
.bak만”으로 완전히 줄지는 않았다. 남은 28개는 실제.openclaw디렉터리 경로가 아니라com.openclaw.*launchd label,ai.openclaw.*bundle id/subsystem,ron.openclaw.localontology namespace,cand.openclaw_id같은 코드 식별자다. 이들은 경로 치환이 아니라 로직/식별자 변경이므로 건드리지 않았다.
특별 확인
| 파일 | 확인 결과 |
|---|---|
pipeline/price_history_collector.py |
WORKSPACE = Path.home() / ".hermes/workspace" 확인. 저장 경로는 memory/price-history 아래 Hermes 기준. |
shared/vault_paths.py |
_OPENCLAW_DB = Path.home() / ".hermes/data/ops_multiagent.db" 확인. 변수명은 legacy지만 실제 DB 경로는 Hermes. |
수정한 파일
| 파일 | 수정 이유 |
|---|---|
README_verify_sudoers.md |
실행 예시의 ~/.openclaw/workspace 문서 경로를 ~/.hermes/workspace로 치환 |
codex_handoff_logger.py |
unused base 변수의 workspace 경로를 Hermes로 치환 |
collab_review_loop.py |
로그 sanitize regex가 .openclaw만 보던 것을 .openclaw/.hermes 모두 처리하도록 변경. literal .openclaw 경로 패턴 제거 |
diagnose_readonly.sh |
old workspace/.openclaw/jobs.json 후보를 실제 Hermes cron 경로 ~/.hermes/cron/jobs.json으로 교체 |
emergency_model_simulator.py |
mitigator script 경로를 Hermes workspace로 치환 |
generate_followup_report.py |
workspace/report 기본 경로를 Hermes workspace로 치환 |
health_check_fix.py |
WORKDIR 기본값을 Hermes workspace로 치환 |
integrity_monitor/README.md |
forensics 로그 예시 경로를 Hermes 로그 경로로 치환 |
ops_db_audit.py |
workspace/snapshot 기본 경로와 placeholder를 Hermes 기준으로 치환 |
patch_jobs_timeout.py |
docstring의 legacy cron 경로 언급을 Hermes cron 경로로 치환 |
prefetch_etf.py |
ETF prefetch output 기본 경로를 Hermes workspace로 치환 |
recover_degraded.sh |
복구 로그 디렉터리를 ~/.hermes/logs로 치환. launchd label은 미수정 |
restart-mac.sh |
disable marker 실제 파일 경로를 ~/.hermes/disable-launchagent로 치환. OpenClaw app/launchd label은 미수정 |
run_with_retry.sh |
retry 로그 디렉터리를 ~/.hermes/logs로 치환 |
safe_check.py |
docstring의 로그 검사 경로 예시를 Hermes로 치환 |
safe_local_diag.sh |
사용법 주석의 workspace 경로를 Hermes로 치환 |
validate_jobs_json.py |
jobs.json 기본 경로를 ~/.hermes/cron/jobs.json으로 치환하고 임시 replace hack 제거 |
worker_safe_wrapper.sh |
wrapper 로그 디렉터리를 ~/.hermes/logs로 치환 |
처리한 캐시 파일
__pycache__/*.pyc중.openclaw바이트 문자열을 포함한 파일 64개 삭제.- 이유: 소스가 아니라 Python 컴파일 캐시이며, 다음 import/compile 때 재생성된다.
- 삭제 후
grep ... | grep '/__pycache__/'결과: 0개.
건드리지 않은 파일 — 이유별 목록
1) .bak 백업 파일 — 지시대로 미수정
autopilot_sweeper.py.bak.20260221T105505autopilot_sweeper.py.bak.20260221T111320autopilot_sweeper.py.bak_20260306_012112autopilot_sweeper.py.bak_20260306_012122check_ops_db.py.bak-20260413-leakfixhealth_check.py.bakhermes_migration_verify.py.bak-venv-20260414143407pipeline/company_insight_tracker.py.bakpipeline/daily_report.py.bak-other-reports-20260414T191002pipeline/ingest_telegram_realtime.py.bakpipeline/price_history_collector.py.bak-round3-20260415T105321pipeline/system_digest.py.bak-20260413-leakfixpipeline/urea_price_tracker.py.bak-2026-04-14pipeline/vault_ingest_linker.py.bak-20260413pipeline/webapp/blueprints/sector_compass.py.bakshared/llm.py.bak-2026-04-13-panic-fixshared/llm.py.bak-2026-04-14-max-completion-fixshared/llm.py.bak-copilot403-20260415T122912verify.sh.bak
2) Docker/Podman 컨테이너·volume mount — 지시대로 미수정
docker/install-sh-e2e/run.shpodman/openclaw.container.inrun-openclaw-podman.shtest-live-gateway-models-docker.shtest-live-models-docker.sh
이 파일들은 /home/node/.openclaw 또는 컨테이너 profile/config mount를 의도적으로 사용한다.
3) 비경로 identifier/label/namespace — 로직 변경 위험 때문에 미수정
apply_retry_policy.sh— 주석의com.openclaw.agent_queue_worker.plistlaunchd label 예시backfill_stock_subsectors.py— RDF namespacehttp://ron.openclaw.local/ontology#clawlog.sh— macOS unified log subsystemai.openclawcowork_daemon.py— launchd labelcom.openclaw.ops-dashboarddev/ios-pull-gateway-log.sh— iOS bundle idai.openclaw...diagnose_run_cycle.sh— launchd plist label 확인evaluate_knowledge_emergence.py— RDF namespacehermes_migration_batch_tool.py— 마이그레이션 도구 내부 필드/변수명openclaw_idhermes_migration_verify.py— dual-run 검증 도구 내부 필드/변수명openclaw_id,openclaw_resultios-configure-signing.sh— iOS bundle idknowledge_os.py— launchd label/RDF namespacemaintenance/hermes_upgrade_v08.sh— 실제 launchd plist 파일명com.openclaw.hermes-upgrade-v08.plistmaintenance/sihwang_webapp_restart.sh— 실제 launchd labelcom.openclaw.sihwang-webappmigrate_to_staged_boot.sh— OpenClaw launchd label 목록monitoring/cmux_safe_restart.sh— 폐기된 launchd plist 주석ontology_recheck.py— RDF namespaceontology_stock_sector_sync.py— RDF namespaceops/mitigate_queue_block.py— 안내 메시지의 legacy launchctl labelpackage-mac-app.sh— macOS app bundle idpackage-mac-dist.sh— macOS app bundle idrecover_degraded.sh— 실제 launchd plist label은 유지, 로그 경로만 Hermes로 수정refresh_system_baseline.py— launchd plist 상태 조회 대상restart-mac.sh— OpenClaw app launchd label은 유지, disable marker 경로만 Hermes로 수정server.py— dashboard가 제어하는 launchd label mapshell-helpers/clawdock-helpers.sh— 문서 URLdocs.openclaw.aistaged_boot.sh— OpenClaw launchd label boot ordersync-plugin-versions.ts— package dependency keydevDeps.openclawtest_zk_recover.sh— 주석의 legacy launchctl label
검증
python3 -m py_compile \
codex_handoff_logger.py collab_review_loop.py emergency_model_simulator.py \
generate_followup_report.py health_check_fix.py ops_db_audit.py \
prefetch_etf.py safe_check.py validate_jobs_json.py
# 결과: OK, 9개
bash -n \
diagnose_readonly.sh recover_degraded.sh restart-mac.sh \
run_with_retry.sh safe_local_diag.sh worker_safe_wrapper.sh
# 결과: OK, 6개
# 최종 grep 분류
grep -rln "\.openclaw" /Users/ron/.hermes/workspace/scripts/
# raw=52, bak=19, pycache=0, container_like=5, active_nonbak=33
남은 리스크
- “
.openclaw문자열이 grep에 잡히면 모두 제거”를 엄격히 적용하려면 launchd label, bundle id, ontology namespace, 마이그레이션 도구 변수명까지 변경해야 한다. 이는 경로 치환이 아니라 운영 식별자/로직 변경이라 이번 범위에서 제외했다. com.openclaw.*label들이 Hermes 시대에도 실제 launchd label로 계속 쓰이는지 별도 정리 작업이 필요하다. 이 작업은 path rewrite가 아니라 서비스 이름 마이그레이션이다.
자체평가
- 정확성: 4.4/5 — 실제 경로 참조는 치환했고, 컨테이너/백업/비경로 식별자는 분류했다.
- 완성도: 4.3/5 — 최종 grep이 컨테이너/백업만 남지는 않았지만, 이는 “경로만 치환” 제약을 지키기 위한 의도적 보류다.
- 검증: 4.7/5 — Python/shell 문법 검증과 최종 grep 분류 완료.
- 최소 변경: 4.8/5 — 원본 로직은 건드리지 않고 경로·문서 경로·캐시만 처리했다.
- 종합: 4.55/5