convoke-agents 3.2.0 → 3.3.0

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 (38) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +40 -11
  3. package/_bmad/bme/README.md +36 -0
  4. package/_bmad/bme/_enhance/workflows/initiatives-backlog/SKILL.md +1 -1
  5. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-01-init.md +55 -32
  6. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-02-gather.md +62 -59
  7. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-qualify.md +176 -0
  8. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-generate.md +259 -0
  9. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-01-load.md +65 -35
  10. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-02-rescore.md +60 -30
  11. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-03-update.md +67 -71
  12. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-01-ingest.md +12 -12
  13. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-02-extract.md +49 -44
  14. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-qualify.md +192 -0
  15. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-04-update.md +72 -67
  16. package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/backlog-format-spec.md +223 -112
  17. package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/lifecycle-process-spec.md +188 -0
  18. package/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md +44 -31
  19. package/_bmad/bme/_gyre/config.yaml +3 -0
  20. package/_bmad/bme/_vortex/config.yaml +4 -1
  21. package/package.json +2 -1
  22. package/scripts/convoke-doctor.js +56 -2
  23. package/scripts/lib/artifact-utils.js +16 -3
  24. package/scripts/migrate-artifacts.js +3 -2
  25. package/scripts/portability/catalog-generator.js +1 -1
  26. package/scripts/portability/convoke-export.js +26 -5
  27. package/scripts/portability/export-engine.js +34 -9
  28. package/scripts/portability/seed-catalog-repo.js +6 -6
  29. package/scripts/portability/validate-exports.js +25 -14
  30. package/scripts/update/convoke-update.js +27 -2
  31. package/scripts/update/lib/changelog-reader.js +90 -0
  32. package/scripts/update/lib/config-merger.js +52 -1
  33. package/scripts/update/lib/refresh-installation.js +48 -9
  34. package/scripts/update/lib/taxonomy-merger.js +2 -1
  35. package/scripts/update/lib/validator.js +9 -1
  36. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-score.md +0 -146
  37. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-prioritize.md +0 -181
  38. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-score.md +0 -147
package/CHANGELOG.md CHANGED
@@ -7,6 +7,74 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [3.3.0] - 2026-04-19
11
+
12
+ ### Added
13
+
14
+ - **Convoke Operator Covenant** (P21 Epic 1) — New architectural contract governing operator experience across all Convoke skills. Axiom *"the operator is the resolver"* + 7 Operator Rights (default, full universe, rationale, completeness, pause, next action, pacing). Compliance Checklist (OC-R0..OC-R7) with 3-layer audit scope, 6 status values, reproducibility-gate methodology. New `covenant` artifact type in taxonomy. Artifacts: `convoke-covenant-operator.md`, `convoke-spec-covenant-compliance-checklist.md`, Epic 1 story set `oc-1-1`..`oc-1-5` + retro.
15
+ - **User agent exclusions** (U8) — `excluded_agents: []` field in `_bmad/bme/_vortex/config.yaml` and `_bmad/bme/_gyre/config.yaml`. `mergeConfig`, `refresh-installation`, `validator`, and `convoke-doctor` all honor exclusions — agent files, user guides, skill wrappers, and manifest rows skip excluded agents. 14 new tests.
16
+ - **Update-time changelog display** (U7) — `convoke-update` now surfaces a "What's New" block from `CHANGELOG.md` before confirming refresh/upgrade. New `scripts/update/lib/changelog-reader.js` with Keep-a-Changelog header parsing (incl. pre-release semver). 15 new tests.
17
+ - **`convoke-export --quiet`** (I50) — `-q` / `--quiet` flag suppresses per-skill stdout in batch mode; failures (stderr) and single-line summary always emit. Batch dry-run output drops 50 → 1 lines. 6 new integration tests.
18
+ - **Capability Evaluation Framework** (P10) + **Friction Log Template** (P11) — Operationalized from archive to `_bmad-output/planning-artifacts/`. Referenced from initiative-lifecycle §1.2 as the qualifying gate for capability-type intakes.
19
+ - **Staleness pre-flight rule** (A27, Phase 1) — `staleness-preflight-for-backlog-pickup` rule in `project-context.md` with four checks (existence, dependency, code-anchor validity, semantic-anchor) + GREEN/YELLOW/RED verdict semantics + four exemption classes.
20
+ - **Review convergence rule** (A7) — R1 mandatory, R2 only if HIGH, R3 only if structural changes, no R4. Encoded in `project-context.md` and `bmad-code-review` skill's `step-04-present.md`.
21
+ - **Mechanical research protocol** (A5) — New `mechanical-research-enumeration` rule: catalog/audit/inventory deliverables must enumerate via `grep`/`glob` with raw output as evidence.
22
+ - **Reproducibility gate for multi-skill audits** (A10) — v2+ Covenant audits cover ≥3 cells (expected-PASS + expected-FAIL + borderline) at 100% agreement at N=3-4 / ≥80% at N≥5. Four-path failure-mode handling (revise / DISPUTED-exclude with N-recomputation / methodology-invalid / shrink-scope).
23
+ - **OC-R6 external-declared escape hatch** (A15) — 6th Compliance Status value `N/A — external-declared (<tool>)` for skills wrapping external CLIs (git, npm, docker) whose stderr they can't rewrite. Required evidence-note template `Layers: L1 PASS (<ref>), L2 PASS (<ref>), L3 external-declared (<tool>)`.
24
+ - **4 new `project-context.md` rules** (I49) — `derive-counts-from-source` (no hardcoded counts), `shared-test-constants` (import from shared files), `catch-all-phase-review` (review fallback matcher output before shipping), `spec-verify-referenced-files` (existence-check file paths in specs).
25
+
26
+ ### Changed
27
+
28
+ - **`generateGovernanceADR`** (BUG-1) — Platform-initiative and artifact-type counts/lists now derived from `taxonomy.yaml` (was hardcoded `(8)` / `(21)`; taxonomy now carries 23 types and any number of initiatives). Call site `scripts/migrate-artifacts.js` passes the loaded taxonomy through.
29
+ - **OC-R7 doc-mapping clarified** (A12) — Compliance Checklist doc rule now uses cumulative vocabulary (concepts introduced in earlier Covenant sections are pre-existing for later sections); example/anti-pattern illustrations don't count as novel when they illustrate an already-introduced concept.
30
+
31
+ ### Fixed
32
+
33
+ - **`runScript` test helper hardened** (I64) — `tests/helpers.js` timeout handling: `exitCode` is now always a finite integer (was `null` on `execFile` timeout, surfacing as opaque `null !== 0` in any CLI-integration test hitting a timeout). New `timedOut` and `signal` fields surface distinct timeout semantics. Pre-existing helper bug surfaced by T4 code-review warning guard. 4 new tests in `tests/unit/helpers.test.js` lock the contract. First application of A27 staleness pre-flight (all 4 checks GREEN).
34
+
35
+ ### Documentation
36
+
37
+ - **`_bmad/bme/README.md`** (D8) — New `## Files at _bmad/bme/ root` section listing `config.yaml` with a one-line description. Placed between the Submodules table (directories) and the "When to add here vs upstream" guidance.
38
+ - **`docs/README.md`** (D9) — New docs index with Covenant pointer as the featured callout. Contents table enumerates the 6 contributor-facing docs; cross-refs to repo README, bme README, and `project-context.md`.
39
+
40
+ ### Infrastructure / Tests
41
+
42
+ - **Python CI + linting + PEP 723** (T6, T7, T8) — New `python-test` GitHub Actions job running 116+ Python tests across 5 files; `ruff` linter added with `ruff.toml` (40 auto-fixes + 3 manual); PEP 723 inline metadata standardized with `pyyaml>=6.0` pinning and `>=3.9` version floors (24/24 files covered). Publish gate updated. Resolves Gyre DL-001 blocker.
43
+ - **Migration idempotency CLI test** (T4) — New `tests/integration/migrate-artifacts-idempotency.test.js` with hermetic `git()` helper (timeout + inline `-c core.hooksPath=/dev/null` / `commit.gpgsign=false` / `GIT_TERMINAL_PROMPT=0`). 3 tests cover first-run rename + commits, second-run no-op (exit 0 + zero new commits), third-run resume on added ungoverned file.
44
+ - **Upgrade CLI end-to-end test** (T3) — New `tests/integration/upgrade-cli-e2e.test.js` exercises real `convoke-update --yes` child-process flow against a v1.7.x fixture (spans 1.7 → 2.0 rename + 2.0 → 3.1 migrations). 4 tests cover fresh-upgrade exit-0, full post-state verification (AGENT_FILES + WORKFLOW_NAMES + skill wrappers + agent-manifest.csv + deprecated-agent cleanup), and second-run refresh-only behavior.
45
+ - **Doctor BME skill-wrapper validation** (I43) — `checkAgentSkillWrappers()` validates all 12 bme agent skill wrappers.
46
+ - **Test count:** 1,253+ green (≈1,173 unit + 82 integration), up from 1,123 at 3.2.0.
47
+
48
+ ### Governance evidence (for Covenant adopters)
49
+
50
+ - **oc-1-1 baseline audit** — 8 skills × 7 rights = 56 cells. Overall compliance 82%. Migration and Portfolio calibration cases correctly identify scar-era violations; Portfolio is remediated.
51
+ - **A24 Vortex audit expansion** — 3 additional Vortex workflows scored at step-01 (`assumption-mapping`, `empathy-map`, `hypothesis-engineering`). **T1 FIRES for Vortex × Right to pacing** at 25% compliance (1/4 PASS, N=4). A10 reproducibility gate cleared 3/3 = 100% with 2 independent LLM reviewers. Two new Epic 2 Story 2.1 retrofit cells identified (assumption-mapping step-01 + hypothesis-engineering step-01), pending Epic 2 ratification.
52
+
53
+ ### Note
54
+
55
+ - v3.2.1 (2026-04-12) was a patch bump that was not documented in the changelog at the time. A retroactive entry is included below for audit completeness.
56
+
57
+ ---
58
+
59
+ ## [3.2.1] - 2026-04-12
60
+
61
+ Patch bump: portability-system hardening + bme agent coverage in catalog manifest + integration-test isolation fixes.
62
+
63
+ ### Added
64
+
65
+ - **bme agent rows in `_bmad/_config/skill-manifest.csv`** — 12 new rows (7 Vortex agents: Emma, Isla, Mila, Liam, Wade, Noah, Max; 4 Gyre agents; 1 team-factory agent) so `convoke-export` and the decision-tree catalog surface bme agents as portable skills. Required for v3.2.0 Portability System to cover discovery-side personas.
66
+
67
+ ### Changed
68
+
69
+ - **Portability Export Engine** (`scripts/portability/export-engine.js`) — Minor refinements to discovery-workflow export output.
70
+ - **Catalog Generator** (`scripts/portability/catalog-generator.js`) — Minor fix.
71
+
72
+ ### Fixed
73
+
74
+ - **Integration test isolation** — `tests/integration/cli-entry-points.test.js`, `convoke-doctor.test.js`, `postinstall.test.js`, and `tests/unit/docs-audit.test.js` refactored to use per-test `cliTmpDir` cwd instead of polluting repo root. `tests/helpers.js` supports the refactored pattern.
75
+
76
+ ---
77
+
10
78
  ## [3.2.0] - 2026-04-11
11
79
 
12
80
  ### Added
package/README.md CHANGED
@@ -10,23 +10,25 @@
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>
17
17
 
18
18
  Convoke extends AI agents with two types of installable modules: **Teams** bring new agents for a domain, **Skills** add new capabilities to existing agents. Install them independently or combine them.
19
19
 
20
+ > **Authoring a Convoke skill?** Required reading first: [The Convoke Operator Covenant](_bmad-output/planning-artifacts/convoke-covenant-operator.md) — one axiom and seven Operator Rights every Convoke skill must honor. The Covenant exists because operator-facing UX is an architectural concern in agent systems, not a styling concern; skills that violate it erode operator trust across the skill ecosystem, not just on their own surface.
21
+
20
22
  | Team | Agents | Domain |
21
23
  |------|--------|--------|
22
24
  | **Vortex** | 7 agents, 22 workflows | Product discovery — from user insight to evidence-based decisions |
23
25
  | **Gyre** | 4 agents, 7 workflows | Production readiness — from stack detection to gap analysis |
24
26
 
25
- ### What's New
27
+ ### What's New in 3.2
26
28
 
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))
29
+ - **Portable skills** — export any BMAD skill to a standalone format with platform adapters for Claude, Copilot, and Cursor (`npx convoke-export <skill>`)
30
+ - **Team Factory ships** — the module for creating new BMAD-compliant teams is now included in the npm package
31
+ - **1,123 tests** — test infrastructure recovery resolved a phantom-test bug class; test gate tripled from 320+ to 1,123 verified-passing tests
30
32
  - See the [CHANGELOG](CHANGELOG.md) for the full release details
31
33
 
32
34
  ---
@@ -221,6 +223,26 @@ Three capabilities:
221
223
  - **Add Agent** — extend an existing team with a new agent
222
224
  - **Add Skill** — give an existing agent a new workflow
223
225
 
226
+ ### Portability — Export Skills Anywhere
227
+
228
+ Take any BMAD skill and export it to a standalone, LLM-agnostic format that works outside Claude Code:
229
+
230
+ ```bash
231
+ npx convoke-export bmad-brainstorming --output ./exported
232
+ ```
233
+
234
+ The export engine transforms skill workflows into self-contained instruction documents, then generates platform-specific adapter files:
235
+
236
+ | Platform | Adapter output (written inside the export target) |
237
+ |----------|---------------|
238
+ | Claude | `{target}/CLAUDE.md` commands |
239
+ | GitHub Copilot | `{target}/.github/copilot-instructions.md` |
240
+ | Cursor | `{target}/.cursor/rules/` |
241
+
242
+ 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.
243
+
244
+ Four skills support the workflow: `bmad-export-skill` (export), `bmad-validate-exports` (validate), `bmad-generate-catalog` (catalog README), `bmad-seed-catalog` (full catalog repo).
245
+
224
246
  ### Enhance — Agent Skills
225
247
 
226
248
  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 +371,17 @@ your-project/
349
371
  │ │ ├── contracts/ # Artifact contract schemas (GC1-GC4)
350
372
  │ │ ├── guides/ # User guides (all 4 agents)
351
373
  │ │ └── 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
374
+ ├── _enhance/ # Skill: Agent Capability Upgrades
375
+ ├── workflows/ # Skill workflows (initiatives-backlog)
376
+ ├── extensions/ # Agent menu patch descriptors
377
+ ├── guides/ # Module author guide
378
+ └── config.yaml # Configuration
379
+ │ ├── _portability/ # Skill: Export skills to other platforms
380
+ │ │ └── skills/ # Export, validate, catalog, seed workflows
381
+ │ ├── _team-factory/ # Skill: Create new BMAD-compliant teams
382
+ │ │ └── lib/ # Factory generators and validators
383
+ │ └── _artifacts/ # Skill: Artifact governance & portfolio
384
+ │ └── workflows/ # Migrate artifacts, portfolio status
357
385
  └── _bmad-output/
358
386
  ├── vortex-artifacts/ # Vortex generated artifacts
359
387
  └── gyre-artifacts/ # Gyre generated artifacts
@@ -419,6 +447,7 @@ See [UPDATE-GUIDE.md](UPDATE-GUIDE.md) for migration paths and troubleshooting.
419
447
  - **v1.x** — Vortex foundation: 7 agents, 22 workflows, update system, CI/CD
420
448
  - **v2.0** — Product renamed to Convoke. CLI commands: `convoke-*`. Package: `convoke-agents`
421
449
  - **v2.x** — Enhance module (Skills architecture, RICE initiatives-backlog), Gyre team (production readiness, 4 agents), Team Factory
450
+ - **v3.x** — Artifact governance, portfolio intelligence, portability system (export to Claude/Copilot/Cursor), 1,123 tests
422
451
  - **Next** — Forge (domain knowledge extraction for enterprise brownfield engagements)
423
452
  - **Future** — Additional teams, Forge-Gyre integration, cross-team workflows
424
453
 
@@ -445,7 +474,7 @@ MIT License — see [LICENSE](LICENSE)
445
474
 
446
475
  ## Acknowledgments
447
476
 
448
- - [BMAD Method v6.0.0](https://github.com/bmadhub/bmad) — Foundation for agent architecture
477
+ - [BMAD Method v6.0.0](https://github.com/bmad-code-org) — Foundation for agent architecture
449
478
  - [Innovation Vortex](https://unfix.com/innovation-vortex) — Pattern from the [unFIX model](https://unfix.com/) by [Jurgen Appelo](https://jurgenappelo.com/)
450
479
  - Claude (Anthropic) — AI reasoning and agent development
451
480
 
@@ -0,0 +1,36 @@
1
+ # `_bmad/bme/` — Convoke-Owned Modules
2
+
3
+ This directory is Convoke's owned namespace — everything under `_bmad/bme/` is authored and maintained by the Convoke project, distinct from upstream BMAD Method modules (`_bmad/core/`, `_bmad/bmm/`, `_bmad/bmb/`, etc.).
4
+
5
+ > **Authoring a new skill, workflow, or agent in `_bmad/bme/`?** Required reading first: [The Convoke Operator Covenant](../../_bmad-output/planning-artifacts/convoke-covenant-operator.md) — one axiom and seven Operator Rights every Convoke skill must honor. The Covenant is what makes a `_bmad/bme/` skill a *Convoke* skill rather than a generic one; authoring without consulting it produces skills that may look structurally correct but violate the operator experience standard the rest of the ecosystem relies on.
6
+
7
+ ## Submodules
8
+
9
+ | Submodule | Purpose |
10
+ |-----------|---------|
11
+ | [`_artifacts/`](./_artifacts/) | Artifact governance — migration + portfolio |
12
+ | [`_enhance/`](./_enhance/) | Skill extensions — initiatives backlog, RICE scoring |
13
+ | [`_gyre/`](./_gyre/) | Gyre team — production readiness agents |
14
+ | [`_portability/`](./_portability/) | Skill export + catalog generation |
15
+ | [`_team-factory/`](./_team-factory/) | Loom — guided team creation |
16
+ | [`_vortex/`](./_vortex/) | Vortex team — 7-stream product discovery |
17
+ | `_config/` | Scaffolding (currently empty; reserved) |
18
+
19
+ ## Files at `_bmad/bme/` root
20
+
21
+ Alongside this README:
22
+
23
+ - [`config.yaml`](./config.yaml) — BME-level module configuration (operator name, languages, output folder). Each submodule in the table above carries its own `config.yaml` with submodule-specific values; the root file is a **sibling, not a parent** — it is not merged into or inherited by the submodules at runtime (verify: `scripts/convoke-doctor.js` and `scripts/update/lib/refresh-installation.js` only read submodule configs). Generated by the BMAD installer; preserved across `convoke-update`.
24
+
25
+ ## When to add here vs upstream
26
+
27
+ - **Add to `_bmad/bme/`** when the capability is Convoke-specific (operator-experience patterns, team-of-teams orchestration, Convoke's artifact governance).
28
+ - **Contribute upstream to BMAD Method** when the capability is generally useful across BMAD users (a new core agent pattern, a workflow primitive, a framework-level improvement).
29
+
30
+ Every story that adds or modifies a `_bmad/bme/` skill or workflow must include a **Namespace decision** note explaining why it belongs here rather than upstream (per `project-context.md` rule `namespace-decision-for-new-skills`).
31
+
32
+ ## Adjacent references
33
+
34
+ - [`../../project-context.md`](../../project-context.md) — project-wide rules AI agents must follow when editing this repo
35
+ - [`../../_bmad-output/planning-artifacts/convoke-covenant-operator.md`](../../_bmad-output/planning-artifacts/convoke-covenant-operator.md) — the operator-experience standard all `_bmad/bme/` skills must honor
36
+ - [`../../_bmad-output/planning-artifacts/convoke-spec-covenant-compliance-checklist.md`](../../_bmad-output/planning-artifacts/convoke-spec-covenant-compliance-checklist.md) — the auditable form of the Covenant
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bmad-enhance-initiatives-backlog
3
- description: 'Manage RICE initiatives backlog — triage review findings, rescore existing items, or bootstrap new backlogs. Use when the user says triage findings or manage backlog.'
3
+ description: 'Manage lane-aware initiative lifecycle backlog — triage findings into intakes and qualify into Bug/Fast/Initiative lanes, rescore lane items, or bootstrap a new lifecycle backlog. Use when the user says triage findings, qualify intakes, or manage backlog.'
4
4
  ---
5
5
 
6
6
  IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL {project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md, READ its entire contents and follow its directions exactly!
@@ -1,9 +1,10 @@
1
1
  ---
2
2
  name: 'step-c-01-init'
3
- description: 'Check for existing backlog, warn on overwrite, initialize new backlog using format spec'
3
+ description: 'Check for existing lifecycle backlog, warn on overwrite, initialize new session using format spec + lifecycle process spec'
4
4
  nextStepFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-02-gather.md'
5
- outputFile: '{planning_artifacts}/initiatives-backlog.md'
5
+ outputFile: '{planning_artifacts}/convoke-note-initiative-lifecycle-backlog.md'
6
6
  templateFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/backlog-format-spec.md'
7
+ processFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/lifecycle-process-spec.md'
7
8
  workflowFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md'
8
9
  ---
9
10
 
@@ -11,7 +12,7 @@ workflowFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/w
11
12
 
12
13
  ## STEP GOAL:
13
14
 
14
- Check whether a backlog file already exists at the output location, warn the user if so, and initialize a new backlog session using the backlog format specification.
15
+ Check whether a lifecycle backlog file already exists at the output location, warn the user if so, and initialize a new session by loading the backlog format specification and the canonical lifecycle process spec (Part 1 source).
15
16
 
16
17
  ## MANDATORY EXECUTION RULES (READ FIRST):
17
18
 
@@ -19,28 +20,30 @@ Check whether a backlog file already exists at the output location, warn the use
19
20
  - 🛑 NEVER generate content without user input at overwrite prompt
20
21
  - 📖 CRITICAL: Read this complete step file before taking action
21
22
  - 🔄 CRITICAL: When loading next step with 'C', read the entire file
22
- - 📋 YOU ARE AN INITIALIZATION SPECIALIST setting up a new backlog
23
+ - 📋 YOU ARE AN INITIALIZATION SPECIALIST setting up a new lifecycle backlog
23
24
 
24
25
  ### Role Reinforcement:
25
26
  - ✅ You are an **initialization specialist** — your job is to guard against accidental overwrites and prepare the session
26
- - ✅ Do not gather initiatives, score items, or write the backlog file — those are later steps
27
+ - ✅ Do not gather intakes, qualify items, or write the backlog file — those are later steps
27
28
  - ✅ The user must explicitly confirm before any existing file is overwritten
29
+ - ✅ Load both the **format spec** (structure) and the **lifecycle process spec** (Part 1 verbatim content)
28
30
 
29
31
  ### Step-Specific Rules:
30
- - 🎯 Focus ONLY on existing file detection, overwrite confirmation, and session setup
31
- - 🚫 FORBIDDEN to gather initiatives (that is step-c-02's job)
32
- - 🚫 FORBIDDEN to score items (that is step-c-03's job)
32
+ - 🎯 Focus ONLY on existing file detection, overwrite confirmation, and template loading
33
+ - 🚫 FORBIDDEN to gather intakes (that is step-c-02's job)
34
+ - 🚫 FORBIDDEN to qualify items (that is step-c-03's job)
33
35
  - 🚫 FORBIDDEN to write the backlog file (that is step-c-04's job)
34
36
  - 💬 Approach: check file, warn if needed, confirm readiness, move on
35
37
 
36
38
  ## EXECUTION PROTOCOLS:
37
39
  - 🎯 Follow the MANDATORY SEQUENCE exactly
38
- - 📖 Load `{templateFile}` (backlog-format-spec.md) for structural reference the format spec defines the file structure that step-c-04 will generate
40
+ - 📖 Load `{templateFile}` (backlog-format-spec.md) — file structure and table formats
41
+ - 📖 Load `{processFile}` (lifecycle-process-spec.md) — canonical Part 1 verbatim text for emission in step-c-04
39
42
 
40
43
  ## CONTEXT BOUNDARIES:
41
- - Available context: Enhance config (loaded by workflow.md), existing backlog file (if present), backlog format spec template
44
+ - Available context: Enhance config (loaded by workflow.md), existing backlog file (if present), both template files
42
45
  - Focus: File existence check and session initialization only
43
- - Limits: Do NOT gather, score, or write anything
46
+ - Limits: Do NOT gather, qualify, or write anything
44
47
  - Dependencies: workflow.md C dispatch (Create mode selected)
45
48
 
46
49
  ## MANDATORY SEQUENCE
@@ -53,11 +56,13 @@ Check if a backlog file exists at `{outputFile}`.
53
56
 
54
57
  - **If found:** Display:
55
58
 
56
- > **⚠️ Existing backlog detected at `{outputFile}`.**
59
+ > **⚠️ Existing lifecycle backlog detected at `{outputFile}`.**
57
60
  >
58
- > Create mode will generate a **new** backlog file, replacing the existing one. All current backlog data will be lost.
61
+ > Create mode will generate a **new** backlog file, replacing the existing one. All current data — including Part 2 lanes, Intakes, Absorbed records, and Change Log — will be **lost**.
59
62
  >
60
- > **[Y] Yes, overwrite and create new backlog**
63
+ > Consider using **Triage (T)** or **Review (R)** mode instead if you want to preserve existing data.
64
+ >
65
+ > **[Y] Yes, overwrite and create new lifecycle backlog**
61
66
  > **[X] Cancel and return to mode selection**
62
67
 
63
68
  **ALWAYS halt and wait for user input.**
@@ -68,39 +73,57 @@ Check if a backlog file exists at `{outputFile}`.
68
73
 
69
74
  - **If NOT found:** Continue to step 1 silently.
70
75
 
71
- ### 1. Load Backlog Format Specification
76
+ ### 1. Load Format Specification
72
77
 
73
78
  Load `{templateFile}` (backlog-format-spec.md) and internalize:
74
- - **Section hierarchy** — All 7 required H2 sections and their order
75
- - **Table formats** — Category table (10 columns), Prioritized View (6 columns), Exploration Candidates (4 columns)
76
- - **Category names** Existing convention (Documentation & Onboarding, Update & Migration System, etc.)
77
- - **Item ID format** Category prefix letter + sequential number
78
- - **Provenance format** — "Added from Create mode, [date]"
79
- - **Changelog format** Table with Date and Change columns, newest first
79
+ - **Frontmatter schema**
80
+ - **Section hierarchy** — Part 1 (semi-static), Part 2 (lanes), Appendix, Change Log
81
+ - **Table formats** per lane
82
+ - **Insertion rules** and **Pre-Write Validation** requirements
83
+
84
+ ### 2. Load Lifecycle Process Spec
85
+
86
+ Load `{processFile}` (lifecycle-process-spec.md) and internalize:
87
+ - The **verbatim Part 1 content** (§1.1 through §1.6) — this is the canonical process definition that step-c-04 will emit exactly
88
+ - Step-c-04 will copy this text verbatim into `## Part 1: Lifecycle Process` of the new backlog file
80
89
 
81
- ### 2. Confirm Session Ready
90
+ ### 3. Confirm Session Ready
82
91
 
83
92
  Display:
84
93
 
85
- > **Create Mode — New Backlog Initialized**
94
+ > **Create Mode — New Lifecycle Backlog Initialized**
86
95
  >
87
- > A new RICE-scored backlog will be created at `{outputFile}`.
96
+ > A new lifecycle backlog will be generated at `{outputFile}`.
88
97
  >
89
- > **Next:** You'll describe your initiatives one at a time — title, description, and category. Then we'll score them using RICE methodology and generate your prioritized backlog.
98
+ > **What will be created:**
99
+ > - Frontmatter (initiative: convoke, artifact_type: note, ...)
100
+ > - Part 1: Lifecycle Process (semi-static, from lifecycle-process-spec.md)
101
+ > - Part 2: Backlog (empty lane tables — §2.1 Intakes, §2.2 Bug, §2.3 Fast, §2.4 Initiative, §2.5 Absorbed/Archived)
102
+ > - Appendix: Initiative Details (empty)
103
+ > - Change Log (initial creation entry)
104
+ >
105
+ > **Next:** Optionally gather initial intakes and run them through the qualifying gate. You can also create an empty backlog and populate later via Triage mode.
106
+
107
+ ### 4. Present MENU OPTIONS
90
108
 
91
- ### 3. Present MENU OPTIONS
109
+ Display:
92
110
 
93
- Display: "**Select:** [C] Continue to initiative gathering"
111
+ > **Select:**
112
+ > - **[C] Continue** — gather initial intakes now
113
+ > - **[E] Empty create** — generate empty backlog and skip intake gathering / qualification (go directly to step-c-04)
114
+ > - **[X] Cancel** — return to T/R/C menu
94
115
 
95
116
  #### Menu Handling Logic:
96
- - IF C: Load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-02-gather.md`
97
- - IF any other input: Display "Enter **C** to continue to initiative gathering." then redisplay menu
117
+ - IF C: Load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-02-gather.md`.
118
+ - IF E: Skip gathering and qualification. Load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-generate.md` with empty `gathered_items` and empty `qualified_items`.
119
+ - IF X: Display "Cancelling Create mode." then load, read, and execute `{workflowFile}`.
120
+ - IF any other input: Display "Unknown option. Use **C**, **E**, or **X**." then redisplay menu.
98
121
 
99
122
  #### EXECUTION RULES:
100
123
  - ALWAYS halt and wait for user input after presenting the menu
101
- - ONLY proceed to next step when user selects 'C'
124
+ - ONLY proceed to next step when user selects C, E, or X
102
125
 
103
126
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
104
- ### ✅ SUCCESS: Existing file check performed, overwrite warning shown if needed, format spec loaded, session initialized, proceeding to step-c-02
105
- ### ❌ SYSTEM FAILURE: Existing file overwritten without warning, format spec not loaded, initiatives gathered prematurely, user not given overwrite choice
127
+ ### ✅ SUCCESS: Existing file check performed, overwrite warning shown if needed, both templates loaded (format spec + process spec), session initialized, user chose gather/empty/cancel, proceeding appropriately
128
+ ### ❌ SYSTEM FAILURE: Existing file overwritten without warning, templates not loaded, intakes gathered prematurely, user not given overwrite choice, empty-create path missing
106
129
  **Master Rule:** Skipping steps is FORBIDDEN.
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: 'step-c-02-gather'
3
- description: 'Interactively gather initiatives from the Product Owner with title, description, and category'
4
- nextStepFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-score.md'
5
- outputFile: '{planning_artifacts}/initiatives-backlog.md'
3
+ description: 'Interactively gather initial intakes (unqualified findings) for the new lifecycle backlog'
4
+ nextStepFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-qualify.md'
5
+ outputFile: '{planning_artifacts}/convoke-note-initiative-lifecycle-backlog.md'
6
6
  templateFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/backlog-format-spec.md'
7
7
  advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
8
8
  partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
9
9
  ---
10
10
 
11
- # Step 2: Interactive Initiative Gathering
11
+ # Step 2: Interactive Intake Gathering
12
12
 
13
13
  ## STEP GOAL:
14
14
 
15
- Interactively gather initiatives from the Product Owner — each with a title, description, and category — building a list for RICE scoring in the next step.
15
+ Gather initial intakes from the user — each with a description and source — building a list that will pass through the qualifying gate in step-c-03. These items become Intake rows in §2.1 of the new lifecycle backlog; lane assignment happens only if the user runs qualification.
16
16
 
17
17
  ## MANDATORY EXECUTION RULES (READ FIRST):
18
18
 
@@ -20,30 +20,29 @@ Interactively gather initiatives from the Product Owner — each with a title, d
20
20
  - 🛑 NEVER generate content without user input
21
21
  - 📖 CRITICAL: Read this complete step file before taking action
22
22
  - 🔄 CRITICAL: When loading next step with 'C', read the entire file
23
- - 📋 YOU ARE A GATHERING FACILITATOR collecting initiative descriptions
23
+ - 📋 YOU ARE A GATHERING FACILITATOR collecting intake descriptions
24
24
 
25
25
  ### Role Reinforcement:
26
- - ✅ You are a **gathering facilitator** — your job is to collect and organize, not to score or write
27
- - ✅ Accept the user's descriptions faithfully — do not rewrite, editorialize, or merge initiatives
28
- - ✅ Suggest existing category names from the format spec but allow new categories
29
- - ✅ The user decides how many initiatives to add — you prompt until they say done
26
+ - ✅ You are a **gathering facilitator** — collect and organize, do not qualify or score
27
+ - ✅ Accept the user's descriptions faithfully — do not rewrite, editorialize, or merge intakes
28
+ - ✅ Every gathered item becomes an Intake (§2.1) lane assignment is step-c-03's job
29
+ - ✅ The user decides how many intakes to add — you prompt until they say done
30
30
 
31
31
  ### Step-Specific Rules:
32
- - 🎯 Focus ONLY on gathering initiative details (title, description, category)
33
- - 🚫 FORBIDDEN to propose RICE scores (that is step-c-03's job)
34
- - 🚫 FORBIDDEN to write the backlog file (that is step-c-04's job)
35
- - 🚫 FORBIDDEN to reorder, merge, or drop initiatives without user instruction
36
- - 💬 Approach: prompt for one initiative at a time, confirm capture, ask for next or done
32
+ - 🎯 Focus ONLY on gathering intake details (description, source)
33
+ - 🚫 FORBIDDEN to assign lane, portfolio, or RICE (step-c-03's job)
34
+ - 🚫 FORBIDDEN to write the backlog file (step-c-04's job)
35
+ - 🚫 FORBIDDEN to reorder, merge, or drop intakes without user instruction
36
+ - 💬 Approach: prompt for one intake at a time, confirm capture, ask for next or done
37
37
 
38
38
  ## EXECUTION PROTOCOLS:
39
39
  - 🎯 Follow the MANDATORY SEQUENCE exactly
40
- - 📖 Reference `{templateFile}` (backlog-format-spec.md) for category name suggestions
41
- - 💾 Track all gathered initiatives in a running list
40
+ - 💾 Track all gathered intakes in a running list
42
41
 
43
42
  ## CONTEXT BOUNDARIES:
44
- - Available context: Backlog format spec (for category names), session state from step-c-01
45
- - Focus: Initiative gathering only
46
- - Limits: Do NOT score, write to file, or analyze initiatives
43
+ - Available context: Session state from step-c-01, loaded templates
44
+ - Focus: Intake gathering only
45
+ - Limits: Do NOT qualify, write, or analyze
47
46
  - Dependencies: step-c-01-init.md (session initialized)
48
47
 
49
48
  ## MANDATORY SEQUENCE
@@ -53,84 +52,88 @@ Interactively gather initiatives from the Product Owner — each with a title, d
53
52
  ### 1. Initialize Gathering State
54
53
 
55
54
  Set up tracking:
56
- - `gathered_items` = []
55
+ - `gathered_intakes` = []
57
56
  - `item_count` = 0
58
57
 
59
- ### 2. Prompt for Initiative
58
+ ### 2. Prompt for Intake
60
59
 
61
60
  Display:
62
61
 
63
- > **Initiative #[item_count + 1]**
62
+ > **Intake #[item_count + 1]**
64
63
  >
65
- > Describe your initiative:
66
- > - **Title:** A short name for this initiative
67
- > - **Description:** What it does and why it matters
68
- > - **Category:** Suggested categories: Documentation & Onboarding, Update & Migration System, Testing & CI, Infrastructure, Agent Quality & Consistency, Platform & Product Vision — or name a new one
64
+ > Describe this intake:
65
+ > - **Description:** A one-line summary of the problem, idea, observation, or improvement
66
+ > - **Source:** Where it came from (e.g., "code review 2026-04-15", "retrospective", "user feedback", "party mode session", "audit finding")
69
67
  >
70
- > *You can provide all three in one message, or just describe the initiative and I'll help structure it.*
68
+ > *You can provide both fields in one message, or just describe the intake and I'll ask for the source.*
71
69
 
72
70
  **ALWAYS halt and wait for user input.**
73
71
 
74
72
  ### 3. Capture and Confirm
75
73
 
76
74
  Parse the user's input to extract:
77
- - **Title** — short, bold-formatted name
78
- - **Description** — one-line explanation
79
- - **Category** — one of the suggested categories or a new one
75
+ - **Description** — one-line summary
76
+ - **Source** — origin reference (required for audit trail)
80
77
 
81
- If any field is unclear, ask the user to clarify before confirming.
78
+ If Source is missing, prompt: "What's the source of this intake?" and wait.
82
79
 
83
- Display the captured initiative:
80
+ Display the captured intake:
84
81
 
85
82
  > **Captured:**
86
- > - **Title:** [title]
87
83
  > - **Description:** [description]
88
- > - **Category:** [category]
84
+ > - **Source:** [source]
85
+ > - **Date:** [current session date YYYY-MM-DD]
86
+ > - **Raiser:** [user identity — default to John if invoked via PM agent, otherwise ask]
89
87
 
90
- Add to `gathered_items` with: title, description, category, source = "Create mode".
91
- Increment `item_count`.
88
+ Add to `gathered_intakes` with all four fields. Increment `item_count`.
92
89
 
93
- ### 4. Present Per-Initiative Menu
90
+ ### 4. Present Per-Intake Menu
94
91
 
95
92
  Display:
96
93
 
97
- > **Initiatives gathered so far: [item_count]**
94
+ > **Intakes gathered so far: [item_count]**
98
95
  >
99
- > **[N] Next** — Add another initiative
100
- > **[D] Done** — Finish gathering and proceed to scoring
101
- > **[A] Advanced Elicitation** — Deeper analysis to surface more initiatives
102
- > **[P] Party Mode** — Multi-perspective brainstorming for initiatives
96
+ > - **[N] Next** — Add another intake
97
+ > - **[D] Done** — Finish gathering and proceed to qualifying gate (step-c-03)
98
+ > - **[SKIP] Skip qualification** — Finish gathering and go directly to file generation (step-c-04); all intakes remain raw in §2.1
99
+ > - **[A] Advanced Elicitation** — Deeper analysis to surface more intakes
100
+ > - **[P] Party Mode** — Multi-perspective brainstorming
103
101
 
104
102
  #### Menu Handling Logic:
105
- - IF N: Go to step 2 (prompt for next initiative).
103
+ - IF N: Go to step 2 (prompt for next intake).
106
104
  - IF D:
107
- - **If `item_count` >= 1:** Display gathered items summary table, then go to step 5.
108
- - **If `item_count` == 0:** Display "You must add at least one initiative before proceeding." then redisplay this menu.
109
- - IF A: Execute `{advancedElicitationTask}` for deeper initiative discovery. When finished, redisplay this menu.
110
- - IF P: Execute `{partyModeWorkflow}` for multi-perspective brainstorming. When finished, redisplay this menu.
111
- - IF any other input: Display "Unknown command. Use **N**, **D**, **A**, or **P**." then redisplay menu.
105
+ - **If `item_count` >= 1:** Display gathered intakes summary table, then advance to step-c-03.
106
+ - **If `item_count` == 0:** Display "No intakes gathered. Either add at least one (**N**), skip to empty generation (**SKIP**), or return to the T/R/C menu via [X]." Redisplay this menu.
107
+ - IF SKIP:
108
+ - **If `item_count` >= 1:** Pass `gathered_intakes` with no qualification (all remain raw) to step-c-04. Display summary, then load, read, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-generate.md`.
109
+ - **If `item_count` == 0:** Display "No intakes to skip qualification for. Either add at least one or use Empty create from step-c-01." Redisplay this menu.
110
+ - IF A: Execute `{advancedElicitationTask}`. When finished, redisplay menu.
111
+ - IF P: Execute `{partyModeWorkflow}`. When finished, redisplay menu.
112
+ - IF any other input: Display "Unknown command. Use **N**, **D**, **SKIP**, **A**, or **P**." then redisplay menu.
112
113
 
113
114
  #### EXECUTION RULES:
114
115
  - ALWAYS halt and wait for user input after presenting the menu
115
116
  - After A or P execution, return to this menu (not to the prompt)
116
- - The user may add as many initiatives as they want — no upper limit
117
- - Do NOT auto-continue — the user must explicitly select D to finish gathering
117
+ - The user may add as many intakes as they want — no upper limit
118
+ - Do NOT auto-continue — the user must explicitly select D, SKIP, or exit
118
119
 
119
120
  ### 5. Gathering Complete — Summary and Advance
120
121
 
121
122
  Display the complete gathered list:
122
123
 
123
- > **Gathering Complete — [item_count] initiatives collected**
124
+ > **Gathering Complete — [item_count] intakes collected**
124
125
  >
125
- > | # | Title | Category |
126
- > |---|-------|----------|
127
- > | 1 | [title] | [category] |
128
- > | 2 | [title] | [category] |
126
+ > | # | Description | Source |
127
+ > |---|-------------|--------|
128
+ > | 1 | [description] | [source] |
129
+ > | 2 | [description] | [source] |
129
130
  > | ... | ... | ... |
130
131
 
131
- Then load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-score.md`, passing the `gathered_items` list.
132
+ Then advance based on the user's choice:
133
+ - **D (qualify):** Load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-qualify.md`, passing `gathered_intakes`.
134
+ - **SKIP (no qualify):** Load, read, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-generate.md`, passing `gathered_intakes` and empty `qualified_items`.
132
135
 
133
136
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
134
- ### ✅ SUCCESS: Each initiative captured with title, description, and category, user prompted for next or done, at least 1 initiative gathered, complete list passed to step-c-03
135
- ### ❌ SYSTEM FAILURE: Initiatives scored prematurely, descriptions rewritten without user approval, zero initiatives accepted, user forced to use specific format, gathered items not passed to next step
137
+ ### ✅ SUCCESS: Each intake captured with description and source, user offered qualify-now or skip paths, at least 1 intake gathered when D or SKIP chosen, complete list passed to next step
138
+ ### ❌ SYSTEM FAILURE: Intakes qualified prematurely, descriptions rewritten without approval, source missing, zero intakes accepted for D/SKIP paths, gathered items lost
136
139
  **Master Rule:** Skipping steps is FORBIDDEN.