@su-record/vibe 2.9.1 → 2.9.3

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.
Files changed (79) hide show
  1. package/CLAUDE.md +31 -10
  2. package/README.ko.md +90 -25
  3. package/README.md +139 -25
  4. package/agents/teams/debug-team.md +70 -0
  5. package/agents/teams/dev-team.md +88 -0
  6. package/agents/teams/docs-team.md +80 -0
  7. package/agents/teams/figma/figma-analyst.md +52 -0
  8. package/agents/teams/figma/figma-architect.md +112 -0
  9. package/agents/teams/figma/figma-auditor.md +82 -0
  10. package/agents/teams/figma/figma-builder.md +100 -0
  11. package/agents/teams/figma-team.md +85 -0
  12. package/agents/teams/fullstack-team.md +83 -0
  13. package/agents/teams/lite-team.md +69 -0
  14. package/agents/teams/migration-team.md +78 -0
  15. package/agents/teams/refactor-team.md +94 -0
  16. package/agents/teams/research-team.md +86 -0
  17. package/agents/teams/review-debate-team.md +125 -0
  18. package/agents/teams/security-team.md +81 -0
  19. package/commands/vibe.analyze.md +324 -170
  20. package/commands/vibe.figma.md +549 -34
  21. package/commands/vibe.harness.md +177 -0
  22. package/commands/vibe.review.md +1 -63
  23. package/commands/vibe.run.md +52 -403
  24. package/commands/vibe.scaffold.md +195 -0
  25. package/commands/vibe.spec.md +373 -1003
  26. package/commands/vibe.trace.md +17 -0
  27. package/commands/vibe.verify.md +19 -10
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +29 -1
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/update.d.ts.map +1 -1
  32. package/dist/cli/commands/update.js +4 -2
  33. package/dist/cli/commands/update.js.map +1 -1
  34. package/dist/cli/postinstall/constants.d.ts +1 -1
  35. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  36. package/dist/cli/postinstall/constants.js +6 -1
  37. package/dist/cli/postinstall/constants.js.map +1 -1
  38. package/dist/cli/setup/ProjectSetup.d.ts +12 -1
  39. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  40. package/dist/cli/setup/ProjectSetup.js +259 -72
  41. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  42. package/dist/cli/setup.d.ts +1 -1
  43. package/dist/cli/setup.d.ts.map +1 -1
  44. package/dist/cli/setup.js +1 -1
  45. package/dist/cli/setup.js.map +1 -1
  46. package/hooks/scripts/figma-guard.js +220 -0
  47. package/hooks/scripts/figma-refine.js +315 -0
  48. package/hooks/scripts/figma-to-scss.js +394 -0
  49. package/hooks/scripts/figma-validate.js +353 -0
  50. package/package.json +1 -1
  51. package/skills/arch-guard/SKILL.md +1 -1
  52. package/skills/capability-loop/SKILL.md +106 -2
  53. package/skills/chub-usage/SKILL.md +43 -43
  54. package/skills/claude-md-guide/SKILL.md +175 -175
  55. package/skills/design-teach/SKILL.md +33 -33
  56. package/skills/devlog/SKILL.md +38 -38
  57. package/skills/event-comms/SKILL.md +23 -13
  58. package/skills/event-ops/SKILL.md +28 -19
  59. package/skills/event-planning/SKILL.md +13 -1
  60. package/skills/priority-todos/SKILL.md +1 -1
  61. package/skills/vibe.figma/SKILL.md +263 -115
  62. package/skills/vibe.figma/templates/component-spec.md +168 -0
  63. package/skills/vibe.figma.convert/SKILL.md +131 -84
  64. package/skills/vibe.figma.convert/rubrics/conversion-rules.md +12 -0
  65. package/skills/vibe.figma.extract/SKILL.md +148 -108
  66. package/skills/vibe.figma.extract/rubrics/image-rules.md +15 -3
  67. package/skills/vibe.interview/SKILL.md +358 -0
  68. package/skills/vibe.interview/checklists/api.md +101 -0
  69. package/skills/vibe.interview/checklists/feature.md +88 -0
  70. package/skills/vibe.interview/checklists/library.md +95 -0
  71. package/skills/vibe.interview/checklists/mobile.md +89 -0
  72. package/skills/vibe.interview/checklists/webapp.md +97 -0
  73. package/skills/vibe.interview/checklists/website.md +99 -0
  74. package/skills/vibe.plan/SKILL.md +216 -0
  75. package/skills/vibe.spec/SKILL.md +1155 -0
  76. package/{commands/vibe.spec.review.md → skills/vibe.spec.review/SKILL.md} +272 -155
  77. package/vibe/templates/claudemd-template.md +74 -0
  78. package/vibe/templates/constitution-template.md +15 -0
  79. package/vibe/templates/plan-template.md +194 -0
@@ -0,0 +1,89 @@
1
+ # Discovery Checklist: Mobile App
2
+
3
+ > iOS/Android/크로스플랫폼 **네이티브 앱**. React Native, Flutter, Swift, Kotlin 등.
4
+
5
+ ## Required
6
+
7
+ ### R1. purpose
8
+ **Q**: 이 모바일 앱으로 어떤 문제를 해결하시려 하나요?
9
+
10
+ ### R2. platforms
11
+ **Q**: 어떤 플랫폼을 지원하나요?
12
+ **힌트**: iOS만 / Android만 / 둘 다 / 웹+앱.
13
+ **follow-up**: "우선 개발 플랫폼은?"
14
+
15
+ ### R3. target-users
16
+ **Q**: 주요 사용자는 누구이며 언제 앱을 사용하나요?
17
+ **힌트**: 사용 맥락(출퇴근, 운동 중, 여가, 업무 등)이 중요.
18
+
19
+ ### R4. core-features
20
+ **Q**: 핵심 기능(Must)은 무엇인가요?
21
+ **힌트**: 3-7개. MVP 범위로 압축.
22
+
23
+ ### R5. auth-method
24
+ **Q**: 인증 방식은?
25
+ **힌트**: 소셜 로그인, 애플 로그인(iOS 필수), 전화번호, 게스트 모드, 인증 없음.
26
+
27
+ ### R6. backend-need
28
+ **Q**: 백엔드가 필요한가요?
29
+ **힌트**: 100% 로컬 / BaaS(Firebase/Supabase) / 자체 백엔드 / 기존 API 사용.
30
+
31
+ ### R7. store-plan
32
+ **Q**: 앱스토어 배포 계획이 있나요?
33
+ **힌트**: App Store, Play Store, 사내 배포, TestFlight만.
34
+
35
+ ### R8. success-metric
36
+ **Q**: 성공 기준은? (DAU, 리텐션, 리뷰 점수, 특정 액션 N회)
37
+
38
+ ## Optional
39
+
40
+ ### O1. offline-mode
41
+ **Q**: 오프라인 동작이 필요한가요?
42
+ **힌트**: 완전 오프라인 / 일부 기능 / 온라인 필수.
43
+
44
+ ### O2. push-notifications
45
+ **Q**: 푸시 알림이 필요한가요?
46
+ **힌트**: APNs, FCM, OneSignal.
47
+
48
+ ### O3. native-features
49
+ **Q**: 어떤 네이티브 기능을 사용하나요?
50
+ **힌트**: 카메라, 위치, 생체인증, HealthKit, 연락처, 블루투스, NFC.
51
+
52
+ ### O4. deep-linking
53
+ **Q**: 딥링크/유니버설 링크가 필요한가요?
54
+
55
+ ### O5. in-app-purchase
56
+ **Q**: 인앱 결제가 필요한가요?
57
+ **힌트**: IAP(구독/소비성), 외부 결제 링크.
58
+
59
+ ### O6. analytics
60
+ **Q**: 분석 도구는?
61
+ **힌트**: Firebase Analytics, Amplitude, Mixpanel, PostHog.
62
+
63
+ ### O7. crash-reporting
64
+ **Q**: 크래시 리포팅은?
65
+ **힌트**: Sentry, Crashlytics, Bugsnag.
66
+
67
+ ### O8. accessibility
68
+ **Q**: 접근성 요구사항은?
69
+ **힌트**: VoiceOver(iOS), TalkBack(Android), Dynamic Type.
70
+
71
+ ### O9. dark-mode
72
+ **Q**: 다크 모드 지원이 필요한가요?
73
+
74
+ ### O10. i18n
75
+ **Q**: 다국어 지원이 필요한가요?
76
+
77
+ ### O11. device-orientation
78
+ **Q**: 지원 디바이스 방향은?
79
+ **힌트**: 세로 전용 / 가로 전용 / 둘 다 / 태블릿.
80
+
81
+ ### O12. min-os-version
82
+ **Q**: 지원 최소 OS 버전은?
83
+
84
+ ### O13. app-size
85
+ **Q**: 앱 용량 제한이 있나요?
86
+
87
+ ### O14. build-distribution
88
+ **Q**: 빌드/배포 방식은?
89
+ **힌트**: EAS, Fastlane, Xcode Cloud, CI/CD.
@@ -0,0 +1,97 @@
1
+ # Discovery Checklist: Webapp
2
+
3
+ > 대시보드, SaaS, 관리자 도구, 내부 도구 등 **상호작용/상태 기반 웹 애플리케이션**.
4
+
5
+ ## Required (반드시 수집)
6
+
7
+ ### R1. purpose
8
+ **Q**: 이 웹앱으로 어떤 문제를 해결하시려고 하나요?
9
+ **힌트**: 구체적 사용 시나리오 1개 이상.
10
+
11
+ ### R2. user-roles
12
+ **Q**: 어떤 종류의 사용자가 있나요? (역할/권한 구분)
13
+ **힌트**: 예) 관리자/일반사용자, 호스트/게스트, 판매자/구매자. 단일 역할이면 "단일".
14
+ **follow-up**: 각 역할이 할 수 있는 일을 간단히.
15
+
16
+ ### R3. core-features
17
+ **Q**: 핵심 기능을 우선순위 순으로 나열해주세요.
18
+ **힌트**: Must/Should/Could로 구분. 최소 3개.
19
+ **follow-up**: "첫 버전(MVP)에 반드시 있어야 할 것만 고르면 몇 개인가요?"
20
+
21
+ ### R4. data-model
22
+ **Q**: 주요 데이터는 무엇인가요? (엔티티와 관계 대략)
23
+ **힌트**: 예) User → Project → Task. ERD 수준의 정밀도는 불필요.
24
+
25
+ ### R5. auth-method
26
+ **Q**: 인증 방식은?
27
+ **힌트**: 이메일/비밀번호, 소셜(Google/Apple/GitHub), 매직 링크, Passkey, SSO, 인증 없음.
28
+ **follow-up**: "MFA 필요하신가요?"
29
+
30
+ ### R6. tech-stack
31
+ **Q**: 기술 스택 선호가 있나요?
32
+ **힌트**: Frontend/Backend/DB. 기존 프로젝트면 그대로 유지.
33
+
34
+ ### R7. hosting-runtime
35
+ **Q**: 어디서 실행되나요? (호스팅/런타임)
36
+ **힌트**: Vercel, Fly, Railway, AWS, 자체 서버. Serverless vs 항상-on.
37
+
38
+ ### R8. success-metric
39
+ **Q**: 성공 기준은? (DAU, 리텐션, 핵심 액션 N회 등)
40
+ **힌트**: 측정 가능한 숫자.
41
+
42
+ ## Optional
43
+
44
+ ### O1. realtime-requirement
45
+ **Q**: 실시간 기능이 필요한가요? (채팅, 알림, 협업 등)
46
+ **힌트**: WebSocket/SSE/Polling 중 어느 수준.
47
+
48
+ ### O2. offline-support
49
+ **Q**: 오프라인 지원이 필요한가요? (PWA, 로컬 동기화)
50
+
51
+ ### O3. notifications
52
+ **Q**: 알림은 어떤 방식으로? (in-app, 이메일, 푸시, SMS)
53
+
54
+ ### O4. integrations
55
+ **Q**: 외부 서비스 통합이 필요한가요?
56
+ **힌트**: 결제(Stripe), 이메일(SendGrid/Resend), SMS(Twilio), 스토리지(S3), 검색(Algolia), AI(OpenAI).
57
+
58
+ ### O5. permission-model
59
+ **Q**: 권한 모델이 복잡한가요? (RBAC, ABAC, 리소스 소유권)
60
+ **힌트**: 예) "팀 단위 권한, 관리자가 역할 지정"
61
+
62
+ ### O6. data-retention
63
+ **Q**: 데이터 보존/삭제 정책이 있나요?
64
+ **힌트**: GDPR, 사용자 요청 삭제, 보관 기간.
65
+
66
+ ### O7. i18n
67
+ **Q**: 다국어 지원이 필요한가요?
68
+
69
+ ### O8. accessibility
70
+ **Q**: 접근성 목표는? (WCAG 레벨)
71
+
72
+ ### O9. performance-slo
73
+ **Q**: 성능 목표(SLO)가 있나요?
74
+ **힌트**: 예) p95 API 응답 < 300ms, 페이지 로드 < 2s.
75
+
76
+ ### O10. monitoring
77
+ **Q**: 모니터링/로깅 도구는?
78
+ **힌트**: Sentry, Datadog, Logflare, OpenTelemetry.
79
+
80
+ ### O11. analytics
81
+ **Q**: 사용자 분석 도구가 필요한가요?
82
+ **힌트**: PostHog, Mixpanel, Amplitude.
83
+
84
+ ### O12. test-strategy
85
+ **Q**: 테스트 전략 선호가 있나요?
86
+ **힌트**: unit/integration/e2e 중 어디에 무게.
87
+
88
+ ### O13. ci-cd
89
+ **Q**: CI/CD 환경은?
90
+ **힌트**: GitHub Actions, GitLab CI, Vercel Auto, 수동 배포.
91
+
92
+ ### O14. budget
93
+ **Q**: 월 인프라 예산은?
94
+
95
+ ### O15. compliance
96
+ **Q**: 법적/컴플라이언스 요구사항이 있나요?
97
+ **힌트**: GDPR, HIPAA, SOC2, 개인정보보호법.
@@ -0,0 +1,99 @@
1
+ # Discovery Checklist: Website
2
+
3
+ > 랜딩, 포트폴리오, 프로모션, 브랜드, 회사 소개 등 **정보 전달형 웹사이트**.
4
+
5
+ ## Required (반드시 수집)
6
+
7
+ ### R1. purpose
8
+ **Q**: 이 웹사이트를 왜 만드시나요? 어떤 목적인가요?
9
+ **힌트**: 예) 신제품 런칭 프로모션, 개인 포트폴리오, 회사 소개, 이벤트 안내, 에이전시 showcase
10
+ **follow-up**: 목적이 구체적이지 않으면 "런칭/브랜딩/전환/정보제공 중 어디에 가까운가요?"
11
+
12
+ ### R2. target-users
13
+ **Q**: 주요 타깃 사용자는 누구인가요? (나이/관심사/상황 등)
14
+ **힌트**: "누구나"는 지양. 구체적 페르소나 1-2명 확보.
15
+ **follow-up**: "그분들은 보통 어떤 상황에서 이 사이트를 방문하게 되나요?"
16
+
17
+ ### R3. core-message
18
+ **Q**: 방문자가 사이트를 떠날 때 단 한 문장만 기억한다면, 그건 무엇이어야 하나요?
19
+ **힌트**: USP/핵심 가치제안.
20
+
21
+ ### R4. required-sections
22
+ **Q**: 어떤 섹션이 필수인가요?
23
+ **힌트**: 예) Hero, About, Features, Gallery, Testimonials, Contact, FAQ, CTA
24
+ **follow-up**: 각 섹션이 달성해야 할 목적도 함께 확인.
25
+
26
+ ### R5. brand-tone
27
+ **Q**: 브랜드 톤/무드는 어떻게 가고 싶으신가요?
28
+ **힌트**: 예) 미니멀·시네마틱, 따뜻·아날로그, 모던·고급, 친근·활기, 전문·신뢰
29
+ **follow-up**: "비슷한 느낌의 사이트가 있다면 URL 공유 가능한가요?"
30
+
31
+ ### R6. tech-constraints
32
+ **Q**: 기술 제약이 있나요? (지원 브라우저, 성능 목표, 디바이스 등)
33
+ **힌트**: 예) 최신 브라우저만, LCP < 2.5s, 모바일 우선, IE 지원 불필요
34
+ **follow-up**: 기존 프로젝트면 CLAUDE.md/config.json 스택 확인.
35
+
36
+ ### R7. launch-timeline
37
+ **Q**: 언제까지 런칭이 필요한가요?
38
+ **힌트**: 정확한 날짜 또는 상대적 기간 (2주/1달/분기 내).
39
+
40
+ ### R8. success-metric
41
+ **Q**: 이 웹사이트가 "성공했다"고 판단할 기준은 무엇인가요?
42
+ **힌트**: 예) 월 방문자 N명, 이메일 수집 N건, 전환율 X%, 특정 버튼 클릭 N회
43
+
44
+ ## Optional (시간이 있으면 수집)
45
+
46
+ ### O1. reference-sites
47
+ **Q**: 참고하고 싶은 레퍼런스 사이트가 있나요? (좋아하는 디자인/인터랙션)
48
+ **힌트**: URL 2-3개.
49
+
50
+ ### O2. color-direction
51
+ **Q**: 컬러 방향이 있나요? (다크/라이트, 주요 색상, 피해야 할 색)
52
+ **힌트**: 브랜드 컬러가 있으면 HEX 값. 없으면 키워드.
53
+
54
+ ### O3. typography-preference
55
+ **Q**: 타이포그래피 선호가 있나요? (serif/sans, 한글 폰트 등)
56
+
57
+ ### O4. animation-level
58
+ **Q**: 애니메이션/인터랙션 강도는?
59
+ **힌트**: 1-5 스케일. 1=정적, 3=가벼운 스크롤 효과, 5=풀스크린 인터랙티브.
60
+
61
+ ### O5. responsive-strategy
62
+ **Q**: 디바이스 우선순위가 어떻게 되나요?
63
+ **힌트**: desktop-first / mobile-first / equal priority.
64
+
65
+ ### O6. accessibility-level
66
+ **Q**: 접근성 수준은?
67
+ **힌트**: WCAG A / AA / AAA. 공공/의료 분야면 AA 이상 권장.
68
+
69
+ ### O7. seo-importance
70
+ **Q**: SEO가 중요한가요?
71
+ **힌트**: 검색 유입이 주 채널인가? 타깃 키워드는?
72
+
73
+ ### O8. i18n
74
+ **Q**: 다국어 지원이 필요한가요?
75
+ **힌트**: 지원할 언어 목록.
76
+
77
+ ### O9. analytics
78
+ **Q**: 분석 도구 연동이 필요한가요?
79
+ **힌트**: 예) Google Analytics 4, Plausible, Hotjar, Mixpanel
80
+
81
+ ### O10. cms-need
82
+ **Q**: 콘텐츠를 나중에 직접 수정해야 하나요? (CMS 필요)
83
+ **힌트**: Sanity, Contentful, Notion, Headless CMS 등.
84
+
85
+ ### O11. hosting-preference
86
+ **Q**: 호스팅 선호가 있나요?
87
+ **힌트**: Vercel, Netlify, Cloudflare Pages, GitHub Pages, 자체 호스팅.
88
+
89
+ ### O12. budget
90
+ **Q**: 월 운영 예산은 어느 수준인가요?
91
+ **힌트**: $0 (free tier) / $10 이하 / $50 이하 / 제약 없음.
92
+
93
+ ### O13. maintenance-plan
94
+ **Q**: 런칭 후 유지보수는 누가 하나요?
95
+ **힌트**: 본인 / 외주 / 자동화만 / 미정.
96
+
97
+ ### O14. content-author
98
+ **Q**: 콘텐츠(카피, 이미지, 영상)는 누가 준비하나요?
99
+ **힌트**: 클라이언트가 준비 / 이 프로젝트에서 함께 작성 / AI로 생성.
@@ -0,0 +1,216 @@
1
+ ---
2
+ name: vibe.plan
3
+ tier: core
4
+ description: "Refine a vibe.interview result into a human-readable markdown 기획서 (planning document). The plan is a vision document that downstream skills/commands use: /vibe.spec consumes it for code implementation, /vibe.figma uses it for UI storyboards. Must use this skill after vibe.interview completes, or when the user has raw interview notes and wants a structured plan document."
5
+ triggers: [기획서, 기획서 작성, plan document, 기획 정리, "interview 정리", refine plan]
6
+ priority: 90
7
+ chain-next: [vibe.spec, vibe.figma]
8
+ ---
9
+
10
+ # vibe.plan — Interview → Plan Document Refinement
11
+
12
+ > **Principle**: Refine the raw Q&A from the interview into a **human-readable vision document**. AI execution structures like PTCF/EARS/Phase are the responsibility of `/vibe.spec`.
13
+
14
+ ## When to Use
15
+
16
+ - `vibe.interview` has just completed and `.claude/vibe/interviews/{feature}.md` exists
17
+ - The user requests "write me a plan document" or "clean up the interview"
18
+ - Need to convert an external PRD/wireframe into the vibe plan document format
19
+
20
+ **Skip condition**:
21
+ - If this skill is called directly without an interview → chain to `vibe.interview` first (no chain-prev; inform the user)
22
+
23
+ ## Core Flow
24
+
25
+ ```
26
+ 1. Read interview file
27
+ .claude/vibe/interviews/{feature}.md
28
+
29
+ 2. Load template
30
+ ~/.claude/vibe/templates/plan-template.md
31
+
32
+ 3. Refine per section
33
+ - Required responses → body sections
34
+ - Optional responses → body + "Assumptions"
35
+ - TBD items → "Open Questions"
36
+ - Discovered → merged into relevant sections
37
+
38
+ 4. Conditionally include UI sections
39
+ type ∈ {website, webapp, mobile} → include Look&Feel / layout / responsive
40
+ type ∈ {api, library, feature-data} → omit
41
+
42
+ 5. Save plan document
43
+ .claude/vibe/plans/{feature}.md
44
+
45
+ 6. Handoff guidance
46
+ Next steps: /vibe.spec, /vibe.figma, parallel
47
+ ```
48
+
49
+ ## Step 1: Read Interview File
50
+
51
+ ```
52
+ Read .claude/vibe/interviews/{feature-name}.md
53
+ ```
54
+
55
+ Extract `type`, `status`, `requiredCollected`, `optionalCollected`, etc. from the frontmatter.
56
+
57
+ **Validation**:
58
+ - `status: partial` + Required items incomplete → warn the user:
59
+ ```
60
+ ⚠️ Interview is partially complete (N Required items not collected).
61
+ Those items will appear as "TBD" in the plan document.
62
+ Continue? (y/N)
63
+ ```
64
+ - If the file does not exist → guide the user to run `vibe.interview` first.
65
+
66
+ ### `.last-feature` Pointer Update
67
+
68
+ ```
69
+ Write ".claude/vibe/.last-feature" ← feature-name (one line)
70
+ Run immediately after extracting the feature name from the interview file.
71
+ No-op if the value is already the same.
72
+ ```
73
+
74
+ ## Step 2: Load Template
75
+
76
+ ```
77
+ Read ~/.claude/vibe/templates/plan-template.md
78
+ ```
79
+
80
+ The template has a 12-section structure:
81
+
82
+ | # | Section | All Types | UI Types Only |
83
+ |---|---------|-----------|---------------|
84
+ | 1 | Overview | ✅ | |
85
+ | 2 | Background (Why) | ✅ | |
86
+ | 3 | Target Users (Who) | ✅ | |
87
+ | 4 | Goals & Success Criteria | ✅ | |
88
+ | 5 | Core Features/Sections | ✅ | |
89
+ | 6 | Scope & Out-of-Scope | ✅ | |
90
+ | 7 | Look & Feel | | ✅ |
91
+ | 8 | Layout/Section Structure | | ✅ |
92
+ | 9 | Responsive Strategy | | ✅ |
93
+ | 10 | Tech Stack & Constraints | ✅ | |
94
+ | 11 | Assumptions & Risks | ✅ | |
95
+ | 12 | Next Steps (Handoff) | ✅ | |
96
+
97
+ ### Template Fallback
98
+
99
+ If `~/.claude/vibe/templates/plan-template.md` is not found:
100
+ 1. Check `{{VIBE_PATH}}/vibe/templates/plan-template.md` (package source)
101
+ 2. If neither exists, use the built-in section list from this skill as the template structure
102
+ 3. Never fail silently — always inform the user which template source was used
103
+
104
+ ## Step 3: Per-Section Refinement Mapping
105
+
106
+ Interview items → plan document section mapping rules:
107
+
108
+ ### Common Mapping
109
+
110
+ | Interview Item | Plan Section |
111
+ |----------------|--------------|
112
+ | `R1. purpose` | §2 Background (Why) |
113
+ | `R2. target-users` | §3 Target Users |
114
+ | `R3. core-message` / `R3. core-features` / `R3. core-endpoints` | §5 Core Features/Sections |
115
+ | `R4. required-sections` / `R4. data-model` / `R4. core-api` | §5 Core Features/Sections |
116
+ | `R7/R8. success-metric` | §4 Goals & Success Criteria |
117
+ | `R6/R7. tech-constraints` / `tech-stack` | §10 Tech Stack & Constraints |
118
+
119
+ ### UI Types (website/webapp/mobile) Additional Mapping
120
+
121
+ | Interview Item | Plan Section |
122
+ |----------------|--------------|
123
+ | `R5. brand-tone` + `O1. reference-sites` + `O2. color-direction` + `O3. typography-preference` + `O4. animation-level` | §7 Look & Feel |
124
+ | `R4. required-sections` (website) / `R4. core-features` (webapp) | §8 Layout/Section Structure |
125
+ | `O5. responsive-strategy` + `O6/O8. accessibility-level` | §9 Responsive Strategy |
126
+
127
+ ### Common Post-Processing
128
+
129
+ - `interview.TBD[]` → §11 "Assumptions & Risks" or "Open Questions" at the end of the document
130
+ - `interview.discovered[]` → merged into relevant sections + "Discovered during interview" note
131
+ - All uncollected Optional items → recorded as defaults in §11 "Assumptions" (e.g., "Accessibility: WCAG AA assumed")
132
+
133
+ ## Step 4: Conditionally Include UI Sections
134
+
135
+ ```python
136
+ if interview.type in {"website", "webapp", "mobile"}:
137
+ include_sections = [1..12] # all sections
138
+ else: # api, library, feature-data
139
+ include_sections = [1..6, 10..12] # omit §7-9 (Look&Feel/Layout/Responsive)
140
+ # note in §5: "No UI — API/Library project"
141
+ ```
142
+
143
+ ## Step 5: Save Plan Document
144
+
145
+ **Output path**: `.claude/vibe/plans/{feature-name}.md`
146
+
147
+ **Frontmatter**:
148
+
149
+ ```yaml
150
+ ---
151
+ feature: {feature-name}
152
+ type: {website | webapp | mobile | api | library | feature}
153
+ status: draft
154
+ createdAt: {ISO-timestamp}
155
+ lastUpdated: {ISO-timestamp}
156
+ source: .claude/vibe/interviews/{feature-name}.md
157
+ downstream: [spec, figma] # or [spec] for non-UI
158
+ ---
159
+ ```
160
+
161
+ **Body**: Template structure + refined content.
162
+
163
+ **Quality criteria**:
164
+ - Each section takes 30 seconds or less to read
165
+ - Compressed to 3-7 bullets per section
166
+ - Minimize technical jargon (this is a human-readable vision document)
167
+ - Mark "TBD" in bold to make it clear that a follow-up decision is needed
168
+
169
+ ## Step 6: Handoff Guidance
170
+
171
+ After saving the plan document, guide the user on next steps:
172
+
173
+ ```
174
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
175
+ ✅ Plan document complete!
176
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
177
+
178
+ 📄 .claude/vibe/plans/{feature-name}.md
179
+ Sections: {N} written
180
+ TBD: {M} (to be decided later)
181
+
182
+ Type: {type}
183
+
184
+ Next steps:
185
+
186
+ [UI project: website/webapp/mobile]
187
+ 1. /vibe.spec ".claude/vibe/plans/{feature-name}.md"
188
+ → Write code spec → /vibe.run implementation
189
+ 2. /vibe.figma
190
+ → Figma design → FE UI code
191
+ 3. Run in parallel (recommended)
192
+ → Feature + Design → website prototype
193
+
194
+ [Non-UI: api/library]
195
+ 1. /vibe.spec ".claude/vibe/plans/{feature-name}.md"
196
+ → Code spec → /vibe.run implementation
197
+
198
+ Where would you like to start?
199
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
200
+ ```
201
+
202
+ ## Anti-Patterns
203
+
204
+ - Do not write in PTCF structure (that is /vibe.spec's responsibility)
205
+ - Do not use EARS format (WHEN/THEN)
206
+ - Do not include file lists, Phase splits, or Acceptance Criteria
207
+ - Do not over-specify the Tech Stack — high-level only
208
+ - Do not hide TBD items — they must be surfaced explicitly so they can be decided in the next step
209
+ - Do not run this skill without an interview (no raw information)
210
+ - Do not force-fill a Look&Feel section for non-UI projects
211
+
212
+ ## Related
213
+
214
+ - **Prev**: `vibe.interview` — requirements collection (implicit chain-prev)
215
+ - **Next**: `/vibe.spec` (code spec), `/vibe.figma` (UI design)
216
+ - **Template**: `~/.claude/vibe/templates/plan-template.md`