@comfanion/workflow 3.0.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.
- package/README.md +185 -0
- package/bin/cli.js +406 -0
- package/package.json +50 -0
- package/src/build-info.json +16 -0
- package/src/opencode/ARCHITECTURE.md +255 -0
- package/src/opencode/FLOW.yaml +900 -0
- package/src/opencode/agents/analyst.md +141 -0
- package/src/opencode/agents/architect.md +177 -0
- package/src/opencode/agents/change-manager.md +263 -0
- package/src/opencode/agents/dev.md +171 -0
- package/src/opencode/agents/module-docs.md +628 -0
- package/src/opencode/agents/pm.md +157 -0
- package/src/opencode/agents/researcher.md +254 -0
- package/src/opencode/agents/sm.md +184 -0
- package/src/opencode/agents/workflow-orchestrator.md +249 -0
- package/src/opencode/checklists/architecture-checklist.md +166 -0
- package/src/opencode/checklists/code-review-checklist.md +151 -0
- package/src/opencode/checklists/prd-checklist.md +140 -0
- package/src/opencode/checklists/requirements-checklist.md +86 -0
- package/src/opencode/checklists/story-checklist.md +137 -0
- package/src/opencode/commands/architecture.md +68 -0
- package/src/opencode/commands/archive.md +146 -0
- package/src/opencode/commands/change.md +169 -0
- package/src/opencode/commands/clarify.md +132 -0
- package/src/opencode/commands/code-review.md +96 -0
- package/src/opencode/commands/coding-standards.md +102 -0
- package/src/opencode/commands/dev-story.md +80 -0
- package/src/opencode/commands/diagram.md +152 -0
- package/src/opencode/commands/epics.md +52 -0
- package/src/opencode/commands/help.md +139 -0
- package/src/opencode/commands/jira-sync.md +58 -0
- package/src/opencode/commands/module-docs.md +158 -0
- package/src/opencode/commands/prd.md +63 -0
- package/src/opencode/commands/quick.md +166 -0
- package/src/opencode/commands/requirements.md +49 -0
- package/src/opencode/commands/research.md +113 -0
- package/src/opencode/commands/sprint-plan.md +59 -0
- package/src/opencode/commands/stories.md +61 -0
- package/src/opencode/commands/validate.md +84 -0
- package/src/opencode/commands/workflow-status.md +150 -0
- package/src/opencode/config.yaml +223 -0
- package/src/opencode/opencode.json +36 -0
- package/src/opencode/skills/acceptance-criteria/SKILL.md +212 -0
- package/src/opencode/skills/adr-writing/SKILL.md +241 -0
- package/src/opencode/skills/architecture-design/SKILL.md +183 -0
- package/src/opencode/skills/architecture-validation/SKILL.md +199 -0
- package/src/opencode/skills/archiving/SKILL.md +191 -0
- package/src/opencode/skills/changelog/SKILL.md +280 -0
- package/src/opencode/skills/code-review/SKILL.md +193 -0
- package/src/opencode/skills/coding-standards/SKILL.md +430 -0
- package/src/opencode/skills/diagram-creation/SKILL.md +273 -0
- package/src/opencode/skills/doc-todo/SKILL.md +325 -0
- package/src/opencode/skills/epic-writing/SKILL.md +291 -0
- package/src/opencode/skills/jira-integration/SKILL.md +560 -0
- package/src/opencode/skills/methodologies/SKILL.md +376 -0
- package/src/opencode/skills/module-documentation/SKILL.md +214 -0
- package/src/opencode/skills/prd-validation/SKILL.md +164 -0
- package/src/opencode/skills/prd-writing/SKILL.md +104 -0
- package/src/opencode/skills/requirements-gathering/SKILL.md +132 -0
- package/src/opencode/skills/requirements-validation/SKILL.md +141 -0
- package/src/opencode/skills/research-methodology/SKILL.md +140 -0
- package/src/opencode/skills/sprint-planning/SKILL.md +217 -0
- package/src/opencode/skills/story-writing/SKILL.md +574 -0
- package/src/opencode/skills/test-design/SKILL.md +313 -0
- package/src/opencode/skills/translation/SKILL.md +411 -0
- package/src/opencode/templates/CHANGELOG.md +82 -0
- package/src/opencode/templates/adr-template.md +115 -0
- package/src/opencode/templates/architecture-template.md +362 -0
- package/src/opencode/templates/change-proposal-template.md +186 -0
- package/src/opencode/templates/epic-template.md +151 -0
- package/src/opencode/templates/git-workflow-template.md +384 -0
- package/src/opencode/templates/integration-tests-template.md +265 -0
- package/src/opencode/templates/jira-cache-template.yaml +103 -0
- package/src/opencode/templates/module-index-template.md +139 -0
- package/src/opencode/templates/module-test-cases-template.md +230 -0
- package/src/opencode/templates/prd-acceptance-criteria-template.md +124 -0
- package/src/opencode/templates/prd-template.md +479 -0
- package/src/opencode/templates/requirements-template.md +132 -0
- package/src/opencode/templates/sprint-status-template.yaml +84 -0
- package/src/opencode/templates/story-template.md +437 -0
- package/src/opencode/templates/testing-standards-template.md +359 -0
- package/src/opencode/workflows/dev-story/instructions.md +529 -0
- package/src/repo-structure/.gitattributes +64 -0
- package/src/repo-structure/CONTRIBUTING.md +182 -0
- package/src/repo-structure/README.md +77 -0
- package/src/repo-structure/docs/README.md +62 -0
- package/src/repo-structure/docs/api/README.md +43 -0
- package/src/repo-structure/docs/architecture/README.md +36 -0
- package/src/repo-structure/docs/architecture/adr/README.md +53 -0
- package/src/repo-structure/docs/architecture/diagrams/README.md +59 -0
- package/src/repo-structure/docs/coding-standards/README.md +52 -0
- package/src/repo-structure/docs/confluence/README.md +43 -0
- package/src/repo-structure/docs/requirements/README.md +28 -0
- package/src/repo-structure/docs/sprint-artifacts/README.md +76 -0
- package/src/repo-structure/docs/sprint-artifacts/backlog/README.md +24 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
# Methodologies Skill
|
|
2
|
+
|
|
3
|
+
> **Purpose**: Structured methods for requirements, analysis, and problem-solving
|
|
4
|
+
> **Used by**: Analyst, PM, Architect, Researcher
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## By Agent Role
|
|
9
|
+
|
|
10
|
+
| Agent | Primary Methods |
|
|
11
|
+
|-------|-----------------|
|
|
12
|
+
| **Analyst (Mary)** | User Interviews, Empathy Mapping, Journey Mapping, Affinity Clustering, Five Whys, Fishbone |
|
|
13
|
+
| **PM (John)** | Problem Framing, HMW, POV Statement, JTBD, Brainstorming, SCAMPER |
|
|
14
|
+
| **Architect (Winston)** | Systems Thinking, Fishbone, Is/Is Not Analysis, Decision Matrix |
|
|
15
|
+
| **Researcher (Alex)** | Analogous Inspiration, Five Whys, Systems Thinking, Is/Is Not |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## EMPATHIZE Methods (Analyst)
|
|
20
|
+
|
|
21
|
+
### User Interviews
|
|
22
|
+
**Purpose**: Deep conversations to understand user needs, experiences, and pain points
|
|
23
|
+
|
|
24
|
+
**Prompts**:
|
|
25
|
+
- What brings you here today?
|
|
26
|
+
- Walk me through a recent experience
|
|
27
|
+
- What frustrates you most?
|
|
28
|
+
- What would make this easier?
|
|
29
|
+
- Tell me more about that
|
|
30
|
+
|
|
31
|
+
**Output**: Interview notes, verbatim quotes, key insights
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### Empathy Mapping
|
|
36
|
+
**Purpose**: Visual representation of what users Say, Think, Do, Feel
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
┌─────────────────────────────────────┐
|
|
40
|
+
│ SAYS │
|
|
41
|
+
│ "Actual quotes from user" │
|
|
42
|
+
├─────────────────────────────────────┤
|
|
43
|
+
│ THINKS │
|
|
44
|
+
│ What might they be thinking? │
|
|
45
|
+
├─────────────────────────────────────┤
|
|
46
|
+
│ DOES │
|
|
47
|
+
│ What actions did they take? │
|
|
48
|
+
├─────────────────────────────────────┤
|
|
49
|
+
│ FEELS │
|
|
50
|
+
│ What emotions surfaced? │
|
|
51
|
+
└─────────────────────────────────────┘
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### Journey Mapping
|
|
57
|
+
**Purpose**: Document complete user experience across touchpoints
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Stage: │ Awareness │ Consideration │ Action │ Use │ Support │
|
|
61
|
+
────────────┼───────────┼───────────────┼────────┼─────┼─────────┤
|
|
62
|
+
Actions │ │ │ │ │ │
|
|
63
|
+
Thoughts │ │ │ │ │ │
|
|
64
|
+
Emotions │ 😀 │ 😐 │ 😰 │ 😊 │ 😡 │
|
|
65
|
+
Pain Points │ │ │ │ │ │
|
|
66
|
+
Opportunities│ │ │ │ │ │
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Prompts**:
|
|
70
|
+
- What's their starting point?
|
|
71
|
+
- What steps do they take?
|
|
72
|
+
- Where do they struggle?
|
|
73
|
+
- What delights them?
|
|
74
|
+
- What's the emotional arc?
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## DEFINE Methods (Analyst, PM)
|
|
79
|
+
|
|
80
|
+
### Problem Framing
|
|
81
|
+
**Purpose**: Transform observations into clear actionable problem statements
|
|
82
|
+
|
|
83
|
+
**Prompts**:
|
|
84
|
+
- What's the **real** problem? (not the symptom)
|
|
85
|
+
- Who experiences this?
|
|
86
|
+
- Why does it matter?
|
|
87
|
+
- What would success look like?
|
|
88
|
+
|
|
89
|
+
**Output**: 1-2 sentence problem statement that inspires solutions
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### How Might We (HMW)
|
|
94
|
+
**Purpose**: Reframe problems as opportunity questions
|
|
95
|
+
|
|
96
|
+
**Format**: `How might we [action] for [user] so that [outcome]?`
|
|
97
|
+
|
|
98
|
+
**Examples**:
|
|
99
|
+
- How might we help merchants update inventory faster?
|
|
100
|
+
- How might we make checkout easier for mobile users?
|
|
101
|
+
- How might we reduce friction in onboarding?
|
|
102
|
+
|
|
103
|
+
**Rules**:
|
|
104
|
+
- Opens solution space (not prescriptive)
|
|
105
|
+
- User-centered
|
|
106
|
+
- Implies positive change
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Point of View (POV) Statement
|
|
111
|
+
**Purpose**: Specific user-centered problem statements
|
|
112
|
+
|
|
113
|
+
**Template**:
|
|
114
|
+
```
|
|
115
|
+
[User type] needs [what] because [insight]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Example**:
|
|
119
|
+
> A busy merchant needs quick inventory updates because they lose sales when items show as available but are out of stock.
|
|
120
|
+
|
|
121
|
+
**Prompts**:
|
|
122
|
+
- What's driving this need?
|
|
123
|
+
- Why does it matter to them?
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Affinity Clustering
|
|
128
|
+
**Purpose**: Group observations to reveal patterns and themes
|
|
129
|
+
|
|
130
|
+
**Process**:
|
|
131
|
+
1. Write each observation on a card/sticky
|
|
132
|
+
2. Group similar items together (silently)
|
|
133
|
+
3. Name each cluster
|
|
134
|
+
4. Identify meta-themes
|
|
135
|
+
|
|
136
|
+
**Prompts**:
|
|
137
|
+
- What connects these?
|
|
138
|
+
- What themes emerge?
|
|
139
|
+
- What story do they tell?
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### Jobs to be Done (JTBD)
|
|
144
|
+
**Purpose**: Identify what users are "hiring" solutions to accomplish
|
|
145
|
+
|
|
146
|
+
**Template**:
|
|
147
|
+
```
|
|
148
|
+
When [situation], I want to [motivation], so I can [expected outcome]
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Three Job Types**:
|
|
152
|
+
| Type | Question |
|
|
153
|
+
|------|----------|
|
|
154
|
+
| **Functional** | What task are they completing? |
|
|
155
|
+
| **Emotional** | How do they want to feel? |
|
|
156
|
+
| **Social** | How do they want to be perceived? |
|
|
157
|
+
|
|
158
|
+
**Prompts**:
|
|
159
|
+
- What job are they trying to do?
|
|
160
|
+
- What progress do they want?
|
|
161
|
+
- What are they really hiring this for?
|
|
162
|
+
- What alternatives exist?
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## IDEATE Methods (PM, Analyst)
|
|
167
|
+
|
|
168
|
+
### Brainstorming Rules
|
|
169
|
+
1. **No bad ideas** - defer judgment
|
|
170
|
+
2. **Build on others** - "Yes, and..."
|
|
171
|
+
3. **Aim for quantity** - 50+ ideas
|
|
172
|
+
4. **Be visual** - sketch it
|
|
173
|
+
5. **Stay on topic** - one problem at a time
|
|
174
|
+
6. **Time-box** - 10-15 minutes max
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### SCAMPER
|
|
179
|
+
**Purpose**: Apply 7 lenses to existing solutions for innovation
|
|
180
|
+
|
|
181
|
+
| Letter | Question | Example |
|
|
182
|
+
|--------|----------|---------|
|
|
183
|
+
| **S**ubstitute | What can we substitute? | Different payment provider? |
|
|
184
|
+
| **C**ombine | What can we combine? | Checkout + registration? |
|
|
185
|
+
| **A**dapt | What can we adapt from elsewhere? | How does Uber handle this? |
|
|
186
|
+
| **M**odify | How can we modify/magnify? | What if 10x faster? |
|
|
187
|
+
| **P**ut to other uses | Other purposes? | Could this data serve analytics? |
|
|
188
|
+
| **E**liminate | What can we remove? | Do we need this step? |
|
|
189
|
+
| **R**everse | What if we reversed it? | User pulls instead of push? |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## DIAGNOSIS Methods (Analyst, Architect, Researcher)
|
|
194
|
+
|
|
195
|
+
### Five Whys Root Cause
|
|
196
|
+
**Purpose**: Drill through symptoms to find root cause
|
|
197
|
+
|
|
198
|
+
**Example**:
|
|
199
|
+
```
|
|
200
|
+
Problem: Users are abandoning checkout
|
|
201
|
+
└─ Why? → Payment fails frequently
|
|
202
|
+
└─ Why? → Timeout errors occur
|
|
203
|
+
└─ Why? → Payment gateway is slow
|
|
204
|
+
└─ Why? → No connection pooling
|
|
205
|
+
└─ Why? → Legacy implementation
|
|
206
|
+
|
|
207
|
+
ROOT CAUSE: Legacy payment integration needs refactoring
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Tips**:
|
|
211
|
+
- Don't stop at the comfortable answer
|
|
212
|
+
- Look for systemic causes, not blame
|
|
213
|
+
- May need 3-7 "whys" (5 is a guideline)
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
### Fishbone Diagram (Ishikawa)
|
|
218
|
+
**Purpose**: Map all potential causes across categories
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
┌─────────────────────────────────────────┐
|
|
222
|
+
People ─────────┤ │
|
|
223
|
+
│ │
|
|
224
|
+
Process ────────┤ │
|
|
225
|
+
│ PROBLEM ├───▶ EFFECT
|
|
226
|
+
Technology ─────┤ │
|
|
227
|
+
│ │
|
|
228
|
+
Data ───────────┤ │
|
|
229
|
+
│ │
|
|
230
|
+
Environment ────┤ │
|
|
231
|
+
└─────────────────────────────────────────┘
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Categories (adapt to context)**:
|
|
235
|
+
| Category | Questions |
|
|
236
|
+
|----------|-----------|
|
|
237
|
+
| **People** | Skills? Training? Capacity? Communication? |
|
|
238
|
+
| **Process** | Steps? Handoffs? Bottlenecks? Unclear? |
|
|
239
|
+
| **Technology** | Systems? Tools? Integration? Performance? |
|
|
240
|
+
| **Data** | Quality? Availability? Format? Timeliness? |
|
|
241
|
+
| **Environment** | External factors? Dependencies? Constraints? |
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### Is/Is Not Analysis
|
|
246
|
+
**Purpose**: Define problem boundaries by contrast
|
|
247
|
+
|
|
248
|
+
| Question | IS | IS NOT |
|
|
249
|
+
|----------|-----|--------|
|
|
250
|
+
| **WHAT** is the problem? | | |
|
|
251
|
+
| **WHERE** does it occur? | | |
|
|
252
|
+
| **WHEN** does it happen? | | |
|
|
253
|
+
| **WHO** experiences it? | | |
|
|
254
|
+
| **HOW MUCH** impact? | | |
|
|
255
|
+
|
|
256
|
+
**Prompts**:
|
|
257
|
+
- Where does problem occur? Where doesn't it?
|
|
258
|
+
- When does it happen? When doesn't it?
|
|
259
|
+
- Who experiences it? Who doesn't?
|
|
260
|
+
- What pattern emerges from the contrast?
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
### Systems Thinking
|
|
265
|
+
**Purpose**: Map interconnected elements, feedback loops, and leverage points
|
|
266
|
+
|
|
267
|
+
**Components to Map**:
|
|
268
|
+
```
|
|
269
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
270
|
+
│ ELEMENTS │────▶│ CONNECTIONS │────▶│ FEEDBACK │
|
|
271
|
+
│ │ │ │ │ LOOPS │
|
|
272
|
+
│ What are │ │ What │ │ Reinforcing │
|
|
273
|
+
│ the parts? │ │ relationships?│ │ or balancing?│
|
|
274
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
275
|
+
│
|
|
276
|
+
▼
|
|
277
|
+
┌─────────────┐
|
|
278
|
+
│ LEVERAGE │
|
|
279
|
+
│ POINTS │
|
|
280
|
+
│ │
|
|
281
|
+
│ Where small │
|
|
282
|
+
│ change = big│
|
|
283
|
+
│ impact? │
|
|
284
|
+
└─────────────┘
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**Prompts**:
|
|
288
|
+
- What are the system components?
|
|
289
|
+
- What relationships exist between them?
|
|
290
|
+
- What feedback loops exist? (reinforcing or balancing)
|
|
291
|
+
- What delays occur in the system?
|
|
292
|
+
- Where are the leverage points?
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## EVALUATION Methods (Architect, PM)
|
|
297
|
+
|
|
298
|
+
### Decision Matrix
|
|
299
|
+
**Purpose**: Systematically evaluate options against weighted criteria
|
|
300
|
+
|
|
301
|
+
**Template**:
|
|
302
|
+
| Criterion | Weight | Option A | Option B | Option C |
|
|
303
|
+
|-----------|--------|----------|----------|----------|
|
|
304
|
+
| Performance | 3 | 8 (24) | 6 (18) | 9 (27) |
|
|
305
|
+
| Cost | 2 | 7 (14) | 9 (18) | 5 (10) |
|
|
306
|
+
| Complexity | 2 | 6 (12) | 8 (16) | 4 (8) |
|
|
307
|
+
| Team Skills | 1 | 9 (9) | 5 (5) | 7 (7) |
|
|
308
|
+
| **Total** | | **59** | **57** | **52** |
|
|
309
|
+
|
|
310
|
+
**Process**:
|
|
311
|
+
1. List options
|
|
312
|
+
2. Define criteria (from NFRs, constraints)
|
|
313
|
+
3. Assign weights (importance)
|
|
314
|
+
4. Score each option (1-10)
|
|
315
|
+
5. Calculate weighted scores
|
|
316
|
+
6. Discuss and decide
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## RESEARCH Methods (Researcher)
|
|
321
|
+
|
|
322
|
+
### Analogous Inspiration
|
|
323
|
+
**Purpose**: Find solutions from different domains
|
|
324
|
+
|
|
325
|
+
**Prompts**:
|
|
326
|
+
- What other field solves a similar problem?
|
|
327
|
+
- How does nature handle this? (biomimicry)
|
|
328
|
+
- What's an analogous problem in another industry?
|
|
329
|
+
- What can we borrow and adapt?
|
|
330
|
+
|
|
331
|
+
**Examples**:
|
|
332
|
+
| Problem | Analogous Domain | Insight |
|
|
333
|
+
|---------|------------------|---------|
|
|
334
|
+
| Queue management | Theme parks | FastPass reservation system |
|
|
335
|
+
| Fraud detection | Immune system | Pattern recognition, antibodies |
|
|
336
|
+
| Load balancing | Ant colonies | Distributed decision-making |
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Quick Reference by Task
|
|
341
|
+
|
|
342
|
+
### Requirements Gathering
|
|
343
|
+
1. **User Interviews** → raw data
|
|
344
|
+
2. **Empathy Mapping** → organize insights
|
|
345
|
+
3. **Affinity Clustering** → find patterns
|
|
346
|
+
4. **JTBD** → frame needs
|
|
347
|
+
|
|
348
|
+
### Problem Definition
|
|
349
|
+
1. **Problem Framing** → clear statement
|
|
350
|
+
2. **Five Whys** → root cause
|
|
351
|
+
3. **Is/Is Not** → boundaries
|
|
352
|
+
4. **HMW** → opportunity questions
|
|
353
|
+
|
|
354
|
+
### Solution Generation
|
|
355
|
+
1. **Brainstorming** → quantity of ideas
|
|
356
|
+
2. **SCAMPER** → systematic exploration
|
|
357
|
+
3. **Analogous Inspiration** → cross-domain ideas
|
|
358
|
+
|
|
359
|
+
### Architecture Decisions
|
|
360
|
+
1. **Systems Thinking** → understand complexity
|
|
361
|
+
2. **Fishbone** → cause analysis
|
|
362
|
+
3. **Decision Matrix** → evaluate options
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## Method Selection Guide
|
|
367
|
+
|
|
368
|
+
| Situation | Use These Methods |
|
|
369
|
+
|-----------|-------------------|
|
|
370
|
+
| Don't understand users | User Interviews, Empathy Mapping, Journey Mapping |
|
|
371
|
+
| Problem is vague | Problem Framing, Five Whys, Is/Is Not |
|
|
372
|
+
| Need root cause | Five Whys, Fishbone, Systems Thinking |
|
|
373
|
+
| Need fresh ideas | Brainstorming, SCAMPER, Analogous Inspiration |
|
|
374
|
+
| Organizing insights | Affinity Clustering, JTBD |
|
|
375
|
+
| Comparing options | Decision Matrix |
|
|
376
|
+
| Complex system issues | Systems Thinking, Fishbone |
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# Module Documentation Skill
|
|
2
|
+
|
|
3
|
+
How to create detailed per-module documentation.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Create comprehensive documentation for individual modules/services that enables developers to understand, implement, and maintain the module.
|
|
8
|
+
|
|
9
|
+
## Module Documentation Structure
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
docs/architecture/[module]/
|
|
13
|
+
├── index.md # Module overview and navigation
|
|
14
|
+
├── architecture.md # Technical architecture
|
|
15
|
+
├── data-model.md # Database schema and entities
|
|
16
|
+
├── api.md # API contracts
|
|
17
|
+
├── events.md # Event schemas (if applicable)
|
|
18
|
+
└── testing.md # Testing strategy
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 1. Index Template (index.md)
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
# {{module_name}} Module
|
|
25
|
+
|
|
26
|
+
## Overview
|
|
27
|
+
|
|
28
|
+
[1-2 paragraphs describing module purpose and responsibilities]
|
|
29
|
+
|
|
30
|
+
## Key Responsibilities
|
|
31
|
+
|
|
32
|
+
- [Responsibility 1]
|
|
33
|
+
- [Responsibility 2]
|
|
34
|
+
- [Responsibility 3]
|
|
35
|
+
|
|
36
|
+
## Module Boundaries
|
|
37
|
+
|
|
38
|
+
**Owns:**
|
|
39
|
+
- [What this module is responsible for]
|
|
40
|
+
|
|
41
|
+
**Does NOT Own:**
|
|
42
|
+
- [What other modules handle]
|
|
43
|
+
|
|
44
|
+
## Quick Links
|
|
45
|
+
|
|
46
|
+
- [Architecture](./architecture.md)
|
|
47
|
+
- [Data Model](./data-model.md)
|
|
48
|
+
- [API Contracts](./api.md)
|
|
49
|
+
- [Events](./events.md)
|
|
50
|
+
- [Testing](./testing.md)
|
|
51
|
+
|
|
52
|
+
## Related Modules
|
|
53
|
+
|
|
54
|
+
| Module | Relationship | Communication |
|
|
55
|
+
|--------|--------------|---------------|
|
|
56
|
+
| [Module A] | [Depends on] | [API / Events] |
|
|
57
|
+
| [Module B] | [Provides to] | [API / Events] |
|
|
58
|
+
|
|
59
|
+
## Key Requirements
|
|
60
|
+
|
|
61
|
+
| FR # | Description |
|
|
62
|
+
|------|-------------|
|
|
63
|
+
| FR-001 | [Requirement this module implements] |
|
|
64
|
+
| FR-002 | [Requirement this module implements] |
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 2. Architecture Template (architecture.md)
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
# {{module_name}} Architecture
|
|
71
|
+
|
|
72
|
+
## Component Diagram
|
|
73
|
+
|
|
74
|
+
[ASCII or Mermaid diagram showing module components]
|
|
75
|
+
|
|
76
|
+
## Layer Structure
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
{{module_name}}/
|
|
80
|
+
├── domain/
|
|
81
|
+
│ ├── aggregate/
|
|
82
|
+
│ ├── valueobject/
|
|
83
|
+
│ ├── service/
|
|
84
|
+
│ └── repository/
|
|
85
|
+
├── application/
|
|
86
|
+
│ └── usecase/
|
|
87
|
+
└── infrastructure/
|
|
88
|
+
├── repo/
|
|
89
|
+
└── http/
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Key Components
|
|
93
|
+
|
|
94
|
+
### Domain Layer
|
|
95
|
+
|
|
96
|
+
#### Aggregates
|
|
97
|
+
- **{{Aggregate1}}**: [Description]
|
|
98
|
+
- **{{Aggregate2}}**: [Description]
|
|
99
|
+
|
|
100
|
+
#### Value Objects
|
|
101
|
+
- **{{VO1}}**: [Description]
|
|
102
|
+
- **{{VO2}}**: [Description]
|
|
103
|
+
|
|
104
|
+
### Application Layer
|
|
105
|
+
|
|
106
|
+
#### Use Cases
|
|
107
|
+
- **{{UseCase1}}**: [What it does]
|
|
108
|
+
- **{{UseCase2}}**: [What it does]
|
|
109
|
+
|
|
110
|
+
### Infrastructure Layer
|
|
111
|
+
|
|
112
|
+
#### Repositories
|
|
113
|
+
- **{{Repo1}}**: [Implementation details]
|
|
114
|
+
|
|
115
|
+
#### HTTP Handlers
|
|
116
|
+
- **{{Handler1}}**: [Endpoints handled]
|
|
117
|
+
|
|
118
|
+
## Design Decisions
|
|
119
|
+
|
|
120
|
+
See ADRs:
|
|
121
|
+
- [ADR-001: Decision title](../../adr/ADR-001.md)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 3. Data Model Template (data-model.md)
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
# {{module_name}} Data Model
|
|
128
|
+
|
|
129
|
+
## Entity Relationship Diagram
|
|
130
|
+
|
|
131
|
+
[ERD diagram]
|
|
132
|
+
|
|
133
|
+
## Tables
|
|
134
|
+
|
|
135
|
+
### {{table_name}}
|
|
136
|
+
|
|
137
|
+
| Column | Type | Constraints | Description |
|
|
138
|
+
|--------|------|-------------|-------------|
|
|
139
|
+
| id | UUID | PK | Primary key |
|
|
140
|
+
| name | VARCHAR(255) | NOT NULL | [Description] |
|
|
141
|
+
| created_at | TIMESTAMP | NOT NULL | Creation time |
|
|
142
|
+
|
|
143
|
+
**Indexes:**
|
|
144
|
+
- `idx_{{table}}_{{column}}` on ({{column}})
|
|
145
|
+
|
|
146
|
+
**Relationships:**
|
|
147
|
+
- Has many: {{related_table}}
|
|
148
|
+
- Belongs to: {{parent_table}}
|
|
149
|
+
|
|
150
|
+
## Migrations
|
|
151
|
+
|
|
152
|
+
| Version | Description | File |
|
|
153
|
+
|---------|-------------|------|
|
|
154
|
+
| 001 | Create {{table}} | migrations/001_create_{{table}}.sql |
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 4. API Template (api.md)
|
|
158
|
+
|
|
159
|
+
```markdown
|
|
160
|
+
# {{module_name}} API
|
|
161
|
+
|
|
162
|
+
## Base URL
|
|
163
|
+
|
|
164
|
+
`/api/v1/{{module}}`
|
|
165
|
+
|
|
166
|
+
## Endpoints
|
|
167
|
+
|
|
168
|
+
### Create {{Resource}}
|
|
169
|
+
|
|
170
|
+
`POST /{{resources}}`
|
|
171
|
+
|
|
172
|
+
**Request:**
|
|
173
|
+
```json
|
|
174
|
+
{
|
|
175
|
+
"field1": "value1",
|
|
176
|
+
"field2": "value2"
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Response (201):**
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"id": "uuid",
|
|
184
|
+
"field1": "value1",
|
|
185
|
+
"created_at": "2024-01-01T00:00:00Z"
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Errors:**
|
|
190
|
+
- 400: Validation error
|
|
191
|
+
- 401: Unauthorized
|
|
192
|
+
- 409: Conflict
|
|
193
|
+
|
|
194
|
+
### Get {{Resource}}
|
|
195
|
+
|
|
196
|
+
`GET /{{resources}}/:id`
|
|
197
|
+
|
|
198
|
+
[Continue for all endpoints...]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Quality Checklist
|
|
202
|
+
|
|
203
|
+
- [ ] Index provides clear overview
|
|
204
|
+
- [ ] Architecture shows all components
|
|
205
|
+
- [ ] Data model is complete with indexes
|
|
206
|
+
- [ ] API contracts have request/response examples
|
|
207
|
+
- [ ] Events documented (if applicable)
|
|
208
|
+
- [ ] Testing strategy defined
|
|
209
|
+
- [ ] Links to ADRs included
|
|
210
|
+
- [ ] Requirements traceability present
|
|
211
|
+
|
|
212
|
+
## Output Location
|
|
213
|
+
|
|
214
|
+
`docs/architecture/[module-name]/`
|