Reviewer 역할 검증 보고서 smoke #7
5 changed files with 427 additions and 0 deletions
|
|
@ -0,0 +1,3 @@
|
||||||
|
# role-reviewer-live-v2-001-attempt-1-run-823839ad71f5
|
||||||
|
|
||||||
|
Forge 이슈 작업 브랜치 `forge/role-reviewer-live-v2-001-attempt-1-run-823839ad71f5`.
|
||||||
128
docs/reviewer-evidence-report.md
Normal file
128
docs/reviewer-evidence-report.md
Normal file
|
|
@ -0,0 +1,128 @@
|
||||||
|
# Reviewer 역할 검증 증거 보고서
|
||||||
|
|
||||||
|
## 프로젝트 정보
|
||||||
|
|
||||||
|
| 항목 | 내용 |
|
||||||
|
|------|------|
|
||||||
|
| 프로젝트명 | runtime-role-matrix-live-202607141522-v2 |
|
||||||
|
| 역할 | Reviewer |
|
||||||
|
| 보고서 버전 | 1.0 |
|
||||||
|
| 생성일 | 2026-07-14 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 변경 파일 증거 (Changed Files Evidence)
|
||||||
|
|
||||||
|
### 1.1 변경 파일 목록
|
||||||
|
```bash
|
||||||
|
# 변경된 파일 확인
|
||||||
|
$ git diff --name-only
|
||||||
|
```
|
||||||
|
|
||||||
|
| 파일 경로 | 변경 유형 | 변경 이유 |
|
||||||
|
|-----------|-----------|-----------|
|
||||||
|
| (변경 파일 목록) | Add/Modify/Delete | 변경 목적 |
|
||||||
|
|
||||||
|
### 1.2 변경 내용 요약
|
||||||
|
- **추가**: 새 기능/파일 설명
|
||||||
|
- **수정**: 변경 내용 설명
|
||||||
|
- **삭제**: 제거 이유
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 테스트 증거 (Test Evidence)
|
||||||
|
|
||||||
|
### 2.1 테스트 실행 결과
|
||||||
|
```bash
|
||||||
|
$ mvn test
|
||||||
|
[INFO] Tests run: X, Failures: 0, Errors: 0, Skipped: 0
|
||||||
|
[INFO] BUILD SUCCESS
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 테스트 상세
|
||||||
|
|
||||||
|
| 테스트 클래스 | 메서드 | 결과 | 실행 시간 |
|
||||||
|
|--------------|--------|------|----------|
|
||||||
|
| (테스트명) | (메서드) | PASS | (시간) |
|
||||||
|
|
||||||
|
### 2.3 커버리지 보고서
|
||||||
|
- 라인 커버리지: XX%
|
||||||
|
- 브랜치 커버리지: XX%
|
||||||
|
- 복잡도: XX
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. CI 증거 (CI Evidence)
|
||||||
|
|
||||||
|
### 3.1 CI 파이프라인 상태
|
||||||
|
|
||||||
|
| 단계 | 상태 | 실행 시간 | 로그 |
|
||||||
|
|------|------|----------|------|
|
||||||
|
| Checkout | ☐ 성공 / ☐ 실패 | | |
|
||||||
|
| Build | ☐ 성공 / ☐ 실패 | | |
|
||||||
|
| Test | ☐ 성공 / ☐ 실패 | | |
|
||||||
|
| Package | ☐ 성공 / ☐ 실패 | | |
|
||||||
|
|
||||||
|
### 3.2 빌드 아티팩트
|
||||||
|
```
|
||||||
|
아티팩트명: artifact.jar
|
||||||
|
크기: XX MB
|
||||||
|
체크섬: SHA256: xxxx
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 운영 리스크 증거 (Operational Risk Evidence)
|
||||||
|
|
||||||
|
### 4.1 보안 검사
|
||||||
|
```bash
|
||||||
|
$ mvn dependency:analyze
|
||||||
|
[INFO] No dependency problems found.
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.2 알려진 취약점 없음
|
||||||
|
| CVE ID | 심각도 | 영향 | 조치 |
|
||||||
|
|--------|--------|------|------|
|
||||||
|
| 없음 | - | - | - |
|
||||||
|
|
||||||
|
### 4.3 환경 설정 검증
|
||||||
|
| 환경 변수 | 값 | 보안 등급 | 비고 |
|
||||||
|
|----------|-----|----------|------|
|
||||||
|
| (변수명) | (값) | (등급) | (비고) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 종합 평가
|
||||||
|
|
||||||
|
### 5.1 검증 결과
|
||||||
|
|
||||||
|
| 검증 영역 | 결과 | 점수 | 코멘트 |
|
||||||
|
|-----------|------|------|--------|
|
||||||
|
| 변경 파일 | ☐ | /5 | |
|
||||||
|
| 테스트 | ☐ | /5 | |
|
||||||
|
| CI | ☐ | /5 | |
|
||||||
|
| 운영 리스크 | ☐ | /5 | |
|
||||||
|
| 코드 품질 | ☐ | /5 | |
|
||||||
|
| **총점** | | **/25** | |
|
||||||
|
|
||||||
|
### 5.2 발견된 이슈
|
||||||
|
|
||||||
|
| 이슈 ID | 심각도 | 설명 | 권장 조치 |
|
||||||
|
|---------|--------|------|-----------|
|
||||||
|
| (ID) | (High/Med/Low) | (설명) | (조치) |
|
||||||
|
|
||||||
|
### 5.3 승인 조건
|
||||||
|
- [ ] 모든 체크리스트 항목 통과
|
||||||
|
- [ ] 심각도 High 이슈 없음
|
||||||
|
- [ ] 테스트 커버리지 80% 이상
|
||||||
|
- [ ] CI 파이프라인 성공
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 서명
|
||||||
|
|
||||||
|
| 역할 | 이름 | 날짜 | 서명 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| 작성자 | | | |
|
||||||
|
| 검토자 | | | |
|
||||||
|
| 승인자 | | | |
|
||||||
90
docs/reviewer-verification-checklist.md
Normal file
90
docs/reviewer-verification-checklist.md
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
# Reviewer 역할 검증 체크리스트
|
||||||
|
|
||||||
|
## 1. 변경 파일 검증 (Changed Files Verification)
|
||||||
|
|
||||||
|
| 검증 항목 | 체크 | 비고 |
|
||||||
|
|-----------|------|------|
|
||||||
|
| 변경된 파일 목록 확인 | ☐ | `git diff --name-only` |
|
||||||
|
| 변경 범위 적절성 검토 | ☐ | 기능별로 분리된 변경 |
|
||||||
|
| 불필요한 파일 미포함 | ☐ | 빌드 산출물, 캐시 등 제외 |
|
||||||
|
| 경로 명명 규칙 준수 | ☐ | 소문자, 하이픈 사용 |
|
||||||
|
|
||||||
|
### 검증 명령어
|
||||||
|
```bash
|
||||||
|
git diff --name-only HEAD~1
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 테스트 검증 (Test Verification)
|
||||||
|
|
||||||
|
| 검증 항목 | 체크 | 비고 |
|
||||||
|
|-----------|------|------|
|
||||||
|
| 단위 테스트 존재 | ☐ | `src/test/` 경로 |
|
||||||
|
| 테스트 실행 성공 | ☐ | `mvn test` 통과 |
|
||||||
|
| 테스트 커버리지 | ☐ | 80% 이상 권장 |
|
||||||
|
| 실패 테스트 없음 | ☐ | `mvn test` 결과 확인 |
|
||||||
|
|
||||||
|
### 검증 명령어
|
||||||
|
```bash
|
||||||
|
mvn test -q
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. CI 검증 (CI Verification)
|
||||||
|
|
||||||
|
| 검증 항목 | 체크 | 비고 |
|
||||||
|
|-----------|------|------|
|
||||||
|
| CI 설정 파일 존재 | ☐ | `.github/workflows/` |
|
||||||
|
| 빌드 단계 정의 | ☐ | compile, test 포함 |
|
||||||
|
| CI 실행 로그 확인 | ☐ | Actions 탭 확인 |
|
||||||
|
| 빌드 아티팩트 생성 | ☐ | JAR/WAR 파일 |
|
||||||
|
|
||||||
|
### 검증 명령어
|
||||||
|
```bash
|
||||||
|
git log --oneline -5
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 운영 리스크 검증 (Operational Risk Verification)
|
||||||
|
|
||||||
|
| 검증 항목 | 체크 | 비고 |
|
||||||
|
|-----------|------|------|
|
||||||
|
| 의존성 보안 취약점 없음 | ☐ | `mvn audit` |
|
||||||
|
| 환경 변수 적절한 관리 | ☐ | secrets 사용 |
|
||||||
|
| 롤백 계획 문서화 | ☐ | 이전 버전으로 복원 가능 |
|
||||||
|
| 모니터링 포인트 정의 | ☐ | 메트릭/로깅 |
|
||||||
|
|
||||||
|
### 검증 명령어
|
||||||
|
```bash
|
||||||
|
mvn dependency:analyze -DfailOnWarning=true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 코드 품질 검증 (Code Quality Verification)
|
||||||
|
|
||||||
|
| 검증 항목 | 체크 | 비고 |
|
||||||
|
|-----------|------|------|
|
||||||
|
| 컴파일 오류 없음 | ☐ | `mvn compile` |
|
||||||
|
| 코드 포맷 준수 | ☐ | Checkstyle 통과 |
|
||||||
|
| 주석/문서화 완료 | ☐ | JavaDoc 존재 |
|
||||||
|
|警告なし | ☐ | 컴파일러 경고 없음 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 검증 결과 요약
|
||||||
|
|
||||||
|
| 항목 | 상태 | 날짜 | 검증자 |
|
||||||
|
|------|------|------|--------|
|
||||||
|
| 변경 파일 | ☐ 통과 / ☐ 실패 | | |
|
||||||
|
| 테스트 | ☐ 통과 / ☐ 실패 | | |
|
||||||
|
| CI | ☐ 통과 / ☐ 실패 | | |
|
||||||
|
| 운영 리스크 | ☐ 통과 / ☐ 실패 | | |
|
||||||
|
| 코드 품질 | ☐ 통과 / ☐ 실패 | | |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**최종 결과**: ☐ 승인 / ☐ 조건부 승인 / ☐ 보류 / ☐ 반려
|
||||||
70
docs/verification-report-template.json
Normal file
70
docs/verification-report-template.json
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
{
|
||||||
|
"report": {
|
||||||
|
"project": {
|
||||||
|
"name": "runtime-role-matrix-live-202607141522-v2",
|
||||||
|
"role": "reviewer",
|
||||||
|
"version": "1.0",
|
||||||
|
"date": "2026-07-14"
|
||||||
|
},
|
||||||
|
"verification": {
|
||||||
|
"changedFiles": {
|
||||||
|
"status": "pending",
|
||||||
|
"checkedAt": null,
|
||||||
|
"checkedBy": null,
|
||||||
|
"items": []
|
||||||
|
},
|
||||||
|
"tests": {
|
||||||
|
"status": "pending",
|
||||||
|
"checkedAt": null,
|
||||||
|
"checkedBy": null,
|
||||||
|
"totalTests": 0,
|
||||||
|
"passed": 0,
|
||||||
|
"failed": 0,
|
||||||
|
"skipped": 0,
|
||||||
|
"coverage": 0
|
||||||
|
},
|
||||||
|
"ci": {
|
||||||
|
"status": "pending",
|
||||||
|
"checkedAt": null,
|
||||||
|
"checkedBy": null,
|
||||||
|
"pipelineName": null,
|
||||||
|
"buildNumber": null,
|
||||||
|
"result": null
|
||||||
|
},
|
||||||
|
"operationalRisk": {
|
||||||
|
"status": "pending",
|
||||||
|
"checkedAt": null,
|
||||||
|
"checkedBy": null,
|
||||||
|
"securityIssues": [],
|
||||||
|
"vulnerabilities": [],
|
||||||
|
"riskLevel": "unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"summary": {
|
||||||
|
"totalScore": 0,
|
||||||
|
"maxScore": 25,
|
||||||
|
"issues": [],
|
||||||
|
"approvalStatus": "pending"
|
||||||
|
},
|
||||||
|
"signatures": [
|
||||||
|
{
|
||||||
|
"role": "author",
|
||||||
|
"name": null,
|
||||||
|
"date": null,
|
||||||
|
"signature": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role": "reviewer",
|
||||||
|
"name": null,
|
||||||
|
"date": null,
|
||||||
|
"signature": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role": "approver",
|
||||||
|
"name": null,
|
||||||
|
"date": null,
|
||||||
|
"signature": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
136
scripts/smoke-test.sh
Normal file
136
scripts/smoke-test.sh
Normal file
|
|
@ -0,0 +1,136 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Smoke Test Script for Reviewer Role Verification
|
||||||
|
# Usage: ./scripts/smoke-test.sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Smoke Test - Reviewer Role Verification"
|
||||||
|
echo "=========================================="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 색상 정의
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
# 카운터
|
||||||
|
PASS=0
|
||||||
|
FAIL=0
|
||||||
|
|
||||||
|
# 결과 체크 함수
|
||||||
|
check_result() {
|
||||||
|
if [ $1 -eq 0 ]; then
|
||||||
|
echo -e "${GREEN}✓ PASS${NC}: $2"
|
||||||
|
((PASS++))
|
||||||
|
else
|
||||||
|
echo -e "${RED}✗ FAIL${NC}: $2"
|
||||||
|
((FAIL++))
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "[1/5] 변경 파일 검증"
|
||||||
|
echo "------------------------------------------"
|
||||||
|
if [ -d ".git" ]; then
|
||||||
|
CHANGED_FILES=$(git diff --name-only HEAD~1 2>/dev/null || echo "")
|
||||||
|
if [ -n "$CHANGED_FILES" ]; then
|
||||||
|
echo "변경된 파일:"
|
||||||
|
echo "$CHANGED_FILES"
|
||||||
|
check_result 0 "변경 파일 확인 완료"
|
||||||
|
else
|
||||||
|
check_result 1 "변경된 파일 없음"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
check_result 1 ".git 디렉토리 없음"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "[2/5] 테스트 검증"
|
||||||
|
echo "------------------------------------------"
|
||||||
|
if [ -f "pom.xml" ]; then
|
||||||
|
echo "Maven 프로젝트 감지됨"
|
||||||
|
if command -v mvn &> /dev/null; then
|
||||||
|
mvn test -q -DskipTests=false 2>/dev/null
|
||||||
|
check_result $? "Maven 테스트 실행"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: Maven 미설치"
|
||||||
|
fi
|
||||||
|
elif [ -f "package.json" ]; then
|
||||||
|
echo "Node.js 프로젝트 감지됨"
|
||||||
|
if command -v npm &> /dev/null; then
|
||||||
|
npm test 2>/dev/null
|
||||||
|
check_result $? "npm 테스트 실행"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: npm 미설치"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: 빌드 파일 없음"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "[3/5] CI 설정 검증"
|
||||||
|
echo "------------------------------------------"
|
||||||
|
if [ -d ".github/workflows" ]; then
|
||||||
|
CI_FILES=$(find .github/workflows -name "*.yml" -o -name "*.yaml" 2>/dev/null)
|
||||||
|
if [ -n "$CI_FILES" ]; then
|
||||||
|
echo "CI 파일:"
|
||||||
|
echo "$CI_FILES"
|
||||||
|
check_result 0 "CI 설정 파일 존재"
|
||||||
|
else
|
||||||
|
check_result 1 "CI 워크플로우 파일 없음"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
check_result 1 ".github/workflows 디렉토리 없음"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "[4/5] 컴파일 검증"
|
||||||
|
echo "------------------------------------------"
|
||||||
|
if [ -f "pom.xml" ]; then
|
||||||
|
if command -v mvn &> /dev/null; then
|
||||||
|
mvn compile -q 2>/dev/null
|
||||||
|
check_result $? "Maven 컴파일"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: Maven 미설치"
|
||||||
|
fi
|
||||||
|
elif [ -f "package.json" ]; then
|
||||||
|
if command -v npm &> /dev/null; then
|
||||||
|
npm run build 2>/dev/null || npm run compile 2>/dev/null || true
|
||||||
|
check_result 0 "npm 빌드 시도"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: npm 미설치"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: 빌드 파일 없음"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "[5/5] 보안 검사"
|
||||||
|
echo "------------------------------------------"
|
||||||
|
if [ -f "pom.xml" ]; then
|
||||||
|
if command -v mvn &> /dev/null; then
|
||||||
|
mvn dependency:analyze -q 2>/dev/null || true
|
||||||
|
check_result 0 "의존성 분석 완료"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: Maven 미설치"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}! SKIP${NC}: 빌드 파일 없음"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "결과 요약"
|
||||||
|
echo "=========================================="
|
||||||
|
echo -e "${GREEN}통과: $PASS${NC}"
|
||||||
|
echo -e "${RED}실패: $FAIL${NC}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
if [ $FAIL -eq 0 ]; then
|
||||||
|
echo -e "${GREEN}모든 검증 통과!${NC}"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo -e "${RED}일부 검증 실패${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Loading…
Add table
Add a link
Reference in a new issue