verification · diff
git:20260826.34a9b20 to git:20260928.877a6b1
27 added, 66 removed. Audit A to A.
---
name: verification
description: 구현 결과 검증 및 품질 게이트 통과 스킬
compatibility: omp
---
# Verification Skill
- 구현 완료 후 품질 게이트를 통과하고 수락 기준을 검증하는 스킬입니다.
+ 구현 완료를 실제 실행 증거로 판정합니다. 실행한 것만 검증으로 보고합니다.
## 검증 단계
- ### 1단계: 기능 검증
- 요구사항과 구현 결과를 대조합니다:
- ```
- 각 요구사항 항목에 대해:
- - [ ] 구현됨
- - [ ] 테스트로 검증됨
- - [ ] 엣지 케이스 처리됨
- ```
+ ### 1단계: 요구사항과 수락 기준
- ### 2단계: 자동화 품질 게이트
+ 요구사항과 acceptance 시나리오마다 조건 설정 → 동작 실행 → 결과 확인을 수행하고, 관찰한 출력값을 근거로 남깁니다. 엣지 케이스 처리 여부도 함께 확인합니다.
- ```bash
- # Go 전체 품질 게이트
- set -e
+ ### 2단계: 자동화 게이트
- # 1. 컴파일 확인
- go build ./...
+ Stack Profile 또는 project context에서 확인한 프로젝트 표준 명령으로 실행합니다.
- # 2. 테스트 + 레이스 컨디션
- go test -race ./...
+ - 빌드 또는 타입 체크
+ - 테스트 (동시성 코드는 race/thread-safety 플래그 포함)
+ - 린트
+ - 커버리지 — 기본 85% 이상, 프로젝트가 `workflow.coverage_threshold`로 다른 값을 선언하면 그 값 (`0`이면 수치 게이트 해제)
- # 3. 커버리지 확인 (85% 이상)
- go test -coverprofile=coverage.out ./...
- go tool cover -func=coverage.out | tail -1
+ ### 3단계: 동작 확인 (smoke)
- # 4. 린터
- golangci-lint run
+ 변경된 경로를 실제로 실행해 관찰합니다. CLI/TUI/UI 변경은 해당 표면을 직접 띄워 확인하고, 런타임이 없으면 일회성 스크립트로 확인한 뒤 시각 검증을 못 했다는 사실을 함께 보고합니다.
- # 5. 벳
- go vet ./...
- ```
+ ### 4단계: 회귀 확인
- ### 3단계: LSP 품질 게이트
- ```
- - 타입 에러: 0
- - 린트 에러: 0
- - 컴파일 에러: 0
- ```
+ 프로젝트 테스트 스위트로 기존 동작이 유지되는지 확인합니다. 버그 수정이면 재현 케이스가 더 이상 실패하지 않는지 확인하고, 재현 테스트를 회귀 테스트로 남깁니다.
- ### 4단계: 수락 기준 확인
- EARS 요구사항 각각에 대해:
- ```
- WHEN [조건] → [동작] 검증:
- 1. 조건 설정
- 2. 동작 실행
- 3. 결과 확인
- ```
+ ## 통과한 검사의 재사용
- ### 5단계: 회귀 검증
- 기존 기능이 깨지지 않았는지 확인:
- ```bash
- # 전체 테스트 스위트
- go test ./...
+ 같은 검사를 반복하기 전에 `auto spec gates <SPEC-ID> --read-only --json`으로
+ 현재 입력과 기존 근거를 확인합니다. `reusable`은 기록한 파일 범위가 일치한다는
+ 뜻입니다. 명령·옵션·도구 버전·환경·외부 상태까지 같다고 보장하지는 않습니다.
+ 그 조건이 달라졌거나 확인할 수 없으면 `--no-reuse`로 새 검증을 계획합니다.
- # 이전 커밋과 비교
- git stash
- go test ./...
- git stash pop
- go test ./...
- ```
+ 실패·부분 실행·오래된 결과는 재사용하지 않습니다. 수정 후에는 영향받은 검사와
+ 열린 리뷰 항목을 확인하고, 변경 없는 통과 검사는 단계가 바뀌었다는 이유만으로
+ 반복하지 않습니다. 필수 보안·데이터 보호·인수 검사는 유효한 근거가 필요합니다.
+ 공통 전체 검증은 작업자별로 반복하지 않고 통합한 변경에 대해 수행합니다.
## 검증 보고서
```markdown
- ## 검증 완료 보고서
-
- ### 기능 검증
- - [x] 요구사항 1: [설명]
- - [x] 요구사항 2: [설명]
-
- ### 품질 게이트
- - Tests: ✅ N/N 통과 (커버리지: N%)
- - Race: ✅ 레이스 컨디션 없음
- - Lint: ✅ 경고 없음
- - LSP: ✅ 에러 없음
-
- ### 회귀 검증
- - 기존 테스트: ✅ 모두 통과
+ ## 검증 결과
- ### 완료 상태
- ✅ 구현 완료, 배포 준비됨
+ - 요구사항: [x] {요구사항} — {확인 방법과 관찰 결과}
+ - 게이트: {명령} → {결과} (빌드 / 테스트 N passed·M failed / 린트 / 커버리지 X% vs 임계값 Y%)
+ - 동작 확인: {실행한 명령 또는 시나리오} → {관찰 결과}
+ - 남은 리스크: {미검증 영역, 없으면 none}
```