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.
Files changed (72) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +127 -38
  3. package/commands/sdlc-adr.md +245 -17
  4. package/commands/sdlc-debug.md +376 -0
  5. package/commands/sdlc-design.md +205 -47
  6. package/commands/sdlc-dev.md +544 -0
  7. package/commands/sdlc-info.md +325 -0
  8. package/commands/sdlc-parallel.md +283 -0
  9. package/commands/sdlc-recall.md +203 -8
  10. package/commands/sdlc-remember.md +126 -9
  11. package/commands/sdlc-research.md +343 -0
  12. package/commands/sdlc-review.md +201 -128
  13. package/commands/sdlc-status.md +297 -0
  14. package/config/presets/copilot-only.json +69 -0
  15. package/config/presets/enterprise.json +79 -0
  16. package/config/presets/event-modeling.json +74 -8
  17. package/config/presets/minimal.json +70 -0
  18. package/config/presets/solo-quick.json +70 -0
  19. package/config/presets/standard.json +78 -0
  20. package/config/presets/strict-tdd.json +79 -0
  21. package/config/schemas/athena.schema.json +338 -0
  22. package/config/schemas/sdlc.schema.json +442 -26
  23. package/dist/cli/index.d.ts +2 -1
  24. package/dist/cli/index.js +4285 -562
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/index.d.ts +1781 -1
  27. package/dist/index.js +7759 -395
  28. package/dist/index.js.map +1 -1
  29. package/dist/plugin/index.d.ts +17 -2
  30. package/dist/plugin/index.js +7730 -397
  31. package/dist/plugin/index.js.map +1 -1
  32. package/package.json +68 -33
  33. package/prompts/agents/code-reviewer.md +229 -0
  34. package/prompts/agents/domain.md +210 -0
  35. package/prompts/agents/green.md +148 -0
  36. package/prompts/agents/mutation.md +278 -0
  37. package/prompts/agents/red.md +112 -0
  38. package/prompts/event-modeling/discovery.md +176 -0
  39. package/prompts/event-modeling/gwt-generation.md +479 -0
  40. package/prompts/event-modeling/workflow-design.md +318 -0
  41. package/prompts/personas/amelia-developer.md +43 -0
  42. package/prompts/personas/bob-sm.md +43 -0
  43. package/prompts/personas/john-pm.md +43 -0
  44. package/prompts/personas/mary-analyst.md +43 -0
  45. package/prompts/personas/murat-tester.md +43 -0
  46. package/prompts/personas/paige-techwriter.md +43 -0
  47. package/prompts/personas/sally-ux.md +43 -0
  48. package/prompts/personas/winston-architect.md +43 -0
  49. package/agents/design-facilitator.md +0 -8
  50. package/agents/domain.md +0 -9
  51. package/agents/exploration.md +0 -8
  52. package/agents/green.md +0 -9
  53. package/agents/marvin.md +0 -15
  54. package/agents/model-checker.md +0 -9
  55. package/agents/red.md +0 -9
  56. package/commands/sdlc-domain-audit.md +0 -32
  57. package/commands/sdlc-plan.md +0 -63
  58. package/commands/sdlc-pr.md +0 -43
  59. package/commands/sdlc-setup.md +0 -50
  60. package/commands/sdlc-start.md +0 -34
  61. package/commands/sdlc-work.md +0 -118
  62. package/config/presets/traditional.json +0 -12
  63. package/skills/adr-policy.md +0 -21
  64. package/skills/atomic-design.md +0 -39
  65. package/skills/debugging-protocol.md +0 -47
  66. package/skills/event-modeling.md +0 -40
  67. package/skills/git-spice.md +0 -44
  68. package/skills/github-issues.md +0 -44
  69. package/skills/memory-protocol.md +0 -41
  70. package/skills/orchestration.md +0 -118
  71. package/skills/skill-enforcement.md +0 -56
  72. package/skills/tdd-constraints.md +0 -63
@@ -0,0 +1,544 @@
1
+ ---
2
+ description: Implement the current BMAD story using Sisyphus and specialized subagents
3
+ ---
4
+
5
+ # SDLC Dev - Story Implementation
6
+
7
+ ## Instructions
8
+
9
+ You receive: `$ARGUMENTS`
10
+
11
+ **Parse the argument and load the story:**
12
+
13
+ 1. **If argument is provided** (e.g., "4.5", "story-4-5", "docs/stories/story-4-5.md"):
14
+ - Call `sdlc_get_story({ storyId: "<argument>" })`
15
+ - The tool handles all formats: story IDs, file paths, and `@` references
16
+ - **Proceed immediately** with Step 0 (Complexity Check) after loading
17
+
18
+ 2. **If no argument provided**:
19
+ - Call `sdlc_get_story()` to load the next ready story
20
+ - **Proceed immediately** with Step 0 (Complexity Check) after loading
21
+
22
+ **Do NOT ask clarifying questions about which story to implement. Load it and start working.**
23
+
24
+ ---
25
+
26
+ ## Git Operations Policy
27
+
28
+ **⚠️ AUTOMATIC GIT OPERATIONS ARE PROHIBITED**
29
+
30
+ You must NOT perform any git operations automatically:
31
+ - ❌ Do NOT run `git commit` to save changes
32
+ - ❌ Do NOT run `git push` to push to remote
33
+ - ❌ Do NOT run `git checkout -b` or `git branch` to create branches
34
+ - ❌ Do NOT run `git merge`, `git rebase`, or `git cherry-pick`
35
+ - ❌ Do NOT run `gh pr create` or other GitHub CLI operations
36
+
37
+ **Git operations are ONLY permitted if the user explicitly requests them.**
38
+
39
+ Examples of explicit permission:
40
+ - User says: "Please commit these changes"
41
+ - User says: "Create a branch called feature-x"
42
+ - User says: "Push to origin" or "Create a PR"
43
+
44
+ **If you believe git operations would be helpful, ASK the user first:**
45
+ ```
46
+ I've completed the implementation. Would you like me to:
47
+ 1. Commit these changes to git, or
48
+ 2. Leave git operations for you to handle manually?
49
+ ```
50
+
51
+ **To track story progress without git, use:**
52
+ ```
53
+ sdlc_update_status({
54
+ storyId: "X.Y",
55
+ status: "done",
56
+ completionSummary: "What was implemented..."
57
+ })
58
+ ```
59
+
60
+ This updates sprint-status.yaml without requiring git commits.
61
+
62
+ ---
63
+
64
+ ## Step 0: Complexity Check (Before Implementation)
65
+
66
+ **After loading the story, check if it's too large to implement comfortably.**
67
+
68
+ Call **sdlc_analyze_story** to assess complexity:
69
+
70
+ ```
71
+ sdlc_analyze_story({ storyId: "<story ID from Step 1>" })
72
+ ```
73
+
74
+ This returns:
75
+ - **Metrics**: Task count, subtasks, file size
76
+ - **Effort estimates**: Points per task with signals (API calls, state mgmt, etc.)
77
+ - **Recommendation**: `proceed`, `suggest-decomposition`, or `require-decomposition`
78
+ - **Suggested splits**: If decomposition recommended
79
+
80
+ ### If recommendation is `proceed`:
81
+
82
+ Continue with **Step 1.5** (Sync Todos) and normal implementation.
83
+
84
+ ### If recommendation is `suggest-decomposition`:
85
+
86
+ Present the analysis to the user:
87
+
88
+ ```
89
+ 📊 STORY COMPLEXITY ANALYSIS
90
+
91
+ This story has {X} tasks totaling ~{Y} story points.
92
+ Research suggests stories >8 points often cause context compaction issues.
93
+
94
+ SUGGESTED DECOMPOSITION:
95
+ {show the suggested splits}
96
+
97
+ What would you like to do?
98
+ [D] Decompose into sub-stories (recommended)
99
+ [P] Proceed with full story anyway
100
+ [M] Modify the decomposition groupings
101
+ ```
102
+
103
+ **If user chooses [D] (Decompose):**
104
+ ```
105
+ sdlc_decompose_story({
106
+ storyId: "<story ID>",
107
+ useSuggestedSplits: true,
108
+ confirmed: true
109
+ })
110
+ ```
111
+
112
+ Then load the first sub-story:
113
+ ```
114
+ sdlc_get_story({ storyId: "<returned nextStory>" })
115
+ ```
116
+
117
+ **If user chooses [P] (Proceed):**
118
+ Continue with normal implementation, but warn:
119
+ > ⚠️ This story may require multiple compactions. Progress will be preserved via todo sync.
120
+
121
+ **If user chooses [M] (Modify):**
122
+ Work with the user to adjust task groupings, then call:
123
+ ```
124
+ sdlc_decompose_story({
125
+ storyId: "<story ID>",
126
+ splits: [
127
+ { suffix: "a", taskIds: ["1", "2"], title: "Custom title" },
128
+ { suffix: "b", taskIds: ["3", "4", "5"] }
129
+ ],
130
+ confirmed: true
131
+ })
132
+ ```
133
+
134
+ ### If recommendation is `require-decomposition`:
135
+
136
+ **Do NOT proceed without decomposition.** The story is too large.
137
+
138
+ ```
139
+ 🚫 STORY TOO LARGE
140
+
141
+ This story has {X} tasks totaling ~{Y} story points.
142
+ Stories this size consistently cause implementation problems.
143
+
144
+ Decomposition is REQUIRED before implementation.
145
+
146
+ {show the suggested splits}
147
+
148
+ [D] Decompose into sub-stories
149
+ [M] Modify the decomposition groupings
150
+ ```
151
+
152
+ Wait for user decision before proceeding.
153
+
154
+ ---
155
+
156
+ You are implementing a BMAD story using OpenCode SDLC's full capabilities.
157
+
158
+ **You are Sisyphus, the orchestrator.** You will coordinate subagents and tools to implement this story efficiently and correctly.
159
+
160
+ ## Step 1: Load Story Context
161
+
162
+ **Note:** Story loading happens in the Instructions section above. This step documents what `sdlc_get_story` returns for reference.
163
+
164
+ `sdlc_get_story()` returns:
165
+ - **Story**: Requirements and acceptance criteria
166
+ - **Architecture**: Relevant technical patterns and decisions
167
+ - **PRD**: Relevant functional requirements
168
+ - **Sprint progress**: Where this story fits in the overall sprint
169
+ - **Todos**: Pre-formatted task list for `todowrite`
170
+
171
+ **CRITICAL: Check for Implementation Notes from Previous Review**
172
+
173
+ After loading the story, check if the story file contains an **Implementation Notes** section.
174
+
175
+ ### If Implementation Notes Exist:
176
+
177
+ This means `/sdlc-review` was run previously and findings were discussed with the user.
178
+
179
+ **What to do:**
180
+ 1. **Read the Implementation Notes section carefully** - It contains:
181
+ - **Findings to Address**: Checkboxed list of fixes the user agreed to implement
182
+ - **Deferred to Future Work**: Items the user decided not to fix now
183
+ - **Not Implemented**: Items the user decided not to implement at all
184
+
185
+ 2. **Prioritize the "Findings to Address" items** - These are your PRIMARY work items for this session
186
+
187
+ 3. **Check off items as you complete them**:
188
+ - Use the Read tool to load the story file
189
+ - Use the Edit tool to change `- [ ]` to `- [x]` for completed items
190
+ - This provides progress tracking
191
+
192
+ 4. **Respect the decisions**:
193
+ - DO NOT work on items marked as "Deferred" or "Not Implemented"
194
+ - These represent user decisions from the review discussion
195
+ - Focus only on agreed fixes
196
+
197
+ 5. **Verify your fixes**:
198
+ - Run `lsp_diagnostics` on changed files after each fix
199
+ - When all checkboxes are complete, run `/sdlc-review` again to verify
200
+
201
+ **Your approach with Implementation Notes:**
202
+ ```
203
+ 1. Load story context (sdlc_get_story)
204
+ 2. Review implementation notes
205
+ 3. Work through checkboxed items systematically
206
+ 4. Check off completed items
207
+ 5. Verify with lsp_diagnostics
208
+ 6. When done, recommend running /sdlc-review
209
+ ```
210
+
211
+ ### If No Implementation Notes Exist:
212
+
213
+ This is a **fresh implementation** - proceed with the normal workflow:
214
+ - Step 0: Check complexity (already done above)
215
+ - Step 1.5: Sync todos from story
216
+ - Step 2: Plan your approach
217
+ - Step 3: Implement the story
218
+ - Step 4: Verify implementation
219
+ - Step 5: Complete the story
220
+
221
+ ## Step 1.5: Sync Todos
222
+
223
+ When `sdlc_get_story` returns, it includes a `todos` section with BMAD tasks formatted for the todo list.
224
+
225
+ **Call todowrite to populate your task list:**
226
+
227
+ ```
228
+ todowrite({
229
+ todos: [
230
+ // Use the todos array from sdlc_get_story response
231
+ ]
232
+ })
233
+ ```
234
+
235
+ This syncs the BMAD story checkboxes to your todo list:
236
+ - `[2.3ΔAC1] Implement login endpoint` → Acceptance Criterion 1
237
+ - `[2.3ΔTask3] Write integration tests` → Task 3
238
+ - `[2.3ΔFix2] Hardcoded JWT secret` → Implementation Notes finding
239
+
240
+ **As you complete tasks:**
241
+ - Mark todos complete via `todowrite`
242
+ - The BMAD file checkboxes update automatically
243
+ - Progress is preserved even after session compaction
244
+
245
+ **Need more context on a task?**
246
+ - The prefix tells you where to look: `[2.3ΔAC1]` → Story 2.3, AC section
247
+ - Read the story file: `docs/stories/story-2-3.md`
248
+
249
+ ## Step 2: Plan Your Approach
250
+
251
+ Before diving into code, plan your implementation strategy:
252
+
253
+ ### 2.1 Understand Existing Patterns
254
+
255
+ **If this feature is similar to existing code in the codebase**, use **@explore** to find examples:
256
+
257
+ ```
258
+ @explore Find existing implementations similar to <feature>.
259
+
260
+ I need to implement: {brief description}
261
+
262
+ Please search the codebase for:
263
+ 1. Similar features or components
264
+ 2. Patterns that match this use case
265
+ 3. Existing code I can reference or extend
266
+
267
+ Return file paths and brief descriptions of what you found.
268
+ ```
269
+
270
+ **When to use Explore:**
271
+ - ✅ When implementing something similar to existing functionality
272
+ - ✅ When you need to understand project-specific patterns
273
+ - ✅ When you want to ensure consistency with existing code
274
+ - ❌ When implementing something completely new to the codebase
275
+
276
+ ### 2.2 Research Unfamiliar Technologies
277
+
278
+ **If the story involves libraries, frameworks, or patterns you're not deeply familiar with**, use **@librarian** to research:
279
+
280
+ ```
281
+ @librarian I need to implement {feature} using {library/framework}.
282
+
283
+ Context from architecture:
284
+ {paste relevant architecture sections}
285
+
286
+ Please research:
287
+ 1. Best practices for {specific technology}
288
+ 2. Official documentation for {specific APIs}
289
+ 3. Examples from similar projects (GitHub search)
290
+ 4. Any gotchas or common mistakes to avoid
291
+
292
+ Return concrete examples and recommendations.
293
+ ```
294
+
295
+ **When to use Librarian:**
296
+ - ✅ When using unfamiliar npm packages, APIs, or frameworks
297
+ - ✅ When you need official documentation or API references
298
+ - ✅ When you want to see how others solved similar problems
299
+ - ❌ When you're already familiar with the technology
300
+
301
+ ### 2.3 Architectural Decisions
302
+
303
+ **If the story requires architectural decisions** (how to structure code, which pattern to use, trade-offs between approaches), **consult @oracle BEFORE implementing**:
304
+
305
+ ```
306
+ @oracle I need to make an architectural decision for Story {storyId}.
307
+
308
+ **Story Context:**
309
+ {paste story requirements}
310
+
311
+ **Architecture Constraints:**
312
+ {paste relevant architecture sections}
313
+
314
+ **Decision Required:**
315
+ {describe the decision - e.g., "Should I use a microservice or monolith?", "Which state management pattern?", "How to structure this module?"}
316
+
317
+ **Options I'm Considering:**
318
+ 1. {Option A} - {pros/cons}
319
+ 2. {Option B} - {pros/cons}
320
+
321
+ Please provide:
322
+ - Architectural recommendation with rationale
323
+ - How this fits with project architecture
324
+ - Long-term implications of each option
325
+ - Any risks to be aware of
326
+ ```
327
+
328
+ **When to consult Oracle for architecture:**
329
+ - ✅ Before implementing complex features
330
+ - ✅ When multiple architectural approaches exist
331
+ - ✅ When the decision has long-term implications
332
+ - ✅ When deviating from existing patterns
333
+ - ❌ For straightforward implementations following clear patterns
334
+
335
+ ## Step 3: Implement the Story
336
+
337
+ With your research and planning complete, implement the story:
338
+
339
+ ### 3.1 Follow Architecture Patterns
340
+
341
+ - **Reference the architecture sections** loaded in Step 1
342
+ - **Follow naming conventions** from similar code (found via Explore)
343
+ - **Use established patterns** (don't reinvent the wheel)
344
+
345
+ ### 3.2 Use Appropriate Tools
346
+
347
+ **For refactoring:**
348
+ - `lsp_rename` - Rename symbols safely across workspace
349
+ - `lsp_find_references` - Find all usages before changing
350
+ - `lsp_code_actions` - Apply IDE quick fixes
351
+
352
+ **For structural changes:**
353
+ - `ast_grep_search` - Find code patterns to modify
354
+ - `ast_grep_replace` - Replace code patterns safely
355
+
356
+ **For parallel work:**
357
+ - Launch background agents for independent tasks
358
+ - Example: "Frontend implementation" while you work on backend
359
+
360
+ ### 3.3 Frontend Work
361
+
362
+ **If the story involves UI/UX changes** (styling, layout, visual design), **delegate to @frontend-ui-ux-engineer**:
363
+
364
+ ```
365
+ @frontend-ui-ux-engineer Implement the UI for Story {storyId}.
366
+
367
+ **Requirements:**
368
+ {paste UI-related acceptance criteria}
369
+
370
+ **Design Constraints:**
371
+ {any design system, component library, or styling guidelines from architecture}
372
+
373
+ **Components Needed:**
374
+ {list components to create or modify}
375
+
376
+ Please implement the visual/UX aspects. I will handle the business logic and data flow.
377
+ ```
378
+
379
+ **When to delegate to Frontend UI/UX Engineer:**
380
+ - ✅ Styling, colors, spacing, typography
381
+ - ✅ Layout, responsive design, animations
382
+ - ✅ Visual component structure
383
+ - ❌ Business logic, data fetching, state management (you handle these)
384
+
385
+ ## Step 4: Verify Implementation
386
+
387
+ Before marking the story complete, verify your work:
388
+
389
+ ### 4.1 Self-Check Acceptance Criteria
390
+
391
+ For EACH acceptance criterion in the story:
392
+ - [ ] Have you implemented it?
393
+ - [ ] Does it work as specified?
394
+ - [ ] Have you tested it?
395
+
396
+ ### 4.2 Run Automated Checks
397
+
398
+ **Run LSP diagnostics on files you modified:**
399
+
400
+ ```
401
+ lsp_diagnostics(filePath: "<file you changed>", severity: "all")
402
+ ```
403
+
404
+ **Address ALL errors.** Warnings should be addressed if reasonable.
405
+
406
+ **If the project has a build command:**
407
+
408
+ ```bash
409
+ npm run build
410
+ # OR
411
+ pnpm run build
412
+ # OR
413
+ yarn build
414
+ ```
415
+
416
+ **Build MUST pass** before completing the story.
417
+
418
+ **If the project has tests:**
419
+
420
+ ```bash
421
+ npm test
422
+ # OR
423
+ pnpm test
424
+ # OR
425
+ yarn test
426
+ ```
427
+
428
+ **Tests MUST pass** before completing the story.
429
+
430
+ ### 4.3 Code Quality Self-Review
431
+
432
+ Ask yourself:
433
+ - Is the code self-documenting? (minimal comments needed)
434
+ - Are variable and function names clear?
435
+ - Is error handling appropriate?
436
+ - Are there any `any` types, `@ts-ignore`, or other type safety compromises?
437
+ - Does this follow the architecture patterns?
438
+
439
+ **If you're unsure about code quality**, consider running `/sdlc-review` for a comprehensive quality gate.
440
+
441
+ ## Step 5: Complete the Story
442
+
443
+ When implementation is verified and ready, update the status:
444
+
445
+ ```
446
+ sdlc_update_status({
447
+ storyId: "<story ID>",
448
+ status: "done",
449
+ completionSummary: "Implemented {feature}. {What was built}. {Tests status}. {Any notes}."
450
+ })
451
+ ```
452
+
453
+ ### Completion Checklist
454
+
455
+ Before marking complete, ensure:
456
+ - [ ] ALL acceptance criteria met
457
+ - [ ] LSP diagnostics clean (no errors)
458
+ - [ ] Build passes (if applicable)
459
+ - [ ] Tests pass (if applicable)
460
+ - [ ] Code follows architecture patterns
461
+ - [ ] No type safety compromises
462
+ - [ ] Code is self-documenting
463
+
464
+ ### If Not Ready
465
+
466
+ If the story isn't complete but you need to save progress:
467
+
468
+ ```
469
+ sdlc_update_status({
470
+ storyId: "<story ID>",
471
+ status: "in-progress",
472
+ notes: "Progress: {what's done}. Remaining: {what's left}."
473
+ })
474
+ ```
475
+
476
+ ## If You Get Blocked
477
+
478
+ If you encounter a blocker:
479
+
480
+ ```
481
+ sdlc_update_status({
482
+ storyId: "<story ID>",
483
+ status: "blocked",
484
+ notes: "Blocked because {specific reason}. Need {what's needed} to proceed."
485
+ })
486
+ ```
487
+
488
+ Then explain the blocker in detail so the user can help resolve it.
489
+
490
+ **If blocked on a technical issue**, consider using `/sdlc-debug` to invoke Oracle for debugging help.
491
+
492
+ ## Orchestration Summary
493
+
494
+ Your workflow as Sisyphus:
495
+
496
+ ```
497
+ 1. Load story (sdlc_get_story)
498
+ 0. Check complexity (sdlc_analyze_story)
499
+ - If too large → decompose first
500
+ - If manageable → proceed
501
+ 1.5. Sync todos (todowrite)
502
+ 2. Plan approach:
503
+ - @explore → Find similar code in codebase
504
+ - @librarian → Research unfamiliar tech
505
+ - @oracle → Get architectural guidance
506
+ 3. Implement:
507
+ - Follow architecture patterns
508
+ - Use LSP/AST tools for refactoring
509
+ - @frontend-ui-ux-engineer → Delegate UI work
510
+ 4. Verify:
511
+ - Check acceptance criteria
512
+ - Run diagnostics, build, tests
513
+ - Self-review code quality
514
+ 5. Complete (sdlc_update_status)
515
+ ```
516
+
517
+ ## Quality Standards
518
+
519
+ 1. **Meet ALL acceptance criteria** - Non-negotiable
520
+ 2. **Follow architecture patterns exactly** - Consistency is critical
521
+ 3. **Minimize comments** - Code should be self-documenting
522
+ 4. **LSP diagnostics clean** - No errors allowed
523
+ 5. **Tests pass** - If tests exist, they must pass
524
+ 6. **Build succeeds** - If build exists, it must succeed
525
+ 7. **No type safety compromises** - No `any`, no ignores
526
+ 8. **No regressions** - Existing functionality must still work
527
+
528
+ ## When to Use Each Subagent
529
+
530
+ | Subagent | When to Use | Don't Use When |
531
+ |----------|-------------|----------------|
532
+ | **@explore** | Finding existing patterns in codebase | Implementing something brand new |
533
+ | **@librarian** | Researching libraries, APIs, external docs | You already know the tech well |
534
+ | **@oracle** | Architectural decisions, complex debugging | Straightforward implementations |
535
+ | **@frontend-ui-ux-engineer** | UI/visual/styling work | Business logic or data flow |
536
+
537
+ ## Tips for Effective Implementation
538
+
539
+ - **Start with exploration** - Understand what exists before building new
540
+ - **Research before coding** - Know the best practices before implementing
541
+ - **Consult Oracle early** - Don't paint yourself into an architectural corner
542
+ - **Delegate UI work** - Let specialists handle what they do best
543
+ - **Verify continuously** - Don't wait until the end to check quality
544
+ - **Document decisions** - If you made a trade-off, note it in the completion summary