G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현 G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건) G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST) G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직 G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트 G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트 G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트 G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트 G-10: core/push_notify.py + routers/push.py + PushSubscription 모델 G-11: approvals 다중승인 (위임/서명/기한초과/마감연장) G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh 하네스: guardia-orchestrator 확장기능 Phase 반영 봇명령어: /sr /status /license /bulk 슬래시 명령어 추가 설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
73 lines
2.3 KiB
Markdown
73 lines
2.3 KiB
Markdown
---
|
|
name: code-review
|
|
description: "GUARDiA 프로젝트 소스 코드 리뷰 스킬. 다음 상황에서 사용: (1) '코드 리뷰', '소스 분석', '보안 취약점 검사', '코드 품질 점검'; (2) 특정 프로젝트 디렉토리 분석 요청; (3) SQL 인젝션, XSS, 패스워드 평문 저장 등 보안 이슈 점검; (4) 배포 전 코드 검증; (5) '빠른 스캔', 'quick scan', '즉시 보안 검사'. C:\\GUARDiA\\projects\\ 하위 프로젝트를 대상으로 하며, Ollama 로컬 LLM 사용 (외부 API 없음)."
|
|
---
|
|
|
|
# 코드 리뷰 스킬
|
|
|
|
GUARDiA 프로젝트 소스를 분석하여 보안·성능·품질 이슈를 발견한다.
|
|
|
|
## 빠른 시작
|
|
|
|
### 1. 리뷰 가능 프로젝트 목록 확인
|
|
```
|
|
GET /api/code-review/projects/list
|
|
```
|
|
|
|
### 2. 빠른 보안 스캔 (즉시 결과, LLM 불필요)
|
|
```
|
|
POST /api/code-review/quick-scan?project_dir=testcase-java-api
|
|
```
|
|
|
|
### 3. 전체 코드 리뷰 요청 (비동기)
|
|
```
|
|
POST /api/code-review
|
|
{
|
|
"project_id": 1,
|
|
"model": "codellama",
|
|
"focus": "security"
|
|
}
|
|
→ 202 + review_id 반환
|
|
```
|
|
|
|
### 4. 결과 폴링
|
|
```
|
|
GET /api/code-review/{review_id}
|
|
→ status: PENDING | RUNNING | DONE | FAILED
|
|
```
|
|
|
|
## 발견 항목 구조
|
|
|
|
```json
|
|
{
|
|
"file": "testcase-java-api/src/.../ItemController.java",
|
|
"severity": "CRITICAL|HIGH|MEDIUM|LOW|INFO",
|
|
"category": "SECURITY|PERFORMANCE|CODE_QUALITY|ARCHITECTURE|TESTING",
|
|
"line": 42,
|
|
"message": "문제 설명",
|
|
"suggestion": "개선 방안"
|
|
}
|
|
```
|
|
|
|
## 점수 기준
|
|
|
|
| 점수 | 등급 | 의미 |
|
|
|------|------|------|
|
|
| 95-100 | 우수 | 배포 즉시 가능 |
|
|
| 80-94 | 양호 | 배포 가능 (LOW 이슈 후속 처리) |
|
|
| 60-79 | 개선 필요 | MEDIUM+ 수정 후 배포 |
|
|
| 0-59 | 위험 | 배포 차단, CRITICAL/HIGH 즉시 수정 |
|
|
|
|
## 지원 테스트케이스 프로젝트
|
|
|
|
| 디렉토리 | 언어 | 주요 이슈 |
|
|
|---------|------|---------|
|
|
| `testcase-java-api` | Java/Spring Boot | SRP 위반, NPE 위험, null 반환 |
|
|
| `testcase-py-api` | Python/FastAPI | SQL 인젝션, 패스워드 평문, user enumeration |
|
|
| `testcase-js-frontend` | HTML/JS | XSS (innerHTML), API 키 하드코딩 |
|
|
| `testcase-php-legacy` | PHP | SQL 인젝션, CSRF 없음, DB 정보 하드코딩 |
|
|
|
|
## 참조
|
|
- 보안 패턴 목록: `references/security-patterns.md`
|
|
- Ollama 모델 선택 가이드: `references/model-guide.md`
|