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.
- package/CHANGELOG.md +68 -0
- package/README.md +40 -11
- 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 +2 -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/catalog-generator.js +1 -1
- package/scripts/portability/convoke-export.js +26 -5
- package/scripts/portability/export-engine.js +34 -9
- 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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 'step-t-02-extract'
|
|
3
|
-
description: 'Extract actionable findings from input,
|
|
4
|
-
nextStepFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-
|
|
5
|
-
outputFile: '{planning_artifacts}/
|
|
3
|
+
description: 'Extract actionable findings from input, detect overlaps with existing Intakes and lane items, and validate the extraction batch'
|
|
4
|
+
nextStepFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-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
|
---
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ templateFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/t
|
|
|
10
10
|
|
|
11
11
|
## STEP GOAL:
|
|
12
12
|
|
|
13
|
-
Extract actionable findings from the ingested text,
|
|
13
|
+
Extract actionable findings from the ingested text, detect overlaps with existing Intakes and lane items, and present the batch for user validation at Gate 1. Each validated finding will become an **Intake** (§2.1) in the backlog — not directly a lane item.
|
|
14
14
|
|
|
15
15
|
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
16
16
|
|
|
@@ -24,69 +24,72 @@ Extract actionable findings from the ingested text, classify each into a backlog
|
|
|
24
24
|
- ✅ You are a **findings extraction analyst** — thorough, systematic, evidence-based
|
|
25
25
|
- ✅ Extract what the input actually says — do not invent findings or impose interpretations
|
|
26
26
|
- ✅ The user validates your extraction at Gate 1 — you propose, they decide
|
|
27
|
+
- ✅ Every finding becomes an Intake — lane assignment is a separate step (step-t-03 Qualify)
|
|
27
28
|
|
|
28
29
|
### Step-Specific Rules:
|
|
29
|
-
- 🎯 Focus on extraction,
|
|
30
|
-
- 🚫 FORBIDDEN to
|
|
30
|
+
- 🎯 Focus on extraction, overlap detection against Intakes and lane items, and Gate 1 validation
|
|
31
|
+
- 🚫 FORBIDDEN to assign a lane (Bug/Fast/Initiative) — that is step-t-03's job (the qualifying gate)
|
|
32
|
+
- 🚫 FORBIDDEN to score RICE — that is step-t-03's job for qualified items
|
|
31
33
|
- 🚫 FORBIDDEN to write to the backlog file (that is step-t-04's job)
|
|
32
|
-
- 🚫 FORBIDDEN to truncate or skip any part of the input text
|
|
34
|
+
- 🚫 FORBIDDEN to truncate or skip any part of the input text
|
|
33
35
|
- 💬 Approach: systematic extraction, then collaborative validation at Gate 1
|
|
34
36
|
|
|
35
37
|
## EXECUTION PROTOCOLS:
|
|
36
38
|
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
37
|
-
- 📖 Load {templateFile} for
|
|
39
|
+
- 📖 Load {templateFile} for file structure reference
|
|
38
40
|
- 💾 Track extraction state — redisplay updated batch after every Gate 1 edit
|
|
39
41
|
|
|
40
42
|
## CONTEXT BOUNDARIES:
|
|
41
|
-
- Available context: User's input text (from step-t-01), existing backlog (if loaded), backlog format spec
|
|
43
|
+
- Available context: User's input text (from step-t-01), existing backlog (if loaded), backlog format spec
|
|
42
44
|
- Focus: Extraction and Gate 1 validation only
|
|
43
|
-
- Limits: Do NOT
|
|
45
|
+
- Limits: Do NOT qualify findings into lanes or write to backlog
|
|
44
46
|
- Dependencies: step-t-01-ingest.md (input text accepted)
|
|
45
47
|
|
|
46
48
|
## MANDATORY SEQUENCE
|
|
47
49
|
|
|
48
50
|
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
49
51
|
|
|
50
|
-
### 1. Load
|
|
52
|
+
### 1. Load Format Reference
|
|
51
53
|
|
|
52
|
-
Load `{templateFile}` (backlog-format-spec.md) and
|
|
53
|
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
- Testing & CI
|
|
57
|
-
- Infrastructure
|
|
58
|
-
- Agent Quality & Consistency
|
|
59
|
-
- Platform & Product Vision
|
|
60
|
-
|
|
61
|
-
New categories may be proposed if a finding doesn't fit any existing category.
|
|
54
|
+
Load `{templateFile}` (backlog-format-spec.md) and note the structure:
|
|
55
|
+
- §2.1 Intakes is the append target for this step's output
|
|
56
|
+
- §2.2 Bug Lane, §2.3 Fast Lane, §2.4 Initiative Lane contain already-qualified items
|
|
57
|
+
- §2.5 Absorbed / Archived contains removed items
|
|
62
58
|
|
|
63
59
|
### 2. Extract Actionable Findings
|
|
64
60
|
|
|
65
|
-
Process the **complete** input text from step-t-01. Do NOT truncate, summarize, or skip sections
|
|
61
|
+
Process the **complete** input text from step-t-01. Do NOT truncate, summarize, or skip sections.
|
|
66
62
|
|
|
67
63
|
For each passage in the input, determine if it is **actionable**. A finding is actionable if it:
|
|
68
64
|
- **Proposes a change** (something should be different)
|
|
69
65
|
- **Identifies a gap** (something is missing)
|
|
70
66
|
- **Flags a risk** (something could go wrong)
|
|
67
|
+
- **Reports a break** (something is observably broken)
|
|
71
68
|
|
|
72
69
|
Non-actionable content (general comments, praise, questions without implied action, status updates) should be set aside as **observations** — they are NOT included in the extraction batch but may be escalated at Gate 1.
|
|
73
70
|
|
|
74
71
|
For each actionable finding, record:
|
|
75
72
|
1. **Finding number** — sequential (1, 2, 3...)
|
|
76
|
-
2. **Title** — concise summary (matches
|
|
77
|
-
3. **
|
|
78
|
-
4. **
|
|
79
|
-
5. **Type** — Change / Gap / Risk
|
|
73
|
+
2. **Title** — concise summary (matches lane table style)
|
|
74
|
+
3. **Source reference** — which part of the input it came from (e.g., "paragraph 3", "under 'Performance Issues' heading", "line about caching")
|
|
75
|
+
4. **Type** — Change / Gap / Risk / Break
|
|
80
76
|
|
|
81
77
|
### 3. Detect Overlaps with Existing Backlog
|
|
82
78
|
|
|
83
79
|
**Skip this step if no existing backlog was loaded in step-t-01.**
|
|
84
80
|
|
|
85
|
-
For each extracted finding, compare against existing
|
|
81
|
+
For each extracted finding, compare against **all existing items**:
|
|
82
|
+
- §2.1 Intakes (unqualified items)
|
|
83
|
+
- §2.2 Bug Lane items
|
|
84
|
+
- §2.3 Fast Lane items
|
|
85
|
+
- §2.4 Initiative Lane items
|
|
86
|
+
- §2.5 Absorbed/Archived items (flag if finding restates something already absorbed)
|
|
87
|
+
|
|
88
|
+
Compare by semantic similarity (title + description). Flag potential overlaps when a finding appears to address the same concern as an existing item.
|
|
86
89
|
|
|
87
90
|
For each overlap flag, record:
|
|
88
|
-
- The existing item's **
|
|
89
|
-
- The existing item's **title**
|
|
91
|
+
- The existing item's **location** (Intakes, Fast Lane, Initiative Lane, Absorbed, etc.)
|
|
92
|
+
- The existing item's **ID** and **title**
|
|
90
93
|
- Brief explanation of why it might overlap
|
|
91
94
|
|
|
92
95
|
### 4. Handle Zero Findings
|
|
@@ -97,7 +100,7 @@ Display:
|
|
|
97
100
|
|
|
98
101
|
> **No actionable findings extracted from the input.**
|
|
99
102
|
>
|
|
100
|
-
> The input contained no content that proposes a change, identifies a gap, or
|
|
103
|
+
> The input contained no content that proposes a change, identifies a gap, flags a risk, or reports a break.
|
|
101
104
|
>
|
|
102
105
|
> **Options:**
|
|
103
106
|
> - Paste a specific passage you'd like me to re-examine
|
|
@@ -118,15 +121,17 @@ Display the extraction results in a numbered list:
|
|
|
118
121
|
>
|
|
119
122
|
> **Actionable findings extracted: [N]**
|
|
120
123
|
>
|
|
121
|
-
> | # | Finding |
|
|
122
|
-
>
|
|
123
|
-
> | 1 | [title] | [
|
|
124
|
-
> | 2 | [title] | [
|
|
125
|
-
> | 3 | [title] | [
|
|
124
|
+
> | # | Finding | Source | Type | Overlap |
|
|
125
|
+
> |---|---------|--------|------|---------|
|
|
126
|
+
> | 1 | [title] | [source ref] | Change | — |
|
|
127
|
+
> | 2 | [title] | [source ref] | Gap | ⚠️ Overlaps §2.3 Fast Lane I15: "[existing title]" |
|
|
128
|
+
> | 3 | [title] | [source ref] | Break | — |
|
|
126
129
|
>
|
|
127
130
|
> **Observations (not included — escalate with `E` if actionable):**
|
|
128
131
|
> - [observation 1]
|
|
129
132
|
> - [observation 2]
|
|
133
|
+
>
|
|
134
|
+
> *Each validated finding will be logged as an Intake (§2.1). Qualification into a lane happens in the next step.*
|
|
130
135
|
|
|
131
136
|
### 6. Present GATE 1 MENU OPTIONS
|
|
132
137
|
|
|
@@ -135,25 +140,25 @@ Display:
|
|
|
135
140
|
> **Gate 1 — Edit the extraction batch:**
|
|
136
141
|
>
|
|
137
142
|
> **Overlap resolution** (for flagged items only):
|
|
138
|
-
> - `merge #N` — Absorb finding into the existing overlapping item
|
|
143
|
+
> - `merge #N` — Absorb finding into the existing overlapping item (no new intake created)
|
|
139
144
|
> - `skip #N` — Drop finding (existing item is sufficient)
|
|
140
|
-
> - `new #N` — Override overlap flag, keep as separate new
|
|
145
|
+
> - `new #N` — Override overlap flag, keep as separate new intake
|
|
141
146
|
>
|
|
142
147
|
> **Batch editing:**
|
|
143
148
|
> - `E #N` — Escalate observation #N to actionable finding
|
|
144
149
|
> - `+ [title — description]` — Add a finding the workflow missed
|
|
145
150
|
> - `R #N` — Remove finding #N from the batch
|
|
146
151
|
>
|
|
147
|
-
> **[C] Continue** — Finalize batch and proceed to
|
|
152
|
+
> **[C] Continue** — Finalize batch and proceed to qualifying gate
|
|
148
153
|
|
|
149
154
|
#### Menu Handling Logic:
|
|
150
155
|
- IF `merge #N`: Mark finding #N as merged with existing item. Remove from batch. Redisplay updated batch and menu.
|
|
151
156
|
- IF `skip #N`: Remove finding #N from batch. Redisplay updated batch and menu.
|
|
152
|
-
- IF `new #N`: Clear overlap flag on finding #N (will be added as new
|
|
153
|
-
- IF `E #N`: Move observation #N into the findings batch as actionable. Assign a
|
|
154
|
-
- IF `+ [text]`: Add a new finding to the batch.
|
|
157
|
+
- IF `new #N`: Clear overlap flag on finding #N (will be added as new intake). Redisplay updated batch and menu.
|
|
158
|
+
- IF `E #N`: Move observation #N into the findings batch as actionable. Assign a source ref. Redisplay updated batch and menu.
|
|
159
|
+
- IF `+ [text]`: Add a new finding to the batch. Assign a source ref (likely "user-added"). Redisplay updated batch and menu.
|
|
155
160
|
- IF `R #N`: Remove finding #N from the batch. Redisplay updated batch and menu.
|
|
156
|
-
- IF C: Finalize the batch. Load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-
|
|
161
|
+
- IF C: Finalize the batch. Load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-qualify.md`
|
|
157
162
|
- IF any other input: Display "Unknown command. Use `merge/skip/new #N`, `E #N`, `+ [text]`, `R #N`, or **C** to continue." then redisplay menu.
|
|
158
163
|
|
|
159
164
|
#### EXECUTION RULES:
|
|
@@ -164,6 +169,6 @@ Display:
|
|
|
164
169
|
- Do NOT auto-continue — the user must explicitly approve the batch
|
|
165
170
|
|
|
166
171
|
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
|
167
|
-
### ✅ SUCCESS: All actionable findings extracted with
|
|
168
|
-
### ❌ SYSTEM FAILURE: Input truncated, findings invented (not from input), overlaps missed, user not given Gate 1 validation opportunity, findings scored prematurely
|
|
172
|
+
### ✅ SUCCESS: All actionable findings extracted with source refs, overlaps detected across all backlog sections, user validated batch at Gate 1, confirmed findings passed to step-t-03 for qualification
|
|
173
|
+
### ❌ SYSTEM FAILURE: Input truncated, findings invented (not from input), overlaps missed, user not given Gate 1 validation opportunity, findings qualified or scored prematurely
|
|
169
174
|
**Master Rule:** Skipping steps is FORBIDDEN.
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-t-03-qualify'
|
|
3
|
+
description: 'Qualifying gate — assign Lane, Portfolio, and RICE score for each validated finding. Optional skip keeps the finding as a raw intake.'
|
|
4
|
+
nextStepFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-04-update.md'
|
|
5
|
+
outputFile: '{planning_artifacts}/convoke-note-initiative-lifecycle-backlog.md'
|
|
6
|
+
templateFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/rice-scoring-guide.md'
|
|
7
|
+
processFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/lifecycle-process-spec.md'
|
|
8
|
+
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
|
9
|
+
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Step 3: Qualifying Gate (Lane + Portfolio + RICE)
|
|
13
|
+
|
|
14
|
+
## STEP GOAL:
|
|
15
|
+
|
|
16
|
+
Run the **qualifying gate** on each validated finding from Gate 1. For each finding, the qualifier (Vortex, John, or Winston) assigns a **Lane** (Bug / Fast / Initiative), a **Portfolio** attachment, and an initial **RICE** score. Findings the qualifier is not ready to route stay logged as raw intakes in §2.1 with no lane.
|
|
17
|
+
|
|
18
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
19
|
+
|
|
20
|
+
### Universal Rules:
|
|
21
|
+
- 🛑 NEVER generate lane/portfolio/RICE without user input — the qualifying gate is user-driven
|
|
22
|
+
- 📖 CRITICAL: Read this complete step file before taking action
|
|
23
|
+
- 🔄 CRITICAL: When loading next step with 'C', read the entire file
|
|
24
|
+
- 📋 YOU ARE A QUALIFYING-GATE FACILITATOR supporting the qualifier (Vortex / John / Winston)
|
|
25
|
+
|
|
26
|
+
### Role Reinforcement:
|
|
27
|
+
- ✅ You are a **qualifying gate facilitator** — propose, don't decide; the qualifier decides
|
|
28
|
+
- ✅ Only Vortex team, John, or Winston can qualify. Confirm the user is acting in one of those roles.
|
|
29
|
+
- ✅ Propose lane/portfolio/RICE based on finding description, but flag uncertainty plainly
|
|
30
|
+
- ✅ Every finding ends this step in one of two states: **qualified** (lane + portfolio + RICE) or **raw intake** (logged to §2.1 only)
|
|
31
|
+
|
|
32
|
+
### Step-Specific Rules:
|
|
33
|
+
- 🎯 Focus on lane assignment, portfolio attachment, and RICE scoring
|
|
34
|
+
- 🚫 FORBIDDEN to write to the backlog file (that is step-t-04's job)
|
|
35
|
+
- 🚫 FORBIDDEN to re-extract or re-classify findings (that was step-t-02's job)
|
|
36
|
+
- 🚫 FORBIDDEN to add new findings here (new findings require a fresh Triage run)
|
|
37
|
+
- 💬 Approach: walk findings one at a time, propose + decide, track state
|
|
38
|
+
|
|
39
|
+
## EXECUTION PROTOCOLS:
|
|
40
|
+
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
41
|
+
- 📖 Load {templateFile} for RICE factor definitions and calibration examples
|
|
42
|
+
- 📖 Load {processFile} for lane definitions and portfolio taxonomy
|
|
43
|
+
- 💾 Track each finding's qualification decision for step-t-04
|
|
44
|
+
|
|
45
|
+
## CONTEXT BOUNDARIES:
|
|
46
|
+
- Available context: Validated findings from Gate 1 (step-t-02), RICE scoring guide, lifecycle process spec, existing backlog
|
|
47
|
+
- Focus: Qualifying gate per-finding
|
|
48
|
+
- Limits: Do NOT write to backlog or modify extraction results
|
|
49
|
+
- Dependencies: step-t-02-extract.md (Gate 1 validated findings)
|
|
50
|
+
|
|
51
|
+
## MANDATORY SEQUENCE
|
|
52
|
+
|
|
53
|
+
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
54
|
+
|
|
55
|
+
### 1. Load References
|
|
56
|
+
|
|
57
|
+
Load `{templateFile}` (rice-scoring-guide.md) and internalize:
|
|
58
|
+
- **Factor definitions:** Reach (1-10), Impact (0.25-3), Confidence (20-100%), Effort (1-10)
|
|
59
|
+
- **Guided questions** for each factor
|
|
60
|
+
- **Calibration examples** (study the reasoning, not just the numbers)
|
|
61
|
+
- **Composite formula:** Score = (R × I × C) / E, where C is decimal (e.g., 70% = 0.7)
|
|
62
|
+
|
|
63
|
+
Load `{processFile}` (lifecycle-process-spec.md) and internalize:
|
|
64
|
+
- **§1.3 Three Lanes** — Bug / Fast / Initiative triggers and rules
|
|
65
|
+
- **§1.4 Portfolio Attachment** — current taxonomy (convoke, vortex, gyre, forge, bmm, enhance, loom, helm) and growth rule
|
|
66
|
+
- **§1.6 RICE Scoring** — lane-specific scoring notes
|
|
67
|
+
|
|
68
|
+
### 2. Confirm Qualifier Role
|
|
69
|
+
|
|
70
|
+
Display:
|
|
71
|
+
|
|
72
|
+
> **Qualifying Gate — Confirm Qualifier**
|
|
73
|
+
>
|
|
74
|
+
> Only three parties can qualify intakes:
|
|
75
|
+
> - **[V] Vortex** team (via discovery)
|
|
76
|
+
> - **[J] John** (PM shortcut)
|
|
77
|
+
> - **[W] Winston** (Architect shortcut)
|
|
78
|
+
>
|
|
79
|
+
> Who is qualifying in this session?
|
|
80
|
+
|
|
81
|
+
Record the qualifier identity. If the user declines to pick one, display: "Qualifying requires an authorized qualifier (Vortex, John, or Winston). You can still log findings as raw intakes — type `raw-only` to skip qualification for this session." and accept either a role letter or `raw-only`.
|
|
82
|
+
|
|
83
|
+
### 3. Walk Findings One at a Time
|
|
84
|
+
|
|
85
|
+
Initialize:
|
|
86
|
+
- `qualified_items = []` — findings with lane + portfolio + RICE assigned
|
|
87
|
+
- `raw_intakes = []` — findings kept as intakes only (no lane)
|
|
88
|
+
- `current_index = 1`
|
|
89
|
+
|
|
90
|
+
For each finding from Gate 1:
|
|
91
|
+
|
|
92
|
+
#### 3a. Present Finding & Proposed Qualification
|
|
93
|
+
|
|
94
|
+
Display:
|
|
95
|
+
|
|
96
|
+
> **Finding [current_index] of [total]**
|
|
97
|
+
>
|
|
98
|
+
> **Title:** [title]
|
|
99
|
+
> **Source:** [source ref]
|
|
100
|
+
> **Type:** [Change/Gap/Risk/Break]
|
|
101
|
+
>
|
|
102
|
+
> **Proposed qualification:**
|
|
103
|
+
> - **Lane:** [proposed lane with brief rationale, e.g., "Fast Lane — single-module point fix"]
|
|
104
|
+
> - **Portfolio:** [proposed portfolio, e.g., "convoke"]
|
|
105
|
+
> - **RICE:** R:[r] I:[i] C:[c]% E:[e] = [score]
|
|
106
|
+
> *[one-line RICE rationale]*
|
|
107
|
+
>
|
|
108
|
+
> *If Type is `Break`, default lane is Bug and RICE impact defaults to 2+ unless narrow scope.*
|
|
109
|
+
|
|
110
|
+
#### 3b. Present Per-Finding Menu
|
|
111
|
+
|
|
112
|
+
Display:
|
|
113
|
+
|
|
114
|
+
> **Review this qualification:**
|
|
115
|
+
>
|
|
116
|
+
> **Lane override:**
|
|
117
|
+
> - `L bug` / `L fast` / `L initiative` — Change lane
|
|
118
|
+
> - `L none` — Keep as raw intake (no lane, stays in §2.1 only)
|
|
119
|
+
>
|
|
120
|
+
> **Portfolio override:**
|
|
121
|
+
> - `P [item]` — Set portfolio (convoke, vortex, gyre, forge, bmm, enhance, loom, helm, or a new portfolio)
|
|
122
|
+
> - `P new [name] — [rationale]` — Propose a new portfolio item (John+Winston decision per §1.4)
|
|
123
|
+
>
|
|
124
|
+
> **RICE adjustments:**
|
|
125
|
+
> - `R [value]` — Reach (1-10)
|
|
126
|
+
> - `I [value]` — Impact (0.25, 0.5, 1, 2, or 3)
|
|
127
|
+
> - `CF [value]` — Confidence (20-100%)
|
|
128
|
+
> - `E [value]` — Effort (1-10)
|
|
129
|
+
>
|
|
130
|
+
> **Decisions:**
|
|
131
|
+
> - `K` — Keep/accept proposed qualification
|
|
132
|
+
> - `RAW` — Log as raw intake only (§2.1); no lane assigned
|
|
133
|
+
> - `S` — Skip this finding (not logged, dropped)
|
|
134
|
+
> - `X` — Exit qualification early (remaining findings become raw intakes)
|
|
135
|
+
>
|
|
136
|
+
> **[A] Advanced Elicitation** — Deeper analysis
|
|
137
|
+
> **[P] Party Mode** — Multi-perspective discussion
|
|
138
|
+
> **[C] Continue** — Apply current qualification and advance to next finding
|
|
139
|
+
|
|
140
|
+
#### Menu Handling Logic:
|
|
141
|
+
- IF `L bug/fast/initiative`: Update lane. If lane is `bug`, note RICE impact may be hardcoded. Redisplay.
|
|
142
|
+
- IF `L none`: Mark finding for raw-intake-only routing. Redisplay.
|
|
143
|
+
- IF `P [item]`: Update portfolio. If `new`, record the proposal for John+Winston review in Change Log. Redisplay.
|
|
144
|
+
- IF `R/I/CF/E [value]`: Validate range. Update, recalculate composite, redisplay.
|
|
145
|
+
- IF K: Accept current state. Add to `qualified_items` (or `raw_intakes` if lane is `none`). Advance to next finding.
|
|
146
|
+
- IF RAW: Add to `raw_intakes`. Advance to next finding.
|
|
147
|
+
- IF S: Drop finding entirely (note in Change Log). Advance to next finding.
|
|
148
|
+
- IF X: Remaining findings become raw intakes. Go to step 4.
|
|
149
|
+
- IF A: Execute `{advancedElicitationTask}`. When finished, redisplay.
|
|
150
|
+
- IF P: Execute `{partyModeWorkflow}`. When finished, redisplay.
|
|
151
|
+
- IF C: Same as K if no change was made; otherwise record adjustments, advance.
|
|
152
|
+
- IF any other input: Display error, redisplay menu.
|
|
153
|
+
|
|
154
|
+
#### 3c. Advance
|
|
155
|
+
Increment `current_index`. If `<= total`, go to 3a. Otherwise go to step 4.
|
|
156
|
+
|
|
157
|
+
### 4. Present Qualification Summary
|
|
158
|
+
|
|
159
|
+
Display:
|
|
160
|
+
|
|
161
|
+
> **Qualification Complete**
|
|
162
|
+
>
|
|
163
|
+
> **Qualified items (will be added to lanes):** [N]
|
|
164
|
+
> **Raw intakes (logged to §2.1 only):** [N]
|
|
165
|
+
> **Dropped:** [N]
|
|
166
|
+
> [If early exit: **Auto-converted to raw intakes:** [N]]
|
|
167
|
+
>
|
|
168
|
+
> **Qualified breakdown:**
|
|
169
|
+
> - Bug Lane: [N]
|
|
170
|
+
> - Fast Lane: [N]
|
|
171
|
+
> - Initiative Lane: [N]
|
|
172
|
+
>
|
|
173
|
+
> **Qualifier:** [Vortex / John / Winston / raw-only]
|
|
174
|
+
|
|
175
|
+
### 5. Present MENU OPTIONS
|
|
176
|
+
|
|
177
|
+
Display:
|
|
178
|
+
|
|
179
|
+
> **[C] Continue** — Write qualifications to backlog (step-t-04)
|
|
180
|
+
> **[R] Revisit** — Walk findings again (re-enter step 3)
|
|
181
|
+
> **[X] Abort** — Return to mode selection without writing
|
|
182
|
+
|
|
183
|
+
#### Menu Handling Logic:
|
|
184
|
+
- IF C: Load, read the entire file, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-04-update.md`, passing `qualified_items`, `raw_intakes`, `dropped_items`, and the qualifier identity.
|
|
185
|
+
- IF R: Re-enter step 3 from `current_index = 1`. Preserve existing decisions but allow edits.
|
|
186
|
+
- IF X: Discard all qualifications. Load, read, and execute `{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md`.
|
|
187
|
+
- IF any other input: Display error, redisplay menu.
|
|
188
|
+
|
|
189
|
+
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
|
190
|
+
### ✅ SUCCESS: Every finding either qualified (lane + portfolio + RICE) or routed to raw intakes, qualifier identity recorded, user validated decisions, results passed to step-t-04
|
|
191
|
+
### ❌ SYSTEM FAILURE: Qualification performed without authorized qualifier, findings assigned to lane without RICE, findings lost between steps, step-t-04 invoked with missing data
|
|
192
|
+
**Master Rule:** Skipping steps is FORBIDDEN.
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 'step-t-04-update'
|
|
3
|
-
description: 'Validate backlog structure, append
|
|
4
|
-
outputFile: '{planning_artifacts}/
|
|
3
|
+
description: 'Validate backlog structure, log every finding as an Intake in §2.1, append qualified items to their lanes, update Change Log, and present completion summary'
|
|
4
|
+
outputFile: '{planning_artifacts}/convoke-note-initiative-lifecycle-backlog.md'
|
|
5
5
|
templateFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/backlog-format-spec.md'
|
|
6
6
|
workflowFile: '{project-root}/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md'
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# Step 4: Backlog Update
|
|
9
|
+
# Step 4: Backlog Update — Log Intakes & Append Qualified Items
|
|
10
10
|
|
|
11
11
|
## STEP GOAL:
|
|
12
12
|
|
|
13
|
-
Validate backlog structure,
|
|
13
|
+
Validate backlog structure, log every finding (qualified or raw) as an **Intake** in §2.1 (the audit trail), append qualified items to their assigned lane's table (§2.2 Bug / §2.3 Fast / §2.4 Initiative), update the Change Log, and present a completion summary before returning to the T/R/C menu.
|
|
14
14
|
|
|
15
15
|
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
16
16
|
|
|
@@ -21,17 +21,18 @@ Validate backlog structure, safely append scored items from Gate 2, regenerate t
|
|
|
21
21
|
- 📋 YOU ARE A BACKLOG OPERATIONS SPECIALIST performing safe, structured writes
|
|
22
22
|
|
|
23
23
|
### Role Reinforcement:
|
|
24
|
-
- ✅ You are a **backlog operations specialist** — precise, non-destructive, append-only
|
|
25
|
-
- ✅ Preserve all existing content — never delete, overwrite, or reorder existing rows
|
|
26
|
-
- ✅
|
|
24
|
+
- ✅ You are a **backlog operations specialist** — precise, non-destructive, append-only for lanes and intakes
|
|
25
|
+
- ✅ Preserve all existing content — never delete, overwrite, or reorder existing rows outside the touched lane's sort update
|
|
26
|
+
- ✅ **Part 1 (Lifecycle Process) must not be modified** — it's semi-static documentation
|
|
27
|
+
- ✅ Every qualified item generates **two** rows: one in §2.1 Intakes (audit trail) AND one in the assigned lane
|
|
27
28
|
- ✅ All output must be standard markdown — no HTML, no proprietary syntax
|
|
28
29
|
|
|
29
30
|
### Step-Specific Rules:
|
|
30
31
|
- 🎯 Focus on validation, safe writes, and completion reporting
|
|
31
|
-
- 🚫 FORBIDDEN to delete or reorder existing
|
|
32
|
-
- 🚫 FORBIDDEN to re-
|
|
33
|
-
- 🚫 FORBIDDEN to modify
|
|
34
|
-
- 💬 Approach: validate first, write safely, summarize clearly
|
|
32
|
+
- 🚫 FORBIDDEN to delete or reorder existing §2.1 Intakes (append-only per §1.1)
|
|
33
|
+
- 🚫 FORBIDDEN to re-qualify items (qualification was finalized at step-t-03)
|
|
34
|
+
- 🚫 FORBIDDEN to modify Part 1 (Lifecycle Process) — load it for context only
|
|
35
|
+
- 💬 Approach: validate first, write intakes + lane items safely, summarize clearly
|
|
35
36
|
|
|
36
37
|
## EXECUTION PROTOCOLS:
|
|
37
38
|
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
@@ -39,10 +40,10 @@ Validate backlog structure, safely append scored items from Gate 2, regenerate t
|
|
|
39
40
|
- 💾 Write to `{outputFile}` only after validation passes (or user overrides)
|
|
40
41
|
|
|
41
42
|
## CONTEXT BOUNDARIES:
|
|
42
|
-
- Available context:
|
|
43
|
-
- Focus: Structural validation,
|
|
44
|
-
- Limits: Do NOT re-
|
|
45
|
-
- Dependencies: step-t-03-
|
|
43
|
+
- Available context: Qualified items + raw intakes + dropped items from step-t-03, qualifier identity, existing backlog file, format spec
|
|
44
|
+
- Focus: Structural validation, append to §2.1 and lanes, lane sort, Change Log, completion summary
|
|
45
|
+
- Limits: Do NOT re-qualify, re-extract, or re-classify items; do NOT modify Part 1
|
|
46
|
+
- Dependencies: step-t-03-qualify.md (qualified + raw items + qualifier identity)
|
|
46
47
|
|
|
47
48
|
## MANDATORY SEQUENCE
|
|
48
49
|
|
|
@@ -50,21 +51,25 @@ Validate backlog structure, safely append scored items from Gate 2, regenerate t
|
|
|
50
51
|
|
|
51
52
|
### 1. Pre-Write Validation
|
|
52
53
|
|
|
53
|
-
Load `{outputFile}` (existing backlog) and validate structural integrity:
|
|
54
|
-
|
|
55
|
-
1. **
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
54
|
+
Load `{outputFile}` (existing backlog) and validate structural integrity per format spec:
|
|
55
|
+
|
|
56
|
+
1. **Frontmatter present** — YAML block at top of file.
|
|
57
|
+
2. **Part 1 section anchor** — `## Part 1: Lifecycle Process` exists. (Content is not inspected — only the anchor.)
|
|
58
|
+
3. **Part 2 section anchors** — All five H3 sections exist in correct order under `## Part 2: Backlog`:
|
|
59
|
+
- `### 2.1 Intakes (Unqualified)`
|
|
60
|
+
- `### 2.2 Bug Lane`
|
|
61
|
+
- `### 2.3 Fast Lane (Quick Wins + Spikes)`
|
|
62
|
+
- `### 2.4 Initiative Lane`
|
|
63
|
+
- `### 2.5 Absorbed / Archived`
|
|
64
|
+
4. **Table column counts:**
|
|
65
|
+
- §2.1 Intakes: 5 columns (ID, Description, Source, Date, Raiser)
|
|
66
|
+
- §2.2 Bug Lane: 10 columns
|
|
67
|
+
- §2.3 Fast Lane: 9 columns
|
|
68
|
+
- §2.4 Initiative Lane: 10 columns
|
|
69
|
+
5. **Change Log section** — `## Change Log` H2 exists with a table.
|
|
70
|
+
6. **File missing guard** — If the backlog file does not exist, display: "No backlog file found at `{outputFile}`. Triage cannot create a new file — use Create mode [C] first." Then load workflow.md and return.
|
|
71
|
+
|
|
72
|
+
If ALL checks pass, proceed directly to step 3 (Append Intakes).
|
|
68
73
|
|
|
69
74
|
### 2. Mismatch Handling
|
|
70
75
|
|
|
@@ -79,54 +84,50 @@ If ANY validation check fails, present the specific mismatch(es):
|
|
|
79
84
|
|
|
80
85
|
**ALWAYS halt and wait for user input.**
|
|
81
86
|
|
|
82
|
-
- IF Y: Continue to step 3
|
|
83
|
-
- IF X: Display "Aborting backlog update." then load, read the entire file, and execute `{workflowFile}` to return to mode selection
|
|
84
|
-
- IF any other input: Display "Please select **Y** or **X**." then redisplay the prompt
|
|
87
|
+
- IF Y: Continue to step 3.
|
|
88
|
+
- IF X: Display "Aborting backlog update." then load, read the entire file, and execute `{workflowFile}` to return to mode selection.
|
|
89
|
+
- IF any other input: Display "Please select **Y** or **X**." then redisplay the prompt.
|
|
85
90
|
|
|
86
|
-
### 3. Append
|
|
91
|
+
### 3. Append Intakes to §2.1
|
|
87
92
|
|
|
88
|
-
For
|
|
93
|
+
For **every** finding that reached this step (qualified + raw intake + dropped), append a row to §2.1 Intakes:
|
|
89
94
|
|
|
90
|
-
1. **
|
|
91
|
-
2. **
|
|
92
|
-
3. **
|
|
93
|
-
4. **
|
|
94
|
-
5. **
|
|
95
|
+
1. **Generate Intake ID** — `IN-{n}` where `n` is the next sequential integer after the highest existing IN-ID in §2.1.
|
|
96
|
+
2. **Description** — concise one-line summary from the finding.
|
|
97
|
+
3. **Source** — session origin (e.g., "party mode 2026-04-15", "code review ag-7-5", "retrospective sp-epic-5").
|
|
98
|
+
4. **Date** — current session date (YYYY-MM-DD, absolute).
|
|
99
|
+
5. **Raiser** — the qualifier identity from step-t-03 (Vortex / John / Winston / raw-only).
|
|
95
100
|
|
|
96
|
-
**
|
|
97
|
-
```
|
|
98
|
-
| [ID] | **[Title]** — [description]. Added from [source], [date] | [source ref] | [R] | [I] | [C]% | [E] | [score] | [track] | Backlog |
|
|
99
|
-
```
|
|
101
|
+
**Do NOT delete or reorder existing Intake rows.** Append new rows at the end of the table.
|
|
100
102
|
|
|
101
|
-
**
|
|
103
|
+
**Dropped items are also logged to §2.1** — with a Description prefixed `[DROPPED]` and the reason in the Change Log. This preserves the audit trail even for findings the qualifier chose not to route.
|
|
102
104
|
|
|
103
|
-
### 4.
|
|
105
|
+
### 4. Append Qualified Items to Their Lanes
|
|
104
106
|
|
|
105
|
-
|
|
107
|
+
For each item in `qualified_items` (i.e., findings routed to Bug / Fast / Initiative):
|
|
106
108
|
|
|
107
|
-
1.
|
|
108
|
-
2.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
1. **Find target lane table** — §2.2 (Bug), §2.3 (Fast), or §2.4 (Initiative).
|
|
110
|
+
2. **Generate lane ID:**
|
|
111
|
+
- Bug Lane: `BUG-{n}` sequential.
|
|
112
|
+
- Fast Lane + Initiative Lane: single alpha prefix from a simple heuristic (U for Update, I for Infrastructure, T for Testing, A for Agent, D for Doc, P for Platform). If uncertain, use `Q-{n}` (for Qualified-uncategorized).
|
|
113
|
+
3. **Append row** with the columns defined in the format spec for the target lane. Include the RICE score rationale as a tail note only if it aids future review (keep rows compact).
|
|
114
|
+
4. **Cross-reference** — In the Intake row's Description cell (in §2.1), append ` → [laneID]` so intake→lane linkage is preserved.
|
|
115
|
+
5. **Re-sort the touched lane's table by composite RICE score descending.** Tiebreak: Confidence higher first, then insertion order newer first.
|
|
112
116
|
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
| Rank | # | Initiative | Score | Track | Category |
|
|
116
|
-
|------|---|-----------|-------|-------|----------|
|
|
117
|
-
```
|
|
117
|
+
**Never delete, overwrite, or reorder rows in lanes that were not touched this session.**
|
|
118
118
|
|
|
119
|
-
### 5. Add
|
|
119
|
+
### 5. Add Change Log Entry
|
|
120
120
|
|
|
121
121
|
Prepend a new row to the `## Change Log` table (newest first):
|
|
122
122
|
|
|
123
123
|
```
|
|
124
|
-
| YYYY-MM-DD | Triage:
|
|
124
|
+
| YYYY-MM-DD | Triage by [Qualifier]: Logged [N] intakes. Qualified [X] ([Bug: a, Fast: b, Initiative: c]). Raw intakes: [Y]. Dropped: [Z]. [Any new portfolio proposals flagged.] |
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
-
### 6. Update
|
|
127
|
+
### 6. Update Frontmatter
|
|
128
128
|
|
|
129
|
-
Set
|
|
129
|
+
- Set `status: active` if this is the first write to the file (was `draft`).
|
|
130
|
+
- Do NOT modify the `created` date.
|
|
130
131
|
|
|
131
132
|
### 7. Completion Summary & Return to Menu
|
|
132
133
|
|
|
@@ -134,11 +135,15 @@ After successful write, display:
|
|
|
134
135
|
|
|
135
136
|
> **Triage Complete**
|
|
136
137
|
>
|
|
137
|
-
> **
|
|
138
|
-
> **
|
|
139
|
-
>
|
|
138
|
+
> **Intakes logged:** [N]
|
|
139
|
+
> **Qualified into lanes:** [X]
|
|
140
|
+
> - Bug Lane: [n]
|
|
141
|
+
> - Fast Lane: [n]
|
|
142
|
+
> - Initiative Lane: [n]
|
|
143
|
+
> **Raw intakes (awaiting qualification):** [Y]
|
|
144
|
+
> **Dropped (logged with reason):** [Z]
|
|
140
145
|
>
|
|
141
|
-
> **
|
|
146
|
+
> **Top 3 Fast Lane positions (post-sort):**
|
|
142
147
|
> 1. [#ID] [title] — Score: [X.X]
|
|
143
148
|
> 2. [#ID] [title] — Score: [X.X]
|
|
144
149
|
> 3. [#ID] [title] — Score: [X.X]
|
|
@@ -150,6 +155,6 @@ Then return to the T/R/C menu:
|
|
|
150
155
|
Load, read the entire file, and execute `{workflowFile}`.
|
|
151
156
|
|
|
152
157
|
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
|
153
|
-
### ✅ SUCCESS:
|
|
154
|
-
### ❌ SYSTEM FAILURE:
|
|
158
|
+
### ✅ SUCCESS: Validation performed, every finding logged as an Intake (audit trail complete), qualified items appended to correct lanes with proper IDs, lanes re-sorted by RICE, Change Log updated with qualifier identity and counts, completion summary displayed, menu re-presented
|
|
159
|
+
### ❌ SYSTEM FAILURE: Findings not logged as Intakes, qualified items written without the cross-reference in Intakes, Part 1 modified, existing rows deleted/reordered, Change Log missing the qualifier identity, dropped items lost without audit trail
|
|
155
160
|
**Master Rule:** Skipping steps is FORBIDDEN.
|