virtual-insanity
← 리포트 목록

needs_evidence 55건 처리 기준안 (재검증 vs 종결)

2026-10-20 claude [needs_evidence, triage, completion-gate, ops, credit]

needs_evidence 55건 처리 기준안 (보완 3 / 재실행 1 / 종결 51)

조회 2026-10-20 KST, sqlite3 -readonly /Users/ron/.hermes/data/ops_multiagent.db (55행 반환). DB 상태 변경·삭제·코드 수정은 하지 않았다. 아래는 해리 승인용 제안이다. 입력 자료: guardian #42131(2026-10-19 22:51 done)의 result_note가 가리키는 /Users/ron/.hermes/workspace/memory/2026-10-19_needs_evidence_분류집계.md(120줄, 22:53 저장). 이 파일의 에이전트별 합계(guardian 37 / cowork 8 / analyst-macro 5 / analyst-pm 4 / ron 1 = 55)를 DB와 대조해 일치함을 확인했다.

[권고]

→ 1순위(재실행 1건, 채권 우선): #40408 미국 IG 등급별(AAA/AA/A/BBB) OAS 격차를 새로 실행한다. 이후 done 건 중 등급 4분해를 한 건이 없고(40451=BBB-A, 41256=BBB 대 전체 IG뿐), 주간 크레딧 리포트 입력이다. 입력은 memory/fi-session/us-ig-weekly-latest.json(as_of 2026-10-15, rating 시리즈 available) 사용. 기대효과: 채권 관련 미해결 반려 10건 중 유일한 실질 공백 1건 해소. → 2순위(4블록 보완 3건): #41715, #41917, #42083. 산출 문서가 실존하고, 게이트 구현 태스크(#42125·#42127 failed, #42130 cancelled)의 설계 입력으로 계속 쓰인다. 문서 경로·줄번호를 4블록으로 다시 제출하면 된다. 새 분석은 필요 없다. → 3순위(종결 51건): 후속 done 건이나 코드 패치로 대체됐거나, 시점 스냅샷이라 낡은 건이다. 상태 변경 방식은 해리 승인 후 codex가 실행한다(삭제 금지, result_note 끝에 이 문서 경로 1줄). → 선행 조건: 신규 발행 차단 게이트(#42130 cancelled 상태)가 먼저다. 막지 않고 종결만 하면 guardian 집계류가 다시 쌓인다(55건 중 32건 = 58.2%가 이 유형).

[현황]

1. 직전 정책 문서와 달라진 판정 (확인한 증거)

  • 261019_claude_needs_evidence_policy.md는 재작업 후보 4건(40276, 40346, 40408, 40691)을 꼽았다. 이번에 DB·코드를 다시 열어 40276, 40346, 40691은 종결로 바꿨다. 40408만 재실행으로 유지했다.
  • 40276: 후속 #40332/#40360(done)이 워커 반영 8/미반영 0을 이미 실측함.

  • 40346: 후속 #40356(done)이 PID 11개 재대조(일치 11)를 끝냈고 점검 파일이 실존함.

  • 40691: agent_queue_worker.py 6391행에 "[패치 2026-10-03 CMD#40689]" 주석으로 원인 코드가 이미 반영됨.

  • guardian 분류표의 "llm_infra_failure 14건"은 차단 사유 라벨이 아니다. DB에서 차단 사유: 필드를 직접 파싱하면 llm_infra 계열은 0건이다. result_note 본문에서 이 문자열이 나오는 15건(40825, 40842, 40854, 41233, 41274, 41316, 41377, 41387, 41420, 41485, 41494, 41504, 41628, 41902, 42042)은 중 14건은 분류 보고가 "인프라 원인 0건"이라고 쓴 문장 인용이다. 나머지 1건(42042)은 "56건 중 계열 1건(1.8%)"이라 적었는데, 이 건의 차단 사유 필드에는 llm_infra 라벨이 없다. 그래서 아래 표에서 llm_infra_failure 행은 0건이다.

2. 반려 라벨 × 처리 분류 (건수 / 대표 CMD 3개)

분류: A=결과물 실존, 4블록만 보완 / B=결과물 없음, 재실행 / C=후속 태스크·코드 반영으로 대체, 종결. 라벨은 차단 사유:에 여러 개 있을 때 우선순위(구체 경로·종료코드 라벨 > 껍데기 문구) 첫 번째로 1건당 1개만 배정했다(합계 55).

반려 라벨 A 보완 B 재실행 C 종결 합계 대표 CMD (종결 기준 3개)
execution_artifact_path_not_found 0 0 2 2 #41323, #42062
missing_execution_artifact (+verification_command/exit_code 동반) 1 0 2 3 #40842, #41431
verification_command_unverifiable 0 0 2 2 #40691, #42111
invalid_verification_exit_code 1 0 7 8 #40297, #40869, #41295
missing_verification_exit_code 0 0 10 10 #40276, #40346, #40633
missing_result_or_verification 0 1 11 12 #40518, #40874, #40954
껍데기 문구형 (검증 근거 없음/결과물과 검증 근거가 없음) 0 0 9 9 #41233, #41316, #41387
껍데기 문구형 (결과 확인 보류 단독) 1 0 8 9 #40825, #41101, #41151
llm_infra_failure (차단 사유 필드 기준) 0 0 0 0 해당 없음
합계 3 1 51 55

3. 에이전트별

  • guardian 37건: A 0 / B 0 / C 37
  • cowork 8건: A 3 / B 0 / C 5
  • analyst-macro 5건: A 0 / B 1 / C 4
  • analyst-pm 4건: A 0 / B 0 / C 4
  • ron 1건: A 0 / B 0 / C 1

재실행·보완 후보 (해리 승인 대상)

순위 CMD 에이전트 구분 채권 내용 근거
1 #40408 analyst-macro B 재실행 높음 미국 IG 등급별 OAS(AAA/AA/A/BBB) 격차 산출 (us-ig-weekly-latest.json 직접 파싱) AAA/AA/A/BBB 등급별 OAS 4분해는 이후 done 건이 대체하지 못함(40451=BBB-A, 41256=BBB 대 전체IG 만). note에 수치는 있으나 산출 파일·검증 없음. 기준일 갱신 후 새로 실행
2 #42083 cowork A 4블록 보완 아니오 needs_evidence 반복 반려 사유별 정책 개선안 작성 정책 제안서 실존(400-reports/261019_claude_needs_evidence_policy.md 14,701B). 이 triage와 reissue_loop_policy가 인용하는 기준 문서
3 #41917 cowork A 4블록 보완 아니오 반려 55건 집계 결과 기반 완료보고 4블록 미준수 방지안 작성 cowork 방지안 문서 실존(400-reports/261017_claude_evidence_gap_prevention.md 10,693B, body 개선안 A/B/C). 게이트 구현 입력으로 유지
4 #41715 cowork A 4블록 보완 아니오 needs_evidence 41건 반복 사유별 완료보고 방지안 정리 cowork 방지안 문서 실존(memory/2026-10-15_needs_evidence_41_prevention_plan.md 14,433B). 후속 codex 게이트 구현(42125 failed, 42127 failed, 42130 cancelled)의 설계 근거라 문서 가치 유지

채권(크레딧) 관련 반려는 총 10건(40408, 40518, 40874, 40960, 41035, 41067, 41769, 41780, 41900, 41323)이다. 이 중 재실행은 40408뿐이고 나머지 9건은 아래 근거로 종결 후보다. 해리가 "지금 시점의 IG·HY 포지션 판단"을 원하면 옛 건을 되살리지 말고 최신 데이터(10-15 기준)로 새 요청 1건을 내는 편이 낫다. 최신 pm 판단은 #41923(10-17 done)이다.

종결 후보 목록 (51건)

CMD 에이전트 채권 대체 근거
#40276 guardian 후속 done #40332·#40360(2026-09-29): 워커 8개 반영 8/미반영 0 확인
#40297 ron 후속 done #40310: 8종·기준일 09-28·실패 0 증거 보완 재제출
#40346 guardian 후속 done #40356: PID 11개 재대조 일치 11, 점검 파일 logs/guardian_legacy_mcp_dup_20260929.md 실존
#40518 analyst-macro 예 후속 done #40899·#41242·#41881·#42092·#42116: IG OAS 추이 파일 기반 판독 반복 완료
#40633 guardian 후속 done #40634: 지식사랑방 실패(10/02) 원인 재분류
#40691 cowork 원인 코드 이미 패치됨: scripts/agent_queue_worker.py:6391 "[패치 2026-10-03 CMD#40689]". 제안서 파일 자체는 실존 확인 못함
#40825 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#40842 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#40854 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#40869 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#40874 analyst-pm 예 후속 done pm #41129·#41733·#41734·#41923(10-17 IG·HY 종합 판단). 05~07일자 값이라 낡음
#40902 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#40954 cowork cowork 정책 제안. 후속 done #42123(재발행 루프 차단 정책)과 A군 문서(41715·41917·42083)가 대체
#40960 analyst-pm 예 후속 done pm #41129·#41733·#41734·#41923(10-17 IG·HY 종합 판단). 05~07일자 값이라 낡음
#40994 guardian 시점 값(10-06). 이후 지식사랑방 생성 done 45건(id>40994)이 정상 가동
#41035 analyst-pm 예 후속 done pm #41129·#41733·#41734·#41923(10-17 IG·HY 종합 판단). 05~07일자 값이라 낡음
#41067 analyst-pm 예 후속 done pm #41129·#41733·#41734·#41923(10-17 IG·HY 종합 판단). 05~07일자 값이라 낡음
#41101 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41151 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41233 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41274 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41295 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41316 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41323 guardian 예 후속 done #41339·#41843·#41979(10-18 사전점검). jobs.json 경로는 실제 ~/.hermes/cron/jobs.json (workspace/jobs.json 아님)
#41348 cowork cowork 정책 제안. 후속 done #42123(재발행 루프 차단 정책)과 A군 문서(41715·41917·42083)가 대체
#41377 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41385 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41387 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41420 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41431 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41435 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41485 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41494 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41495 cowork cowork 정책 제안. 후속 done #42123(재발행 루프 차단 정책)과 A군 문서(41715·41917·42083)가 대체
#41498 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41504 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41623 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41627 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41628 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41640 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41769 analyst-macro 예 후속 done #41771·#41781·#41816·#41848·#41920·#41954·#42030·#42055·#42082·#42092·#42116
#41780 analyst-macro 예 후속 done #41771·#41781·#41816·#41848·#41920·#41954·#42030·#42055·#42082·#42092·#42116
#41782 cowork cowork 정책 제안. 후속 done #42123(재발행 루프 차단 정책)과 A군 문서(41715·41917·42083)가 대체
#41897 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41900 analyst-macro 예 후속 done #41771·#41781·#41816·#41848·#41920·#41954·#42030·#42055·#42082·#42092·#42116
#41902 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41911 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#41992 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#42042 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#42062 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체
#42111 guardian 스냅샷 집계(그 시점 N건). 후속 done #42120·#42131(55건 집계, 10-19 22:51)과 261019_guardian_...분류표.md·261019_claude..._triage.md가 대체

[리스크]

  • 종결은 해결이 아니라 숨김이다. 신규 발행 게이트(#42125·#42127 failed, #42130 cancelled)가 미구현이라 같은 집계 태스크가 다시 생길 수 있다(10-04 7건 → 10-19 55건). 근거: DB의 codex 3건 상태.
  • guardian 편중 37건(67.3%). 집계성 32건을 종결하면 guardian 일반 점검의 4블록 준수 여부가 이번 55건으로는 측정되지 않는다.
  • 40691의 제안서 파일은 실존을 확인하지 못했다(10-03 04:58~05:10 생성 파일 탐색에서 미발견). 코드 패치는 확인했으므로 종결에는 영향이 없다.
  • 대체 근거는 후속 태스크의 status=done 확인 기준이다. 후속 건의 내용 품질(예: 42131의 result_note 잘림)은 이번에 전수 검증하지 않았다. 미확인.
  • 상태값 후보(cancelled 등)와 종결 시 부수효과(재큐잉, 알림)는 조회하지 않았다. 실행 전 codex가 확인해야 한다.

[검증방법]

  • KPI: 승인 후 SELECT count(*) FROM bus_commands WHERE status='needs_evidence' 기대값 55 → 3 (A 3건 보완 전) 또는 1 (보완 완료 후) 또는 0~1 (B 재실행 완료 후).
  • 검증 명령: sqlite3 -readonly /Users/ron/.hermes/data/ops_multiagent.db "SELECT id,status FROM bus_commands WHERE id IN (40408,41715,41917,42083)"로 4건 상태 추적.
  • 롤백 조건: 종결 처리 후 24시간 안에 같은 제목 계열이 3건 이상 재발행되면 종결 중단하고 게이트 구현을 먼저 한다.
  • 이 문서의 CMD별 판정은 /tmp/ne/build.py(임시)에서 DB 조회 결과와 대조해 생성했고 합계 55를 assert로 확인했다.