1.6 KiB
1.6 KiB
06. 바이브코딩·홀루시네이션 통제
AI 작업 입력 패킷
AI에게 코드를 요청하기 전에 아래 8개가 있어야 한다.
- Source: 근거 문단/Policy ID/ADR/Data Contract
- Slice Spec: 사용자 결과·비목표·상태·권한
- Screen Spec: component/state/a11y
- Contract: Endpoint/Event/Job/ProblemDetails/Idempotency/ETag
- Data: schema/column/PIT/unit/migration/index/lineage
- Tests: unit/integration/data/E2E/Golden/failure/replay
- Ops: metric/alert/runbook/rollback/owner
- 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에 넣지 않는다.
리팩터링 정공법
- Characterize: 현재 동작을 test/Golden/perf로 동결
- Isolate: I/O와 순수 정책 seam 분리
- Small Transform: rename/extract/move 한 종류씩
- Verify: unit/integration/data/E2E/backtest/perf diff
- Simplify: dead abstraction/flag/branch 삭제
- Observe: release 후 SLO/DQ/model/recon 확인
- Close Debt: Debt ID/ADR/Secondary 지식 이전