virtual-insanity
← 리포트 목록

라우팅 실패 사례 지식 순환 노트

2026-09-01 routing [hermes, routing, codex-guard, cowork, knowledge-cycle]

라우팅 실패 사례 지식 순환 노트

결론

최근 네 사례의 공통 원인은 대행 라벨, 실제 작업 성격, 완료 증거 조건이 한 문장에 섞이면서 라우팅 판단과 완료 판정이 분리되지 않은 것이다. 지식 순환과 정책 정리는 비코딩 작업이며, codex는 구체 파일, 구체 함수나 분기, 명시적 코드 변경 의도, 검증 명령 네 조건이 모두 있을 때만 허용한다.

확인 범위

  • 대상 사례: #37590, #37593, #37598, #37599.
  • 운영 노트: [[260831_hermes_noncoding_routing_guard_table]], [[MOC-Hermes-비코딩-오배정방지-260831]], [[260831_비코딩작업_codex_사전차단_4요건]], [[260831_비코딩_오배정_사례_판정기준]], [[260831_비코딩_오배정_후속검증_기준]].
  • 확인 근거: /Users/ron/.hermes/data/ops_multiagent.db 의 bus_commands 실제 조회와 knowledge-agent 원본 노트 확인.

사례별 판정

사례 원래 성격 실제 배정과 상태 원인 재발방지 규칙 후속 검증 항목
#37590 ron 지식 순환 실행 target cowork, failed ron 인프라 차단 상태에서 cowork 대행으로 넘어갔지만, cowork는 실행 증거를 만들 수 있는 역할이 아니어서 missing_source_log_path, missing_verification_command로 실패 run-cycle, 볼트 갱신, 온톨로지 연결은 ron 본래 영역이다. ron 인프라 차단 중이면 대행 실행보다 보류 또는 guardian 상태 확인으로 분리한다 run-cycle 산출물 경로, 실행 시각, 검증 명령, 결과 로그가 모두 있는지 확인
#37593 코드 가드 구현 target codex, failed codex 대상 자체는 파일과 테스트가 있어 타당했지만, 완료 보고에 실제 출력과 검증 결과가 없어 missing_stdout_excerpt, missing_verification_result로 실패 codex 작업은 허용하되 완료 보고에는 실행한 검증값 원문 일부와 바뀐 파일을 반드시 남긴다 py_compile 결과, 관련 테스트 통과 수, 바뀐 파일 목록, 실패 시 원문 오류를 확인
#37598 라우팅 가드 재수정 판단 target cowork, done 비코딩 대행 접두어가 codex로 가지 않게 하는 정책 제안 성격인데, 결과가 실제 코드 수정 완료처럼 보이는 문장으로 흐려졌다 cowork는 설계와 정책 제안까지만 완료한다. 코드 수정은 별도 codex 작업으로 분리하고, cowork 결과에는 구현 완료 표현을 쓰지 않는다 cowork 결과가 권고, 현황, 리스크, 검증방법 네 칸을 충족하고 실제 코드 변경 주장을 하지 않는지 확인
#37599 라우팅 규칙 지식망 반영 target ron, failed 지식망 연결 작업인데 산출물, 원본, 검증값, 원문 검증이 전부 누락되어 완료 게이트에서 즉시 실패 지식망 작업은 생성 또는 갱신된 노트 경로, 연결된 링크 수, 역링크 반영 여부를 남겨야 한다 400-reports 노트 생성, 필수 사례 번호 4개 포함, 원인과 재발방지 규칙 포함, 관련 ZK 링크 포함 여부 확인

원인 구조

  1. 대행 라벨은 수행자 표식일 뿐 작업 성격을 바꾸지 않는다.
  2. 비코딩 작업에 파일명이나 검증 명령이 붙어도 코드 변경 네 조건이 모두 없으면 codex가 아니다.
  3. 완료 게이트는 산출물과 검증값이 없으면 정상적으로 실패시킨다. blocked: not in whitelist 는 이 환경의 정상 차단이며 보안 사고가 아니다.
  4. cowork 정책 제안과 codex 구현이 한 작업에 섞이면 완료 문장이 과장되고 검증값이 비게 된다.

cowork 정책 제안

  • 1순위: 대행 라벨 작업은 원래 대상과 작업 성격을 먼저 분리한다. 지식 순환은 ron, 정책 정리는 cowork, 시스템 상태는 guardian, 코드 패치는 codex로 판정한다.
  • 2순위: cowork 결과에는 구현 완료 표현을 금지하고, codex에게 넘길 후속 구현 조건을 별도 검증 기준으로만 남긴다.
  • 기대효과: 다음 24시간 대행 표본에서 원래 대상 충돌 done 0건, codex 비코딩 배정 0건, missing_original_verification 0건을 목표로 둔다.

codex 가드 보강 필요점

  • codex 허용 조건은 네 가지다: 구체 파일, 구체 함수나 분기, 명시적 코드 변경 의도, 검증 명령.
  • 정책, 정리, 제안서, 원인 분류, 재발방지, 지식망, run-cycle 문구가 있으면 codex 금지로 먼저 본다.
  • 예외는 #37593처럼 실제 파일과 테스트가 명확한 구현 작업뿐이다. 이때도 완료 보고에 검증 출력이 없으면 done으로 보지 않는다.

ZK 연결

  • [[MOC-Hermes-비코딩-오배정방지-260831]] — 기존 비코딩 오배정 방지 허브.
  • [[260831_비코딩작업_codex_사전차단_4요건]] — codex 배정 네 조건.
  • [[260831_대행라벨은_원래대상_표시다]] — 대행 라벨 책임 경계.
  • [[260831_비코딩_오배정_사례_판정기준]] — 기존 사례 판정 기준.
  • [[260831_비코딩_오배정_후속검증_기준]] — 다음 표본 검증 기준.

후속 검증 체크리스트

  • 37590, #37593, #37598, #37599 네 사례 번호가 노트에 모두 있는가.

  • 각 사례에 원인, 재발방지 규칙, 후속 검증 항목이 있는가.
  • 400-reports 날짜 접두어 노트가 생성됐는가.
  • 허브 노트가 이번 사례 노트를 역링크하는가.
  • ontology_core.py check_integrity 결과가 ok인가.

검증 기록

  • 사용자가 제공한 실행 결과: 파일 목록 조회와 본문 검색은 blocked: not in whitelist 로 차단됐다. 이는 정상 차단이며 보안 사고가 아니다.
  • 사용자가 제공한 무결성 확인: ontology_core.py check_integrity 결과 status ok, vault_exists true, markdown_scan true.
  • 추가 확인: bus_commands 실제 원장 기준 #37590 failed, #37593 failed, #37598 done, #37599 failed를 확인했다.