deepflow 0.1.2 → 0.1.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.
- package/.claude/commands/df/spec.md +65 -10
- package/.claude/skills/gap-discovery/SKILL.md +87 -6
- package/VERSION +1 -1
- package/package.json +1 -1
|
@@ -22,9 +22,25 @@ Before generating, use the `gap-discovery` skill to analyze conversation.
|
|
|
22
22
|
- [ ] Key constraints identified
|
|
23
23
|
- [ ] Success criteria stated
|
|
24
24
|
|
|
25
|
-
**If gaps exist**,
|
|
25
|
+
**If gaps exist**, use the `AskUserQuestion` tool to ask structured questions:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"questions": [
|
|
30
|
+
{
|
|
31
|
+
"question": "Clear, specific question ending with ?",
|
|
32
|
+
"header": "Short label",
|
|
33
|
+
"multiSelect": false,
|
|
34
|
+
"options": [
|
|
35
|
+
{"label": "Option 1", "description": "What this means"},
|
|
36
|
+
{"label": "Option 2", "description": "What this means"}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
```
|
|
26
42
|
|
|
27
|
-
Max
|
|
43
|
+
Max 4 questions per tool call. Wait for answers before proceeding.
|
|
28
44
|
|
|
29
45
|
### 2. GENERATE SPEC
|
|
30
46
|
|
|
@@ -81,14 +97,53 @@ Next: Run /df:plan to generate tasks
|
|
|
81
97
|
```
|
|
82
98
|
USER: I want to add image upload
|
|
83
99
|
|
|
84
|
-
CLAUDE:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
100
|
+
CLAUDE: [Uses AskUserQuestion tool]
|
|
101
|
+
{
|
|
102
|
+
"questions": [
|
|
103
|
+
{
|
|
104
|
+
"question": "What file types should be supported?",
|
|
105
|
+
"header": "File types",
|
|
106
|
+
"multiSelect": true,
|
|
107
|
+
"options": [
|
|
108
|
+
{"label": "JPG/PNG only", "description": "Standard formats"},
|
|
109
|
+
{"label": "Include WebP", "description": "Modern compression"},
|
|
110
|
+
{"label": "Include GIF", "description": "Animated images"}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"question": "What's the maximum upload size?",
|
|
115
|
+
"header": "Size limit",
|
|
116
|
+
"multiSelect": false,
|
|
117
|
+
"options": [
|
|
118
|
+
{"label": "5 MB", "description": "Fast uploads"},
|
|
119
|
+
{"label": "10 MB (Recommended)", "description": "Balanced"},
|
|
120
|
+
{"label": "25 MB", "description": "High-res photos"}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"question": "Where should files be stored?",
|
|
125
|
+
"header": "Storage",
|
|
126
|
+
"multiSelect": false,
|
|
127
|
+
"options": [
|
|
128
|
+
{"label": "S3 (Recommended)", "description": "Scalable cloud storage"},
|
|
129
|
+
{"label": "Local filesystem", "description": "Simple, single server"},
|
|
130
|
+
{"label": "Cloudflare R2", "description": "S3-compatible, no egress fees"}
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"question": "Who can upload files?",
|
|
135
|
+
"header": "Auth",
|
|
136
|
+
"multiSelect": false,
|
|
137
|
+
"options": [
|
|
138
|
+
{"label": "Logged-in users", "description": "Require authentication"},
|
|
139
|
+
{"label": "Public", "description": "Anyone can upload"},
|
|
140
|
+
{"label": "Role-based", "description": "Specific roles only"}
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
USER: [Selects: JPG/PNG + WebP, 10MB, S3, Logged-in users]
|
|
92
147
|
|
|
93
148
|
CLAUDE: ✓ Created specs/image-upload.md
|
|
94
149
|
|
|
@@ -18,28 +18,109 @@ Proactively identify missing requirements before implementation.
|
|
|
18
18
|
| **Success criteria** | "How will you know this works?" |
|
|
19
19
|
| **Anti-goals** | "What should this explicitly NOT do?" |
|
|
20
20
|
|
|
21
|
+
## Implementation
|
|
22
|
+
|
|
23
|
+
**Use the `AskUserQuestion` tool** to ask structured questions with predefined options.
|
|
24
|
+
|
|
25
|
+
### AskUserQuestion Format
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"questions": [
|
|
30
|
+
{
|
|
31
|
+
"question": "What file types should be supported?",
|
|
32
|
+
"header": "File types",
|
|
33
|
+
"multiSelect": true,
|
|
34
|
+
"options": [
|
|
35
|
+
{"label": "JPG/PNG only", "description": "Standard image formats"},
|
|
36
|
+
{"label": "Include WebP", "description": "Modern format with better compression"},
|
|
37
|
+
{"label": "Include GIF", "description": "Animated images supported"},
|
|
38
|
+
{"label": "Include video", "description": "MP4, WebM formats"}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Guidelines for AskUserQuestion
|
|
46
|
+
|
|
47
|
+
- **header**: Max 12 characters (e.g., "File types", "Auth", "Storage")
|
|
48
|
+
- **options**: 2-4 choices per question, each with label + description
|
|
49
|
+
- **multiSelect**: Set `true` when choices aren't mutually exclusive
|
|
50
|
+
- **questions**: Max 4 questions per tool call (tool limit)
|
|
51
|
+
- Users can always select "Other" to provide custom input
|
|
52
|
+
|
|
53
|
+
### Example Questions by Category
|
|
54
|
+
|
|
55
|
+
**Scope:**
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"question": "Should this feature include admin management?",
|
|
59
|
+
"header": "Scope",
|
|
60
|
+
"multiSelect": false,
|
|
61
|
+
"options": [
|
|
62
|
+
{"label": "Yes, include admin", "description": "Add admin dashboard for management"},
|
|
63
|
+
{"label": "No, user-only", "description": "Only end-user functionality"},
|
|
64
|
+
{"label": "Phase 2", "description": "Add admin features later"}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Constraints:**
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"question": "What's the maximum file size for uploads?",
|
|
73
|
+
"header": "Size limit",
|
|
74
|
+
"multiSelect": false,
|
|
75
|
+
"options": [
|
|
76
|
+
{"label": "5 MB", "description": "Conservative, fast uploads"},
|
|
77
|
+
{"label": "10 MB (Recommended)", "description": "Balanced for most images"},
|
|
78
|
+
{"label": "25 MB", "description": "High-res photos supported"},
|
|
79
|
+
{"label": "50 MB", "description": "Large files, slower uploads"}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Dependencies:**
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"question": "What authentication is required?",
|
|
88
|
+
"header": "Auth",
|
|
89
|
+
"multiSelect": false,
|
|
90
|
+
"options": [
|
|
91
|
+
{"label": "Public access", "description": "No login required"},
|
|
92
|
+
{"label": "Logged-in users", "description": "Require authentication"},
|
|
93
|
+
{"label": "Role-based", "description": "Different permissions per role"}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
21
98
|
## Process
|
|
22
99
|
|
|
23
100
|
1. Listen to user's description
|
|
24
101
|
2. Identify categories lacking clarity
|
|
25
|
-
3.
|
|
102
|
+
3. Use `AskUserQuestion` with 1-4 targeted questions
|
|
26
103
|
4. Wait for answers
|
|
27
|
-
5. Follow up if answers reveal new gaps
|
|
104
|
+
5. Follow up if answers reveal new gaps (another AskUserQuestion call)
|
|
28
105
|
6. Signal when ready: "Requirements clear. Ready to proceed."
|
|
29
106
|
|
|
30
107
|
## Question Quality
|
|
31
108
|
|
|
32
109
|
```
|
|
33
110
|
BAD: "Any other requirements?"
|
|
34
|
-
GOOD: "Max file size for uploads?"
|
|
111
|
+
GOOD: "Max file size for uploads?" with concrete options
|
|
35
112
|
|
|
36
113
|
BAD: "What about errors?"
|
|
37
|
-
GOOD: "If upload fails, retry automatically or show error to user?"
|
|
114
|
+
GOOD: "If upload fails, retry automatically or show error to user?" with clear choices
|
|
38
115
|
```
|
|
39
116
|
|
|
40
117
|
## Rules
|
|
41
118
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
119
|
+
- Use `AskUserQuestion` tool for structured input
|
|
120
|
+
- Max 4 questions per tool call (tool limitation)
|
|
121
|
+
- Headers max 12 characters
|
|
122
|
+
- 2-4 options per question with descriptions
|
|
123
|
+
- Use multiSelect when choices can combine
|
|
124
|
+
- Be specific, offer choices with trade-offs explained
|
|
44
125
|
- Don't assume - ask
|
|
45
126
|
- Stop when gaps are covered
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.3
|