# 06. 바이브코딩·홀루시네이션 통제

## AI 작업 입력 패킷

AI에게 코드를 요청하기 전에 아래 8개가 있어야 한다.

1. Source: 근거 문단/Policy ID/ADR/Data Contract
2. Slice Spec: 사용자 결과·비목표·상태·권한
3. Screen Spec: component/state/a11y
4. Contract: Endpoint/Event/Job/ProblemDetails/Idempotency/ETag
5. Data: schema/column/PIT/unit/migration/index/lineage
6. Tests: unit/integration/data/E2E/Golden/failure/replay
7. Ops: metric/alert/runbook/rollback/owner
8. Output Rule: 변경파일·명령·결과·가정·잔여위험

## 차단 규칙

- 근거 없는 Policy ID·임계값·DB 컬럼·API는 생성하지 않는다.
- 미확정은 `DECISION_REQUIRED` 또는 `DESIGN_PROPOSAL`로 표시한다.
- 한 PR은 한 Slice 또는 한 리팩터링 목적만 가진다.
- 기능 변경과 동작불변 리팩터링을 한 PR에 섞지 않는다.
- 실패·skip·실행하지 못한 테스트를 숨기지 않는다.
- AI가 생성한 SQL은 schema owner, PIT 조건, index, execution plan 검토를 받는다.
- AI가 생성한 알고리즘은 Golden/Frozen OOS diff 없이 병합하지 않는다.
- 실고객 데이터·token·API key를 프롬프트/fixture/log에 넣지 않는다.

## 리팩터링 정공법

1. Characterize: 현재 동작을 test/Golden/perf로 동결
2. Isolate: I/O와 순수 정책 seam 분리
3. Small Transform: rename/extract/move 한 종류씩
4. Verify: unit/integration/data/E2E/backtest/perf diff
5. Simplify: dead abstraction/flag/branch 삭제
6. Observe: release 후 SLO/DQ/model/recon 확인
7. Close Debt: Debt ID/ADR/Secondary 지식 이전
