@codihaus/claude-skills 1.6.22 → 1.6.23
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
package/skills/debrief/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debrief
|
|
3
3
|
description: Customer requirements → market-validated BRD with tiered features
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.1.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# /debrief - Business Requirements Document
|
|
@@ -24,10 +24,11 @@ version: 4.0.0
|
|
|
24
24
|
## Usage
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
/debrief "Customer wants..."
|
|
28
|
-
/debrief "Add {feature}"
|
|
29
|
-
/debrief --answers questionnaire.xlsx
|
|
30
|
-
/debrief --questionnaire
|
|
27
|
+
/debrief "Customer wants..." # New project
|
|
28
|
+
/debrief "Add {feature}" # Add feature
|
|
29
|
+
/debrief --answers questionnaire.xlsx # Process answers
|
|
30
|
+
/debrief --generate-brd questionnaire.xlsx # Generate BRD from existing research
|
|
31
|
+
/debrief --questionnaire-only # Questions only
|
|
31
32
|
```
|
|
32
33
|
|
|
33
34
|
---
|
|
@@ -106,6 +107,7 @@ Keep use cases ~30 lines max. Business stakeholders scan in 30 seconds.
|
|
|
106
107
|
- No `plans/brd/` → New Project
|
|
107
108
|
- `plans/brd/` exists → Add Feature
|
|
108
109
|
- `--answers {file}` → Process Answers
|
|
110
|
+
- `--generate-brd {file}` → Generate BRD from research
|
|
109
111
|
- `--questionnaire-only` → Questions Only
|
|
110
112
|
|
|
111
113
|
---
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
**Detection**:
|
|
16
16
|
- `--answers {file}` → Process Answers mode
|
|
17
|
+
- `--generate-brd {file}` → Generate BRD mode
|
|
17
18
|
- `--questionnaire-only` → Questionnaire Only mode
|
|
18
19
|
- No `plans/brd/` → New Project mode
|
|
19
20
|
- `plans/brd/` exists → Add Feature mode
|
|
@@ -31,12 +32,13 @@
|
|
|
31
32
|
|
|
32
33
|
### Context Gathering
|
|
33
34
|
|
|
34
|
-
**Ask
|
|
35
|
+
**Ask 6 questions** (AskUserQuestion):
|
|
35
36
|
1. Project type (new/existing codebase)
|
|
36
37
|
2. Industry (SaaS/E-commerce/Marketplace/etc.)
|
|
37
38
|
3. Target users (B2B/B2C/Internal)
|
|
38
39
|
4. Constraints (timeline/budget/compliance/integrations)
|
|
39
40
|
5. Scope tier (Core/Standard/Full)
|
|
41
|
+
6. Research depth (Quick 5min / Deep 15-20min)
|
|
40
42
|
|
|
41
43
|
**If existing codebase**: Scan for docs + features (Glob, Read)
|
|
42
44
|
|
|
@@ -48,15 +50,19 @@
|
|
|
48
50
|
|
|
49
51
|
**Methodology**: See `research.md` for full process.
|
|
50
52
|
|
|
51
|
-
**
|
|
53
|
+
**Quick** (5 min):
|
|
52
54
|
- Find 2-3 comparison/alternative pages
|
|
53
55
|
- Extract feature matrix
|
|
54
56
|
- Initial tier hypothesis
|
|
55
57
|
|
|
56
|
-
**Deep
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
58
|
+
**Deep** (15-20 min):
|
|
59
|
+
- Comparison pages (initial)
|
|
60
|
+
- Cross-validate with ecosystem + user signals
|
|
61
|
+
- Full tier classification with evidence
|
|
62
|
+
|
|
63
|
+
**After research, ask output preference**:
|
|
64
|
+
- Summary + Questionnaire (review first)
|
|
65
|
+
- Full BRD (write all files now)
|
|
60
66
|
|
|
61
67
|
**Output**: Features with tier classification and evidence
|
|
62
68
|
|
|
@@ -121,13 +127,12 @@
|
|
|
121
127
|
|
|
122
128
|
**Principle**: Always generate. Validate assumptions + fill gaps.
|
|
123
129
|
|
|
124
|
-
**
|
|
125
|
-
- **
|
|
126
|
-
- **
|
|
127
|
-
|
|
128
|
-
**Categories**: Validation, Business, Requirements, Constraints, Integration
|
|
130
|
+
**3 sheets**:
|
|
131
|
+
- **Summary**: Feature count, tier distribution, research stats
|
|
132
|
+
- **Questions**: Validation + open questions
|
|
133
|
+
- **References**: URLs by feature (comparison pages, reviews, ecosystems)
|
|
129
134
|
|
|
130
|
-
**Output**: `features/{feature}/questionnaire-{date}.xlsx`
|
|
135
|
+
**Output**: `features/{feature}/questionnaire-{date}.xlsx` (permanent reference)
|
|
131
136
|
|
|
132
137
|
---
|
|
133
138
|
|
|
@@ -156,9 +161,10 @@
|
|
|
156
161
|
|
|
157
162
|
### Context Gathering
|
|
158
163
|
|
|
159
|
-
**Ask
|
|
164
|
+
**Ask 3 questions**:
|
|
160
165
|
1. Feature name
|
|
161
166
|
2. Scope tier (Core/Standard/Full)
|
|
167
|
+
3. Research depth (Quick / Deep)
|
|
162
168
|
|
|
163
169
|
**Duplicate check**: Read `docs-graph.json` if exists, warn if similar feature found
|
|
164
170
|
|
|
@@ -233,6 +239,24 @@
|
|
|
233
239
|
|
|
234
240
|
---
|
|
235
241
|
|
|
242
|
+
## Generate BRD Mode
|
|
243
|
+
|
|
244
|
+
**Goal**: Generate full BRD from existing questionnaire research.
|
|
245
|
+
|
|
246
|
+
**Mindset**: Resumption mode. User reviewed Summary + Questionnaire, ready for full BRD.
|
|
247
|
+
|
|
248
|
+
### Process
|
|
249
|
+
|
|
250
|
+
**Read questionnaire**:
|
|
251
|
+
- Summary sheet (features, tiers, research stats)
|
|
252
|
+
- References sheet (source URLs)
|
|
253
|
+
|
|
254
|
+
**Generate**: Full BRD structure from existing research (no re-research)
|
|
255
|
+
|
|
256
|
+
**Output**: BRD files + feature folders
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
236
260
|
## Questionnaire Only Mode
|
|
237
261
|
|
|
238
262
|
**Goal**: Generate questions without creating BRD.
|
|
@@ -303,6 +327,7 @@
|
|
|
303
327
|
**Workflow adapts to mode**:
|
|
304
328
|
- New Project: Full discovery and research
|
|
305
329
|
- Add Feature: Focused research, duplicate check
|
|
330
|
+
- Generate BRD: Reads existing questionnaire research
|
|
306
331
|
- Process Answers: Integration and validation
|
|
307
332
|
- Change Request: Impact tracking
|
|
308
333
|
- Questionnaire Only: Quick question generation
|
|
@@ -10,6 +10,18 @@ questions.json format:
|
|
|
10
10
|
{
|
|
11
11
|
"project_name": "Project Name",
|
|
12
12
|
"date": "2024-01-20",
|
|
13
|
+
"research": {
|
|
14
|
+
"depth": "Deep",
|
|
15
|
+
"features_count": 12,
|
|
16
|
+
"tiers": {"MVP": 5, "Standard": 4, "Advanced": 3},
|
|
17
|
+
"sources_count": 23
|
|
18
|
+
},
|
|
19
|
+
"references": {
|
|
20
|
+
"Authentication": [
|
|
21
|
+
{"type": "Comparison", "url": "https://..."},
|
|
22
|
+
{"type": "G2 Reviews", "url": "https://..."}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
13
25
|
"questions": [
|
|
14
26
|
{
|
|
15
27
|
"category": "Requirements",
|
|
@@ -119,14 +131,24 @@ def create_questionnaire(output_path: str, questions_data: dict):
|
|
|
119
131
|
|
|
120
132
|
# Summary sheet
|
|
121
133
|
ws_summary = wb.create_sheet("Summary", 0)
|
|
134
|
+
research = questions_data.get('research', {})
|
|
135
|
+
tiers = research.get('tiers', {})
|
|
136
|
+
|
|
122
137
|
summary_data = [
|
|
123
138
|
("Project Questionnaire", ""),
|
|
124
139
|
("", ""),
|
|
125
140
|
("Project:", questions_data.get('project_name', '')),
|
|
126
141
|
("Generated:", questions_data.get('date', '')),
|
|
127
|
-
("Total Questions:", len(questions)),
|
|
128
142
|
("", ""),
|
|
129
|
-
("
|
|
143
|
+
("Research Summary:", ""),
|
|
144
|
+
("Depth:", research.get('depth', 'N/A')),
|
|
145
|
+
("Features:", research.get('features_count', 0)),
|
|
146
|
+
(" MVP:", tiers.get('MVP', 0)),
|
|
147
|
+
(" Standard:", tiers.get('Standard', 0)),
|
|
148
|
+
(" Advanced:", tiers.get('Advanced', 0)),
|
|
149
|
+
("Sources:", research.get('sources_count', 0)),
|
|
150
|
+
("", ""),
|
|
151
|
+
("Questions:", len(questions)),
|
|
130
152
|
]
|
|
131
153
|
|
|
132
154
|
# Count priorities
|
|
@@ -134,28 +156,8 @@ def create_questionnaire(output_path: str, questions_data: dict):
|
|
|
134
156
|
optional_count = len(questions) - required_count
|
|
135
157
|
|
|
136
158
|
summary_data.extend([
|
|
137
|
-
("Required:", required_count),
|
|
138
|
-
("Optional:", optional_count),
|
|
139
|
-
("", ""),
|
|
140
|
-
("Categories:", ""),
|
|
141
|
-
])
|
|
142
|
-
|
|
143
|
-
# Count categories
|
|
144
|
-
categories = {}
|
|
145
|
-
for q in questions:
|
|
146
|
-
cat = q.get('category', 'General')
|
|
147
|
-
categories[cat] = categories.get(cat, 0) + 1
|
|
148
|
-
|
|
149
|
-
for cat, count in sorted(categories.items()):
|
|
150
|
-
summary_data.append((f" {cat}:", count))
|
|
151
|
-
|
|
152
|
-
summary_data.extend([
|
|
153
|
-
("", ""),
|
|
154
|
-
("Instructions:", ""),
|
|
155
|
-
("1.", "Fill in the 'Answer' column for each question"),
|
|
156
|
-
("2.", "Required questions must be answered before proceeding"),
|
|
157
|
-
("3.", "Context/Source shows where this question originated"),
|
|
158
|
-
("4.", "Save and return this file when complete"),
|
|
159
|
+
(" Required:", required_count),
|
|
160
|
+
(" Optional:", optional_count),
|
|
159
161
|
])
|
|
160
162
|
|
|
161
163
|
for row, (col1, col2) in enumerate(summary_data, 1):
|
|
@@ -169,6 +171,29 @@ def create_questionnaire(output_path: str, questions_data: dict):
|
|
|
169
171
|
ws_summary.column_dimensions['A'].width = 25
|
|
170
172
|
ws_summary.column_dimensions['B'].width = 40
|
|
171
173
|
|
|
174
|
+
# References sheet
|
|
175
|
+
references = questions_data.get('references', {})
|
|
176
|
+
if references:
|
|
177
|
+
ws_refs = wb.create_sheet("References")
|
|
178
|
+
ws_refs.cell(1, 1, "Feature").font = header_font
|
|
179
|
+
ws_refs.cell(1, 2, "Source Type").font = header_font
|
|
180
|
+
ws_refs.cell(1, 3, "URL").font = header_font
|
|
181
|
+
ws_refs.cell(1, 1).fill = header_fill
|
|
182
|
+
ws_refs.cell(1, 2).fill = header_fill
|
|
183
|
+
ws_refs.cell(1, 3).fill = header_fill
|
|
184
|
+
|
|
185
|
+
row = 2
|
|
186
|
+
for feature, sources in references.items():
|
|
187
|
+
for source in sources:
|
|
188
|
+
ws_refs.cell(row, 1, feature)
|
|
189
|
+
ws_refs.cell(row, 2, source.get('type', ''))
|
|
190
|
+
ws_refs.cell(row, 3, source.get('url', ''))
|
|
191
|
+
row += 1
|
|
192
|
+
|
|
193
|
+
ws_refs.column_dimensions['A'].width = 20
|
|
194
|
+
ws_refs.column_dimensions['B'].width = 20
|
|
195
|
+
ws_refs.column_dimensions['C'].width = 60
|
|
196
|
+
|
|
172
197
|
# Save
|
|
173
198
|
wb.save(output_path)
|
|
174
199
|
print(f"Created: {output_path}")
|