Independent Audit Gate
고위험 변경을 완료로 선언하기 전에 독립 감사와 증거 확인을 강제한다. 변경을 만든 주체와 다른 감사자가 최종 대상을 직접 검사하고 PASS, FAIL, BLOCKED 중 하나로 판정하게 한다.
적용 범위
다음 작업을 실행, 병합, 릴리스 또는 완료하려 할 때 사용한다. diff 크기보다 실패 시 영향과 복구 가능성을 기준으로 판단한다.
- 인증, 인가, 비밀값, 암호화, 테넌트 격리 또는 외부 노출
- 과금, 결제, 환불, 가격, 지급 또는 거래 실행
- 영구 삭제, 대량 수정, 개인정보, 백업·복원 또는 데이터 정합성
- 스키마, 제약, 데이터 변환, 하위 호환성 또는 rollback 변경
- 프로덕션 배포, 인프라, CI/CD, 장애 대응 또는 서비스 가용성
- 조직이나 프로젝트 전체에 적용되는 기본 권한, 정책, 런타임 또는 네트워크 설정
- 사용자가 독립 감사나 완료 게이트를 명시적으로 요청한 변경
비프로덕션 환경도 실데이터·민감 데이터·공유 자원·외부 연동에 영향을 주거나 복구 가능성이 검증되지 않았다면 고위험으로 본다. 격리된 로컬 환경에서 합성 데이터만 사용하고 즉시 복구할 수 있는 작업은 위험 분류 근거를 남긴 뒤 제외할 수 있다.
단순 조사, 저위험 문서 수정, 일반 코드 리뷰, 구현 대상이 없는 설계 토론에는 이 스킬을 사용하지 않는다. 복잡한 선택지를 여러 관점에서 숙고하는 일은 별도의 deliberation workflow에 맡기고, 선택한 방안을 실제 고위험 변경으로 실행할 때 이 게이트를 적용한다.
권한과 역할 경계
- 이 스킬은 파일 변경, 승인, 병합, 배포, 데이터 삭제 또는 외부 메시지 전송 권한을 새로 만들지 않는다.
- 적용 가능한 상위 지침,
AGENTS.md, 사용자 권한과 승인 범위를 먼저 따른다.
- 감사자는 구현·수정·구현자 검증에 참여한 에이전트와 다른 실제 worker여야 한다. 역할 이름만 바꾼 자기감사는 독립 감사가 아니다.
- 감사자는 fresh context로 시작해야 한다. 협업 도구가 지원하면
fork_turns:none을 사용하고 재위임과 하위 에이전트 생성을 금지한다.
- 감사자는 구현자의 요약이나 자기평가 대신 요구사항, 최종 변경, 원시 검증 결과와 실패 가능성을 직접 확인한다.
- 감사 의견은 외부 증거가 아니다. 메인 에이전트는 파일, diff, 테스트, 로그, 공식 계약과 실제 배포 상태를 대조해 최종 책임을 진다.
실행 절차
감사자 briefing을 만들거나 판정을 해석하기 전에 references/audit-protocol.md를 읽는다.
- 위험 분류 — 영향 범위, 복구 가능성, 데이터 민감도, 공유성, 외부 시스템, 보안·권한·금전·스키마 영향을 확인한다. 고위험 가능성을 합리적으로 배제할 수 없으면 게이트 대상으로 승격한다.
- 최종 대상 고정 — 요구사항과 함께 정확한 commit SHA, diff, artifact digest, 실행·배포 ID 또는 관측 가능한 상태를 기록한다. 아직 최종 대상이 없는 설계 단계에서는 최종 판정을 내리지 않는다.
- 자체 검증 수집 — 구현자가 실행한 테스트, 원시 결과, 알려진 한계, rollback 절차와 실행·배포 전후 확인 항목을 모은다. 테스트 통과만으로
PASS를 추정하지 않는다.
- 독립 감사 배정 — 구현자와 다른 fresh auditor에게 완결된 briefing과 원자료 접근 경로를 준다. 단독 실행에서는 현재 작업의 coordinator가 감사자를 배정한다. 오케스트레이션 흐름에서는 상위 orchestrator가 감사자 생명주기를 관리하며, 조건을 충족하는 감사자가 이미 배정됐다면 이 스킬이 두 번째 감사자를 만들지 않는다. 원하는 결론, 구현자의 자기평가, 다른 reviewer의 결론은 전달하지 않는다.
- 직접 감사 — 감사자는 요구사항 충족, 최종 변경, 검증의 재현 가능성, 관련 실패 모드, 복구 가능성과 실행·배포 상태를 직접 확인한다.
- 수정과 재감사 — 구현자가 발견사항을 처리한다. 감사 뒤 의미 있는 변경이 생기면 기존 판정은 stale이며, 감사자가 영향 범위를 다시 확인하기 전에는 완료할 수 없다.
- 게이트 판정 — 확인된 열린
blocking 발견사항이 있으면 FAIL, 확인에 필요한 감사자나 증거가 없으면 BLOCKED, 모든 필수 조건을 충족했을 때만 PASS로 판정한다.
- 실행·배포 후 확인 — 비배포 고위험 작업은 실제 실행 식별자, 최종 상태, 영향 범위, 부분 실패, 데이터 정합성과 복구 필요성을 확인한다. 프로덕션 배포나 공개 릴리스는 배포 식별자, 상태, smoke test와 rollback 필요성을 확인한다. 사전
PASS는 실제 실행·배포 결과까지 자동 보증하지 않는다.
완료 불변조건
다음을 모두 확인하기 전에는 고위험 작업을 완료, 승인 또는 배포 가능 상태로 표현하지 않는다.
- 위험 분류와 감사 범위가 기록됐다.
- 감사자와 구현자가 분리됐고 fresh context 여부를 확인했다.
- 감사 대상 식별자가 실제 최종 대상과 일치한다.
- 감사자가 요구사항, 최종 변경, 검증 근거와 관련 실패 가능성을 직접 확인했다.
- 열린
blocking 발견사항이 없다.
- 감사 뒤 의미 있는 변경이 없거나 필요한 재감사를 마쳤다.
- 실제 상태를 바꾸는 고위험 작업이라면 실행·배포 전 감사와 실행·배포 후 상태 확인을 구분해 기록했다.
감사자를 확보하지 못했거나 필수 증거에 접근할 수 없으면 BLOCKED로 보고한다. 불확실성을 생략하거나 PASS로 바꾸지 않는다.
오케스트레이터 연결
여러 전문 스킬을 묶은 흐름에서 사용할 때는 references/orchestrator-integration.md를 읽는다. 상위 orchestrator는 요청 분류, 실행 순서, 감사자 배정과 결과 전달을 맡고, 이 스킬은 독립성·증거·재감사 조건과 최종 Gate 판정을 맡는다.
이 연동은 자연어와 구조화된 Markdown을 사용하는 지침 수준 계약이다. 별도 MCP 도구, 다른 스킬 또는 영속화 파일을 요구하지 않는다. 구현·설계·검증·패키징 스킬은 감사 자료를 만들 수 있지만 PASS, FAIL, BLOCKED 판정은 이 스킬의 규칙을 따라야 한다.
출력
사용자에게 다음 순서로 필요한 사실만 제시한다.
Audit Target — 단계와 최종 대상 식별자
Independence — 구현자와 감사자, fresh context, 재위임 여부
Evidence Checked — 직접 확인한 파일, diff, 명령, 테스트, 로그와 배포 상태
Findings — ID, blocking | non_blocking, 증거, 영향, 상태
Remediation/Re-audit — 수정과 재감사 범위, stale 여부
Gate — PASS | FAIL | BLOCKED와 판정 근거
Limitations — 미관측 항목과 남은 불확실성
내부 프롬프트, 숨은 chain-of-thought 또는 확인하지 않은 사실을 출력하지 않는다.
1---2name: independent-audit-gate3description: 보안·권한·결제·데이터 손실·스키마 마이그레이션·프로덕션 배포·전역 설정처럼 실패 영향이 큰 변경을 실행하거나 릴리스하기 전후에, 구현자와 분리된 감사자가 최종 변경과 검증 근거를 직접 확인하고 완료 가능 여부를 판정한다. 단순 조사, 저위험 수정, 일반 코드 리뷰, 구현 없는 설계 토론에는 사용하지 않는다.4license: MIT5---67# Independent Audit Gate89고위험 변경을 완료로 선언하기 전에 독립 감사와 증거 확인을 강제한다. 변경을 만든 주체와 다른 감사자가 최종 대상을 직접 검사하고 `PASS`, `FAIL`, `BLOCKED` 중 하나로 판정하게 한다.1011## 적용 범위1213다음 작업을 실행, 병합, 릴리스 또는 완료하려 할 때 사용한다. diff 크기보다 실패 시 영향과 복구 가능성을 기준으로 판단한다.1415- 인증, 인가, 비밀값, 암호화, 테넌트 격리 또는 외부 노출16- 과금, 결제, 환불, 가격, 지급 또는 거래 실행17- 영구 삭제, 대량 수정, 개인정보, 백업·복원 또는 데이터 정합성18- 스키마, 제약, 데이터 변환, 하위 호환성 또는 rollback 변경19- 프로덕션 배포, 인프라, CI/CD, 장애 대응 또는 서비스 가용성20- 조직이나 프로젝트 전체에 적용되는 기본 권한, 정책, 런타임 또는 네트워크 설정21- 사용자가 독립 감사나 완료 게이트를 명시적으로 요청한 변경2223비프로덕션 환경도 실데이터·민감 데이터·공유 자원·외부 연동에 영향을 주거나 복구 가능성이 검증되지 않았다면 고위험으로 본다. 격리된 로컬 환경에서 합성 데이터만 사용하고 즉시 복구할 수 있는 작업은 위험 분류 근거를 남긴 뒤 제외할 수 있다.2425단순 조사, 저위험 문서 수정, 일반 코드 리뷰, 구현 대상이 없는 설계 토론에는 이 스킬을 사용하지 않는다. 복잡한 선택지를 여러 관점에서 숙고하는 일은 별도의 deliberation workflow에 맡기고, 선택한 방안을 실제 고위험 변경으로 실행할 때 이 게이트를 적용한다.2627## 권한과 역할 경계2829- 이 스킬은 파일 변경, 승인, 병합, 배포, 데이터 삭제 또는 외부 메시지 전송 권한을 새로 만들지 않는다.30- 적용 가능한 상위 지침, `AGENTS.md`, 사용자 권한과 승인 범위를 먼저 따른다.31- 감사자는 구현·수정·구현자 검증에 참여한 에이전트와 다른 실제 worker여야 한다. 역할 이름만 바꾼 자기감사는 독립 감사가 아니다.32- 감사자는 fresh context로 시작해야 한다. 협업 도구가 지원하면 `fork_turns:none`을 사용하고 재위임과 하위 에이전트 생성을 금지한다.33- 감사자는 구현자의 요약이나 자기평가 대신 요구사항, 최종 변경, 원시 검증 결과와 실패 가능성을 직접 확인한다.34- 감사 의견은 외부 증거가 아니다. 메인 에이전트는 파일, diff, 테스트, 로그, 공식 계약과 실제 배포 상태를 대조해 최종 책임을 진다.3536## 실행 절차3738감사자 briefing을 만들거나 판정을 해석하기 전에 [references/audit-protocol.md](references/audit-protocol.md)를 읽는다.39401. **위험 분류** — 영향 범위, 복구 가능성, 데이터 민감도, 공유성, 외부 시스템, 보안·권한·금전·스키마 영향을 확인한다. 고위험 가능성을 합리적으로 배제할 수 없으면 게이트 대상으로 승격한다.412. **최종 대상 고정** — 요구사항과 함께 정확한 commit SHA, diff, artifact digest, 실행·배포 ID 또는 관측 가능한 상태를 기록한다. 아직 최종 대상이 없는 설계 단계에서는 최종 판정을 내리지 않는다.423. **자체 검증 수집** — 구현자가 실행한 테스트, 원시 결과, 알려진 한계, rollback 절차와 실행·배포 전후 확인 항목을 모은다. 테스트 통과만으로 `PASS`를 추정하지 않는다.434. **독립 감사 배정** — 구현자와 다른 fresh auditor에게 완결된 briefing과 원자료 접근 경로를 준다. 단독 실행에서는 현재 작업의 coordinator가 감사자를 배정한다. 오케스트레이션 흐름에서는 상위 orchestrator가 감사자 생명주기를 관리하며, 조건을 충족하는 감사자가 이미 배정됐다면 이 스킬이 두 번째 감사자를 만들지 않는다. 원하는 결론, 구현자의 자기평가, 다른 reviewer의 결론은 전달하지 않는다.445. **직접 감사** — 감사자는 요구사항 충족, 최종 변경, 검증의 재현 가능성, 관련 실패 모드, 복구 가능성과 실행·배포 상태를 직접 확인한다.456. **수정과 재감사** — 구현자가 발견사항을 처리한다. 감사 뒤 의미 있는 변경이 생기면 기존 판정은 stale이며, 감사자가 영향 범위를 다시 확인하기 전에는 완료할 수 없다.467. **게이트 판정** — 확인된 열린 `blocking` 발견사항이 있으면 `FAIL`, 확인에 필요한 감사자나 증거가 없으면 `BLOCKED`, 모든 필수 조건을 충족했을 때만 `PASS`로 판정한다.478. **실행·배포 후 확인** — 비배포 고위험 작업은 실제 실행 식별자, 최종 상태, 영향 범위, 부분 실패, 데이터 정합성과 복구 필요성을 확인한다. 프로덕션 배포나 공개 릴리스는 배포 식별자, 상태, smoke test와 rollback 필요성을 확인한다. 사전 `PASS`는 실제 실행·배포 결과까지 자동 보증하지 않는다.4849## 완료 불변조건5051다음을 모두 확인하기 전에는 고위험 작업을 완료, 승인 또는 배포 가능 상태로 표현하지 않는다.5253- 위험 분류와 감사 범위가 기록됐다.54- 감사자와 구현자가 분리됐고 fresh context 여부를 확인했다.55- 감사 대상 식별자가 실제 최종 대상과 일치한다.56- 감사자가 요구사항, 최종 변경, 검증 근거와 관련 실패 가능성을 직접 확인했다.57- 열린 `blocking` 발견사항이 없다.58- 감사 뒤 의미 있는 변경이 없거나 필요한 재감사를 마쳤다.59- 실제 상태를 바꾸는 고위험 작업이라면 실행·배포 전 감사와 실행·배포 후 상태 확인을 구분해 기록했다.6061감사자를 확보하지 못했거나 필수 증거에 접근할 수 없으면 `BLOCKED`로 보고한다. 불확실성을 생략하거나 `PASS`로 바꾸지 않는다.6263## 오케스트레이터 연결6465여러 전문 스킬을 묶은 흐름에서 사용할 때는 [references/orchestrator-integration.md](references/orchestrator-integration.md)를 읽는다. 상위 orchestrator는 요청 분류, 실행 순서, 감사자 배정과 결과 전달을 맡고, 이 스킬은 독립성·증거·재감사 조건과 최종 `Gate` 판정을 맡는다.6667이 연동은 자연어와 구조화된 Markdown을 사용하는 지침 수준 계약이다. 별도 MCP 도구, 다른 스킬 또는 영속화 파일을 요구하지 않는다. 구현·설계·검증·패키징 스킬은 감사 자료를 만들 수 있지만 `PASS`, `FAIL`, `BLOCKED` 판정은 이 스킬의 규칙을 따라야 한다.6869## 출력7071사용자에게 다음 순서로 필요한 사실만 제시한다.72731. `Audit Target` — 단계와 최종 대상 식별자742. `Independence` — 구현자와 감사자, fresh context, 재위임 여부753. `Evidence Checked` — 직접 확인한 파일, diff, 명령, 테스트, 로그와 배포 상태764. `Findings` — ID, `blocking | non_blocking`, 증거, 영향, 상태775. `Remediation/Re-audit` — 수정과 재감사 범위, stale 여부786. `Gate` — `PASS | FAIL | BLOCKED`와 판정 근거797. `Limitations` — 미관측 항목과 남은 불확실성8081내부 프롬프트, 숨은 chain-of-thought 또는 확인하지 않은 사실을 출력하지 않는다.