convoke-agents 3.2.0 → 3.2.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/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  Agent teams for complex systems
11
11
  ```
12
12
 
13
- [![Version](https://img.shields.io/badge/version-3.1.0-blue)](https://github.com/amalik/convoke-agents)
13
+ [![Version](https://img.shields.io/badge/version-3.2.0-blue)](https://github.com/amalik/convoke-agents)
14
14
  [![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
15
15
 
16
16
  </div>
@@ -22,11 +22,11 @@ Convoke extends AI agents with two types of installable modules: **Teams** bring
22
22
  | **Vortex** | 7 agents, 22 workflows | Product discovery — from user insight to evidence-based decisions |
23
23
  | **Gyre** | 4 agents, 7 workflows | Production readiness — from stack detection to gap analysis |
24
24
 
25
- ### What's New
25
+ ### What's New in 3.2
26
26
 
27
- - **Gyre team** — 4 agents analyze your project's production readiness: detect your stack, model what "ready" looks like, find what's missing, and help you act on it
28
- - **Team Factory** — guided workflow for creating new BMAD-compliant teams from scratch (`/bmad-team-factory`)
29
- - **Skill Validator** — new `validateSkill()` quality gate in the update system for factory-generated skills ([development docs](docs/development.md))
27
+ - **Portable skills** — export any BMAD skill to a standalone format with platform adapters for Claude, Copilot, and Cursor (`npx convoke-export <skill>`)
28
+ - **Team Factory ships** — the module for creating new BMAD-compliant teams is now included in the npm package
29
+ - **1,123 tests** — test infrastructure recovery resolved a phantom-test bug class; test gate tripled from 320+ to 1,123 verified-passing tests
30
30
  - See the [CHANGELOG](CHANGELOG.md) for the full release details
31
31
 
32
32
  ---
@@ -221,6 +221,26 @@ Three capabilities:
221
221
  - **Add Agent** — extend an existing team with a new agent
222
222
  - **Add Skill** — give an existing agent a new workflow
223
223
 
224
+ ### Portability — Export Skills Anywhere
225
+
226
+ Take any BMAD skill and export it to a standalone, LLM-agnostic format that works outside Claude Code:
227
+
228
+ ```bash
229
+ npx convoke-export bmad-brainstorming --output ./exported
230
+ ```
231
+
232
+ The export engine transforms skill workflows into self-contained instruction documents, then generates platform-specific adapter files:
233
+
234
+ | Platform | Adapter output (written inside the export target) |
235
+ |----------|---------------|
236
+ | Claude | `{target}/CLAUDE.md` commands |
237
+ | GitHub Copilot | `{target}/.github/copilot-instructions.md` |
238
+ | Cursor | `{target}/.cursor/rules/` |
239
+
240
+ Skills are classified by tier: **standalone** skills export cleanly, **light-deps** skills include dependency notes, and **pipeline** skills (multi-step orchestration) are flagged as non-portable.
241
+
242
+ Four skills support the workflow: `bmad-export-skill` (export), `bmad-validate-exports` (validate), `bmad-generate-catalog` (catalog README), `bmad-seed-catalog` (full catalog repo).
243
+
224
244
  ### Enhance — Agent Skills
225
245
 
226
246
  Skills give existing agents new workflows — installed via menu patching, not agent modification. The first skill adds RICE-scored backlog management to the PM agent:
@@ -349,11 +369,17 @@ your-project/
349
369
  │ │ ├── contracts/ # Artifact contract schemas (GC1-GC4)
350
370
  │ │ ├── guides/ # User guides (all 4 agents)
351
371
  │ │ └── config.yaml # Configuration
352
- └── _enhance/ # Skill: Agent Capability Upgrades
353
- ├── workflows/ # Skill workflows (initiatives-backlog)
354
- ├── extensions/ # Agent menu patch descriptors
355
- ├── guides/ # Module author guide
356
- └── config.yaml # Configuration
372
+ ├── _enhance/ # Skill: Agent Capability Upgrades
373
+ ├── workflows/ # Skill workflows (initiatives-backlog)
374
+ ├── extensions/ # Agent menu patch descriptors
375
+ ├── guides/ # Module author guide
376
+ └── config.yaml # Configuration
377
+ │ ├── _portability/ # Skill: Export skills to other platforms
378
+ │ │ └── skills/ # Export, validate, catalog, seed workflows
379
+ │ ├── _team-factory/ # Skill: Create new BMAD-compliant teams
380
+ │ │ └── lib/ # Factory generators and validators
381
+ │ └── _artifacts/ # Skill: Artifact governance & portfolio
382
+ │ └── workflows/ # Migrate artifacts, portfolio status
357
383
  └── _bmad-output/
358
384
  ├── vortex-artifacts/ # Vortex generated artifacts
359
385
  └── gyre-artifacts/ # Gyre generated artifacts
@@ -419,6 +445,7 @@ See [UPDATE-GUIDE.md](UPDATE-GUIDE.md) for migration paths and troubleshooting.
419
445
  - **v1.x** — Vortex foundation: 7 agents, 22 workflows, update system, CI/CD
420
446
  - **v2.0** — Product renamed to Convoke. CLI commands: `convoke-*`. Package: `convoke-agents`
421
447
  - **v2.x** — Enhance module (Skills architecture, RICE initiatives-backlog), Gyre team (production readiness, 4 agents), Team Factory
448
+ - **v3.x** — Artifact governance, portfolio intelligence, portability system (export to Claude/Copilot/Cursor), 1,123 tests
422
449
  - **Next** — Forge (domain knowledge extraction for enterprise brownfield engagements)
423
450
  - **Future** — Additional teams, Forge-Gyre integration, cross-team workflows
424
451
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "convoke-agents",
3
- "version": "3.2.0",
3
+ "version": "3.2.1",
4
4
  "description": "Agent teams for complex systems, compatible with BMad Method",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -78,6 +78,7 @@
78
78
  },
79
79
  "dependencies": {
80
80
  "chalk": "^4.1.2",
81
+ "convoke-agents": "^3.2.0",
81
82
  "fs-extra": "^11.3.3",
82
83
  "gray-matter": "^4.0.3",
83
84
  "js-yaml": "^4.1.0",
@@ -34,7 +34,7 @@ const INTENT_TO_HEADING = {
34
34
  'write-documentation': 'I need to write documentation',
35
35
  'plan-your-work': 'I need to plan my work',
36
36
  'test-your-code': 'I need to test my code',
37
- 'discover-product-fit': 'I need to discover product-market fit',
37
+ 'discover-product-fit': 'I need to run continuous product discovery',
38
38
  'assess-readiness': 'I need to assess production readiness',
39
39
  'meta-platform': null, // excluded from catalog
40
40
  };
@@ -172,6 +172,22 @@ const CIS_SKILL_TO_AGENT = {
172
172
  'bmad-cis-problem-solving': 'bmad-cis-agent-creative-problem-solver',
173
173
  };
174
174
 
175
+ // BME agent short-name mapping (agent-manifest uses short names like "Emma")
176
+ const BME_SKILL_TO_AGENT = {
177
+ 'bmad-agent-bme-contextualization-expert': 'Emma',
178
+ 'bmad-agent-bme-discovery-empathy-expert': 'Isla',
179
+ 'bmad-agent-bme-research-convergence-specialist': 'Mila',
180
+ 'bmad-agent-bme-hypothesis-engineer': 'Liam',
181
+ 'bmad-agent-bme-lean-experiments-specialist': 'Wade',
182
+ 'bmad-agent-bme-production-intelligence-specialist': 'Noah',
183
+ 'bmad-agent-bme-learning-decision-expert': 'Max',
184
+ 'bmad-agent-bme-stack-detective': 'Scout',
185
+ 'bmad-agent-bme-model-curator': 'Atlas',
186
+ 'bmad-agent-bme-readiness-analyst': 'Lens',
187
+ 'bmad-agent-bme-review-coach': 'Coach',
188
+ 'bmad-agent-bme-team-factory': 'Loom Master',
189
+ };
190
+
175
191
  function findAgentMatch(skillName, agents) {
176
192
  // Strategy 1: exact name match
177
193
  let agent = agents.find((a) => a.name === skillName);
@@ -194,6 +210,13 @@ function findAgentMatch(skillName, agents) {
194
210
  if (agent) return agent;
195
211
  }
196
212
 
213
+ // Strategy 2c: BME agent short-name mapping (Emma, Isla, Scout, etc.)
214
+ const bmeShortName = BME_SKILL_TO_AGENT[skillName];
215
+ if (bmeShortName) {
216
+ agent = agents.find((a) => a.name === bmeShortName);
217
+ if (agent) return agent;
218
+ }
219
+
197
220
  return null;
198
221
  }
199
222
 
@@ -207,7 +230,7 @@ function findAgentMatch(skillName, agents) {
207
230
  function resolvePersonaSummary(skillName, agents) {
208
231
  const agent = findAgentMatch(skillName, agents);
209
232
  if (agent) {
210
- return { name: agent.displayName, icon: agent.icon || '' };
233
+ return { name: agent.displayName || agent.name, icon: agent.icon || '' };
211
234
  }
212
235
  return { name: humanizeSkillName(skillName), icon: '🔧' };
213
236
  }