opencode-sdlc-plugin 0.2.1 → 0.3.2
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/LICENSE +18 -0
- package/README.md +127 -38
- package/commands/sdlc-adr.md +245 -17
- package/commands/sdlc-debug.md +376 -0
- package/commands/sdlc-design.md +205 -47
- package/commands/sdlc-dev.md +544 -0
- package/commands/sdlc-info.md +325 -0
- package/commands/sdlc-parallel.md +283 -0
- package/commands/sdlc-recall.md +203 -8
- package/commands/sdlc-remember.md +126 -9
- package/commands/sdlc-research.md +343 -0
- package/commands/sdlc-review.md +201 -128
- package/commands/sdlc-status.md +297 -0
- package/config/presets/copilot-only.json +69 -0
- package/config/presets/enterprise.json +79 -0
- package/config/presets/event-modeling.json +74 -8
- package/config/presets/minimal.json +70 -0
- package/config/presets/solo-quick.json +70 -0
- package/config/presets/standard.json +78 -0
- package/config/presets/strict-tdd.json +79 -0
- package/config/schemas/athena.schema.json +338 -0
- package/config/schemas/sdlc.schema.json +442 -26
- package/dist/cli/index.d.ts +2 -1
- package/dist/cli/index.js +4285 -562
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +1781 -1
- package/dist/index.js +7759 -395
- package/dist/index.js.map +1 -1
- package/dist/plugin/index.d.ts +17 -2
- package/dist/plugin/index.js +7730 -397
- package/dist/plugin/index.js.map +1 -1
- package/package.json +68 -33
- package/prompts/agents/code-reviewer.md +229 -0
- package/prompts/agents/domain.md +210 -0
- package/prompts/agents/green.md +148 -0
- package/prompts/agents/mutation.md +278 -0
- package/prompts/agents/red.md +112 -0
- package/prompts/event-modeling/discovery.md +176 -0
- package/prompts/event-modeling/gwt-generation.md +479 -0
- package/prompts/event-modeling/workflow-design.md +318 -0
- package/prompts/personas/amelia-developer.md +43 -0
- package/prompts/personas/bob-sm.md +43 -0
- package/prompts/personas/john-pm.md +43 -0
- package/prompts/personas/mary-analyst.md +43 -0
- package/prompts/personas/murat-tester.md +43 -0
- package/prompts/personas/paige-techwriter.md +43 -0
- package/prompts/personas/sally-ux.md +43 -0
- package/prompts/personas/winston-architect.md +43 -0
- package/agents/design-facilitator.md +0 -8
- package/agents/domain.md +0 -9
- package/agents/exploration.md +0 -8
- package/agents/green.md +0 -9
- package/agents/marvin.md +0 -15
- package/agents/model-checker.md +0 -9
- package/agents/red.md +0 -9
- package/commands/sdlc-domain-audit.md +0 -32
- package/commands/sdlc-plan.md +0 -63
- package/commands/sdlc-pr.md +0 -43
- package/commands/sdlc-setup.md +0 -50
- package/commands/sdlc-start.md +0 -34
- package/commands/sdlc-work.md +0 -118
- package/config/presets/traditional.json +0 -12
- package/skills/adr-policy.md +0 -21
- package/skills/atomic-design.md +0 -39
- package/skills/debugging-protocol.md +0 -47
- package/skills/event-modeling.md +0 -40
- package/skills/git-spice.md +0 -44
- package/skills/github-issues.md +0 -44
- package/skills/memory-protocol.md +0 -41
- package/skills/orchestration.md +0 -118
- package/skills/skill-enforcement.md +0 -56
- package/skills/tdd-constraints.md +0 -63
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Debug an issue using Oracle's deep reasoning capabilities
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# SDLC Debug - Oracle-Powered Debugging
|
|
6
|
+
|
|
7
|
+
## Git Operations Policy
|
|
8
|
+
|
|
9
|
+
**⚠️ AUTOMATIC GIT OPERATIONS ARE PROHIBITED**
|
|
10
|
+
|
|
11
|
+
You must NOT perform any git operations automatically:
|
|
12
|
+
- ❌ Do NOT run `git commit` to save changes
|
|
13
|
+
- ❌ Do NOT run `git push` to push to remote
|
|
14
|
+
- ❌ Do NOT run `git checkout -b` or `git branch` to create branches
|
|
15
|
+
- ❌ Do NOT run `git merge`, `git rebase`, or `git cherry-pick`
|
|
16
|
+
- ❌ Do NOT run `gh pr create` or other GitHub CLI operations
|
|
17
|
+
|
|
18
|
+
**Git operations are ONLY permitted if the user explicitly requests them.**
|
|
19
|
+
|
|
20
|
+
Examples of explicit permission:
|
|
21
|
+
- User says: "Please commit these fixes"
|
|
22
|
+
- User says: "Create a branch for this bugfix"
|
|
23
|
+
- User says: "Push to origin" or "Create a PR"
|
|
24
|
+
|
|
25
|
+
**If you believe git operations would be helpful, ASK the user first:**
|
|
26
|
+
```
|
|
27
|
+
I've fixed the issue. Would you like me to:
|
|
28
|
+
1. Commit the fix to git, or
|
|
29
|
+
2. Leave git operations for you to handle manually?
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**To track story progress without git, use:**
|
|
33
|
+
```
|
|
34
|
+
sdlc_update_status({
|
|
35
|
+
storyId: "X.Y",
|
|
36
|
+
status: "in_progress",
|
|
37
|
+
notes: "Fixed issue: [description]"
|
|
38
|
+
})
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This updates sprint-status.yaml without requiring git commits.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
Use Oracle, the debugging specialist, to analyze and fix complex issues with systematic hypothesis-driven debugging.
|
|
46
|
+
|
|
47
|
+
**You are Sisyphus, the orchestrator.** You will coordinate Oracle's deep reasoning with automated tools to efficiently diagnose and fix issues.
|
|
48
|
+
|
|
49
|
+
## When to Use This Command
|
|
50
|
+
|
|
51
|
+
- Complex bugs that span multiple files
|
|
52
|
+
- Performance issues requiring deep analysis
|
|
53
|
+
- Architectural problems needing strategic solutions
|
|
54
|
+
- Issues where the root cause is unclear
|
|
55
|
+
- Bugs you've tried to fix 2+ times without success
|
|
56
|
+
|
|
57
|
+
## Step 1: Gather Context
|
|
58
|
+
|
|
59
|
+
### 1.1 Check Story Context (if applicable)
|
|
60
|
+
|
|
61
|
+
If debugging during story implementation, load the story context first:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
sdlc_get_story()
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This provides:
|
|
68
|
+
- Acceptance criteria (to understand expected behavior)
|
|
69
|
+
- Architecture patterns (to understand design intent)
|
|
70
|
+
- Related code context
|
|
71
|
+
|
|
72
|
+
### 1.2 Collect Error Evidence
|
|
73
|
+
|
|
74
|
+
Before invoking Oracle, gather all available evidence:
|
|
75
|
+
|
|
76
|
+
**Error messages and stack traces:**
|
|
77
|
+
- Copy the exact error message
|
|
78
|
+
- Include the full stack trace if available
|
|
79
|
+
- Note which file/line the error points to
|
|
80
|
+
|
|
81
|
+
**Reproduction information:**
|
|
82
|
+
- Steps to reproduce the issue
|
|
83
|
+
- Input values that trigger the error
|
|
84
|
+
- Environment details (dev/prod, browser, etc.)
|
|
85
|
+
|
|
86
|
+
**What you've already tried:**
|
|
87
|
+
- Previous fix attempts
|
|
88
|
+
- Why they didn't work
|
|
89
|
+
- Any patterns you've noticed
|
|
90
|
+
|
|
91
|
+
### 1.3 Use Explore for Initial Context (Optional but Recommended)
|
|
92
|
+
|
|
93
|
+
Before invoking expensive Oracle, use **@explore** to gather codebase context:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
@explore I'm debugging an issue in {area of code}.
|
|
97
|
+
|
|
98
|
+
The error is: {error message}
|
|
99
|
+
The problematic behavior is: {description}
|
|
100
|
+
|
|
101
|
+
Please find:
|
|
102
|
+
1. The code paths related to this functionality
|
|
103
|
+
2. Similar error handling in the codebase
|
|
104
|
+
3. Any related tests that might indicate expected behavior
|
|
105
|
+
4. Recent changes to these files (if visible)
|
|
106
|
+
|
|
107
|
+
Return file paths and relevant code sections.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**When to skip Explore:**
|
|
111
|
+
- You already know exactly where the bug is
|
|
112
|
+
- You've already traced the code path
|
|
113
|
+
- The issue is architectural, not code-specific
|
|
114
|
+
|
|
115
|
+
## Step 2: Invoke Oracle for Diagnosis
|
|
116
|
+
|
|
117
|
+
Ask **@oracle** to perform systematic debugging:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
@oracle I need help debugging a complex issue.
|
|
121
|
+
|
|
122
|
+
## Problem Description
|
|
123
|
+
|
|
124
|
+
**Expected Behavior:**
|
|
125
|
+
{what should happen}
|
|
126
|
+
|
|
127
|
+
**Actual Behavior:**
|
|
128
|
+
{what happens instead}
|
|
129
|
+
|
|
130
|
+
**Error Message/Stack Trace:**
|
|
131
|
+
```
|
|
132
|
+
{paste exact error}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Reproduction Steps:**
|
|
136
|
+
1. {step 1}
|
|
137
|
+
2. {step 2}
|
|
138
|
+
3. {step 3}
|
|
139
|
+
|
|
140
|
+
## Context
|
|
141
|
+
|
|
142
|
+
**Affected Files:**
|
|
143
|
+
{list files involved - from Explore or your knowledge}
|
|
144
|
+
|
|
145
|
+
**Architecture Context:**
|
|
146
|
+
{relevant architecture patterns if from story context}
|
|
147
|
+
|
|
148
|
+
**What I've Already Tried:**
|
|
149
|
+
- {attempt 1 and why it failed}
|
|
150
|
+
- {attempt 2 and why it failed}
|
|
151
|
+
|
|
152
|
+
## Debugging Request
|
|
153
|
+
|
|
154
|
+
Please analyze this issue using your systematic debugging approach:
|
|
155
|
+
|
|
156
|
+
1. **Evidence Analysis**: Review the error, stack trace, and context
|
|
157
|
+
2. **Hypothesis Generation**: List 3-5 possible root causes ranked by likelihood
|
|
158
|
+
3. **Hypothesis Testing**: For each hypothesis, describe how to test/verify it
|
|
159
|
+
4. **Root Cause Identification**: Based on testing, identify the most likely root cause
|
|
160
|
+
5. **Solution Design**: Propose a fix that addresses the root cause
|
|
161
|
+
6. **Risk Assessment**: Identify any side effects or risks of the proposed fix
|
|
162
|
+
|
|
163
|
+
Do NOT implement the fix yet. First, present your analysis and get confirmation.
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Step 3: Review Oracle's Analysis
|
|
167
|
+
|
|
168
|
+
Oracle will provide:
|
|
169
|
+
|
|
170
|
+
1. **Hypotheses** - Ranked list of possible root causes
|
|
171
|
+
2. **Evidence Mapping** - How each hypothesis explains the observed behavior
|
|
172
|
+
3. **Testing Plan** - How to verify/eliminate each hypothesis
|
|
173
|
+
4. **Recommended Root Cause** - The most likely cause based on analysis
|
|
174
|
+
5. **Proposed Fix** - Solution design
|
|
175
|
+
|
|
176
|
+
### 3.1 Validate the Analysis
|
|
177
|
+
|
|
178
|
+
Before proceeding with the fix:
|
|
179
|
+
|
|
180
|
+
- Does the root cause explain ALL the symptoms?
|
|
181
|
+
- Does the proposed fix address the root cause (not just symptoms)?
|
|
182
|
+
- Are there any risks or side effects?
|
|
183
|
+
|
|
184
|
+
### 3.2 Request Implementation
|
|
185
|
+
|
|
186
|
+
If you agree with Oracle's analysis:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
@oracle Your analysis looks correct. Please implement the fix you proposed.
|
|
190
|
+
|
|
191
|
+
Specifically:
|
|
192
|
+
- {any additional constraints}
|
|
193
|
+
- {any files to avoid modifying}
|
|
194
|
+
- {any patterns to follow}
|
|
195
|
+
|
|
196
|
+
After implementing, show me what changed and explain how it fixes the root cause.
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
If you disagree or need more investigation:
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
@oracle I have concerns about hypothesis #{N}.
|
|
203
|
+
|
|
204
|
+
{explain your concern}
|
|
205
|
+
|
|
206
|
+
Please investigate further:
|
|
207
|
+
- {specific thing to check}
|
|
208
|
+
- {alternative hypothesis to consider}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Step 4: Verify the Fix
|
|
212
|
+
|
|
213
|
+
### 4.1 Run Automated Checks
|
|
214
|
+
|
|
215
|
+
After Oracle implements the fix:
|
|
216
|
+
|
|
217
|
+
**Run LSP diagnostics on modified files:**
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
lsp_diagnostics(filePath: "<modified file>", severity: "all")
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Run the build (if applicable):**
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
npm run build
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Run tests (if applicable):**
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
npm test
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 4.2 Reproduce the Original Issue
|
|
236
|
+
|
|
237
|
+
Try to reproduce the original bug:
|
|
238
|
+
|
|
239
|
+
- Follow the same reproduction steps
|
|
240
|
+
- Use the same input values
|
|
241
|
+
- Verify the error no longer occurs
|
|
242
|
+
|
|
243
|
+
### 4.3 Check for Regressions
|
|
244
|
+
|
|
245
|
+
- Does existing functionality still work?
|
|
246
|
+
- Do related tests still pass?
|
|
247
|
+
- Are there any new errors or warnings?
|
|
248
|
+
|
|
249
|
+
## Step 5: Document and Update Status
|
|
250
|
+
|
|
251
|
+
### 5.1 Document the Fix
|
|
252
|
+
|
|
253
|
+
Record what was learned:
|
|
254
|
+
|
|
255
|
+
```markdown
|
|
256
|
+
## Debug Summary
|
|
257
|
+
|
|
258
|
+
**Issue:** {brief description}
|
|
259
|
+
**Root Cause:** {what Oracle identified}
|
|
260
|
+
**Fix Applied:** {what was changed}
|
|
261
|
+
**Files Modified:** {list of files}
|
|
262
|
+
**Verification:** {how it was verified}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### 5.2 Update Story Status (if applicable)
|
|
266
|
+
|
|
267
|
+
If debugging was part of a story:
|
|
268
|
+
|
|
269
|
+
**If fix is complete and story can continue:**
|
|
270
|
+
```
|
|
271
|
+
sdlc_update_status({
|
|
272
|
+
storyId: "<story ID>",
|
|
273
|
+
status: "in_progress",
|
|
274
|
+
notes: "Debug complete. Root cause: {cause}. Fixed by: {fix}. Continuing implementation."
|
|
275
|
+
})
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**If issue was blocking and is now resolved:**
|
|
279
|
+
```
|
|
280
|
+
sdlc_update_status({
|
|
281
|
+
storyId: "<story ID>",
|
|
282
|
+
status: "in_progress",
|
|
283
|
+
notes: "Blocker resolved. Issue was {root cause}. Fixed by {solution}."
|
|
284
|
+
})
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**If issue requires external help:**
|
|
288
|
+
```
|
|
289
|
+
sdlc_update_status({
|
|
290
|
+
storyId: "<story ID>",
|
|
291
|
+
status: "blocked",
|
|
292
|
+
notes: "Debug identified issue but fix requires {external dependency/decision}. Root cause: {cause}."
|
|
293
|
+
})
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
## Oracle's Debugging Methodology
|
|
297
|
+
|
|
298
|
+
Oracle uses a systematic approach:
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
┌─────────────────────────────────────────────────────────┐
|
|
302
|
+
│ GATHER EVIDENCE │
|
|
303
|
+
│ Collect error messages, stack traces, reproduction │
|
|
304
|
+
│ steps, and context from affected code │
|
|
305
|
+
└─────────────────────────────────────────────────────────┘
|
|
306
|
+
│
|
|
307
|
+
▼
|
|
308
|
+
┌─────────────────────────────────────────────────────────┐
|
|
309
|
+
│ FORM HYPOTHESES │
|
|
310
|
+
│ Generate 3-5 possible root causes, ranked by │
|
|
311
|
+
│ likelihood based on evidence │
|
|
312
|
+
└─────────────────────────────────────────────────────────┘
|
|
313
|
+
│
|
|
314
|
+
▼
|
|
315
|
+
┌─────────────────────────────────────────────────────────┐
|
|
316
|
+
│ TEST HYPOTHESES │
|
|
317
|
+
│ For each hypothesis, identify how to verify or │
|
|
318
|
+
│ eliminate it using tools and code analysis │
|
|
319
|
+
└─────────────────────────────────────────────────────────┘
|
|
320
|
+
│
|
|
321
|
+
▼
|
|
322
|
+
┌─────────────────────────────────────────────────────────┐
|
|
323
|
+
│ IDENTIFY ROOT CAUSE │
|
|
324
|
+
│ Based on testing, determine the most likely │
|
|
325
|
+
│ root cause that explains all symptoms │
|
|
326
|
+
└─────────────────────────────────────────────────────────┘
|
|
327
|
+
│
|
|
328
|
+
▼
|
|
329
|
+
┌─────────────────────────────────────────────────────────┐
|
|
330
|
+
│ IMPLEMENT FIX │
|
|
331
|
+
│ Design and implement a solution that addresses │
|
|
332
|
+
│ the root cause (not just symptoms) │
|
|
333
|
+
└─────────────────────────────────────────────────────────┘
|
|
334
|
+
│
|
|
335
|
+
▼
|
|
336
|
+
┌─────────────────────────────────────────────────────────┐
|
|
337
|
+
│ VERIFY │
|
|
338
|
+
│ Confirm fix resolves the issue without │
|
|
339
|
+
│ introducing regressions │
|
|
340
|
+
└─────────────────────────────────────────────────────────┘
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
## Tips for Effective Debugging
|
|
344
|
+
|
|
345
|
+
### Provide Complete Context
|
|
346
|
+
|
|
347
|
+
- **Include full error messages** - Don't paraphrase, copy exactly
|
|
348
|
+
- **Include stack traces** - The call stack reveals the code path
|
|
349
|
+
- **Show the problematic code** - Oracle needs to see what's happening
|
|
350
|
+
- **Describe reproduction steps** - How to trigger the bug
|
|
351
|
+
|
|
352
|
+
### Don't Jump to Solutions
|
|
353
|
+
|
|
354
|
+
- Let Oracle analyze before implementing
|
|
355
|
+
- Review Oracle's hypotheses critically
|
|
356
|
+
- Confirm root cause before fixing
|
|
357
|
+
|
|
358
|
+
### Verify Thoroughly
|
|
359
|
+
|
|
360
|
+
- The bug should be gone after the fix
|
|
361
|
+
- Nothing else should break
|
|
362
|
+
- Tests should pass
|
|
363
|
+
|
|
364
|
+
### Cost Awareness
|
|
365
|
+
|
|
366
|
+
- **Oracle is expensive** (GPT-5.2 deep reasoning)
|
|
367
|
+
- Use Explore first for context gathering (cheaper)
|
|
368
|
+
- Only invoke Oracle for genuinely complex bugs
|
|
369
|
+
- Simple bugs (typos, obvious errors) don't need Oracle
|
|
370
|
+
|
|
371
|
+
## When NOT to Use This Command
|
|
372
|
+
|
|
373
|
+
- **Simple syntax errors** - LSP diagnostics will catch these
|
|
374
|
+
- **Obvious bugs** - If you can see the issue, just fix it
|
|
375
|
+
- **Configuration issues** - Check docs first
|
|
376
|
+
- **First attempt at fixing** - Try yourself first, use Oracle after 2+ failures
|
package/commands/sdlc-design.md
CHANGED
|
@@ -1,88 +1,246 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Event Modeling design workflow - discover domains, design workflows, generate scenarios
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# SDLC Design
|
|
5
|
+
# SDLC Design - Event Modeling
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Instructions
|
|
8
8
|
|
|
9
|
-
You
|
|
9
|
+
You receive: `$ARGUMENTS`
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- Before ANY task, call `sdlc_recall({ query: "sdlc design $ARGUMENTS" })`
|
|
13
|
-
- You MUST NOT edit files directly. Delegate to subagents.
|
|
11
|
+
Parse the argument to determine the design action:
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
| Command | Action |
|
|
14
|
+
|---------|--------|
|
|
15
|
+
| `discover <domain>` | Domain discovery for a new domain |
|
|
16
|
+
| `workflow <name>` | Design a workflow using 9-step methodology |
|
|
17
|
+
| `gwt <workflow>` | Generate GWT scenarios for a workflow |
|
|
18
|
+
| `validate [scope]` | Validate event model completeness |
|
|
19
|
+
| (no args) | Show status and next recommended action |
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Git Operations Policy
|
|
24
|
+
|
|
25
|
+
**AUTOMATIC GIT OPERATIONS ARE PROHIBITED**
|
|
26
|
+
|
|
27
|
+
You must NOT perform any git operations automatically:
|
|
28
|
+
- Do NOT run `git commit` to save changes
|
|
29
|
+
- Do NOT run `git push` to push to remote
|
|
30
|
+
- Do NOT run `gh pr create` or other GitHub CLI operations
|
|
31
|
+
|
|
32
|
+
**Git operations are ONLY permitted if the user explicitly requests them.**
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Action: `discover <domain>`
|
|
37
|
+
|
|
38
|
+
Run domain discovery to identify actors, goals, processes, and boundaries.
|
|
21
39
|
|
|
22
|
-
If `features.atomicDesign` is true, load:
|
|
23
40
|
```
|
|
24
|
-
|
|
41
|
+
sdlc_discover_domain({
|
|
42
|
+
domainName: "<domain name from argument>",
|
|
43
|
+
context: "<any additional context from the conversation>"
|
|
44
|
+
})
|
|
25
45
|
```
|
|
26
46
|
|
|
27
|
-
|
|
47
|
+
**Example:** `/sdlc:design discover Order Management`
|
|
28
48
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- `workflow <name>` → event modeling workflow
|
|
33
|
-
- `gwt <workflow>` → Given/When/Then scenarios
|
|
34
|
-
- `check <workflow>` → validate event model completeness
|
|
35
|
-
- `arch` → architecture decisions and ADR synthesis
|
|
49
|
+
After discovery:
|
|
50
|
+
1. Review the generated `docs/event_model/domain/overview.md`
|
|
51
|
+
2. Suggest next steps: "Run `/sdlc:design workflow <name>` to design specific workflows"
|
|
36
52
|
|
|
37
|
-
|
|
53
|
+
---
|
|
38
54
|
|
|
39
|
-
##
|
|
55
|
+
## Action: `workflow <name>`
|
|
56
|
+
|
|
57
|
+
Design a workflow using the 9-step Event Modeling methodology.
|
|
40
58
|
|
|
41
59
|
```
|
|
42
|
-
|
|
43
|
-
|
|
60
|
+
sdlc_design_workflow({
|
|
61
|
+
workflowName: "<workflow name from argument>"
|
|
62
|
+
})
|
|
44
63
|
```
|
|
45
64
|
|
|
46
|
-
|
|
65
|
+
**Example:** `/sdlc:design workflow Order Submission`
|
|
66
|
+
|
|
67
|
+
The tool will:
|
|
68
|
+
1. Load domain context if available
|
|
69
|
+
2. Guide through the 9 steps (events, timeline, UIs, commands, rules, details, read models, automations, slices)
|
|
70
|
+
3. Create `docs/event_model/workflows/<name>/overview.md`
|
|
71
|
+
|
|
72
|
+
After workflow design:
|
|
73
|
+
1. Review the generated workflow document
|
|
74
|
+
2. Suggest: "Run `/sdlc:design gwt <workflow>` to generate acceptance scenarios"
|
|
75
|
+
3. Mention: "Vertical slices can become GitHub issues"
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Action: `gwt <workflow>`
|
|
80
|
+
|
|
81
|
+
Generate Given/When/Then scenarios for a workflow.
|
|
47
82
|
|
|
48
83
|
```
|
|
49
|
-
|
|
50
|
-
|
|
84
|
+
sdlc_generate_gwt({
|
|
85
|
+
workflowName: "<workflow name from argument>"
|
|
86
|
+
})
|
|
51
87
|
```
|
|
52
88
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
89
|
+
**Example:** `/sdlc:design gwt Order Submission`
|
|
90
|
+
|
|
91
|
+
The tool will:
|
|
92
|
+
1. Load the workflow document
|
|
93
|
+
2. Generate scenarios for commands, projections, and automations
|
|
94
|
+
3. Create `docs/event_model/workflows/<name>/scenarios/<slice>.feature`
|
|
95
|
+
|
|
96
|
+
After GWT generation:
|
|
97
|
+
1. Review the generated feature files
|
|
98
|
+
2. Suggest: "Run `/sdlc:design validate` to check model completeness"
|
|
99
|
+
3. Mention: "These scenarios become acceptance criteria for implementation"
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Action: `validate [scope]`
|
|
57
104
|
|
|
58
|
-
|
|
105
|
+
Validate the event model for completeness and consistency.
|
|
59
106
|
|
|
60
107
|
```
|
|
61
|
-
|
|
62
|
-
|
|
108
|
+
sdlc_validate_model({
|
|
109
|
+
scope: "<scope from argument or 'all'>"
|
|
110
|
+
})
|
|
63
111
|
```
|
|
64
112
|
|
|
65
|
-
|
|
113
|
+
**Scopes:**
|
|
114
|
+
- `all` (default) - Validate everything
|
|
115
|
+
- `domain` - Domain overview only
|
|
116
|
+
- `workflow` - Workflow designs only
|
|
117
|
+
- `scenarios` - GWT scenarios only
|
|
118
|
+
|
|
119
|
+
**Example:** `/sdlc:design validate workflow`
|
|
120
|
+
|
|
121
|
+
The tool checks:
|
|
122
|
+
- **Naming conventions**: Events in past tense, commands imperative
|
|
123
|
+
- **Completeness**: Required sections present
|
|
124
|
+
- **Consistency**: References exist
|
|
125
|
+
- **No implementation details**: Business language only
|
|
126
|
+
|
|
127
|
+
After validation:
|
|
128
|
+
1. Show summary of issues found
|
|
129
|
+
2. For errors: Suggest specific fixes
|
|
130
|
+
3. For warnings: Explain why they matter
|
|
131
|
+
4. When valid: Suggest creating GitHub issues from slices
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Action: No Arguments
|
|
136
|
+
|
|
137
|
+
When called without arguments, show the current status:
|
|
66
138
|
|
|
67
|
-
|
|
139
|
+
1. Check if domain overview exists
|
|
140
|
+
2. Check for workflow documents
|
|
141
|
+
3. Check for scenario files
|
|
142
|
+
4. Run validation with `scope: "all"`
|
|
143
|
+
|
|
144
|
+
Then recommend the next action:
|
|
68
145
|
|
|
69
146
|
```
|
|
70
|
-
|
|
147
|
+
## Event Model Status
|
|
148
|
+
|
|
149
|
+
### Domain
|
|
150
|
+
[ ] Domain overview not found
|
|
151
|
+
-> Run: /sdlc:design discover <domain name>
|
|
152
|
+
|
|
153
|
+
### Workflows
|
|
154
|
+
[x] order-submission (3 slices)
|
|
155
|
+
[ ] No scenarios generated
|
|
156
|
+
-> Run: /sdlc:design gwt order-submission
|
|
157
|
+
|
|
158
|
+
### Validation
|
|
159
|
+
2 warnings, 0 errors
|
|
160
|
+
- Event naming issue in order-submission
|
|
161
|
+
- Missing glossary in domain
|
|
162
|
+
|
|
163
|
+
### Recommended Next Step
|
|
164
|
+
Run `/sdlc:design gwt order-submission` to generate acceptance scenarios.
|
|
71
165
|
```
|
|
72
166
|
|
|
73
|
-
|
|
167
|
+
---
|
|
74
168
|
|
|
75
|
-
##
|
|
169
|
+
## Event Modeling Concepts
|
|
170
|
+
|
|
171
|
+
### Pattern Types
|
|
172
|
+
|
|
173
|
+
| Pattern | Description | GWT Format |
|
|
174
|
+
|---------|-------------|------------|
|
|
175
|
+
| Command | Trigger -> Command -> Event(s) | Given=prior events, When=command, Then=events |
|
|
176
|
+
| View | Events -> Projection | Given=state, When=event, Then=new state |
|
|
177
|
+
| Automation | Event -> Policy -> Command | Given=policy, When=event, Then=command |
|
|
178
|
+
| Translation | External -> Internal Event | Given=external data, When=received, Then=internal event |
|
|
179
|
+
|
|
180
|
+
### Naming Conventions
|
|
181
|
+
|
|
182
|
+
| Element | Style | Examples |
|
|
183
|
+
|---------|-------|----------|
|
|
184
|
+
| Events | Past tense | OrderSubmitted, PaymentReceived |
|
|
185
|
+
| Commands | Imperative | SubmitOrder, ProcessPayment |
|
|
186
|
+
| Read Models | Noun | OrderSummary, CustomerDashboard |
|
|
187
|
+
|
|
188
|
+
### Document Structure
|
|
76
189
|
|
|
77
190
|
```
|
|
78
|
-
|
|
191
|
+
docs/event_model/
|
|
192
|
+
├── domain/
|
|
193
|
+
│ └── overview.md # Actors, goals, processes, boundaries
|
|
194
|
+
└── workflows/
|
|
195
|
+
└── <workflow-name>/
|
|
196
|
+
├── overview.md # 9-step workflow design
|
|
197
|
+
└── scenarios/
|
|
198
|
+
└── <slice>.feature # GWT scenarios
|
|
79
199
|
```
|
|
80
200
|
|
|
81
|
-
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Integration with GitHub Issues
|
|
204
|
+
|
|
205
|
+
| Event Model Concept | GitHub Equivalent |
|
|
206
|
+
|---------------------|-------------------|
|
|
207
|
+
| Workflow | Epic issue |
|
|
208
|
+
| Vertical Slice | Story issue (1:1) |
|
|
209
|
+
| GWT Scenarios | Acceptance Criteria |
|
|
210
|
+
|
|
211
|
+
After completing event modeling:
|
|
212
|
+
1. Each workflow becomes an Epic issue
|
|
213
|
+
2. Each vertical slice becomes a Story issue under that Epic
|
|
214
|
+
3. GWT scenarios become the acceptance criteria for each Story
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Quality Standards
|
|
219
|
+
|
|
220
|
+
1. **Business language only** - No technical jargon in event models
|
|
221
|
+
2. **Past tense events** - OrderSubmitted, not SubmitOrder
|
|
222
|
+
3. **Imperative commands** - SubmitOrder, not OrderSubmission
|
|
223
|
+
4. **Concrete scenarios** - Real example values, not placeholders
|
|
224
|
+
5. **Complete coverage** - Happy path + validation + edge cases
|
|
225
|
+
6. **Traceable** - Every slice links to scenarios
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Workflow Summary
|
|
82
230
|
|
|
83
231
|
```
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
232
|
+
1. /sdlc:design discover <domain>
|
|
233
|
+
└── Creates domain overview with actors, goals, boundaries
|
|
234
|
+
|
|
235
|
+
2. /sdlc:design workflow <name>
|
|
236
|
+
└── Designs workflow with events, commands, read models, slices
|
|
87
237
|
|
|
88
|
-
|
|
238
|
+
3. /sdlc:design gwt <workflow>
|
|
239
|
+
└── Generates GWT scenarios for acceptance criteria
|
|
240
|
+
|
|
241
|
+
4. /sdlc:design validate
|
|
242
|
+
└── Checks completeness and naming conventions
|
|
243
|
+
|
|
244
|
+
5. Create GitHub issues from vertical slices
|
|
245
|
+
└── Each slice = 1 story issue with GWT as acceptance criteria
|
|
246
|
+
```
|