bmm-opencode 1.2.0 → 1.3.1
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/.opencode/agents/gen-subagent.md +0 -9
- package/.opencode/agents/party-mode.md +41 -24
- package/.opencode/skills/bmad-bmm-check-implementation-readiness/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-code-review/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-correct-course/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-create-architecture/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-create-epics-and-stories/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-create-prd/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-create-product-brief/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-create-story/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-create-ux-design/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-dev-story/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-dev-team-mode/SKILL.md +215 -0
- package/.opencode/skills/bmad-bmm-document-project/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-domain-research/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-edit-prd/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-generate-project-context/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-market-research/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-qa-automate/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-quick-dev/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-quick-spec/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-retrospective/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-sprint-planning/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-sprint-status/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-technical-research/SKILL.md +1 -1
- package/.opencode/skills/bmad-bmm-validate-prd/SKILL.md +1 -1
- package/.opencode/skills/bmad-cis-design-thinking/SKILL.md +1 -1
- package/.opencode/skills/bmad-cis-innovation-strategy/SKILL.md +1 -1
- package/.opencode/skills/bmad-cis-problem-solving/SKILL.md +1 -1
- package/.opencode/skills/bmad-cis-storytelling/SKILL.md +1 -1
- package/.opencode/skills/bmad-core-brainstorming/SKILL.md +1 -1
- package/.opencode/skills/bmad-core-party-mode/SKILL.md +14 -1
- package/.opencode/skills/bmad-core-task-editorial-review-prose/SKILL.md +1 -1
- package/.opencode/skills/bmad-core-task-editorial-review-structure/SKILL.md +1 -1
- package/.opencode/skills/bmad-core-task-help/SKILL.md +1 -1
- package/.opencode/skills/bmad-core-task-index-docs/SKILL.md +1 -1
- package/.opencode/skills/bmad-core-task-review-adversarial-general/SKILL.md +1 -1
- package/.opencode/skills/bmad-core-task-shard-doc/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-teach-me-testing/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-atdd/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-automate/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-ci/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-framework/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-nfr/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-test-design/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-test-review/SKILL.md +1 -1
- package/.opencode/skills/bmad-tea-testarch-trace/SKILL.md +1 -1
- package/README.md +40 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -5
- package/package.json +2 -2
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: "Generates specialized subagents by analyzing problems and producing ready-to-use agent configurations"
|
|
3
3
|
mode: subagent
|
|
4
|
-
model: "anthropic/claude-sonnet-4-20250514"
|
|
5
|
-
temperature: 0.3
|
|
6
|
-
steps: 30
|
|
7
4
|
tools:
|
|
8
5
|
read: true
|
|
9
6
|
glob: true
|
|
@@ -12,12 +9,6 @@ tools:
|
|
|
12
9
|
write: true
|
|
13
10
|
edit: true
|
|
14
11
|
bash: false
|
|
15
|
-
permission:
|
|
16
|
-
bash: deny
|
|
17
|
-
edit:
|
|
18
|
-
"*": "deny"
|
|
19
|
-
".opencode/agents/*.md": "allow"
|
|
20
|
-
".opencode/skills/*/SKILL.md": "allow"
|
|
21
12
|
---
|
|
22
13
|
|
|
23
14
|
🏭 **Gen Subagent** - Agent Factory
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: "Multi-agent meeting orchestrator - reads agent roster, asks meeting purpose, selects relevant agents, allows dynamic additions during meeting"
|
|
3
3
|
mode: subagent
|
|
4
|
-
model: "anthropic/claude-sonnet-4-20250514"
|
|
5
|
-
temperature: 0.4
|
|
6
|
-
steps: 200
|
|
7
4
|
tools:
|
|
8
5
|
read: true
|
|
9
6
|
glob: true
|
|
@@ -16,11 +13,6 @@ tools:
|
|
|
16
13
|
skill: true
|
|
17
14
|
todowrite: true
|
|
18
15
|
todoread: true
|
|
19
|
-
permission:
|
|
20
|
-
edit: deny
|
|
21
|
-
bash: deny
|
|
22
|
-
task:
|
|
23
|
-
"*": "allow"
|
|
24
16
|
---
|
|
25
17
|
|
|
26
18
|
🎉 **Party Mode** - Parallel Multi-Agent Meeting Orchestrator
|
|
@@ -174,6 +166,10 @@ After user describes meeting purpose:
|
|
|
174
166
|
|
|
175
167
|
### 2.1 Analyze & Recommend
|
|
176
168
|
|
|
169
|
+
For each recommended agent, generate a **Title** = `Agent Name [model]: [first impression of the topic]`.
|
|
170
|
+
The first impression should be a short, punchy one-liner (≤15 words) reflecting that agent's instinctive reaction to the meeting topic based on their expertise and principles.
|
|
171
|
+
The **model** is the AI model that will power this agent (determined by the `delegate_task` category used to launch it).
|
|
172
|
+
|
|
177
173
|
```
|
|
178
174
|
## Meeting Analysis
|
|
179
175
|
|
|
@@ -184,11 +180,16 @@ After user describes meeting purpose:
|
|
|
184
180
|
|
|
185
181
|
Based on your meeting purpose, I recommend inviting:
|
|
186
182
|
|
|
187
|
-
| # | Agent | Why This Agent? |
|
|
188
|
-
|
|
189
|
-
| 1 | 🏗️ Winston (architect) | [Specific relevance to topic] |
|
|
190
|
-
| 2 | 💻 Amelia (dev) | [Specific relevance] |
|
|
191
|
-
| 3 | 🧪 Murat (tea) | [Specific relevance] |
|
|
183
|
+
| # | Agent | Model | Title | Why This Agent? |
|
|
184
|
+
|---|-------|-------|-------|-----------------|
|
|
185
|
+
| 1 | 🏗️ Winston (architect) | [model] | Winston [model]: [first impression] | [Specific relevance to topic] |
|
|
186
|
+
| 2 | 💻 Amelia (dev) | [model] | Amelia [model]: [first impression] | [Specific relevance] |
|
|
187
|
+
| 3 | 🧪 Murat (tea) | [model] | Murat [model]: [first impression] | [Specific relevance] |
|
|
188
|
+
|
|
189
|
+
> **Title examples:**
|
|
190
|
+
> - `Winston [o3]: This screams distributed event sourcing`
|
|
191
|
+
> - `Amelia [sonnet-4]: We need a clean API contract first`
|
|
192
|
+
> - `Murat [gemini-2.5-pro]: Risk-based testing is critical here`
|
|
192
193
|
|
|
193
194
|
### Not Recommended (but available):
|
|
194
195
|
- 📖 Sophia (storyteller): Not directly relevant unless narrative needed
|
|
@@ -253,7 +254,10 @@ Provide your expert perspective on this topic. Think deeply and thoroughly.
|
|
|
253
254
|
|
|
254
255
|
**Structure your response as:**
|
|
255
256
|
|
|
256
|
-
### {agent.icon} {agent.
|
|
257
|
+
### {agent.icon} {agent.title}
|
|
258
|
+
|
|
259
|
+
> **IMPORTANT**: Your title was assigned as: **{agent.title}** (format: "Name [model]: first impression").
|
|
260
|
+
> Use this title as your section header. It reflects your instinctive reaction to this topic and which model powers you.
|
|
257
261
|
|
|
258
262
|
**Key Insights** (from your expertise):
|
|
259
263
|
1. [Insight based on your role]
|
|
@@ -281,11 +285,11 @@ Provide your expert perspective on this topic. Think deeply and thoroughly.
|
|
|
281
285
|
```
|
|
282
286
|
🔄 **Meeting in Progress - Agents Thinking...**
|
|
283
287
|
|
|
284
|
-
| Agent | Status | Task ID |
|
|
285
|
-
|
|
286
|
-
| 🏗️ Winston | 🔄 analyzing... | bg_xxx |
|
|
287
|
-
| 💻 Amelia | 🔄 analyzing... | bg_yyy |
|
|
288
|
-
| 🧪 Murat | 🔄 analyzing... | bg_zzz |
|
|
288
|
+
| Agent | Model | Status | Task ID |
|
|
289
|
+
|-------|-------|--------|---------|
|
|
290
|
+
| 🏗️ Winston | o3 | 🔄 analyzing... | bg_xxx |
|
|
291
|
+
| 💻 Amelia | sonnet-4 | 🔄 analyzing... | bg_yyy |
|
|
292
|
+
| 🧪 Murat | gemini-2.5-pro | 🔄 analyzing... | bg_zzz |
|
|
289
293
|
|
|
290
294
|
⏳ Collecting insights from all participants...
|
|
291
295
|
|
|
@@ -313,7 +317,7 @@ Provide your expert perspective on this topic. Think deeply and thoroughly.
|
|
|
313
317
|
|
|
314
318
|
### Individual Contributions
|
|
315
319
|
|
|
316
|
-
#### 🏗️ Winston
|
|
320
|
+
#### 🏗️ Winston [o3]: This screams distributed event sourcing
|
|
317
321
|
**Key Insights:**
|
|
318
322
|
- [insight]
|
|
319
323
|
|
|
@@ -325,7 +329,7 @@ Provide your expert perspective on this topic. Think deeply and thoroughly.
|
|
|
325
329
|
|
|
326
330
|
---
|
|
327
331
|
|
|
328
|
-
#### 💻 Amelia
|
|
332
|
+
#### 💻 Amelia [sonnet-4]: We need a clean API contract first
|
|
329
333
|
[... same structure ...]
|
|
330
334
|
|
|
331
335
|
---
|
|
@@ -380,7 +384,9 @@ John will analyze the current discussion context and provide product perspective
|
|
|
380
384
|
|
|
381
385
|
[After completion:]
|
|
382
386
|
|
|
383
|
-
### 📋 John
|
|
387
|
+
### 📋 John [sonnet-4]: Let's validate the user value proposition
|
|
388
|
+
|
|
389
|
+
> *Title reflects John's first impression of the topic upon joining, with the model used.*
|
|
384
390
|
|
|
385
391
|
**Context Reviewed**: [summary of what John caught up on]
|
|
386
392
|
|
|
@@ -393,7 +399,11 @@ John will analyze the current discussion context and provide product perspective
|
|
|
393
399
|
---
|
|
394
400
|
|
|
395
401
|
John has been added to the active participants.
|
|
396
|
-
Current attendees:
|
|
402
|
+
Current attendees:
|
|
403
|
+
- 🏗️ Winston [o3]: This screams distributed event sourcing
|
|
404
|
+
- 💻 Amelia [sonnet-4]: We need a clean API contract first
|
|
405
|
+
- 🧪 Murat [gemini-2.5-pro]: Risk-based testing is critical here
|
|
406
|
+
- 📋 **John [sonnet-4]: Let's validate the user value proposition (new)**
|
|
397
407
|
```
|
|
398
408
|
|
|
399
409
|
### 4.3 Follow-up Questions
|
|
@@ -429,16 +439,22 @@ meeting_state:
|
|
|
429
439
|
active_agents:
|
|
430
440
|
- name: architect
|
|
431
441
|
displayName: Winston
|
|
442
|
+
model: o3
|
|
443
|
+
title: "Winston [o3]: This screams distributed event sourcing"
|
|
432
444
|
task_id: bg_xxx
|
|
433
445
|
status: completed
|
|
434
446
|
|
|
435
447
|
- name: dev
|
|
436
448
|
displayName: Amelia
|
|
449
|
+
model: sonnet-4
|
|
450
|
+
title: "Amelia [sonnet-4]: We need a clean API contract first"
|
|
437
451
|
task_id: bg_yyy
|
|
438
452
|
status: completed
|
|
439
453
|
|
|
440
454
|
- name: pm
|
|
441
455
|
displayName: John
|
|
456
|
+
model: sonnet-4
|
|
457
|
+
title: "John [sonnet-4]: Let's validate the user value proposition"
|
|
442
458
|
task_id: bg_zzz
|
|
443
459
|
status: running # Added mid-meeting
|
|
444
460
|
|
|
@@ -603,7 +619,8 @@ Meeting notes can be saved with `save [filename]`.
|
|
|
603
619
|
6. **RUN IN PARALLEL** - All agents think simultaneously (`run_in_background=True`)
|
|
604
620
|
7. **SUPPORT MID-MEETING ADDITIONS** - `+agent` works anytime
|
|
605
621
|
8. **SYNTHESIZE RESULTS** - Don't just list, find consensus/conflicts
|
|
606
|
-
9. **TRACK STATE** - Know who's in the meeting, task IDs
|
|
622
|
+
9. **TRACK STATE** - Know who's in the meeting, task IDs, and titles
|
|
607
623
|
10. **RESPONSIVE COMMANDS** - Handle all meeting commands immediately
|
|
608
624
|
11. **GRACEFUL EXIT** - Summarize meeting when ending
|
|
609
625
|
12. **HANDLE ERRORS** - Provide helpful error messages
|
|
626
|
+
13. **ALWAYS GENERATE TITLES** - Every assigned agent MUST have a Title = `AgentName [model]: [first impression]`. The model is the AI model powering that agent (determined by the `delegate_task` category). The first impression is a short, punchy one-liner (≤15 words) reflecting the agent's instinctive gut reaction to the meeting topic from their area of expertise. Generate titles in Phase 2 (recommendation) and carry them through Phase 3 (execution) and Phase 4 (results). Late-arriving agents (`+agent`) also get a title upon joining.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-bmm-dev-team-mode
|
|
3
|
+
description: "Orchestrate parallel development of multiple stories within an epic. Reads sprint-status.yaml, asks which epic to work on, spawns parallel dev-story and code-review subagents, and loops until epic completion."
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: opencode
|
|
6
|
+
metadata:
|
|
7
|
+
source: "bmad-method"
|
|
8
|
+
module: "bmm"
|
|
9
|
+
workflow: "dev-team-mode"
|
|
10
|
+
standalone: "false"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# dev-team-mode Workflow
|
|
14
|
+
|
|
15
|
+
Orchestrate parallel development of multiple stories within an epic. Reads sprint-status.yaml, asks which epic to work on, spawns parallel dev-story and code-review subagents, and loops until epic completion.
|
|
16
|
+
|
|
17
|
+
**Author:** BMad
|
|
18
|
+
|
|
19
|
+
## How to Use
|
|
20
|
+
|
|
21
|
+
This skill provides a structured workflow. Follow the steps below:
|
|
22
|
+
|
|
23
|
+
## Instructions
|
|
24
|
+
|
|
25
|
+
# Dev Team Mode - Parallel Development Orchestrator
|
|
26
|
+
|
|
27
|
+
<critical>Workflow engine: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
|
28
|
+
<critical>Config loaded from: {installed_path}/workflow.yaml</critical>
|
|
29
|
+
<critical>Language: {communication_language}</critical>
|
|
30
|
+
|
|
31
|
+
## WORKFLOW OVERVIEW
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
35
|
+
│ DEV TEAM MODE │
|
|
36
|
+
│ │
|
|
37
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
38
|
+
│ │ INIT │───▶│ ANALYZE │───▶│ PARALLEL │ │
|
|
39
|
+
│ │ Step 1 │ │ Step 2 │ │ DEV │ │
|
|
40
|
+
│ │ │ │ │ │ Step 3 │ │
|
|
41
|
+
│ │ 2 prompts│ │dependency│ │ │ │
|
|
42
|
+
│ └──────────┘ └──────────┘ └────┬─────┘ │
|
|
43
|
+
│ │ │
|
|
44
|
+
│ ┌──────────┐ ┌──────────┐ ┌────▼─────┐ │
|
|
45
|
+
│ │ SYNC │◀───│ PARALLEL │◀───│ REVIEW │ │
|
|
46
|
+
│ │ Step 5 │ │ REVIEW │ │ Step 4 │ │
|
|
47
|
+
│ │ │ │ Step 4 │ │ │ │
|
|
48
|
+
│ │loop/exit │ │ │ │adversarial│ │
|
|
49
|
+
│ └────┬─────┘ └──────────┘ └──────────┘ │
|
|
50
|
+
│ │ │
|
|
51
|
+
│ ▼ │
|
|
52
|
+
│ Continue → Step 2 OR Exit │
|
|
53
|
+
└─────────────────────────────────────────────────────────────┘
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## ENTRY POINT
|
|
57
|
+
|
|
58
|
+
### Check Saved State
|
|
59
|
+
|
|
60
|
+
<action>Check for {implementation_artifacts}/dev-team-mode-state.yaml</action>
|
|
61
|
+
|
|
62
|
+
<check if="saved state exists">
|
|
63
|
+
<output>
|
|
64
|
+
## 🔄 Previous Session Found
|
|
65
|
+
|
|
66
|
+
Saved: {{timestamp}}
|
|
67
|
+
Epic: {{selected_epic}}
|
|
68
|
+
Progress: {{completed_count}} completed
|
|
69
|
+
</output>
|
|
70
|
+
|
|
71
|
+
<ask>
|
|
72
|
+
[1] **Resume** - Continue from saved state
|
|
73
|
+
[2] **Fresh** - Ignore saved, start new
|
|
74
|
+
[3] **Delete** - Remove saved state, start new
|
|
75
|
+
|
|
76
|
+
Choose:
|
|
77
|
+
</ask>
|
|
78
|
+
|
|
79
|
+
<routing>
|
|
80
|
+
<if value="1">Restore state, load resume_step</if>
|
|
81
|
+
<else>Delete saved state, continue fresh</else>
|
|
82
|
+
</routing>
|
|
83
|
+
</check>
|
|
84
|
+
|
|
85
|
+
### Fresh Start
|
|
86
|
+
|
|
87
|
+
<load>./steps/step-01-init.md</load>
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## STEP SEQUENCE
|
|
92
|
+
|
|
93
|
+
| Step | Purpose | Key Actions |
|
|
94
|
+
|------|---------|-------------|
|
|
95
|
+
| 1 | Init | 2 selection prompts: epic choice + execution mode |
|
|
96
|
+
| 2 | Analyze | Dependency analysis, build parallel batch |
|
|
97
|
+
| 3 | Dev | Launch dev-story subagents (background) |
|
|
98
|
+
| 4 | Review | Launch code-review subagents (different LLM) |
|
|
99
|
+
| 5 | Sync | Update status, loop or exit decision |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## TWO-STEP SELECTION (Step 1)
|
|
104
|
+
|
|
105
|
+
### Selection 1: Epic Choice
|
|
106
|
+
|
|
107
|
+
| Option | Behavior |
|
|
108
|
+
|--------|----------|
|
|
109
|
+
| Continue | Resume epic with in-progress/review stories |
|
|
110
|
+
| Select | Manual epic selection |
|
|
111
|
+
| Autopilot | Auto-select, run until all epics done |
|
|
112
|
+
|
|
113
|
+
### Selection 2: Execution Mode
|
|
114
|
+
|
|
115
|
+
| Option | Behavior |
|
|
116
|
+
|--------|----------|
|
|
117
|
+
| Parallel | Multiple stories concurrent (up to max_parallel_agents) |
|
|
118
|
+
| Sequential | One story at a time |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## CONFIGURATION
|
|
123
|
+
|
|
124
|
+
| Setting | Default | Description |
|
|
125
|
+
|---------|---------|-------------|
|
|
126
|
+
| `max_parallel_agents` | 3 | Max concurrent agents |
|
|
127
|
+
| `max_retry_per_story` | 3 | Retries before blocking |
|
|
128
|
+
| `dev_category` | deep | delegate_task category for dev |
|
|
129
|
+
| `review_category` | ultrabrain | delegate_task category for review |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## SUBAGENT DELEGATION
|
|
134
|
+
|
|
135
|
+
### Dev-Story
|
|
136
|
+
|
|
137
|
+
```javascript
|
|
138
|
+
delegate_task({
|
|
139
|
+
category: "deep",
|
|
140
|
+
load_skills: ["bmad-bmm-dev-story"],
|
|
141
|
+
run_in_background: true,
|
|
142
|
+
prompt: "..."
|
|
143
|
+
});
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Code-Review
|
|
147
|
+
|
|
148
|
+
```javascript
|
|
149
|
+
delegate_task({
|
|
150
|
+
category: "ultrabrain",
|
|
151
|
+
load_skills: ["bmad-bmm-code-review"],
|
|
152
|
+
run_in_background: true,
|
|
153
|
+
prompt: "..."
|
|
154
|
+
});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## STATE SCHEMA
|
|
160
|
+
|
|
161
|
+
```yaml
|
|
162
|
+
workflowType: 'dev-team-mode'
|
|
163
|
+
selected_epic: ''
|
|
164
|
+
epic_mode: '' # continue|selected|autopilot
|
|
165
|
+
execution_mode: '' # parallel|sequential
|
|
166
|
+
parallel_mode: false
|
|
167
|
+
autopilot: false
|
|
168
|
+
parallel_stories: []
|
|
169
|
+
stories_to_review: []
|
|
170
|
+
blocked_stories: []
|
|
171
|
+
active_agents: []
|
|
172
|
+
completed_stories: []
|
|
173
|
+
failed_stories: []
|
|
174
|
+
retry_counts: {}
|
|
175
|
+
loop_count: 0
|
|
176
|
+
phase: 'init' # init|analyzing|dev|dev-running|review|review-running|sync
|
|
177
|
+
started_at: ''
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## EXIT CONDITIONS
|
|
183
|
+
|
|
184
|
+
### Automatic Triggers
|
|
185
|
+
- `*exit`, `stop`, `quit`, `end team`
|
|
186
|
+
- All stories in epic done
|
|
187
|
+
- All remaining stories blocked
|
|
188
|
+
|
|
189
|
+
### Graceful Exit
|
|
190
|
+
1. Save state to sprint-status.yaml
|
|
191
|
+
2. Display summary
|
|
192
|
+
3. Optionally save resumable state
|
|
193
|
+
4. Clean up
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## ERROR HANDLING
|
|
198
|
+
|
|
199
|
+
| Failure | Action |
|
|
200
|
+
|---------|--------|
|
|
201
|
+
| Dev fails | Retry up to max_retry_per_story |
|
|
202
|
+
| Review fails | Retry with session context |
|
|
203
|
+
| Timeout | Mark needs-retry, continue |
|
|
204
|
+
| Critical | Block, alert user |
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## INTEGRATION
|
|
209
|
+
|
|
210
|
+
| Trigger | Workflow |
|
|
211
|
+
|---------|----------|
|
|
212
|
+
| No sprint-status | `/bmad-bmm-sprint-planning` |
|
|
213
|
+
| Stories in backlog | `/bmad-bmm-create-story` |
|
|
214
|
+
| Epic complete | `/bmad-bmm-retrospective` |
|
|
215
|
+
| Check progress | `/bmad-bmm-sprint-status` |
|
|
@@ -7,7 +7,7 @@ metadata:
|
|
|
7
7
|
source: "bmad-method"
|
|
8
8
|
module: "core"
|
|
9
9
|
workflow: "party-mode"
|
|
10
|
-
standalone:
|
|
10
|
+
standalone: false
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# party-mode Workflow
|
|
@@ -113,6 +113,19 @@ For each user message or topic:
|
|
|
113
113
|
- Consider conversation context and previous agent contributions
|
|
114
114
|
- Select 2-3 most relevant agents for balanced perspective
|
|
115
115
|
|
|
116
|
+
**Title Generation (MANDATORY):**
|
|
117
|
+
|
|
118
|
+
Every selected agent MUST be assigned a **Title** = `AgentName [model]: [first impression]`.
|
|
119
|
+
- The **model** is the AI model powering that agent (determined by the `delegate_task` category used to launch it)
|
|
120
|
+
- The first impression is a short, punchy one-liner (≤15 words) reflecting the agent's instinctive gut reaction to the topic from their area of expertise
|
|
121
|
+
- Generate titles when agents are first selected/recommended
|
|
122
|
+
- Carry titles through all phases (selection → execution → results display)
|
|
123
|
+
- Late-arriving agents (`+agent`) also get a title upon joining
|
|
124
|
+
- Examples:
|
|
125
|
+
- `Winston [o3]: This screams distributed event sourcing`
|
|
126
|
+
- `Amelia [sonnet-4]: We need a clean API contract first`
|
|
127
|
+
- `Murat [gemini-2.5-pro]: Risk-based testing is critical here`
|
|
128
|
+
|
|
116
129
|
**Priority Handling:**
|
|
117
130
|
|
|
118
131
|
- If user addresses specific agent by name, prioritize that agent + 1-2 complementary agents
|
package/README.md
CHANGED
|
@@ -33,14 +33,14 @@ curl -s https://raw.githubusercontent.com/Jack-R-Hong/BMM-opencode/refs/heads/ma
|
|
|
33
33
|
After installation, you have access to:
|
|
34
34
|
|
|
35
35
|
1. **Plugin Tools** - Use `bmm_list`, `bmm_agent`, `bmm_skill` directly
|
|
36
|
-
2. **
|
|
37
|
-
3. **
|
|
36
|
+
2. **19 Specialized Agents** - After `bmm_install`, switch agents using `Tab` key
|
|
37
|
+
3. **62 Workflow Skills** - After `bmm_install`, load skills via slash commands like `/bmad-bmm-create-prd`
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
41
|
## What's Included
|
|
42
42
|
|
|
43
|
-
### Agents (
|
|
43
|
+
### Agents (19)
|
|
44
44
|
|
|
45
45
|
| Agent | Name | Role |
|
|
46
46
|
|-------|------|------|
|
|
@@ -61,8 +61,10 @@ After installation, you have access to:
|
|
|
61
61
|
| `cis-storyteller` | Sophia | Master Storyteller |
|
|
62
62
|
| `core-bmad-master` | BMad Master | Workflow Orchestrator |
|
|
63
63
|
| `tea-tea` | Murat | Test Architect |
|
|
64
|
+
| `party-mode` | - | Multi-Agent Meeting Orchestrator |
|
|
65
|
+
| `gen-subagent` | - | Agent Factory (generates new agents) |
|
|
64
66
|
|
|
65
|
-
### Skills (
|
|
67
|
+
### Skills (62)
|
|
66
68
|
|
|
67
69
|
#### BMM Module (Development Lifecycle)
|
|
68
70
|
- `bmad-bmm-create-product-brief` - Create product briefs
|
|
@@ -77,6 +79,7 @@ After installation, you have access to:
|
|
|
77
79
|
- `bmad-bmm-code-review` - Adversarial code review
|
|
78
80
|
- `bmad-bmm-sprint-planning` - Sprint planning
|
|
79
81
|
- `bmad-bmm-sprint-status` - Sprint status tracking
|
|
82
|
+
- `bmad-bmm-dev-team-mode` - Parallel development orchestrator
|
|
80
83
|
- `bmad-bmm-retrospective` - Sprint retrospectives
|
|
81
84
|
- `bmad-bmm-quick-spec` - Quick tech specs
|
|
82
85
|
- `bmad-bmm-quick-dev` - Quick development
|
|
@@ -135,6 +138,39 @@ Load the bmad-bmm-create-prd skill and help me create a PRD
|
|
|
135
138
|
|
|
136
139
|
---
|
|
137
140
|
|
|
141
|
+
## Update / Upgrade
|
|
142
|
+
|
|
143
|
+
### For Humans
|
|
144
|
+
|
|
145
|
+
Paste this into your LLM agent session:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Upgrade bmm-opencode by following the instructions here:
|
|
149
|
+
https://raw.githubusercontent.com/Jack-R-Hong/BMM-opencode/refs/heads/main/docs/upgrade.md
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### For LLM Agents
|
|
153
|
+
|
|
154
|
+
Fetch the upgrade guide and follow it:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
curl -s https://raw.githubusercontent.com/Jack-R-Hong/BMM-opencode/refs/heads/main/docs/upgrade.md
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### Version History
|
|
163
|
+
|
|
164
|
+
| Version | Agents | Skills | Changes |
|
|
165
|
+
|---------|--------|--------|---------|
|
|
166
|
+
| 1.3.1 | 19 | 62 | Party-mode: agent titles with first impressions |
|
|
167
|
+
| 1.3.0 | 19 | 62 | Added `dev-team-mode` parallel development orchestrator |
|
|
168
|
+
| 1.2.0 | 19 | 61 | Added `party-mode`, `gen-subagent`, upgrade docs |
|
|
169
|
+
| 1.1.0 | 17 | 61 | Added bmad-opencode-converter integration |
|
|
170
|
+
| 1.0.1 | 17 | 61 | Initial release |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
138
174
|
## Source
|
|
139
175
|
|
|
140
176
|
This package is generated from [BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD) using [BMM-opencode-converter](https://github.com/Jack-R-Hong/BMM-opencode-converter).
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA8NlD,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA8NlD,eAAO,MAAM,SAAS,EAAE,MAkLvB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -270,9 +270,45 @@ ${skills.map((s) => `- ${s.name}: ${s.frontmatter.description}`).join("\n")}
|
|
|
270
270
|
},
|
|
271
271
|
async execute(args, context) {
|
|
272
272
|
const globalConfigDir = join(homedir(), ".config", "opencode");
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
|
|
273
|
+
const localConfigDir = args.target || join(context.directory, ".opencode");
|
|
274
|
+
let targetBase;
|
|
275
|
+
let autoDetected = false;
|
|
276
|
+
if (args.global) {
|
|
277
|
+
targetBase = globalConfigDir;
|
|
278
|
+
}
|
|
279
|
+
else if (args.target) {
|
|
280
|
+
targetBase = args.target;
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
const globalAgentsDir = join(globalConfigDir, "agents");
|
|
284
|
+
const localAgentsDir = join(localConfigDir, "agents");
|
|
285
|
+
const hasBmmAgent = (dir) => {
|
|
286
|
+
if (!existsSync(dir))
|
|
287
|
+
return false;
|
|
288
|
+
const files = readdirSync(dir);
|
|
289
|
+
return files.some((f) => f.startsWith("bmm-") || f.startsWith("cis-") || f.startsWith("core-") || f.startsWith("tea-") || f === "party-mode.md" || f === "gen-subagent.md");
|
|
290
|
+
};
|
|
291
|
+
const globalHasBmm = hasBmmAgent(globalAgentsDir);
|
|
292
|
+
const localHasBmm = hasBmmAgent(localAgentsDir);
|
|
293
|
+
if (globalHasBmm && !localHasBmm) {
|
|
294
|
+
targetBase = globalConfigDir;
|
|
295
|
+
autoDetected = true;
|
|
296
|
+
}
|
|
297
|
+
else if (globalHasBmm && localHasBmm) {
|
|
298
|
+
return `BMM agents found in BOTH locations:
|
|
299
|
+
- Global: ${globalConfigDir}
|
|
300
|
+
- Local: ${localConfigDir}
|
|
301
|
+
|
|
302
|
+
Please specify which to update:
|
|
303
|
+
- \`bmm_install({ global: true, force: true })\` for global
|
|
304
|
+
- \`bmm_install({ force: true })\` will default to local
|
|
305
|
+
|
|
306
|
+
To avoid confusion, consider removing one installation.`;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
targetBase = localConfigDir;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
276
312
|
try {
|
|
277
313
|
const targetAgents = join(targetBase, "agents");
|
|
278
314
|
const targetSkills = join(targetBase, "skills");
|
|
@@ -300,13 +336,15 @@ Use \`force=true\` to overwrite, or remove existing files first.`;
|
|
|
300
336
|
writeSkillFile(targetBase, skill);
|
|
301
337
|
skillsCopied++;
|
|
302
338
|
}
|
|
303
|
-
const
|
|
339
|
+
const isGlobal = targetBase === globalConfigDir;
|
|
340
|
+
const installType = isGlobal ? "globally" : "to project";
|
|
304
341
|
const source = hasBmadSource() ? "converted from BMAD source" : "from bundled files";
|
|
342
|
+
const autoNote = autoDetected ? `\n\nNote: Auto-detected existing global installation at ${globalConfigDir}` : "";
|
|
305
343
|
return `Successfully installed BMM-OpenCode ${installType} (${targetBase}):
|
|
306
344
|
- ${agentsCopied} agents copied to ${targetAgents}
|
|
307
345
|
- ${skillsCopied} skills copied to ${targetSkills}
|
|
308
346
|
|
|
309
|
-
Source: ${source}
|
|
347
|
+
Source: ${source}${autoNote}
|
|
310
348
|
|
|
311
349
|
Restart OpenCode to use the new agents and skills.`;
|
|
312
350
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bmm-opencode",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "BMAD-METHOD agents and skills for OpenCode - AI agent framework with
|
|
3
|
+
"version": "1.3.1",
|
|
4
|
+
"description": "BMAD-METHOD agents and skills for OpenCode - AI agent framework with 19 specialized agents and 62 workflow skills",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"type": "module",
|