virtual-insanity
← 리포트 목록

08-17 정지 크론 분류표 수치 불일치 종결 노트 (보고서 A3/C4/D31 vs 버스 A24/B6/C8)

2026-09-28 hermes [ops, cron, triage, rollback-0817, closeout, orphan-result]

08-17 정지 크론 분류표 — 수치 불일치 종결 노트

조회만 했다. 크론은 켜거나 끄지 않았다.

한 줄 결론

맞는 수치는 보고서 쪽(A 3 / B 0 / C 4 / D 31, 합계 38)이다. guardian 버스 메시지의 "A 24 / B 6 / C 8"은 정의가 다른 중간 결과가 아니라, 큐 워커의 주 모델이 시간초과로 끊긴 뒤 대체 모델이 만든 근거 없는 수치다. 파일에 없는 행을 인용했고, 파일이 저장되기 약 1분 전에 보낸 메시지다.

1. 재집계 (jobs.json 읽기 전용 파싱)

  • 명령: python3 -c "import json; d=json.load(open('/Users/ron/.hermes/cron/jobs.json')); print(sum(1 for j in d['jobs'] if j.get('enabled') is False and str(j.get('paused_at') or '').startswith('2026-08-17') and not (j.get('paused_reason') or '').strip()))"
  • 조회 시각: 2026-09-28 10:25:31 KST (jobs.json 수정시각 10:24:26)
  • 결과: 전체 158 / 활성 50 / 조건 해당 38개 → 보고서 합계 38과 일치.
  • 38개 전부 종류 shell. 마지막 상태: ok 4 / error 34 (429 한도초과 33 + no_agent=True but no script is set 1건 etf-radar-domestic).
  • 보고서 본문 31행의 "ok 5개 / error 33개, 그중 429 32개"는 소소한 오기다. 보고서 자체 표(45~82행)에서도 ok 행은 1·2·3·7번 4개뿐이고, 429는 C 3 + D1 20 + D2 3 + D3 7 = 33이다. 분류(A/B/C/D) 결과에는 영향 없음.

2. A/C 목록 정의 대조 (jobs.json 기준)

묶음 id 셸 스크립트 실존 LLM 호출 grep last_status 주제 판정
A hmig-kpi-weekly shell 있음 0 ok (마지막 실행 08-10) 운영 KPI 정의 부합 (태그 review-before-enable)
A macro-series-collector shell 있음 0 ok (08-14) FRED 거시 정의 부합
A ocRESTORE-copper-market-collector shell 있음 0 ok (08-14) 구리 정의 부합
C ocCRIT-oil-supply-monitor-global shell 있음 4 (LLM 호출) error 429 석유·호르무즈 (태그 energy/oil) 정의 부합
C ocRESTORE-refining-tracker shell 있음 0 error 429 정유 (태그 energy) 정의 부합
C ocRESTORE-tanker-tracker shell 있음 0 error 429 탱커 (태그 energy) 정의 부합
C ocRESTORE-urea-price-tracker shell 있음 0 ok (08-10) 요소비료 (태그 fertilizer) 정의 부합 — A 조건도 맞지만 해리 제외주제라 C 우선
  • A 정의(셸·스크립트 있음·LLM 없음·마지막 ok)를 만족하는 잡은 38개 중 ok 4개가 상한이다. 그중 요소비료 1개가 C로 빠지므로 A는 3개가 최대이며 24개는 구조적으로 불가능하다.
  • B(스크립트 없음)는 38개 전부 스크립트가 실존해 0개. 버스의 "B 6"도 성립 불가.
  • C(에너지·비료·호르무즈)는 태그·스크립트 기준으로 4개. 버스의 "C 8"은 근거 없음.

3. 버스 수치 24/6/8 판정 — 정의 차이가 아니라 대체 모델의 허위 수치

  • 버스 메시지: bus/messages.jsonl 38368행, 2026-09-28T01:05:40Z(= 10:05:40 KST), guardian→ron, "결론: A 군 24 개, B 군 6 개, C 군 8 개로 분류 완료".
  • 그 메시지가 근거로 든 "보고서 행 3 | A | 24 |"는 실제 파일에 없다. 보고서 3행은 date: 2026-09-28이고, grep -n "| A | 24" 결과 0건(exit 1).
  • 어떤 정의로 세도 A+B+C = 38이 되는 24/6/8 조합은 나오지 않는다(ok가 4개뿐이므로 A 24 불가).
  • 시간 순서(실측):
  • 10:03:41 #40261 생성 (guardian)
  • 10:04:13 게이트웨이 세션 api-902544401c96d04b 시작 (모델 claude-opus-5-5, 제목 "08-17 롤백 정지 크론 38개 분류표 작성")
  • 워커 로그: 주 모델 openai-codex/gpt-5.4 59초 시간초과(streak=3) → 대체 경로로 넘어감
  • 10:05:40 guardian 버스 메시지(24/6/8) 발송
  • 10:05:45 #40261 completion-evidence-block → failed (사유: 보고서 경로 없음 + 존재하지 않는 /Users/ron/.hermes/workspace/jobs.json)
  • 10:06:35 보고서 파일 저장 (게이트웨이 세션 도구 결과 Counter({'D1': 20, 'D3': 8, 'C': 4, 'A': 3, 'D2': 3}))
  • 10:06:50 게이트웨이 세션 최종 답변 "A 3개, B 0개, C 4개 … 나머지 31개"
  • 결론: 24/6/8은 끊긴 뒤 대체 모델이 과제 문구만 보고 지어낸 요약이다. 중간 계산 흔적(다른 A/B/C 정의)은 로그·세션 어디에도 없다.

4. #40261 장부 상태와 실제 산출물의 관계

  • 장부: bus_commands id=40261, claimed_by=guardian, status=failed, updated 10:05:45, 사유 execution_artifact_path_not_found.
  • 실제: /Users/ron/knowledge-agent/400-reports/260928_hermes_paused-cron-0817-triage.md 존재(수정 10:06:35, 87줄, 38행 표).
  • 관계: 게이트가 검사한 10:05:45 시점엔 파일이 정말 없었다(저장 50초 전). 게이트 판정 자체는 그 순간엔 맞았고, 뒤늦게 끝난 게이트웨이 세션의 결과가 장부에 연결될 통로가 없어 고아 결과가 됐다. 260928_cowork_artifact-after-submit-rejection.md(14~18행)에서 밝힌 "워커가 약 60초에 게이트웨이 세션을 끊고 대체 모델로 넘김 → 끊긴 세션은 계속 돌아 나중에 파일 생성" 패턴과 동일하다.
  • 처리: 장부 상태는 이번에 바꾸지 않았다(조회 작업). 산출물 내용은 이 노트로 검증되어 유효하다 — 원 작업 #40261의 실질 결과물로 인정한다.
  • 추가 관찰: 대체 모델 답변이 반려되지 않고 버스로 먼저 흘러나간 점이 이번 혼선의 직접 원인이다. 증거 게이트가 반려한 태스크의 버스 상태 메시지도 함께 막거나 "미검증" 표시를 붙이는 보완이 필요하다(별도 codex 과제 후보).

5. A군 재가동 후보 (해리 확인 필요 — 이번에는 켜지 않음)

  • 상태: 해리 확인 필요 — A 3개(아래 표) + D1 20개(조건부: 수동 1회 실행 정상 종료 확인 후). 재개 실행은 하지 않음.
id 스크립트 마지막 성공 켜기 전 확인할 것
macro-series-collector scripts/pipeline/macro_series_collector.py 08-14 06:50 크레딧 스프레드(FRED) 원천. 일부 시리즈는 다른 아침 수집이 대체 중 — 중복 수집 여부
ocRESTORE-copper-market-collector scripts/pipeline/copper_market_collector.py 08-14 07:30 현 관심사(크레딧)와 거리 있음 — 필요성 판단
hmig-kpi-weekly scripts/pipeline/kpi_telegram_wrapper.py 08-10 07:50 태그 review-before-enable — 발송처(텔레그램 방) 확인
  • 보고서 권고대로 D1 20개(429 사건으로 에러 남은 순수 셸 잡)는 수동 1회 실행으로 정상 종료 확인 후 별도 승인 대상이다.
  • 정지 유지: C 4개(에너지·비료·호르무즈) + D3 8개.

검증

  • 재집계: 38 (10:25:31 KST)
  • test -f /Users/ron/knowledge-agent/400-reports/260928_hermes_paused-cron-0817-triage.md → exit 0
  • test -f /Users/ron/knowledge-agent/400-reports/260928_hermes_paused-cron-0817-triage-closeout.md → exit 0 (10:27 KST 확인)

관련

  • [[260928_hermes_paused-cron-0817-triage]] (원본 분류표)
  • [[260928_cowork_artifact-after-submit-rejection]] (고아 세션 패턴)