@yeongjaeyou/claude-code-config 0.18.6 → 0.19.0

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 (28) hide show
  1. package/.claude/agents/web-researcher.md +68 -4
  2. package/.claude/commands/gh/auto-review-loop.md +2 -2
  3. package/.claude/commands/gh/decompose-issue.md +12 -12
  4. package/.claude/commands/gh/resolve-and-review.md +1 -1
  5. package/.claude/guidelines/id-reference.md +2 -2
  6. package/.claude/guidelines/prd-guide.md +13 -13
  7. package/.claude/guidelines/work-guidelines.md +15 -1
  8. package/.claude/hooks/notify_osc.sh +7 -7
  9. package/.claude/skills/code-explorer/SKILL.md +21 -21
  10. package/.claude/skills/interview-methodology/SKILL.md +196 -0
  11. package/.claude/skills/midjourney-imagineapi/SKILL.md +260 -0
  12. package/.claude/skills/midjourney-imagineapi/references/imagineapi-integration.md +197 -0
  13. package/.claude/skills/midjourney-imagineapi/references/midjourney-parameters.md +393 -0
  14. package/.claude/skills/midjourney-imagineapi/references/midjourney-style-guide.md +296 -0
  15. package/.claude/skills/midjourney-imagineapi/references/prompt-examples.md +428 -0
  16. package/.claude/skills/notion-md-uploader/scripts/__pycache__/markdown_parser.cpython-311.pyc +0 -0
  17. package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_client.cpython-311.pyc +0 -0
  18. package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_converter.cpython-311.pyc +0 -0
  19. package/.claude/skills/notion-md-uploader/scripts/__pycache__/upload_md.cpython-311.pyc +0 -0
  20. package/package.json +1 -1
  21. package/.claude/skills/youtube-collector/README.md +0 -107
  22. package/.claude/skills/youtube-collector/SKILL.md +0 -158
  23. package/.claude/skills/youtube-collector/references/data-schema.md +0 -110
  24. package/.claude/skills/youtube-collector/scripts/collect_videos.py +0 -304
  25. package/.claude/skills/youtube-collector/scripts/fetch_transcript.py +0 -138
  26. package/.claude/skills/youtube-collector/scripts/fetch_videos.py +0 -229
  27. package/.claude/skills/youtube-collector/scripts/register_channel.py +0 -247
  28. package/.claude/skills/youtube-collector/scripts/setup_api_key.py +0 -151
@@ -2,6 +2,7 @@
2
2
  name: web-researcher
3
3
  description: Use this agent when you need to conduct comprehensive research on technical topics across multiple platforms (Reddit, GitHub, Stack Overflow, Hugging Face, arXiv, etc.) and generate a synthesized report. (project)
4
4
  model: inherit
5
+ skills: code-explorer
5
6
  ---
6
7
 
7
8
  # Web Research Expert Agent
@@ -53,7 +54,7 @@ Detect keywords in the prompt to determine execution mode:
53
54
  ### Required Fields (Quick & Deep)
54
55
 
55
56
  ```yaml
56
- platform: github | reddit | hf | stackoverflow | docs | arxiv | web
57
+ platform: github | reddit | hf | stackoverflow | docs | arxiv | web | twitter | threads
57
58
  query_used: "actual search query used"
58
59
  findings:
59
60
  - title: "finding title"
@@ -98,6 +99,8 @@ suggested_followups:
98
99
  | **DeepWiki** | In-depth GitHub repo analysis | MCP |
99
100
  | **arXiv** | Academic papers | WebSearch |
100
101
  | **General Web** | Blogs, tutorials | WebSearch / Firecrawl |
102
+ | **Twitter/X** | Viral content, real-time buzz, tech announcements | WebSearch |
103
+ | **Threads** | Meta ecosystem discussions, cross-platform takes | WebSearch |
101
104
 
102
105
  ---
103
106
 
@@ -161,7 +164,8 @@ Parallel execution (Task tool, run_in_background: true):
161
164
  ├── Task: HuggingFace search
162
165
  ├── Task: Reddit + StackOverflow search
163
166
  ├── Task: Context7 official docs
164
- └── Task: arXiv + general web (if needed)
167
+ ├── Task: arXiv + general web (if needed)
168
+ └── Task: Twitter/X + Threads (for trending/viral topics)
165
169
  ```
166
170
 
167
171
  **Execution policy:**
@@ -189,7 +193,8 @@ Parallel execution (all platforms):
189
193
  ├── Task: HuggingFace Agent (structured output)
190
194
  ├── Task: Community Agent - Reddit/SO (structured output)
191
195
  ├── Task: Official Docs Agent - Context7/DeepWiki (structured output)
192
- └── Task: Academic Agent - arXiv (structured output)
196
+ ├── Task: Academic Agent - arXiv (structured output)
197
+ └── Task: Social Media Agent - Twitter/X + Threads (structured output)
193
198
  ```
194
199
 
195
200
  **Each Task prompt MUST include:**
@@ -318,6 +323,8 @@ Terminate when any of the following is met:
318
323
  | Confirmed only in official docs (Context7/DeepWiki) | **HIGH** |
319
324
  | Single GitHub issue/PR | **MEDIUM** |
320
325
  | Single Reddit/SO answer | **MEDIUM** |
326
+ | Viral Twitter/X thread (high engagement) | **MEDIUM** |
327
+ | Single Threads post | **LOW** |
321
328
  | Date older than 2 years | **LOW** |
322
329
  | No source URL | **EXCLUDE** |
323
330
 
@@ -477,6 +484,62 @@ mcp__firecrawl__firecrawl_search
477
484
 
478
485
  ---
479
486
 
487
+ ### 9. Twitter/X Search (WebSearch)
488
+
489
+ ```
490
+ WebSearch: site:x.com OR site:twitter.com {query} {year}
491
+ ```
492
+
493
+ **Query patterns:**
494
+
495
+ | Goal | Query Format |
496
+ |------|--------------|
497
+ | From specific user | `site:x.com from:username {query}` |
498
+ | High engagement posts | `site:x.com {query} "likes" OR "retweets"` |
499
+ | Tech announcements | `site:x.com {library} release OR launch {year}` |
500
+ | Discussions/threads | `site:x.com {query} thread` |
501
+
502
+ **Useful tech accounts:**
503
+
504
+ - AI/ML: @_akhaliq, @AndrewYNg, @ylecun, @kaboranalytics
505
+ - Open source: @GitHub, @HuggingFace
506
+ - Dev tools: @veraborger, @raaborger
507
+
508
+ **Caveats:**
509
+
510
+ - WebSearch only indexes public, crawlable tweets
511
+ - Real-time trending data not available via WebSearch
512
+ - Rate-limited content may not appear in results
513
+
514
+ ---
515
+
516
+ ### 10. Threads Search (WebSearch)
517
+
518
+ ```
519
+ WebSearch: site:threads.net {query} {year}
520
+ ```
521
+
522
+ **Query patterns:**
523
+
524
+ | Goal | Query Format |
525
+ |------|--------------|
526
+ | From specific user | `site:threads.net/@username {query}` |
527
+ | Meta/Instagram topics | `site:threads.net {meta OR instagram} {query}` |
528
+
529
+ **Best for:**
530
+
531
+ - Cross-posted content from Instagram creators
532
+ - Meta ecosystem updates and discussions
533
+ - Alternative perspectives to Twitter/X
534
+
535
+ **Caveats:**
536
+
537
+ - Indexing coverage is more limited than Twitter/X
538
+ - Newer platform, less historical data available
539
+ - Search latency for recent posts
540
+
541
+ ---
542
+
480
543
  ## Report Template
481
544
 
482
545
  ```markdown
@@ -554,5 +617,6 @@ mcp__firecrawl__firecrawl_search
554
617
  ## File Management
555
618
 
556
619
  - Keep intermediate data in memory only
557
- - **Final deliverable**: Single `research-report-{topic-slug}.md` file only
620
+ - **Output directory**: `docs/research/`
621
+ - **Final deliverable**: Single `docs/research/research-report-{topic-slug}.md` file
558
622
  - Do not create temporary files or intermediate drafts
@@ -51,7 +51,7 @@ MAX_ITERATIONS=10
51
51
 
52
52
  ### Step 2: Wait for All Checks
53
53
 
54
- `gh pr checks`로 CodeRabbit과 Actions 상태를 번에 확인.
54
+ Check CodeRabbit and Actions status at once with `gh pr checks`.
55
55
 
56
56
  ```bash
57
57
  wait_for_all_checks() {
@@ -81,7 +81,7 @@ wait_for_all_checks() {
81
81
 
82
82
  ### Step 3: Check Unresolved Threads (GraphQL)
83
83
 
84
- CodeRabbit 리뷰 코멘트 미해결 건수 확인. This is the ground truth.
84
+ Check unresolved CodeRabbit review comment count. This is the ground truth.
85
85
 
86
86
  ```bash
87
87
  check_unresolved_threads() {
@@ -14,9 +14,9 @@ Break down large work items into manageable, independent issues. Follow project
14
14
  - Detect test frameworks (jest.config.*, pytest.ini, vitest.config.*, pyproject.toml, etc.)
15
15
  3. **Check TDD applicability** (if user hasn't specified):
16
16
  - Analyze work type: code implementation vs docs/infra/config
17
- - If test framework detected + code work → Ask: "TDD 기반으로 이슈 생성하시겠어요?"
18
- - If no test framework → Inform: "TDD 반영이 필요없습니다. (이유: 테스트 프레임워크 미감지)"
19
- - If non-code work (docs/infra) → Inform: "TDD 반영이 필요없습니다. (이유: 비코드 작업)"
17
+ - If test framework detected + code work → Ask: "Create issues with TDD approach?"
18
+ - If no test framework → Inform: "TDD not required. (Reason: No test framework detected)"
19
+ - If non-code work (docs/infra) → Inform: "TDD not required. (Reason: Non-code work)"
20
20
  - If TDD selected: Add `<!-- TDD: enabled -->` marker to each issue body
21
21
  4. Analyze work: Understand core requirements and objectives
22
22
  5. Decompose work: Split major tasks into smaller, manageable sub-tasks or issues. **Aim for optimal count over excessive issues (keep it manageable)**
@@ -164,14 +164,14 @@ Always include an ASCII diagram in the issue body to visualize the execution flo
164
164
 
165
165
  ## Verification Guidelines
166
166
 
167
- 이슈 작업 완료 반드시 실행 검증 수행:
167
+ Verification is mandatory when issue work is complete:
168
168
 
169
- | 작업 유형 | 검증 방법 |
170
- |-----------|-----------|
171
- | Python 코드 | `python -m py_compile file.py` + 실제 실행 |
172
- | TypeScript/JS | `tsc --noEmit` 또는 빌드 |
173
- | API/서버 | 엔드포인트 호출 테스트 |
174
- | CLI 도구 | 기본 명령어 실행 |
175
- | 설정 파일 | 관련 도구로 로드 확인 |
169
+ | Work Type | Verification Method |
170
+ |-----------|---------------------|
171
+ | Python code | `python -m py_compile file.py` + actual execution |
172
+ | TypeScript/JS | `tsc --noEmit` or build |
173
+ | API/Server | Endpoint call test |
174
+ | CLI tools | Run basic commands |
175
+ | Config files | Verify loading with related tools |
176
176
 
177
- **파일만 생성하고 실행 검증 없이 완료 처리 금지**
177
+ **Never mark complete if only files are created without execution verification**
@@ -4,7 +4,7 @@ description: Full issue resolution pipeline with automated code review
4
4
 
5
5
  # Resolve and Review
6
6
 
7
- Issue 해결부터 CodeRabbit 리뷰 처리까지 자동화된 전체 파이프라인.
7
+ Automated full pipeline from issue resolution to CodeRabbit review handling.
8
8
 
9
9
  ## Arguments
10
10
 
@@ -20,7 +20,7 @@ Reference for different ID formats used across GitHub and TaskMaster.
20
20
 
21
21
  ## Linking GitHub and TaskMaster
22
22
 
23
- - PR body: `Task Master 참조: task N` or `TaskMaster: task N`
23
+ - PR body: `TaskMaster: task N` or `Task Master ref: task N`
24
24
  - Issue closing: `Closes #N` (GitHub Issue)
25
25
 
26
26
  ## Example
@@ -28,7 +28,7 @@ Reference for different ID formats used across GitHub and TaskMaster.
28
28
  ```
29
29
  PR #13: "feat: Add authentication"
30
30
  ├── Closes #1 (GitHub Issue)
31
- └── Task Master 참조: task 1
31
+ └── TaskMaster: task 1
32
32
  ├── task 1.1 (subtask)
33
33
  └── task 1.2 (subtask)
34
34
  ```
@@ -1,36 +1,36 @@
1
- # PRD 초안 템플릿
1
+ # PRD Draft Template
2
2
 
3
- 여기에 아이디어를 자유롭게 작성하세요.
4
- `/tm:convert-prd` 커맨드로 TaskMaster PRD 포맷으로 변환됩니다.
3
+ Write your ideas freely here.
4
+ Use `/tm:convert-prd` command to convert to TaskMaster PRD format.
5
5
 
6
6
  ---
7
7
 
8
- ## 만들고 싶은지
8
+ ## What to Build
9
9
 
10
- (프로젝트 목적, 해결하려는 문제)
10
+ (Project purpose, problem to solve)
11
11
 
12
12
 
13
13
 
14
- ## 주요 기능
14
+ ## Key Features
15
15
 
16
- (만들고 싶은 기능들 나열)
16
+ (List of features to build)
17
17
 
18
18
 
19
19
 
20
- ## 기술 스택
20
+ ## Tech Stack
21
21
 
22
- (사용할 기술, 프레임워크 )
22
+ (Technologies, frameworks to use)
23
23
 
24
24
 
25
25
 
26
- ## 만드는 순서
26
+ ## Build Order
27
27
 
28
- (먼저 만들 것, 나중에 만들 )
28
+ (What to build first, what to build later)
29
29
 
30
30
 
31
31
 
32
- ## 기타
32
+ ## Notes
33
33
 
34
- (걱정되는 점, 참고사항 등)
34
+ (Concerns, references, etc.)
35
35
 
36
36
 
@@ -23,7 +23,7 @@ Write like a human, not a chatbot. Applies to ALL text: responses, documentation
23
23
  - Over-explanation: Explaining obvious things, restating the question
24
24
  - Hedging phrases: "I think maybe...", "It might be possible that..."
25
25
  - Hollow transitions: "Now, let's...", "Moving on to...", "Next, we'll..."
26
- - Colon headers: "**항목:** 설명", "**Topic:** content" - just write naturally without label-colon-content structure
26
+ - Colon headers: "**Item:** description", "**Topic:** content" - just write naturally without label-colon-content structure
27
27
 
28
28
  **DO:**
29
29
  - Get to the point immediately
@@ -150,11 +150,25 @@ When Built-in LSP returns "No LSP server available" error:
150
150
  | `insert_after_symbol` / `insert_before_symbol` | Add new code at precise locations |
151
151
  | `search_for_pattern` | Flexible regex search across codebase |
152
152
 
153
+ **Session Management:**
154
+ - Call `activate_project` at the start of each new conversation session
155
+ - Once activated, remains active for the entire session
156
+ - Prompt: "activate serena" or "serena activate project"
157
+
158
+ **Onboarding & Memory:**
159
+ - Onboarding: Run once per project initial setup (`onboarding` tool)
160
+ - Indexing: LSP-based real-time analysis, no periodic refresh needed
161
+ - Memory updates (`edit_memory`): Only when structure changes
162
+ - New modules/adapters added
163
+ - Architecture patterns changed
164
+ - Build/test commands modified
165
+
153
166
  **Best Practices:**
154
167
  1. Start with `get_symbols_overview` for new files
155
168
  2. Use `find_symbol` with `depth=1` to see class methods before diving deeper
156
169
  3. Prefer symbolic editing over file-based editing when modifying functions/classes
157
170
  4. Always check `find_referencing_symbols` before renaming/removing symbols
171
+ 5. Never use Grep/Read before trying Serena tools first
158
172
 
159
173
  ### Self-Verification (MANDATORY)
160
174
 
@@ -1,11 +1,11 @@
1
1
  #!/bin/bash
2
2
  # Claude Code OSC Notification Script
3
- # /dev/tty 출력하여 터미널에 직접 전달
3
+ # Output to /dev/tty to deliver directly to terminal
4
4
 
5
- # stdin에서 JSON 읽기 (timeout으로 blocking 방지)
5
+ # Read JSON from stdin (prevent blocking with timeout)
6
6
  INPUT=$(timeout 1 cat 2>/dev/null || true)
7
7
 
8
- # JSON 파싱
8
+ # JSON parsing
9
9
  if command -v jq &>/dev/null && [ -n "$INPUT" ]; then
10
10
  SESSION_ID=$(echo "$INPUT" | jq -r '.session_id // empty' 2>/dev/null)
11
11
  CWD=$(echo "$INPUT" | jq -r '.cwd // empty' 2>/dev/null)
@@ -16,12 +16,12 @@ if command -v jq &>/dev/null && [ -n "$INPUT" ]; then
16
16
  FOLDER=$(basename "${CWD:-$PWD}" 2>/dev/null)
17
17
  SHORT_ID="${SESSION_ID:0:8}"
18
18
 
19
- # 제목 구성
19
+ # Title construction
20
20
  TITLE="Claude"
21
21
  [ -n "$FOLDER" ] && TITLE="$TITLE - $FOLDER"
22
22
  [ -n "$SHORT_ID" ] && TITLE="$TITLE [$SHORT_ID]"
23
23
 
24
- # 본문 구성
24
+ # Message body construction
25
25
  case "$EVENT" in
26
26
  "Stop")
27
27
  BODY="Task completed"
@@ -42,8 +42,8 @@ else
42
42
  BODY="${2:-Task completed}"
43
43
  fi
44
44
 
45
- # OSC 777 알림 출력 (OSC 9 중복 알림 발생하므로 제외)
46
- # /dev/tty 사용 가능 직접 출력, 아니면 stdout
45
+ # OSC 777 notification output (excluding OSC 9 as it causes duplicate notifications)
46
+ # Output directly to /dev/tty if available, otherwise stdout
47
47
  {
48
48
  printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY"
49
49
  } > /dev/tty 2>/dev/null || {
@@ -16,53 +16,53 @@ To search and analyze code repositories across GitHub and Hugging Face platforms
16
16
  | **GitHub** | Repositories, Code | `gh` CLI |
17
17
  | **Hugging Face** | Models, Datasets, Spaces | `uvx hf` CLI + `huggingface_hub` API |
18
18
 
19
- ## 검색 품질 원칙 (필수)
19
+ ## Search Quality Principles (Required)
20
20
 
21
- ### 1. 현재 날짜 확인
21
+ ### 1. Verify Current Date
22
22
 
23
23
  ```bash
24
24
  date +%Y-%m-%d
25
25
  ```
26
- 아래 예시의 연도는 참고용. 실제 검색 **현재 연도** 사용.
26
+ Years in examples below are for reference. Use **current year** in actual searches.
27
27
 
28
- ### 2. Long-tail Keywords 적용
28
+ ### 2. Apply Long-tail Keywords
29
29
 
30
- 예시의 Short-tail 그대로 쓰지 말고 확장:
30
+ Don't use short-tail examples as-is, expand them:
31
31
 
32
- | 예시 (참고용) | 실제 검색 (Long-tail) |
33
- |---------------|----------------------|
34
- | `"object detection"` | `"open vocabulary object detection pytorch inference {현재연도}"` |
32
+ | Example (Reference) | Actual Search (Long-tail) |
33
+ |---------------------|---------------------------|
34
+ | `"object detection"` | `"open vocabulary object detection pytorch inference {current_year}"` |
35
35
  | `"gradio demo"` | `"gradio image segmentation interactive demo huggingface"` |
36
36
  | `"qwen vl"` | `"qwen2-vl vision language model zero-shot example code"` |
37
37
 
38
- ### 3. Multi-Query 적용
38
+ ### 3. Apply Multi-Query
39
39
 
40
- 번에 찾기 어려우면 **2-3 관점**으로 검색:
40
+ If hard to find at once, search from **2-3 perspectives**:
41
41
 
42
42
  ```bash
43
- # 모델명 중심
43
+ # Model name focus
44
44
  gh search repos "qwen2-vl" --sort stars
45
45
 
46
- # 기능 중심
46
+ # Feature focus
47
47
  gh search repos "vision language open vocabulary detection" --sort stars
48
48
 
49
- # 구현 중심
49
+ # Implementation focus
50
50
  gh search repos "vl model gradio demo inference" --sort stars
51
51
  ```
52
52
 
53
- ### 4. 필터 활용
53
+ ### 4. Use Filters
54
54
 
55
55
  ```bash
56
- # 최신 + 품질 필터 (현재 연도 적용)
57
- gh search repos "keyword" stars:>50 pushed:>{현재연도-1}-01-01 --language python
56
+ # Recent + quality filter (apply current year)
57
+ gh search repos "keyword" stars:>50 pushed:>{current_year-1}-01-01 --language python
58
58
  ```
59
59
 
60
- ### 5. 검색 전 체크리스트
60
+ ### 5. Pre-Search Checklist
61
61
 
62
- - [ ] 현재 날짜 확인했는가?
63
- - [ ] Short-tail Long-tail로 변환했는가?
64
- - [ ] 필요시 2-3 변형 쿼리로 검색했는가?
65
- - [ ] 적절한 필터(언어, 스타, 날짜) 적용했는가?
62
+ - [ ] Verified current date?
63
+ - [ ] Converted short-tail to long-tail?
64
+ - [ ] Searched with 2-3 query variations if needed?
65
+ - [ ] Applied appropriate filters (language, stars, date)?
66
66
 
67
67
  ---
68
68
 
@@ -0,0 +1,196 @@
1
+ ---
2
+ name: interview-methodology
3
+ description: This skill should be used when conducting in-depth user interviews, "gathering requirements", "interview me", "ask me questions", "understand my needs before implementing", "spec-based development", or when preparing comprehensive specifications before implementation.
4
+ version: 0.2.0
5
+ ---
6
+
7
+ # Interview Methodology
8
+
9
+ A comprehensive framework for conducting thorough requirement-gathering interviews that uncover hidden needs, constraints, and edge cases.
10
+
11
+ ## Trigger Examples
12
+
13
+ <example>
14
+ Context: User wants to implement a new feature without detailed spec
15
+ user: "I want to add dark mode to my app"
16
+ assistant: Loads interview-methodology skill to thoroughly understand requirements first.
17
+ <commentary>
18
+ Feature request without detailed specification - perfect trigger for deep interview before implementation.
19
+ </commentary>
20
+ </example>
21
+
22
+ <example>
23
+ Context: User explicitly requests interview-style requirements gathering
24
+ user: "Interview me about this feature before you start coding"
25
+ assistant: Loads interview-methodology skill to conduct thorough interview.
26
+ <commentary>
27
+ Explicit interview request - direct trigger.
28
+ </commentary>
29
+ </example>
30
+
31
+ ## Critical Rules
32
+
33
+ 1. **Use AskUserQuestion tool** for all questions - never just ask in plain text
34
+ 2. **Questions must NOT be obvious** - avoid basic questions the user has already answered
35
+ 3. **Continue interviewing until complete** - don't stop after 2-3 questions
36
+ 4. **Probe deeper on every answer** - each response should spawn follow-up questions
37
+ 5. **Write the final spec to a file** when the interview is complete
38
+
39
+ ## Core Principle: Non-Obvious Questions
40
+
41
+ **Never ask questions the user has already implicitly answered.** Instead, probe the gaps, assumptions, and unstated requirements.
42
+
43
+ ### Bad Questions (Obvious)
44
+ - "What feature do you want?" (they already told you)
45
+ - "Do you want it to work well?" (obviously yes)
46
+ - "Should it be fast?" (obviously yes)
47
+
48
+ ### Good Questions (Non-Obvious)
49
+ - "What happens when X fails? Should it retry, fail silently, or notify?"
50
+ - "Who else might use this besides you? Do they have different needs?"
51
+ - "What's the worst thing that could happen if this feature misbehaves?"
52
+
53
+ ## Question Framework by Category
54
+
55
+ ### 1. Technical Implementation
56
+ - What existing systems does this need to integrate with?
57
+ - Are there performance constraints (response time, memory, etc.)?
58
+ - What's the expected scale? 10 users or 10,000?
59
+ - Are there security or compliance requirements?
60
+ - Should this work offline? On mobile?
61
+ - What happens during network failures or timeouts?
62
+
63
+ ### 2. User Interface & Experience
64
+ - Who are the different user personas interacting with this?
65
+ - What's the primary device/platform? Secondary?
66
+ - Are there accessibility requirements?
67
+ - What's the user's technical proficiency level?
68
+ - What should happen on errors - technical message or friendly guidance?
69
+ - Are there existing UI patterns in the app this should follow?
70
+
71
+ ### 3. Edge Cases & Error Handling
72
+ - What inputs are considered invalid? How should they be handled?
73
+ - What if the user does X when they should do Y?
74
+ - What's the behavior when data is missing or malformed?
75
+ - How should concurrent/conflicting operations be handled?
76
+ - What are the failure modes and recovery strategies?
77
+
78
+ ### 4. Constraints & Tradeoffs
79
+ - What's more important: speed of delivery or completeness?
80
+ - Are there budget/resource limitations?
81
+ - What can we cut if we run out of time?
82
+ - What's the minimum viable version vs. ideal version?
83
+ - Are there dependencies on other teams or systems?
84
+
85
+ ### 5. Business Context
86
+ - Why is this feature needed now?
87
+ - What problem does this solve for the business?
88
+ - How will success be measured?
89
+ - What's the cost of NOT doing this?
90
+ - Are there regulatory or legal considerations?
91
+
92
+ ## Interview Flow
93
+
94
+ ### Phase 1: Context Gathering (2-3 questions)
95
+ Understand the big picture before diving into details.
96
+ - What triggered this request?
97
+ - What's the current pain point?
98
+ - What does success look like?
99
+
100
+ ### Phase 2: Deep Dive (5-10 questions)
101
+ Systematically cover each category above. Use AskUserQuestion with multiple-choice options when possible to make answering easier.
102
+
103
+ ### Phase 3: Edge Case Exploration (3-5 questions)
104
+ Focus on "what if" scenarios. These often reveal the most important requirements.
105
+
106
+ ### Phase 4: Prioritization (2-3 questions)
107
+ Help the user distinguish must-haves from nice-to-haves.
108
+
109
+ ### Phase 5: Validation (1-2 questions)
110
+ Summarize understanding and confirm before finalizing.
111
+
112
+ ## AskUserQuestion Best Practices
113
+
114
+ ### Structure Questions with Options
115
+ ```
116
+ Question: "How should the system handle authentication failures?"
117
+ Options:
118
+ 1. Show error and retry (simple)
119
+ 2. Lock account after 3 attempts (secure)
120
+ 3. Send email notification (audit trail)
121
+ 4. Custom handling...
122
+ ```
123
+
124
+ ### Use multiSelect for Non-Exclusive Choices
125
+ ```
126
+ Question: "Which platforms need to be supported?"
127
+ multiSelect: true
128
+ Options:
129
+ 1. Web browser
130
+ 2. iOS app
131
+ 3. Android app
132
+ 4. Desktop app
133
+ ```
134
+
135
+ ### Provide Context in Descriptions
136
+ Each option should explain implications, not just the choice itself.
137
+
138
+ ## Interview Completion
139
+
140
+ When you've gathered sufficient information:
141
+ 1. Summarize all requirements back to the user
142
+ 2. Ask for confirmation using AskUserQuestion
143
+ 3. Write the comprehensive spec to `SPEC.md` or a user-specified file
144
+ 4. The spec should be detailed enough for implementation without further questions
145
+
146
+ ## Spec Output Format
147
+
148
+ After interview completion, write a spec file with:
149
+
150
+ ```markdown
151
+ # Feature Specification: [Feature Name]
152
+
153
+ ## Overview
154
+ [1-2 sentence summary]
155
+
156
+ ## User Stories
157
+ - As a [user type], I want [goal] so that [benefit]
158
+
159
+ ## Requirements
160
+
161
+ ### Must Have (P0)
162
+ - [ ] Requirement 1
163
+ - [ ] Requirement 2
164
+
165
+ ### Should Have (P1)
166
+ - [ ] Requirement 3
167
+
168
+ ### Nice to Have (P2)
169
+ - [ ] Requirement 4
170
+
171
+ ## Technical Constraints
172
+ - [List technical requirements and limitations]
173
+
174
+ ## UI/UX Requirements
175
+ - [List interface requirements]
176
+
177
+ ## Edge Cases
178
+ | Scenario | Expected Behavior |
179
+ |----------|------------------|
180
+ | Case 1 | Behavior 1 |
181
+
182
+ ## Out of Scope
183
+ - [Explicitly list what this feature does NOT include]
184
+
185
+ ## Open Questions
186
+ - [Any unresolved items for future discussion]
187
+ ```
188
+
189
+ ## Interviewing Anti-Patterns to Avoid
190
+
191
+ 1. **Assuming you know best** - Always verify assumptions
192
+ 2. **Leading questions** - Don't bias the answer
193
+ 3. **Stopping too early** - Keep probing until truly complete
194
+ 4. **Ignoring contradictions** - Surface and resolve conflicts
195
+ 5. **Forgetting to summarize** - Always validate understanding
196
+ 6. **Skipping prioritization** - Everything can't be P0