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,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Display OpenCode SDLC configuration and toolkit information
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# SDLC Info - Toolkit Information
|
|
6
|
+
|
|
7
|
+
Display current OpenCode SDLC configuration, available capabilities, and troubleshooting information.
|
|
8
|
+
|
|
9
|
+
## View Current Configuration
|
|
10
|
+
|
|
11
|
+
Call **sdlc_config** to see the current setup:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
sdlc_config()
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
This displays:
|
|
18
|
+
- SDLC version
|
|
19
|
+
- Configured LLM providers
|
|
20
|
+
- Agent model assignments
|
|
21
|
+
- BMAD settings
|
|
22
|
+
- Enabled features
|
|
23
|
+
- MCP servers
|
|
24
|
+
|
|
25
|
+
## Configuration Sections
|
|
26
|
+
|
|
27
|
+
### View Specific Section
|
|
28
|
+
|
|
29
|
+
To view only a specific section:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
sdlc_config({ section: "subscriptions" })
|
|
33
|
+
sdlc_config({ section: "models" })
|
|
34
|
+
sdlc_config({ section: "bmad" })
|
|
35
|
+
sdlc_config({ section: "features" })
|
|
36
|
+
sdlc_config({ section: "mcps" })
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Section Details
|
|
40
|
+
|
|
41
|
+
**Subscriptions:**
|
|
42
|
+
- Which LLM providers are configured (Claude, OpenAI, Google)
|
|
43
|
+
- Authentication status
|
|
44
|
+
|
|
45
|
+
**Models:**
|
|
46
|
+
- Agent model assignments
|
|
47
|
+
- Sisyphus model (main orchestrator)
|
|
48
|
+
- Oracle model (deep reasoning)
|
|
49
|
+
- Librarian model (research)
|
|
50
|
+
- Frontend Engineer model
|
|
51
|
+
- Document Writer model
|
|
52
|
+
- Multimodal Looker model
|
|
53
|
+
|
|
54
|
+
**BMAD:**
|
|
55
|
+
- Methodology track
|
|
56
|
+
- Auto status update setting
|
|
57
|
+
- Parallel story limit
|
|
58
|
+
- BMAD directory location
|
|
59
|
+
|
|
60
|
+
**Features:**
|
|
61
|
+
- Bridge commands enabled
|
|
62
|
+
- Auto sprint status updates
|
|
63
|
+
- Parallel execution
|
|
64
|
+
- Notifications
|
|
65
|
+
- Context monitoring
|
|
66
|
+
- Comment checker
|
|
67
|
+
- LSP tools
|
|
68
|
+
|
|
69
|
+
**MCPs:**
|
|
70
|
+
- context7 (documentation lookup)
|
|
71
|
+
- websearch_exa (web search)
|
|
72
|
+
- grep_app (GitHub code search)
|
|
73
|
+
|
|
74
|
+
## Configuration Files
|
|
75
|
+
|
|
76
|
+
Configuration is stored in these locations:
|
|
77
|
+
|
|
78
|
+
### Global Configuration (all projects)
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
~/.config/opencode/
|
|
82
|
+
├── sdlc.json # SDLC-specific settings
|
|
83
|
+
├── oh-my-opencode.json # Agent model configuration
|
|
84
|
+
├── opencode.json # Plugin registration
|
|
85
|
+
└── package.json # Installed plugin packages
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Project Configuration (overrides global)
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
[project]/.opencode/
|
|
92
|
+
├── sdlc.json # Project-specific SDLC settings
|
|
93
|
+
└── oh-my-opencode.json # Project-specific agent models
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Toolkit Capabilities
|
|
97
|
+
|
|
98
|
+
### Bridge Commands
|
|
99
|
+
|
|
100
|
+
| Command | Description | Invokes |
|
|
101
|
+
|---------|-------------|---------|
|
|
102
|
+
| `/sdlc-dev` | Implement a BMAD story | Sisyphus + subagents |
|
|
103
|
+
| `/sdlc-review` | Quality gate review | Oracle (code + adversarial) |
|
|
104
|
+
| `/sdlc-debug` | Debug complex issues | Oracle |
|
|
105
|
+
| `/sdlc-research` | Research patterns/docs | Librarian |
|
|
106
|
+
| `/sdlc-status` | Sprint status management | SDLC tools |
|
|
107
|
+
| `/sdlc-info` | This command | sdlc_config |
|
|
108
|
+
| `/sdlc-parallel` | Parallel story execution | (Planned) |
|
|
109
|
+
|
|
110
|
+
### Available Subagents
|
|
111
|
+
|
|
112
|
+
| Agent | Model | Specialty |
|
|
113
|
+
|-------|-------|-----------|
|
|
114
|
+
| **Sisyphus** | (configured) | Orchestration, implementation |
|
|
115
|
+
| **Oracle** | (configured) | Deep reasoning, debugging, code review |
|
|
116
|
+
| **Librarian** | (configured) | Research, documentation, examples |
|
|
117
|
+
| **Explore** | (configured) | Fast codebase search |
|
|
118
|
+
| **Frontend UI/UX Engineer** | (configured) | Visual design, UI implementation |
|
|
119
|
+
| **Document Writer** | (configured) | Documentation |
|
|
120
|
+
| **Multimodal Looker** | (configured) | Image/PDF analysis |
|
|
121
|
+
|
|
122
|
+
### Available Tools
|
|
123
|
+
|
|
124
|
+
**SDLC Tools:**
|
|
125
|
+
- `sdlc_get_story` - Load BMAD story context
|
|
126
|
+
- `sdlc_update_status` - Update sprint status
|
|
127
|
+
- `sdlc_get_context` - Get cached story context
|
|
128
|
+
- `sdlc_config` - View configuration
|
|
129
|
+
- `sdlc_parallel` - Parallel story execution (planned)
|
|
130
|
+
|
|
131
|
+
**oh-my-opencode Tools:**
|
|
132
|
+
- LSP tools (hover, goto definition, find references, rename, etc.)
|
|
133
|
+
- AST-grep tools (search, replace)
|
|
134
|
+
- Background agent tools
|
|
135
|
+
- Interactive bash (tmux)
|
|
136
|
+
|
|
137
|
+
**MCP Tools:**
|
|
138
|
+
- context7 (documentation lookup)
|
|
139
|
+
- websearch_exa (web search)
|
|
140
|
+
- grep_app (GitHub search)
|
|
141
|
+
|
|
142
|
+
## Modifying Configuration
|
|
143
|
+
|
|
144
|
+
### Option 1: Reinstall with Different Options
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npx opencode-sdlc install
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Interactive installer will prompt for new configuration.
|
|
151
|
+
|
|
152
|
+
### Option 2: Use a Preset
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
npx opencode-sdlc install --preset minimal
|
|
156
|
+
npx opencode-sdlc install --preset standard
|
|
157
|
+
npx opencode-sdlc install --preset enterprise
|
|
158
|
+
npx opencode-sdlc install --preset solo-quick
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Option 3: Edit Config Files Directly
|
|
162
|
+
|
|
163
|
+
**Edit SDLC settings:**
|
|
164
|
+
```bash
|
|
165
|
+
# Global
|
|
166
|
+
nano ~/.config/opencode/sdlc.json
|
|
167
|
+
|
|
168
|
+
# Project-specific
|
|
169
|
+
nano .opencode/sdlc.json
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Edit agent models:**
|
|
173
|
+
```bash
|
|
174
|
+
# Global
|
|
175
|
+
nano ~/.config/opencode/oh-my-opencode.json
|
|
176
|
+
|
|
177
|
+
# Project-specific
|
|
178
|
+
nano .opencode/oh-my-opencode.json
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Option 4: Update Specific Settings
|
|
182
|
+
|
|
183
|
+
After editing config files, restart OpenCode to apply changes.
|
|
184
|
+
|
|
185
|
+
## Troubleshooting
|
|
186
|
+
|
|
187
|
+
### Check Installation Health
|
|
188
|
+
|
|
189
|
+
Run the doctor command in terminal:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
npx opencode-sdlc doctor
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
This checks:
|
|
196
|
+
- Node.js version
|
|
197
|
+
- OpenCode version
|
|
198
|
+
- Plugin installation
|
|
199
|
+
- Configuration validity
|
|
200
|
+
- Authentication status
|
|
201
|
+
|
|
202
|
+
### Auto-Fix Common Issues
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
npx opencode-sdlc doctor --fix
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
This will attempt to:
|
|
209
|
+
- Reinstall missing plugins
|
|
210
|
+
- Fix broken symlinks
|
|
211
|
+
- Repair config files
|
|
212
|
+
- Re-copy bridge commands
|
|
213
|
+
|
|
214
|
+
### Common Issues
|
|
215
|
+
|
|
216
|
+
| Issue | Solution |
|
|
217
|
+
|-------|----------|
|
|
218
|
+
| Plugin not loading | Run `doctor --fix` to reinstall |
|
|
219
|
+
| Auth errors | Run `opencode auth login` for each provider |
|
|
220
|
+
| BMAD not found | Run `npx bmad-method@alpha install` in project |
|
|
221
|
+
| Commands not available | Verify commands in `~/.config/opencode/command/` |
|
|
222
|
+
| Agent model errors | Check `oh-my-opencode.json` configuration |
|
|
223
|
+
|
|
224
|
+
### Verify Plugin Installation
|
|
225
|
+
|
|
226
|
+
Check installed plugins:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
ls ~/.config/opencode/node_modules/ | grep -E '(opencode-sdlc|oh-my-opencode)'
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Check OpenCode config:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
cat ~/.config/opencode/opencode.json | grep plugin
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Should include:
|
|
239
|
+
- `opencode-sdlc/plugin`
|
|
240
|
+
- `oh-my-opencode`
|
|
241
|
+
|
|
242
|
+
### Check Authentication
|
|
243
|
+
|
|
244
|
+
For each provider you've configured:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
opencode auth login
|
|
248
|
+
# Select provider and authenticate
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## Version Information
|
|
252
|
+
|
|
253
|
+
### Check Versions
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
# SDLC CLI version
|
|
257
|
+
npx opencode-sdlc --version
|
|
258
|
+
|
|
259
|
+
# Installed package versions
|
|
260
|
+
cd ~/.config/opencode
|
|
261
|
+
npm list opencode-sdlc oh-my-opencode
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Update to Latest
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
npx opencode-sdlc update
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
This updates:
|
|
271
|
+
- opencode-sdlc CLI
|
|
272
|
+
- oh-my-opencode plugin
|
|
273
|
+
- Auth plugins
|
|
274
|
+
- Bridge commands
|
|
275
|
+
|
|
276
|
+
## Getting Help
|
|
277
|
+
|
|
278
|
+
### Documentation
|
|
279
|
+
|
|
280
|
+
- [OpenCode SDLC GitHub](https://github.com/ZebulonRouseFrantzich/opencode-sdlc)
|
|
281
|
+
- [oh-my-opencode GitHub](https://github.com/code-yeongyu/oh-my-opencode)
|
|
282
|
+
- [BMAD METHOD GitHub](https://github.com/bmad-method/bmad-method)
|
|
283
|
+
|
|
284
|
+
### Report Issues
|
|
285
|
+
|
|
286
|
+
If you encounter bugs:
|
|
287
|
+
|
|
288
|
+
1. Run `npx opencode-sdlc doctor` and save output
|
|
289
|
+
2. Note what you were doing when the issue occurred
|
|
290
|
+
3. Open an issue on the appropriate GitHub repo
|
|
291
|
+
|
|
292
|
+
### Quick Reference Card
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
┌────────────────────────────────────────────────────────────┐
|
|
296
|
+
│ ATHENA QUICK REFERENCE │
|
|
297
|
+
├────────────────────────────────────────────────────────────┤
|
|
298
|
+
│ │
|
|
299
|
+
│ COMMANDS: │
|
|
300
|
+
│ /sdlc-dev → Implement a story │
|
|
301
|
+
│ /sdlc-review → Quality gate review │
|
|
302
|
+
│ /sdlc-debug → Debug with Oracle │
|
|
303
|
+
│ /sdlc-research → Research with Librarian │
|
|
304
|
+
│ /sdlc-status → Sprint status │
|
|
305
|
+
│ /sdlc-info → This help │
|
|
306
|
+
│ │
|
|
307
|
+
│ AGENTS: │
|
|
308
|
+
│ @oracle → Deep reasoning, code review │
|
|
309
|
+
│ @librarian → Research, docs, examples │
|
|
310
|
+
│ @explore → Fast codebase search │
|
|
311
|
+
│ @frontend-ui-ux-engineer → UI/UX work │
|
|
312
|
+
│ │
|
|
313
|
+
│ TOOLS: │
|
|
314
|
+
│ sdlc_get_story → Load story context │
|
|
315
|
+
│ sdlc_update_status → Update story status │
|
|
316
|
+
│ sdlc_config → View configuration │
|
|
317
|
+
│ │
|
|
318
|
+
│ CLI: │
|
|
319
|
+
│ npx opencode-sdlc install → Install/configure │
|
|
320
|
+
│ npx opencode-sdlc update → Update plugins │
|
|
321
|
+
│ npx opencode-sdlc doctor → Diagnose issues │
|
|
322
|
+
│ npx opencode-sdlc info → Show config │
|
|
323
|
+
│ │
|
|
324
|
+
└────────────────────────────────────────────────────────────┘
|
|
325
|
+
```
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Work on multiple stories in parallel using background agents
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# SDLC Parallel - Multi-Story Execution
|
|
6
|
+
|
|
7
|
+
> **⚠️ NOT YET IMPLEMENTED**
|
|
8
|
+
>
|
|
9
|
+
> This command describes **planned functionality** that is not yet available. The `sdlc_parallel` tool is a placeholder. This document describes the intended behavior for future implementation.
|
|
10
|
+
|
|
11
|
+
## Git Operations Policy
|
|
12
|
+
|
|
13
|
+
**⚠️ AUTOMATIC GIT OPERATIONS ARE PROHIBITED**
|
|
14
|
+
|
|
15
|
+
You must NOT perform any git operations automatically:
|
|
16
|
+
- ❌ Do NOT run `git commit` to save changes
|
|
17
|
+
- ❌ Do NOT run `git push` to push to remote
|
|
18
|
+
- ❌ Do NOT run `git checkout -b` or `git branch` to create branches
|
|
19
|
+
- ❌ Do NOT run `git merge`, `git rebase`, or `git cherry-pick`
|
|
20
|
+
- ❌ Do NOT run `gh pr create` or other GitHub CLI operations
|
|
21
|
+
|
|
22
|
+
**Git operations are ONLY permitted if the user explicitly requests them.**
|
|
23
|
+
|
|
24
|
+
When working on multiple stories in parallel, git operations become especially important to coordinate manually. Always ask the user before performing any git operations.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
Execute multiple BMAD stories simultaneously using background agents for maximum throughput.
|
|
29
|
+
|
|
30
|
+
## Planned Behavior
|
|
31
|
+
|
|
32
|
+
### When to Use This Command
|
|
33
|
+
|
|
34
|
+
- Multiple independent stories in the sprint backlog
|
|
35
|
+
- Stories work on different parts of the codebase (no file conflicts)
|
|
36
|
+
- You want to maximize development throughput
|
|
37
|
+
- Stories have no dependencies on each other
|
|
38
|
+
|
|
39
|
+
### Prerequisites
|
|
40
|
+
|
|
41
|
+
- Multiple pending stories in `sprint-status.yaml`
|
|
42
|
+
- Stories must be independent (no blocking dependencies)
|
|
43
|
+
- Stories should not modify the same files
|
|
44
|
+
- Sufficient context window capacity for coordination
|
|
45
|
+
|
|
46
|
+
## Planned Workflow
|
|
47
|
+
|
|
48
|
+
### Step 1: Check Sprint Status
|
|
49
|
+
|
|
50
|
+
First, view available stories:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
sdlc_get_story()
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Identify stories that can safely run in parallel:
|
|
57
|
+
- ✅ Different modules or directories
|
|
58
|
+
- ✅ No shared file modifications
|
|
59
|
+
- ✅ No data dependencies
|
|
60
|
+
- ❌ Avoid stories that modify the same files
|
|
61
|
+
|
|
62
|
+
### Step 2: Analyze for Conflicts (Planned)
|
|
63
|
+
|
|
64
|
+
The `sdlc_parallel` tool will analyze stories for potential conflicts:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
sdlc_parallel({
|
|
68
|
+
storyIds: ["2.1", "2.2", "2.3"],
|
|
69
|
+
dryRun: true // Just check for conflicts, don't execute
|
|
70
|
+
})
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Planned conflict detection:**
|
|
74
|
+
- Parse story requirements for file paths mentioned
|
|
75
|
+
- Check architecture.md for overlapping components
|
|
76
|
+
- Identify shared dependencies
|
|
77
|
+
- Report potential conflicts before execution
|
|
78
|
+
|
|
79
|
+
### Step 3: Execute in Parallel (Planned)
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
sdlc_parallel({
|
|
83
|
+
storyIds: ["2.1", "2.2", "2.3"],
|
|
84
|
+
waitForCompletion: false // Return immediately, run in background
|
|
85
|
+
})
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Planned execution flow:**
|
|
89
|
+
1. Validate no conflicts between selected stories
|
|
90
|
+
2. Mark all stories as `in_progress` in `sprint-status.yaml`
|
|
91
|
+
3. Spawn background agent for each story
|
|
92
|
+
4. Each agent runs `/sdlc-dev` workflow independently
|
|
93
|
+
5. Coordinate to prevent concurrent file modifications
|
|
94
|
+
6. Report completion as each story finishes
|
|
95
|
+
|
|
96
|
+
### Step 4: Monitor Progress (Planned)
|
|
97
|
+
|
|
98
|
+
**Planned monitoring capabilities:**
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
sdlc_parallel({
|
|
102
|
+
action: "status"
|
|
103
|
+
})
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
- Which stories are running
|
|
108
|
+
- Progress of each background agent
|
|
109
|
+
- Any conflicts or blockers encountered
|
|
110
|
+
- Estimated completion time
|
|
111
|
+
|
|
112
|
+
### Step 5: Handle Completion (Planned)
|
|
113
|
+
|
|
114
|
+
When stories complete:
|
|
115
|
+
- `sprint-status.yaml` updated automatically
|
|
116
|
+
- Notification sent for each completion
|
|
117
|
+
- Combined test run suggested
|
|
118
|
+
- Integration check recommended
|
|
119
|
+
|
|
120
|
+
## Planned Features
|
|
121
|
+
|
|
122
|
+
### Conflict Prevention
|
|
123
|
+
|
|
124
|
+
| Conflict Type | Detection | Resolution |
|
|
125
|
+
|---------------|-----------|------------|
|
|
126
|
+
| Same file edits | Pre-execution analysis | Reject parallel execution |
|
|
127
|
+
| Shared dependencies | Architecture analysis | Sequential for conflict area |
|
|
128
|
+
| Data dependencies | Story requirement parsing | Enforce story order |
|
|
129
|
+
|
|
130
|
+
### Coordination Strategies (Planned)
|
|
131
|
+
|
|
132
|
+
**File-level locking:**
|
|
133
|
+
- First agent to touch a file gets exclusive access
|
|
134
|
+
- Other agents wait if they need the same file
|
|
135
|
+
|
|
136
|
+
**Module-level partitioning:**
|
|
137
|
+
- Assign stories to non-overlapping code areas
|
|
138
|
+
- Detect boundary violations
|
|
139
|
+
|
|
140
|
+
**Merge coordination:**
|
|
141
|
+
- If conflicts occur, pause and notify
|
|
142
|
+
- User resolves manually or chooses which version wins
|
|
143
|
+
|
|
144
|
+
### Configuration (Planned)
|
|
145
|
+
|
|
146
|
+
```json
|
|
147
|
+
// sdlc.json
|
|
148
|
+
{
|
|
149
|
+
"parallel": {
|
|
150
|
+
"maxConcurrentStories": 3,
|
|
151
|
+
"conflictStrategy": "prevent", // or "coordinate" or "manual"
|
|
152
|
+
"notifyOnComplete": true,
|
|
153
|
+
"autoRunTests": true
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Current Workaround
|
|
159
|
+
|
|
160
|
+
Until `sdlc_parallel` is implemented, you can achieve similar results manually:
|
|
161
|
+
|
|
162
|
+
### Manual Parallel Workflow
|
|
163
|
+
|
|
164
|
+
**1. Open multiple terminal sessions:**
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Terminal 1 - Primary story (your focus)
|
|
168
|
+
opencode
|
|
169
|
+
# Run /sdlc-dev for story 2.1
|
|
170
|
+
|
|
171
|
+
# Terminal 2 - Background story
|
|
172
|
+
opencode
|
|
173
|
+
# Run /sdlc-dev for story 2.2
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**2. Or use background agents within single session:**
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
# Start story 2.1 in background
|
|
180
|
+
background_task({
|
|
181
|
+
agent: "Sisyphus",
|
|
182
|
+
prompt: "Implement BMAD story 2.1. Load context with sdlc_get_story({storyId: '2.1'}), implement following /sdlc-dev workflow, update status when complete.",
|
|
183
|
+
description: "Story 2.1 implementation"
|
|
184
|
+
})
|
|
185
|
+
|
|
186
|
+
# Work on story 2.2 yourself
|
|
187
|
+
/sdlc-dev 2.2
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**3. Coordinate manually:**
|
|
191
|
+
|
|
192
|
+
- Keep track of which files each story modifies
|
|
193
|
+
- Avoid parallel work on same files
|
|
194
|
+
- Run combined tests after both complete
|
|
195
|
+
- Check for integration issues
|
|
196
|
+
|
|
197
|
+
## Design Considerations for Implementation
|
|
198
|
+
|
|
199
|
+
### Background Agent Integration
|
|
200
|
+
|
|
201
|
+
The planned implementation will use oh-my-opencode's background agent system:
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
// Conceptual implementation
|
|
205
|
+
async function executeParallel(storyIds: string[]) {
|
|
206
|
+
// 1. Validate no conflicts
|
|
207
|
+
const conflicts = await detectConflicts(storyIds);
|
|
208
|
+
if (conflicts.length > 0) {
|
|
209
|
+
return { error: "Conflicts detected", conflicts };
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// 2. Mark all as in_progress
|
|
213
|
+
for (const id of storyIds) {
|
|
214
|
+
await updateSprintStatus(id, "in_progress");
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// 3. Spawn background agents
|
|
218
|
+
const tasks = storyIds.map(id => ({
|
|
219
|
+
agent: "Sisyphus",
|
|
220
|
+
prompt: generateStoryPrompt(id),
|
|
221
|
+
}));
|
|
222
|
+
|
|
223
|
+
// 4. Launch and track
|
|
224
|
+
const results = await backgroundManager.launchMany(tasks);
|
|
225
|
+
|
|
226
|
+
return { launched: results.length, taskIds: results.map(r => r.id) };
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Conflict Detection Strategy
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
// Conceptual conflict detection
|
|
234
|
+
async function detectConflicts(storyIds: string[]) {
|
|
235
|
+
const storyFiles: Map<string, string[]> = new Map();
|
|
236
|
+
|
|
237
|
+
for (const id of storyIds) {
|
|
238
|
+
const story = await loadStory(id);
|
|
239
|
+
const files = extractMentionedFiles(story);
|
|
240
|
+
const architectureFiles = extractArchitectureFiles(story);
|
|
241
|
+
storyFiles.set(id, [...files, ...architectureFiles]);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Find overlapping files
|
|
245
|
+
const conflicts = [];
|
|
246
|
+
for (const [id1, files1] of storyFiles) {
|
|
247
|
+
for (const [id2, files2] of storyFiles) {
|
|
248
|
+
if (id1 >= id2) continue;
|
|
249
|
+
const overlap = files1.filter(f => files2.includes(f));
|
|
250
|
+
if (overlap.length > 0) {
|
|
251
|
+
conflicts.push({ stories: [id1, id2], files: overlap });
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return conflicts;
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Limitations
|
|
261
|
+
|
|
262
|
+
Even when implemented:
|
|
263
|
+
|
|
264
|
+
- **Context limits**: Each background agent uses context window
|
|
265
|
+
- **Coordination overhead**: Managing multiple agents has overhead
|
|
266
|
+
- **Conflict resolution**: Some conflicts require human judgment
|
|
267
|
+
- **Testing complexity**: Parallel changes complicate testing
|
|
268
|
+
|
|
269
|
+
## Tips for Future Use
|
|
270
|
+
|
|
271
|
+
- **Start small**: Test with 2 stories before scaling up
|
|
272
|
+
- **Choose wisely**: Pick stories in truly independent areas
|
|
273
|
+
- **Monitor actively**: Check progress regularly
|
|
274
|
+
- **Test together**: Run full test suite after parallel completion
|
|
275
|
+
- **Review carefully**: Parallel work may have subtle integration issues
|
|
276
|
+
|
|
277
|
+
## Related Commands
|
|
278
|
+
|
|
279
|
+
| Command | Use When |
|
|
280
|
+
|---------|----------|
|
|
281
|
+
| `/sdlc-dev` | Single story implementation |
|
|
282
|
+
| `/sdlc-status` | Check sprint status and pending stories |
|
|
283
|
+
| `/sdlc-review` | Quality gate after parallel completion |
|