36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# 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 지식 이전
|