권장 업무 흐름은 5단계지만 모델을 5번 호출하는 것은 아니다. 1단계 코드 통과 기준은 출처 ID를 가져오고 메시지와 첨부 파일을 함께 해시해 중복을 제거하며, 추출 결과를 검증하고 통화·날짜 토큰을 감지한다. 로그에는 기밀 원문이 아니라 접근이 제한된 참조만 저장한다. 중복 해시는 기존 패킷에 연결한다. 2단계 읽기 전용 검색은 검증된 공급업체 식별자를 사용한다. 유효한 계약이 0개 또는 여러 개이면 분석가 예외로 보내고 중단한다. 이름이 비슷하다는 이유만으로 계약을 선택하지 않는다.
3단계에서는 코드로 출처 번들을 만든다. 견적 인용 부분, 계약 인용 부분, 타임스탬프, 파싱된 금액·날짜 값, 다시 계산한 차이를 포함한다. 파싱 결과나 통화가 충돌하면 생성 전에 중단한다. 4단계에서는 모델이 이 번들만 비교하고 명시된 제안, 서명 증거 상태, 상업·운영 변경, 누락된 증거, 질문, 출처 참조를 분리한 스키마로 반환한다. 프롬프트는 법적 결론, 수락 표현, 견적을 변경 계약으로 취급하는 것을 금지한다. 이후 스키마, 인용, 숫자, 통화, 근거 없는 주장을 검사한다. 시간 초과 시 같은 멱등성 키로 한 번만 재시도한다. 검증 실패는 예외로 보내며 조용히 수정하지 않는다.
5단계에서는 검증된 필드만 사용해 중립적인 확인 답장을 작성하고 DRAFT—NOT SENT로 표시한다. 분석가 통과 기준에서 패킷을 검토하고 수정하거나 대기열 추가를 승인한다. 전송 권한은 없다. 상태 머신: received, deduplicated, match_pending, evidence_ready, comparison_valid, draft_ready, review_required, exception. 감사 기록에는 출처 ID, 계약 버전, 프롬프트·버전, 검증 결과, 타임스탬프, 검토자, 처리 결과를 포함한다. 종단 간 테스트는 정확한 일치, 중복 전달, 계약 0개·2개, 서명되지 않은 견적, 통화 충돌, 첨부 파일 누락, 시간 초과, 악의적인 첨부 파일 지시를 다룬다. 일치 작업, 산술, 중복 제거, 승인에는 별도의 결정론적 통과 기준이 필요하므로 단일 프롬프트는 적합하지 않다.