Next.js 적대적 QA 및 엣지 케이스 주입 (nextjs-adversarial-qa)
작성자 확증 편향을 제거하기 위해 코드 리뷰와 엣지 케이스 테스트를 독립적인 적대적 감사 서브 에이전트에 위임하는 특화 워크플로우입니다.
[!TIP] 참고 문서:
- 일반적인 함정 및 안티패턴:
references/pitfalls.md
아키텍처 규칙 및 표준
1. 편향 없는 감사자 원칙
- 컴포넌트를 작성한 주 에이전트는 엣지 케이스를 자체 인증해서는 안 됩니다.
- 반드시
invoke_subagent를 사용하여 독립적인 서브 에이전트를 생성하고, 코드를 감사하며 적대적 어서션을 주입하도록 해야 합니다.
2. 적대적 엣지 케이스 범위 ([ComponentName].edge.test.tsx)
서브 에이전트는 개발자들이 자주 간과하는 시나리오를 대상으로 [ComponentName].edge.test.tsx를 작성해야 합니다:
- 경계값: 빈 문자열, null/undefined 입력, 매우 긴 문자열, 유니코드 및 페르시아어 RTL 글리프 (
"سلام دنیا"). - Prop 순열: 선택적 플래그의 처리되지 않은 조합.
- 네트워크 및 오류 상태: 비동기 거부, 잘못된 형식의 페이로드, 느린 스트림.
- 심층 접근성 및 모션: 키보드 탐색 (
Enter,Space,Tab,Escape),aria-expanded,aria-busy,aria-live, 포커스 트래핑 및prefers-reduced-motion. - 스트레스 및 생명주기: 빠른 재렌더링, 언마운트 정리, 타이머 해제.
3. 불변 적대적 테스트 원칙
- 테스트 수정 또는 약화는 엄격히 금지됩니다: 개발자는
[ComponentName].edge.test.tsx의 어서션을 삭제하거나 약화시킬 수 없습니다. - 테스트를 수정하지 말고 코드를 수정하세요: 적대적 테스트가 실패하면 엣지 케이스를 적절히 처리하도록 컴포넌트(
[ComponentName].tsx) 또는 스토리([ComponentName].stories.tsx)를 수정하세요.
워크플로우 단계
-
1단계: 적대적 감사 서브 에이전트 생성
- 다음 매개변수로
invoke_subagent를 호출하세요:TypeName:"self"Role:"Adversarial Code & QA Auditor"Model:"inherit"Prompt: 감사자에게[ComponentName].tsx,[ComponentName]Skeleton.tsx,[ComponentName].test.tsx,[ComponentName].stories.tsx를 검사하고 컴포넌트 디렉토리에[ComponentName].edge.test.tsx를 생성하도록 지시합니다.
- 다음 매개변수로
-
2단계: 감사자가
[ComponentName].edge.test.tsx주입- 감사자가 엣지 케이스 어서션을 작성하고 리뷰를 완료합니다.
-
3단계: 적대적 테스트 실행 및 자동 복구
- 엣지 케이스 테스트 스위트를 실행합니다:
pnpm test -- <target_component_dir>/[ComponentName].edge.test.tsx - 테스트가 실패하면 모든 엣지 테스트가 오류 없이 통과할 때까지 컴포넌트 구현을 패치합니다.
- 엣지 케이스 테스트 스위트를 실행합니다: