콘텐츠로 이동

ProjectFR Night Automation Wiki

Updated: 2026-05-27 03:28:35 KST

목적

  • 야간 자동화 흐름을 TODO 중심 실행으로 고정
  • TODO가 모두 비면 리뷰 모드로 자동 전환
  • no_agent 크론에서도 footer 표시
  • 중복 실행/실패 루프/과도한 docs TODO 추가 방지

현재 크론잡 상태

  • deterministic-scheduler-watch (72ffc62b1370)
  • state: scheduled
  • schedule: every 1m
  • script: deterministic_scheduler.py
  • no_agent: true
  • projectfr-night-review (c858ff94ec41)
  • state: scheduled
  • schedule: */5 2-7 * * *
  • script: projectfr_night_review_claude.sh
  • no_agent: true
  • workdir: /mnt/f/Agent/hermes/Godot/projects/ProjectFR
  • projectfr-manual-mode-guard (963b927655bc)
  • state: scheduled
  • schedule: every 1m
  • script: projectfr_cron_guard.py
  • deliver: local
  • no_agent: true

적용된 자동화 플로우

projectfr_night_review_claude.sh 1) TODO 확인 2) TODO 작업(현재 in_progress 우선 1개) 3) Docs 체크 후 TODO 1개 추가 여부 판단 (토글 가능) 4) open TODO가 0개면 리뷰 실행

변경 파일

  • /home/zooin/.hermes/scripts/projectfr_night_review_claude.sh
  • TODO->작업->docs->리뷰 단계형 실행
  • no_agent footer 직접 출력
  • docs 체크 ON/OFF 토글
  • docs TODO 추가 쿨다운(24h)
  • flock 락(중복 실행 방지)
  • 연속 실패 카운트 + 서킷브레이커(기본 3회)
  • 전체 실행 타임아웃(기본 300s)
  • 실행 이력 JSONL 로그 (night-pass-runs.jsonl)
  • Healthchecks dead-man ping 연동(옵션)
  • /home/zooin/.hermes/scripts/deterministic_scheduler.py
  • no_agent 경로 메시지에 footer append 반영
  • /home/zooin/.hermes/scripts/projectfr_cron_guard.py
  • manual-mode 플래그 기반 auto pause/resume 적용
  • /home/zooin/.hermes/scripts/projectfr_manual_mode_on.sh
  • 수동작업 모드 ON(+TTL)
  • /home/zooin/.hermes/scripts/projectfr_manual_mode_off.sh
  • 수동작업 모드 OFF
  • /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/docs-todo-check.enabled
  • 현재 값: on
  • /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/night-pass-state.json
  • consecutive_failures, docs_todo_last_added_ts 상태 저장
  • /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/night-pass-runs.jsonl
  • 실행 이력(시작/종료/소요/결과/사유/오픈TODO수)

토글/운영 방법

  • Docs->TODO 체크 ON/OFF
  • 파일 토글: /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/docs-todo-check.enabled
    • on|1|true / off|0|false
  • 환경변수 override: PROJECTFR_DOCS_TODO_CHECK=on|off
  • 전체 타임아웃 조정
  • PROJECTFR_NIGHT_PASS_TIMEOUT_SEC=300 (기본)
  • 서킷브레이커 확인
  • 상태 파일: /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/night-pass-state.json
  • 수동작업 모드 ON/OFF (자동 pause/resume)
  • ON: bash /home/zooin/.hermes/scripts/projectfr_manual_mode_on.sh 120 "manual-work"
  • OFF: bash /home/zooin/.hermes/scripts/projectfr_manual_mode_off.sh
  • 상태 파일: /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/manual-work.json
  • 감시 크론: projectfr-manual-mode-guard가 1분마다 적용
  • Healthchecks dead-man 모니터링 (옵션)
  • URL 파일: /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/healthchecks-url.txt
  • 또는 env: PROJECTFR_HEALTHCHECKS_URL
  • 동작: /start ping, 성공시 base ping, 실패시 /fail ping
  • 실행이력 로그 확인
  • 파일: /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/night-pass-runs.jsonl
  • 최근 20건: tail -n 20 /mnt/f/Agent/hermes/Godot/projects/ProjectFR/.hermes/night-pass-runs.jsonl

참고한 고스타 패턴 (벤치마크)

  • healthchecks/healthchecks (★10k+): dead-man ping(시작/성공/실패) 패턴
  • robfig/cron (★14k+): 스케줄러 job wrapper/관측성 강화 패턴
  • go-co-op/gocron (★7k+): 단일실행/락/안정적 job 실행 제어 패턴
  • 위 3개에서 우리 자동화에 즉시 이식 가능한 부분(락, 상태기록, dead-man ping) 우선 적용

추가된 스킬

  • wiki-ops-log
  • 위치: ~/.hermes/skills/note-taking/wiki-ops-log/SKILL.md
  • 용도: 크론/자동화/스킬 변경 내역을 위키 형식으로 정리

최근 작업 타임라인 (요약)

  • footer 설정/경로 점검 및 no_agent 원인 확인
  • projectfr-night-review에 footer 직접 출력 반영
  • TODO 미완료 시 스킵 로직 -> TODO 실행 중심 로직으로 변경
  • docs 기반 TODO 추가 단계 도입 + ON/OFF 토글
  • flock 락, cooldown, failure circuit breaker 추가
  • 두 크론잡 일시정지(paused) 처리

재개 명령

  • hermes cron resume 72ffc62b1370
  • hermes cron resume c858ff94ec41

권장 운영

  • 수동 작업 중: 크론 paused 유지
  • 수동 작업 종료 후: 위 두 resume 명령으로 재개