
    xi              
           U d dl mZ dZddddddddddd	dd
e dddde ddddZeeeeef   f   ed<   dedeeef   fdZdedefdZdede	fdZ
	 ddedee   dedee   fdZy)    )Dictuh   외부 AI 호출 전 sanitize 게이트 필수: PII(주민번호/연락처/API키) 마스킹 후 전달. u/   셀프 QC: 구문 에러, 기본 기능 확인.u   즉시 머지.)g1g2g3uQ   affected_files에 명시된 파일 확인. 다른 팀과 겹침 없는지 확인.uB   팀 테스터 또는 마아트 QC 수행. 기능 테스트 필수.u   worktree finish --action pr로 PR 생성 → Gemini 리뷰 대기(5분) → High 0건 시 자동 머지. 타임아웃 시 리뷰 없이 머지.u   3문서 필수. Codex 사전 검증 PASS 필요. affected_files 교차 분석. 3 Step Why 2nd 검증: Codex 사전 리뷰 시 "이 설계의 대안은 무엇이며, 왜 이 접근이 최선인가?" 질문을 포함할 것. uJ   Gemini PR 리뷰 + 마아트 독립 검증. 두 검증 모두 PASS 필요.u   G3 독립 검증 필수: python3 scripts/g3_independent_verifier.py --task-id {task_id} 실행 → PASS 필요. worktree finish --action pr → Gemini 리뷰 + 충돌 감지 시 집중 리뷰. 시맨틱 충돌 분석. High 0건 시 자동 머지.uG   3문서 필수 + Agent 미팅 만장일치 + Codex 사전 검증 PASS. u   Gemini PR 리뷰 + 마아트 QC + 로키 레드팀 투입. 전체 PASS 필요. 3 Step Why 3rd 검증: 로키(DA) 레드팀 리뷰 시 "이 설계가 실패할 수 있는 시나리오는?" 적대적 질문을 포함할 것.u   G3 독립 검증 필수: python3 scripts/g3_independent_verifier.py --task-id {task_id} 실행 → PASS 필요. 전팀 완료 대기 + worktree finish --action pr → Gemini 리뷰 + Graduated Auto-Gate (L1→L2→L3) 통과 필수.)r               GATE_INSTRUCTIONSlevelreturnc                 <    t         j                  | t         d         S )u2   레벨에 해당하는 게이트 지시를 반환.r   )r   getr   s    0/home/jay/workspace/prompts/gate_instructions.pyget_gate_instructionsr   "   s      (9!(<==    c                     t        |       }g }|d   r|j                  d|d           |d   r|j                  d|d           |d   r|j                  d|d           dj                  |      S )u   프롬프트에 삽입할 게이트 지시 문자열을 생성.

    level >= 3일 때 g1에 sanitize 게이트 지시가 자동 포함됩니다.
    (GATE_INSTRUCTIONS의 g1 값에 이미 포함되어 있으므로 별도 처리 불필요)
    r   u   [G1 설계 게이트] r   u   [G2 구현 게이트] r   u   [G3 머지 게이트] 
)r   appendjoin)r   gatesliness      r   format_for_promptr   '   s     "%(EET{-eDk];<T{-eDk];<T{-eDk];<99Ur   c                     | dk\  S )u?   해당 레벨에서 Codex 사전 검증이 필요한지 반환.r
    r   s    r   should_run_codex_checkr   8   s    A:r   	task_fileaffected_filesworkspace_rootc                     ddl }|j                  j                  |dd      }d|d| g}|r|j                  dg|z          |j                  d|g       |S )	u)   codex_gate_check.py 실행 명령 반환.r   Nscriptszcodex_gate_check.pypython3z--task-filez--affected-filesz--workspace-root)ospathr   extend)r   r    r!   r%   script_pathcmds         r   get_codex_gate_commandr*   =   s[     '',,~y:OPKk=)
<C

&'.89JJ"N34Jr   N)z/home/jay/workspace)typingr   _SANITIZE_GATE_INSTRUCTIONr   intstr__annotations__r   r   boolr   listr*   r   r   r   <module>r2      s#    H  ? ? bR ` p  qK  pL  MZ G XXrWst o y+0 4T#s(^+, :> >c3h >
S S "# $  F[$(I?B	#Yr   