convoke-agents 3.2.1 → 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.
- package/CHANGELOG.md +68 -0
- package/README.md +3 -1
- package/_bmad/bme/README.md +36 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/SKILL.md +1 -1
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-01-init.md +55 -32
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-02-gather.md +62 -59
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-qualify.md +176 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-generate.md +259 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-01-load.md +65 -35
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-02-rescore.md +60 -30
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-03-update.md +67 -71
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-01-ingest.md +12 -12
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-02-extract.md +49 -44
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-qualify.md +192 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-04-update.md +72 -67
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/backlog-format-spec.md +223 -112
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/lifecycle-process-spec.md +188 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md +44 -31
- package/_bmad/bme/_gyre/config.yaml +3 -0
- package/_bmad/bme/_vortex/config.yaml +4 -1
- package/package.json +1 -1
- package/scripts/convoke-doctor.js +56 -2
- package/scripts/lib/artifact-utils.js +16 -3
- package/scripts/migrate-artifacts.js +3 -2
- package/scripts/portability/convoke-export.js +26 -5
- package/scripts/portability/export-engine.js +10 -8
- package/scripts/portability/seed-catalog-repo.js +6 -6
- package/scripts/portability/validate-exports.js +25 -14
- package/scripts/update/convoke-update.js +27 -2
- package/scripts/update/lib/changelog-reader.js +90 -0
- package/scripts/update/lib/config-merger.js +52 -1
- package/scripts/update/lib/refresh-installation.js +48 -9
- package/scripts/update/lib/taxonomy-merger.js +2 -1
- package/scripts/update/lib/validator.js +9 -1
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-score.md +0 -146
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-prioritize.md +0 -181
- 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
|
@@ -17,6 +17,8 @@
|
|
|
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 |
|
|
@@ -472,7 +474,7 @@ MIT License — see [LICENSE](LICENSE)
|
|
|
472
474
|
|
|
473
475
|
## Acknowledgments
|
|
474
476
|
|
|
475
|
-
- [BMAD Method v6.0.0](https://github.com/
|
|
477
|
+
- [BMAD Method v6.0.0](https://github.com/bmad-code-org) — Foundation for agent architecture
|
|
476
478
|
- [Innovation Vortex](https://unfix.com/innovation-vortex) — Pattern from the [unFIX model](https://unfix.com/) by [Jurgen Appelo](https://jurgenappelo.com/)
|
|
477
479
|
- Claude (Anthropic) — AI reasoning and agent development
|
|
478
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
|
|
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
|
|
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}/
|
|
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
|
|
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
|
|
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
|
|
31
|
-
- 🚫 FORBIDDEN to gather
|
|
32
|
-
- 🚫 FORBIDDEN to
|
|
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)
|
|
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),
|
|
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,
|
|
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
|
|
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
|
-
> **
|
|
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
|
|
76
|
+
### 1. Load Format Specification
|
|
72
77
|
|
|
73
78
|
Load `{templateFile}` (backlog-format-spec.md) and internalize:
|
|
74
|
-
- **
|
|
75
|
-
- **
|
|
76
|
-
- **
|
|
77
|
-
- **
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
###
|
|
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
|
|
96
|
+
> A new lifecycle backlog will be generated at `{outputFile}`.
|
|
88
97
|
>
|
|
89
|
-
> **
|
|
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
|
-
|
|
109
|
+
Display:
|
|
92
110
|
|
|
93
|
-
|
|
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
|
|
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
|
|
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
|
|
105
|
-
### ❌ SYSTEM FAILURE: Existing file overwritten without warning,
|
|
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
|
|
4
|
-
nextStepFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-
|
|
5
|
-
outputFile: '{planning_artifacts}/
|
|
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
|
|
11
|
+
# Step 2: Interactive Intake Gathering
|
|
12
12
|
|
|
13
13
|
## STEP GOAL:
|
|
14
14
|
|
|
15
|
-
|
|
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
|
|
23
|
+
- 📋 YOU ARE A GATHERING FACILITATOR collecting intake descriptions
|
|
24
24
|
|
|
25
25
|
### Role Reinforcement:
|
|
26
|
-
- ✅ You are a **gathering facilitator** —
|
|
27
|
-
- ✅ Accept the user's descriptions faithfully — do not rewrite, editorialize, or merge
|
|
28
|
-
- ✅
|
|
29
|
-
- ✅ The user decides how many
|
|
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
|
|
33
|
-
- 🚫 FORBIDDEN to
|
|
34
|
-
- 🚫 FORBIDDEN to write the backlog file (
|
|
35
|
-
- 🚫 FORBIDDEN to reorder, merge, or drop
|
|
36
|
-
- 💬 Approach: prompt for one
|
|
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
|
-
-
|
|
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:
|
|
45
|
-
- Focus:
|
|
46
|
-
- Limits: Do NOT
|
|
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
|
-
- `
|
|
55
|
+
- `gathered_intakes` = []
|
|
57
56
|
- `item_count` = 0
|
|
58
57
|
|
|
59
|
-
### 2. Prompt for
|
|
58
|
+
### 2. Prompt for Intake
|
|
60
59
|
|
|
61
60
|
Display:
|
|
62
61
|
|
|
63
|
-
> **
|
|
62
|
+
> **Intake #[item_count + 1]**
|
|
64
63
|
>
|
|
65
|
-
> Describe
|
|
66
|
-
> - **
|
|
67
|
-
> - **
|
|
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
|
|
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
|
-
- **
|
|
78
|
-
- **
|
|
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
|
|
78
|
+
If Source is missing, prompt: "What's the source of this intake?" and wait.
|
|
82
79
|
|
|
83
|
-
Display the captured
|
|
80
|
+
Display the captured intake:
|
|
84
81
|
|
|
85
82
|
> **Captured:**
|
|
86
|
-
> - **Title:** [title]
|
|
87
83
|
> - **Description:** [description]
|
|
88
|
-
> - **
|
|
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 `
|
|
91
|
-
Increment `item_count`.
|
|
88
|
+
Add to `gathered_intakes` with all four fields. Increment `item_count`.
|
|
92
89
|
|
|
93
|
-
### 4. Present Per-
|
|
90
|
+
### 4. Present Per-Intake Menu
|
|
94
91
|
|
|
95
92
|
Display:
|
|
96
93
|
|
|
97
|
-
> **
|
|
94
|
+
> **Intakes gathered so far: [item_count]**
|
|
98
95
|
>
|
|
99
|
-
> **[N] Next** — Add another
|
|
100
|
-
> **[D] Done** — Finish gathering and proceed to
|
|
101
|
-
> **[
|
|
102
|
-
> **[
|
|
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
|
|
103
|
+
- IF N: Go to step 2 (prompt for next intake).
|
|
106
104
|
- IF D:
|
|
107
|
-
- **If `item_count` >= 1:** Display gathered
|
|
108
|
-
- **If `item_count` == 0:** Display "
|
|
109
|
-
- IF
|
|
110
|
-
-
|
|
111
|
-
-
|
|
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
|
|
117
|
-
- Do NOT auto-continue — the user must explicitly select D
|
|
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]
|
|
124
|
+
> **Gathering Complete — [item_count] intakes collected**
|
|
124
125
|
>
|
|
125
|
-
> | # |
|
|
126
|
-
>
|
|
127
|
-
> | 1 | [
|
|
128
|
-
> | 2 | [
|
|
126
|
+
> | # | Description | Source |
|
|
127
|
+
> |---|-------------|--------|
|
|
128
|
+
> | 1 | [description] | [source] |
|
|
129
|
+
> | 2 | [description] | [source] |
|
|
129
130
|
> | ... | ... | ... |
|
|
130
131
|
|
|
131
|
-
Then
|
|
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
|
|
135
|
-
### ❌ SYSTEM FAILURE:
|
|
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.
|