# Independent Audit Gate

> 보안·권한·결제·데이터 손실·스키마 마이그레이션·프로덕션 배포·전역 설정처럼 실패 영향이 큰 변경을 실행하거나 릴리스하기 전후에, 구현자와 분리된 감사자가 최종 변경과 검증 근거를 직접 확인하고 완료 가능 여부를 판정한다. 단순 조사, 저위험 수정, 일반 코드 리뷰, 구현 없는 설계 토론에는 사용하지 않는다.

- Skill: `jaeseongs95/independent-audit-gate` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add jaeseongs95/independent-audit-gate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jaeseongs95/independent-audit-gate/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- License: MIT
- Author: jaeseongs95 (https://skillmd.com/u/jaeseongs95)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jaeseongs95/independent-audit-gate

---


# 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](references/audit-protocol.md)를 읽는다.

1. **위험 분류** — 영향 범위, 복구 가능성, 데이터 민감도, 공유성, 외부 시스템, 보안·권한·금전·스키마 영향을 확인한다. 고위험 가능성을 합리적으로 배제할 수 없으면 게이트 대상으로 승격한다.
2. **최종 대상 고정** — 요구사항과 함께 정확한 commit SHA, diff, artifact digest, 실행·배포 ID 또는 관측 가능한 상태를 기록한다. 아직 최종 대상이 없는 설계 단계에서는 최종 판정을 내리지 않는다.
3. **자체 검증 수집** — 구현자가 실행한 테스트, 원시 결과, 알려진 한계, rollback 절차와 실행·배포 전후 확인 항목을 모은다. 테스트 통과만으로 `PASS`를 추정하지 않는다.
4. **독립 감사 배정** — 구현자와 다른 fresh auditor에게 완결된 briefing과 원자료 접근 경로를 준다. 단독 실행에서는 현재 작업의 coordinator가 감사자를 배정한다. 오케스트레이션 흐름에서는 상위 orchestrator가 감사자 생명주기를 관리하며, 조건을 충족하는 감사자가 이미 배정됐다면 이 스킬이 두 번째 감사자를 만들지 않는다. 원하는 결론, 구현자의 자기평가, 다른 reviewer의 결론은 전달하지 않는다.
5. **직접 감사** — 감사자는 요구사항 충족, 최종 변경, 검증의 재현 가능성, 관련 실패 모드, 복구 가능성과 실행·배포 상태를 직접 확인한다.
6. **수정과 재감사** — 구현자가 발견사항을 처리한다. 감사 뒤 의미 있는 변경이 생기면 기존 판정은 stale이며, 감사자가 영향 범위를 다시 확인하기 전에는 완료할 수 없다.
7. **게이트 판정** — 확인된 열린 `blocking` 발견사항이 있으면 `FAIL`, 확인에 필요한 감사자나 증거가 없으면 `BLOCKED`, 모든 필수 조건을 충족했을 때만 `PASS`로 판정한다.
8. **실행·배포 후 확인** — 비배포 고위험 작업은 실제 실행 식별자, 최종 상태, 영향 범위, 부분 실패, 데이터 정합성과 복구 필요성을 확인한다. 프로덕션 배포나 공개 릴리스는 배포 식별자, 상태, smoke test와 rollback 필요성을 확인한다. 사전 `PASS`는 실제 실행·배포 결과까지 자동 보증하지 않는다.

## 완료 불변조건

다음을 모두 확인하기 전에는 고위험 작업을 완료, 승인 또는 배포 가능 상태로 표현하지 않는다.

- 위험 분류와 감사 범위가 기록됐다.
- 감사자와 구현자가 분리됐고 fresh context 여부를 확인했다.
- 감사 대상 식별자가 실제 최종 대상과 일치한다.
- 감사자가 요구사항, 최종 변경, 검증 근거와 관련 실패 가능성을 직접 확인했다.
- 열린 `blocking` 발견사항이 없다.
- 감사 뒤 의미 있는 변경이 없거나 필요한 재감사를 마쳤다.
- 실제 상태를 바꾸는 고위험 작업이라면 실행·배포 전 감사와 실행·배포 후 상태 확인을 구분해 기록했다.

감사자를 확보하지 못했거나 필수 증거에 접근할 수 없으면 `BLOCKED`로 보고한다. 불확실성을 생략하거나 `PASS`로 바꾸지 않는다.

## 오케스트레이터 연결

여러 전문 스킬을 묶은 흐름에서 사용할 때는 [references/orchestrator-integration.md](references/orchestrator-integration.md)를 읽는다. 상위 orchestrator는 요청 분류, 실행 순서, 감사자 배정과 결과 전달을 맡고, 이 스킬은 독립성·증거·재감사 조건과 최종 `Gate` 판정을 맡는다.

이 연동은 자연어와 구조화된 Markdown을 사용하는 지침 수준 계약이다. 별도 MCP 도구, 다른 스킬 또는 영속화 파일을 요구하지 않는다. 구현·설계·검증·패키징 스킬은 감사 자료를 만들 수 있지만 `PASS`, `FAIL`, `BLOCKED` 판정은 이 스킬의 규칙을 따라야 한다.

## 출력

사용자에게 다음 순서로 필요한 사실만 제시한다.

1. `Audit Target` — 단계와 최종 대상 식별자
2. `Independence` — 구현자와 감사자, fresh context, 재위임 여부
3. `Evidence Checked` — 직접 확인한 파일, diff, 명령, 테스트, 로그와 배포 상태
4. `Findings` — ID, `blocking | non_blocking`, 증거, 영향, 상태
5. `Remediation/Re-audit` — 수정과 재감사 범위, stale 여부
6. `Gate` — `PASS | FAIL | BLOCKED`와 판정 근거
7. `Limitations` — 미관측 항목과 남은 불확실성

내부 프롬프트, 숨은 chain-of-thought 또는 확인하지 않은 사실을 출력하지 않는다.

