@su-record/vibe 2.8.16 → 2.8.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@su-record/vibe",
3
- "version": "2.8.16",
3
+ "version": "2.8.17",
4
4
  "description": "AI Coding Framework for Claude Code — 49 agents, 41+ tools, multi-LLM orchestration",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
@@ -258,12 +258,21 @@ function handleClaimReward(milestone: Milestone): void {
258
258
  }
259
259
  </script>
260
260
 
261
- <style lang="scss" scoped>
262
- /* Step B: 모바일 디자인 URL 반영 시 스타일 구현 */
263
- .dailyCheckInSection {
264
- /* layout will be filled in Step B */
265
- }
266
- </style>
261
+ <!-- ⛔ <style> 블록을 컴포넌트에 넣지 않는다 -->
262
+ <!-- 스타일은 외부 파일에서 관리: styles/{feature}/layout/, components/ -->
263
+ </script>
264
+ ```
265
+
266
+ ### ⛔ 스타일 분리 규칙
267
+
268
+ ```
269
+ Step A에서 컴포넌트 파일에 <style> 블록을 작성하지 않는다.
270
+ 스타일은 Step B에서 외부 파일로 생성:
271
+ --new 모드: styles/{feature}/layout/_daily-checkin.scss
272
+ 기본 모드: 기존 프로젝트 스타일 패턴을 따름
273
+
274
+ 컴포넌트는 <template> + <script setup> 만 포함.
275
+ 스타일 import는 루트 페이지 또는 nuxt.config에서 처리.
267
276
  ```
268
277
 
269
278
  ### 핵심 원칙: 스타일 없이 동작하는 코드
@@ -348,29 +357,88 @@ function handleConfirm(): void {
348
357
 
349
358
  ## Phase 7: Step A 검증 루프
350
359
 
351
- > **⛔ 아래 조건을 모두 만족해야 Step B로 진행. 하나라도 실패 수정 후 재검증.**
360
+ > **⛔ 아래 검증을 실제로 실행해야 함. 체크리스트를 머리속으로 확인하지 말고 도구로 확인.**
361
+
362
+ ### 7-1. 파일 존재 확인 (Glob 도구)
352
363
 
353
364
  ```
354
- 🔄 검증 체크리스트:
365
+ Glob으로 생성된 파일 목록 확인:
366
+ Glob: pages/{feature}*.vue
367
+ Glob: components/{feature}/**/*.vue
368
+ Glob: styles/{feature}/**/*.scss
369
+
370
+ 확인:
371
+ □ 루트 페이지 파일 존재
372
+ □ PAGE 프레임 수 = 컴포넌트 .vue 파일 수 (카운트 비교)
373
+ □ styles/{feature}/ 디렉토리 존재
374
+ □ 팝업 컴포넌트 존재 (스토리보드에 팝업이 있었으면)
375
+
376
+ 누락 시 → Write로 생성
377
+ ```
378
+
379
+ ### 7-2. 기능 주석 확인 (각 파일 Read 도구로 실제 열기)
355
380
 
356
- 1. 파일 생성 완료 확인:
357
- 루트 페이지 파일 존재 (pages/{feature}.vue)
358
- □ PAGE 프레임 수 = 생성된 섹션 컴포넌트 수 (1개도 빠짐 없음)
359
- 팝업 컴포넌트 생성됨 (스토리보드에 팝업이 있으면)
360
- 스타일 디렉토리 생성됨 (styles/{feature}/)
381
+ ```
382
+ 모든 섹션 컴포넌트 파일을 Read로 열어서 아래를 확인:
383
+
384
+ 파일에서 체크:
385
+ JSDoc 주석 블록 존재 (/** ... */)
386
+ □ [기능 정의] 섹션 있음 — 스토리보드 기능 정의서에서 추출한 내용
387
+ □ [인터랙션] 섹션 있음 — ①②③ 번호 + 동작 설명
388
+ □ [상태] 섹션 있음 — 해당 섹션의 상태 목록
389
+
390
+ 실제 확인 예시:
391
+ Read: components/{feature}/DailyCheckInSection.vue
392
+ → /** 블록 검색
393
+ → "[기능 정의]" 텍스트 존재 확인
394
+ → "[인터랙션]" 텍스트 존재 확인
395
+ → "handleCheckIn" 함수 존재 확인
396
+
397
+ 하나라도 누락 → Edit으로 추가 → 다시 Read로 재확인
398
+ ```
361
399
 
362
- 2. 코드 품질 확인 ( 컴포넌트 Read로 확인):
363
- □ 모든 컴포넌트에 기능 정의 JSDoc 주석 있음
364
- □ v-for 리스트에 목 데이터 채워짐 (빈 배열 없음)
365
- □ 이벤트 핸들러 함수 정의됨 (handleXxx)
366
- □ TypeScript 인터페이스 정의됨
367
- □ 팝업 open/close가 v-if + ref로 연결됨
400
+ ### 7-3. 데이터 확인 (Grep 도구)
368
401
 
369
- 3. 빌드 확인:
370
- 프로젝트 빌드 에러 없음 (Bash: npm run build 또는 nuxt build)
402
+ ```
403
+ Grep으로 배열 검색:
404
+ Grep: "ref<.*>\(\[\]\)" 또는 "ref\(\[\]\)" in components/{feature}/
405
+
406
+ 빈 배열 발견 시:
407
+ → 스토리보드 기능 정의서에서 해당 데이터 추출
408
+ → Edit으로 목 데이터 채움
409
+ → 다시 Grep으로 재확인
410
+ ```
411
+
412
+ ### 7-4. 스타일 분리 확인 (Grep 도구)
413
+
414
+ ```
415
+ 컴포넌트에 <style> 블록이 없는지 확인:
416
+ Grep: "<style" in components/{feature}/**/*.vue
417
+
418
+ <style> 발견 시:
419
+ → Edit으로 제거
420
+ → 해당 스타일을 styles/{feature}/ 외부 파일로 이동
421
+ ```
422
+
423
+ ### 7-5. 빌드 확인 (Bash 도구)
424
+
425
+ ```
426
+ Bash: npm run build (또는 nuxt build, next build)
427
+ → 에러 있으면 수정 → 재빌드
428
+ → 성공해야 Step B 진행
429
+ ```
430
+
431
+ ### 검증 완료 조건
432
+
433
+ ```
434
+ ✅ 파일 수 = PAGE 프레임 수
435
+ ✅ 모든 컴포넌트에 [기능 정의] + [인터랙션] + [상태] 주석
436
+ ✅ 빈 배열 0개
437
+ ✅ 컴포넌트 내 <style> 블록 0개
438
+ ✅ 빌드 성공
439
+ → Step B 진행 가능
371
440
 
372
- 실패 항목 → Edit으로 수정 → 재검증 (횟수 제한 없음)
373
- 동일 항목 3회 연속 실패 → 사용자에게 확인 후 계속
441
+ 실패 항목 → 수정 → 재검증 (횟수 제한 없음)
374
442
  ```
375
443
 
376
444
  ## 출력 요약