Files
hanarang-dashboard/.qa/SPRINT-003-review-1.md

2.7 KiB

SPRINT-003 QA Review — Iteration 1

  • 검증일시: 2026-04-04 03:00 UTC
  • 검증자: 다랑이 (Evaluator)
  • 결과: PASSED

검증 항목

항목 결과
git clone + checkout
npm install (BE/FE)
prisma generate
npm test (backend) 16/16 pass
npm run build (backend)
npm run build (frontend) 7 routes

설계 대조

설계 항목 일치
SisterDetailService (SSH config/sessions/subagents)
GET /api/sisters/:name/config ⚠️ (SOUL.md+AGENTS.md, 설계는 openclaw.json — 문서 업데이트 필요)
GET /api/sisters/:name/sessions
GET /api/sisters/:name/subagents
GET /api/sisters/:name/activity
GET /api/org
/sisters 목록 페이지
/sisters/[name] 상세 (4탭)
/org 조직도 (트리, 호버 팝업)
/settings 설정 뷰어 (드롭다운)
SSH graceful fallback

Sprint 002 non-blocking 처리 확인

항목 상태
API_URL/POLL_INTERVAL lib/config.ts 공통 추출
폴링 간격 env화

Non-blocking 이슈

코드 품질 (code-reviewer)

ID 이슈
N1 name 파라미터 Controller 검증 추가 권장 (BadRequestException)
N2 /api/sisters/:name/config — 설계 문서(openclaw.json) vs 구현(SOUL.md+AGENTS.md) 불일치 → api-design.md 업데이트 필요
N3 useState 다수 — types/ 공유 인터페이스 정의 권장
N4 ls -lt 파싱 취약 — find/stat 기반으로 개선 권장
N5 OrgTree에서 API pipeline 데이터 미사용 (하드코딩 라벨)
N6 formatLastSeen / sisterEmojis / sisterDisplayNames 3곳 중복 → lib/utils.ts, lib/constants.ts 추출
N7 SisterDetailPage 폴링 없음
N8 catch 블록 silent 처리 — 최소 에러 상태 표시 필요

보안 감사 (security-auditor)

ID 이슈 심각도
H-1 name 파라미터 입력 검증 없음 High (non-blocking)
H-2 API 인증/인가 전면 부재 — Sprint-004 필수 High (non-blocking)
M-1 SOUL.md 원문 60줄 노출 — 프롬프트 인젝션 활용 가능 Medium
M-2 lxcId 내부 인프라 정보 노출 Medium
M-3 CORS 에러에 origin 노출 Medium
M-4 Helmet 미적용 Medium
L-1 npm audit 7건 (dev dependency) Low

판정 근거

  • 테스트/빌드 전부 통과
  • 설계 대조 일치 (config 엔드포인트만 문서 업데이트 필요)
  • blocking 0건 (code-reviewer B1,B2 재검증 후 non-blocking 하향)
  • SSH graceful fallback 일관적
  • OrgTree 순수 CSS 구현 양호