← 리포트 목록
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 set1건 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.jsonl38368행, 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_commandsid=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 0test -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]] (고아 세션 패턴)