| name | fe-review-vue |
| description | Vue 3/Nuxt 3 PR/diff를 사내 원칙 기반으로 리뷰. `[SEVERITY] file:line — 이슈` 형식. 4원칙 + Web Vitals + WCAG 2.2 + Composition API/반응성 함정 체크. Use when this capability is needed. |
| metadata | {"author":"forgen-team"} |
fe-review (Vue)
호출 시점: PR 링크, diff, 변경 파일 목록.
선행 로딩: principles/common.md + principles/vue.md.
0. 출력 형식
[SEVERITY] path/to/file.vue:42 — <한 줄 이슈>
근거: principles/<doc>.md <섹션>
픽스: <코드 또는 한 줄 처방>
HIGH / MED / LOW.
리뷰 시작 시:
## 리뷰 요약
- 변경 범위: <files / +N -M>
- HIGH N, MED N, LOW N
- 머지 가능 여부: [차단 / 권장 수정 후 / 가능]
1. 체크 순서
Phase 1 — 명세 정합성
- 명세 동봉됐는가? 없으면 다음 출처 후보를 명시적으로 요청 후 일시 중지:
- PR/MR 본문의 "Why / Spec" 섹션
- 연결된 이슈 (Linear/Jira/GitHub Issue)
- Notion/Confluence 명세 페이지
- 디자인 명세 (Figma 코멘트 / 디자인 토큰)
- 위에도 없으면 구두 합의 내용을 텍스트로 적어달라고 요청
→ 명세 없는 리뷰는 "취향 코멘트". 받기 전에는 Phase 2 진행 금지.
- 옵셔널 항목이 검증 로직에서 필수 취급된 곳 없는가? (표시/검증 불일치 패턴)
→ 점검 절차: 명세에서 "옵셔널" grep → 해당 필드 → 템플릿
:disabled / v-if="isRequired" ↔ 스크립트 검증 분기가 같은 진실을 보는가.
- README/주석의 자랑 vs 실제 코드 결함?
Phase 2 — Vue 안티패턴 (principles/vue.md V6)
Phase 3 — Vue 스타일 가이드 Priority A (principles/vue.md V1.1)
Phase 4 — 코드 품질 4원칙 (principles/common.md A)
(React fe-review 와 동일. 가독성 > 예측성 > 응집도 > 결합도 순.)
Phase 5 — Web Vitals (principles/common.md B)
Phase 6 — 접근성 (WCAG 2.2)
(React fe-review Phase 5 와 동일 항목.)
Phase 7 — 보안/안티패턴
2. 출력 예시
## 리뷰 요약
- 변경 범위: pages/order/*.vue 6 files +210 -38
- HIGH 4, MED 3, LOW 1
- 머지 가능 여부: 차단
[HIGH] pages/order/[id].vue:24 — onMounted 안에서 페치 → SSR/CSR 불일치
근거: principles/vue.md V5.2
픽스:
const { data } = await useAsyncData(`order-${route.params.id}`,
() => $fetch(`/api/orders/${route.params.id}`))
[HIGH] components/OptionList.vue:45 — v-if와 v-for 동시 사용
근거: principles/vue.md V1.1
픽스: computed로 필터 후 v-for
[HIGH] stores/order.ts:30 — 외부에서 store.state 직접 변경
근거: principles/vue.md V6
픽스: action 추가 후 호출
3. 관련 문서
Source: forgen-team/forgen — distributed by TomeVault.