TL;DR

  • Truth Firewall은 로컬 저장소의 범위가 한정된 Python 작업에서 Codex가 완료를 선언해도 최대 3회의 시도 동안 필수 조건을 독립 검증하고, 확인된 경우에만 VERIFIED_DONE으로 판정함.
  • 검증 조건은 저장소 내 파일 존재 여부, 최상위 함수의 정확한 매개변수 목록, JSON 입력과 기대 반환값을 비교하는 블랙박스 검사로 구성됨.
  • 조건을 충족하지 못한 완료 선언은 REJECT_DONE으로 돌려보내고 Codex가 계속 작업하도록 하며, 증명이 불가능하거나 시도가 소진되면 HUMAN_REQUIRED로 판정함.
  • VERIFIED_DONE은 명시한 필수 검사만 최종 관찰 상태에서 통과했다는 뜻이며, 빠진 요구 사항이나 검사 자체의 불완전성, 모든 동작의 정확성을 보장하지 않음.
  • 현재 파일럿은 주관적 품질, UI 동작, 배포, 외부 서비스, 광범위한 저장소 작업을 다루지 않으며, Codex는 일반 사용자 권한으로 파일과 작업 명세에 접근함.

빠른 시작: 5분 안에 시도하기

  • Windows PowerShell, Python 3.11 이상, Node.js, Git, 설치 및 인증이 완료된 Codex CLI가 필요함. Codex 설치와 로그인은 이 설정에 포함되지 않음.
  • GitHub 저장소를 복제하고 프로젝트 디렉터리에서 Python 가상 환경을 만든 뒤 Truth Firewall을 설치함.
  • 작업할 Python 저장소에 .truth-firewall 디렉터리를 만들고 예제 작업 명세를 task.json으로 복사한 다음 편집함. 예제는 동작하는 slugify 작업이지 범용 작업 명세가 아님.
  • 마지막 실행 전에 .truth-firewall/task.json에 범위가 한정된 Python 작업과 모든 필수 승인 조건을 작성함. $tfRoot가 설정된 상태를 유지하도록 같은 PowerShell 세션을 사용함.
  • 자세한 내용은 QUICKSTART.md를 참고함.
  • 지원되는 검사는 다음과 같음.
  • file_exists: 저장소 기준 상대 경로가 존재하거나 존재하지 않는지 확인함.
  • python_function: 최상위 함수의 매개변수 목록이 정확히 일치하는지 확인함.
  • black_box: JSON 인수 목록에 대해 기대한 반환값이 나오는지 확인함.
  • 각 조건에 고유한 ID를 부여해야 하며, 나열된 모든 조건은 필수임. task.json에 없는 요구 사항은 검증할 수 없음.

판정의 의미

  • VERIFIED_DONE: 관찰한 최종 저장소 상태에서 명시된 모든 필수 검사를 통과함. 터미널에는 원래 작업, 검사 요약, 사용한 시도 횟수가 표시됨.
  • REJECT_DONE: 작업자의 완료 선언이 필수 검사 하나 이상을 통과하지 못함. 이는 중간 판정이며, Truth Firewall은 조치 가능한 실패 내용을 Codex에 보내고 최대 세 번의 시도 안에서 작업을 이어감.
  • HUMAN_REQUIRED: 시도 횟수가 소진됐거나 필수 조건을 검사할 수 없는 경우처럼 완료를 증명하지 못함. 표시된 요구 사항을 검토하고 다음 조치를 결정해야 함.
  • ERROR: 작업자, 검증기 또는 실행 환경이 실행을 완료하지 못함. 작업 실패에 대한 판정이 아니라 실행 문제임.

이 도구가 필요한 이유

  • 작업자가 “완료”라고 말하거나 코드가 존재하거나 작업자가 작성한 테스트가 통과했다는 사실만으로는 원래 요구 사항을 충족했다고 볼 수 없음.
  • Truth Firewall은 매 시도 후 사용자가 제공한 승인 조건을 검사하고, 근거가 부족한 완료 선언을 차단함.
  • 검사 실패 시 Codex가 자동으로 작업을 이어갈 수 있어 매 차례를 지켜볼 필요가 없음.

`VERIFIED_DONE`의 실제 의미

  • 최종 관찰된 작업 공간 상태에서 명시된 필수 검사들이 통과했다는 뜻임.
  • 명세에서 빠진 요구 사항이 충족됐는지, 검사 자체가 완전한지, 가능한 모든 동작이 올바른지는 증명하지 않음.
  • 시작 전에 작업을 포괄하는 검사를 작성해야 함. 지원되는 검사로 완료 여부를 확립할 수 없다면 사람의 판단이 필요한 결과로 취급해야 함.

현재 파일럿 범위

  • 첫 릴리스는 로컬 저장소, 범위가 한정된 Python 코딩 작업, Codex CLI 작업자, 결정론적 파일/API/입출력 검사, 최대 세 번의 작업자 시도를 지원함.
  • 소규모 로컬 실행 요약은 .truth-firewall/runs/<run-id>/summary.json에 기록되며, 작업 텍스트나 소스 코드 없이 판정과 시도 횟수를 저장함.

제한 사항

  • 적대적인 작업자에 대한 보안 경계가 아니며, 보편적 정확성을 주장하지 않음.
  • Codex는 일반 사용자 권한으로 실행되며 작업 명세를 포함해 해당 계정에서 접근할 수 있는 파일에 접근할 수 있음. 파일럿에는 폐기 가능하거나 민감하지 않은 저장소를 사용해야 함.
  • 주관적 품질, UI 동작, 배포, 외부 서비스, 광범위한 저장소 작업, 지원되는 검사로 관찰할 수 없는 요구 사항은 파일럿 범위 밖임.

개인정보 보호

  • Truth Firewall은 원격 측정 정보, 소스 코드, 작업 텍스트를 자동으로 업로드하지 않음.
  • Codex는 사용자 계정 설정에 따라 작업 지침과 읽은 문맥을 구성된 서비스로 전송함.
  • 상세한 로컬 실행 로그는 운영체제의 임시 디렉터리에 저장되며 작업 프롬프트와 작업자 출력이 포함될 수 있음. 비공개 코드를 사용하기 전에 해당 설정을 검토해야 함.

피드백 및 라이선스

  • 실제 작업에서 Truth Firewall을 시험할 때는 PILOT_FEEDBACK.md를 이용함.
  • 기여 안내와 로컬 테스트 명령은 CONTRIBUTING.md에 있음.
  • Truth Firewall은 MIT 라이선스를 따름.