@sandrinio/vbounce 1.9.0 → 2.0.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/README.md +287 -15
- package/bin/vbounce.mjs +21 -0
- package/brains/AGENTS.md +59 -21
- package/brains/CHANGELOG.md +22 -0
- package/brains/CLAUDE.md +121 -27
- package/brains/GEMINI.md +60 -23
- package/brains/claude-agents/developer.md +6 -4
- package/brains/copilot/copilot-instructions.md +5 -0
- package/brains/cursor-rules/vbounce-process.mdc +3 -0
- package/brains/windsurf/.windsurfrules +5 -0
- package/package.json +1 -1
- package/scripts/close_sprint.mjs +32 -1
- package/scripts/post_sprint_improve.mjs +486 -0
- package/scripts/suggest_improvements.mjs +206 -43
- package/skills/agent-team/SKILL.md +48 -25
- package/skills/agent-team/references/discovery.md +97 -0
- package/skills/doc-manager/SKILL.md +142 -18
- package/skills/improve/SKILL.md +149 -58
- package/skills/lesson/SKILL.md +14 -0
- package/templates/epic.md +19 -16
- package/templates/spike.md +143 -0
- package/templates/sprint.md +32 -12
- package/templates/sprint_report.md +6 -4
- package/templates/story.md +23 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: doc-manager
|
|
3
|
-
description: "Use when creating, modifying, or navigating V-Bounce Engine planning documents. Trigger on any request to create a charter, roadmap, epic, story, delivery plan, or risk registry — or when the user asks to update, refine, decompose, or transition documents between phases. Also trigger when
|
|
3
|
+
description: "Use when creating, modifying, or navigating V-Bounce Engine planning documents. Trigger on any request to create a charter, roadmap, epic, story, delivery plan, sprint plan, or risk registry — or when the user asks to update, refine, decompose, or transition documents between phases. Also trigger when the user asks about work status, backlog, what's next, what's blocked, or wants to plan/start a sprint. This skill manages the full document lifecycle from Charter through Sprint Planning and execution."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Document Hierarchy Manager
|
|
@@ -49,7 +49,7 @@ Roadmap §5 (Constraints) ──→ Delivery Plan (sprint capacity)
|
|
|
49
49
|
|
|
50
50
|
Epic §2 (Scope Boundaries) ──→ Story §1 (The Spec)
|
|
51
51
|
Epic §4 (Technical Context) ──→ Story §3 (Implementation Guide)
|
|
52
|
-
Epic §5 (Decomposition) ──→ Story creation sequence
|
|
52
|
+
Epic §5 (Decomposition) ──→ Codebase research scope + Story creation sequence
|
|
53
53
|
Epic §6 (Risks) ──→ Risk Registry §1 (Active Risks)
|
|
54
54
|
Epic §7 (Acceptance Criteria) ──→ Story §2 (The Truth)
|
|
55
55
|
Epic §9 (Artifact Links) ──→ Delivery Plan §3 (Backlog)
|
|
@@ -64,6 +64,12 @@ Sprint Plan §1 (Context Pack Readiness) ──→ Ready to Bounce gate
|
|
|
64
64
|
Delivery Plan ──→ Updated at sprint boundaries ONLY (never mid-sprint)
|
|
65
65
|
|
|
66
66
|
Risk Registry ←── ALL levels (cross-cutting input)
|
|
67
|
+
|
|
68
|
+
Epic §8 (Open Questions) ──→ Spike §1 (Question)
|
|
69
|
+
Epic §4 (Technical Context) ──→ Spike §3 (Approach)
|
|
70
|
+
Spike §4 (Findings) ──→ Epic §4 (Technical Context) [update]
|
|
71
|
+
Spike §5 (Decision) ──→ Roadmap §3 (ADRs) [if architectural]
|
|
72
|
+
Spike §6 (Residual Risk) ──→ Risk Registry §1 (Active Risks)
|
|
67
73
|
```
|
|
68
74
|
|
|
69
75
|
## Template Locations
|
|
@@ -77,6 +83,7 @@ Risk Registry ←── ALL levels (cross-cutting input)
|
|
|
77
83
|
| Sprint Plan | `templates/sprint.md` | `product_plans/sprints/sprint-{XX}/sprint-{XX}.md` |
|
|
78
84
|
| Epic | `templates/epic.md` | `product_plans/backlog/EPIC-{NNN}_{name}/EPIC-{NNN}_{name}.md` |
|
|
79
85
|
| Story | `templates/story.md` | `product_plans/backlog/EPIC-{NNN}_{name}/STORY-{EpicID}-{StoryID}-{StoryName}.md` |
|
|
86
|
+
| Spike | `templates/spike.md` | `product_plans/backlog/EPIC-{NNN}_{name}/SPIKE-{EpicID}-{NNN}-{topic}.md` |
|
|
80
87
|
| Hotfix | `templates/hotfix.md` | `product_plans/hotfixes/HOTFIX-{Date}-{Name}.md` |
|
|
81
88
|
| Sprint Report | `templates/sprint_report.md` | `product_plans/sprints/sprint-{XX}/sprint-report.md` |
|
|
82
89
|
|
|
@@ -94,7 +101,8 @@ product_plans/
|
|
|
94
101
|
│ ├── EPIC-001_authentication/
|
|
95
102
|
│ │ ├── EPIC-001_authentication.md
|
|
96
103
|
│ │ ├── STORY-001-01-login_ui.md
|
|
97
|
-
│ │
|
|
104
|
+
│ │ ├── STORY-001-02-auth_api.md
|
|
105
|
+
│ │ └── SPIKE-001-001-auth-provider.md
|
|
98
106
|
│
|
|
99
107
|
├── sprints/ ← active execution workspace
|
|
100
108
|
│ ├── sprint-01/ ← active sprint boundary
|
|
@@ -152,6 +160,36 @@ Brain files contain the V-Bounce process, critical rules, and skill references.
|
|
|
152
160
|
|
|
153
161
|
## Document Operations
|
|
154
162
|
|
|
163
|
+
### Ambiguity Assessment Rubric
|
|
164
|
+
|
|
165
|
+
When creating or reviewing an Epic or Story, assess ambiguity using these signals:
|
|
166
|
+
|
|
167
|
+
**🔴 High — Discovery Required (any ONE triggers 🔴):**
|
|
168
|
+
- Epic §4 Technical Context has "TBD" or "unknown" in dependencies or affected areas
|
|
169
|
+
- Epic §8 Open Questions has items marked blocking
|
|
170
|
+
- Multiple competing approaches mentioned with no ADR deciding between them
|
|
171
|
+
- Unknown external dependencies or integrations
|
|
172
|
+
- No acceptance criteria defined (Epic §7 empty)
|
|
173
|
+
- Vague scope language in §2 ("various", "possibly", "might", "somehow", "rethink")
|
|
174
|
+
|
|
175
|
+
**🟡 Medium — Conditional Progress:**
|
|
176
|
+
- Technical Context partially filled (some areas known, others TBD)
|
|
177
|
+
- Open Questions exist but are non-blocking
|
|
178
|
+
- Dependencies listed but unconfirmed
|
|
179
|
+
|
|
180
|
+
**🟢 Low — Ready to Proceed:**
|
|
181
|
+
- All sections filled with specific, concrete content
|
|
182
|
+
- All Open Questions resolved or non-blocking
|
|
183
|
+
- ADRs exist for every major technical choice
|
|
184
|
+
- Acceptance criteria are concrete Gherkin scenarios
|
|
185
|
+
|
|
186
|
+
**When 🔴 is detected:**
|
|
187
|
+
1. Set `ambiguity: 🔴 High` in frontmatter
|
|
188
|
+
2. Identify which signals triggered it
|
|
189
|
+
3. For each signal, recommend a spike with a one-sentence question
|
|
190
|
+
4. Create spike documents from `templates/spike.md`
|
|
191
|
+
5. Block downstream transitions until spikes reach Validated or Closed
|
|
192
|
+
|
|
155
193
|
### CREATE — Making a New Document
|
|
156
194
|
|
|
157
195
|
Before creating any document, YOU MUST:
|
|
@@ -169,8 +207,10 @@ Before creating any document, YOU MUST:
|
|
|
169
207
|
|----------|-----------------|
|
|
170
208
|
| Charter | Nothing — Charter is root. Gather from user input. |
|
|
171
209
|
| Roadmap | Charter (full document) |
|
|
172
|
-
| Epic | Charter §1, §2, §5 + Roadmap §2, §3, §5 |
|
|
173
|
-
| Story | Parent Epic (full document) + Roadmap §3 (ADRs) |
|
|
210
|
+
| Epic | Charter §1, §2, §5 + Roadmap §2, §3, §5 + **Codebase** (explore affected areas for §4) |
|
|
211
|
+
| Story | Parent Epic (full document) + Roadmap §3 (ADRs) + Codebase (affected files) |
|
|
212
|
+
| Spike | Parent Epic (full document) + Roadmap §3 (ADRs) + Risk Registry |
|
|
213
|
+
| Sprint Plan | All candidate stories + Risk Registry + Archive (completed work) + Backlog state |
|
|
174
214
|
| Delivery Plan | Roadmap §2 (Release Plan) + All Stories in scope |
|
|
175
215
|
| Risk Registry | Charter §6 + Roadmap §4, §5 + All Epic §6 sections |
|
|
176
216
|
|
|
@@ -199,20 +239,99 @@ When modifying a document:
|
|
|
199
239
|
| Epic §4 (Technical Context) | All child Stories §3 (Implementation Guide) |
|
|
200
240
|
| Story status (V-Bounce State) | Delivery Plan §3 (Active Sprint table) |
|
|
201
241
|
| Story — new risk discovered | Risk Registry §1 (new row) |
|
|
242
|
+
| Spike §4/§5 (Findings/Decision) | Epic §4 Technical Context, Epic §8 Open Questions, Risk Registry §1 |
|
|
243
|
+
| Spike §5 (Decision — architectural) | Roadmap §3 ADRs (new row) |
|
|
202
244
|
|
|
203
245
|
### DECOMPOSE — Breaking Down Documents
|
|
204
246
|
|
|
205
247
|
**Epic → Stories:**
|
|
206
248
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
249
|
+
Stories are NOT created by mechanically splitting epic sections by category. The AI must analyze the epic, research the actual codebase, and produce small, focused stories — each delivering a tangible, independently verifiable result.
|
|
250
|
+
|
|
251
|
+
#### Phase 1: Analyze & Research
|
|
252
|
+
|
|
253
|
+
1. Read the full Epic document (all sections)
|
|
254
|
+
2. Read Roadmap §3 (ADRs) for architecture constraints
|
|
255
|
+
3. **Research the codebase** — this is mandatory, not optional:
|
|
256
|
+
- Read every file listed in Epic §4 Affected Areas
|
|
257
|
+
- Explore the surrounding code to understand current architecture, patterns, and conventions
|
|
258
|
+
- Identify actual dependencies, imports, and integration points in the code
|
|
259
|
+
- Note existing tests, utilities, and shared modules that stories will interact with
|
|
260
|
+
4. Build a mental model of what needs to change and in what order
|
|
261
|
+
|
|
262
|
+
#### Phase 2: Draft Stories by Deliverable, Not by Category
|
|
263
|
+
|
|
264
|
+
Do NOT create stories by layer (one for schema, one for API, one for UI). Instead, create stories by **tangible outcome** — each story should deliver a small, specific, working result that can be verified.
|
|
265
|
+
|
|
266
|
+
**Story sizing rules:**
|
|
267
|
+
- Each story has **one clear goal** expressible in a single sentence
|
|
268
|
+
- Each story touches **1-3 files** (if more, it needs splitting)
|
|
269
|
+
- Each story produces a **verifiable result** — something you can see, test, or demonstrate
|
|
270
|
+
- Each story is **independently meaningful** — it delivers value or unlocks the next story, not just "part of a layer"
|
|
271
|
+
- Prefer vertical slices (thin end-to-end) over horizontal slices (full layer)
|
|
272
|
+
|
|
273
|
+
**If a drafted story exceeds size:**
|
|
274
|
+
- Ask: "Can this be split into two stories that each produce a tangible result?"
|
|
275
|
+
- If yes → split it. Each sub-story must still have its own clear goal.
|
|
276
|
+
- If no (the work is inherently atomic) → keep it as one story, label it L3, and document why it can't be smaller.
|
|
277
|
+
|
|
278
|
+
#### Phase 3: Write Stories with Codebase-Informed Detail
|
|
279
|
+
|
|
280
|
+
For each story, use what you learned from codebase research:
|
|
281
|
+
- §1 The Spec: Write requirements informed by actual code state (not just epic abstractions)
|
|
282
|
+
- §2 The Truth: Write Gherkin scenarios that reference real components, routes, and data shapes found in the code
|
|
283
|
+
- §3 Implementation Guide: Reference actual file paths, existing patterns, real function signatures — not placeholders. The developer should be able to start coding immediately.
|
|
284
|
+
- Set Complexity Label (L1-L4) based on actual code complexity discovered during research
|
|
285
|
+
|
|
286
|
+
#### Phase 4: Link & Update
|
|
287
|
+
|
|
288
|
+
1. Link all created Stories back in Epic §9 Artifact Links
|
|
289
|
+
2. Update Delivery Plan §3 High-Level Backlog with new stories
|
|
290
|
+
|
|
291
|
+
### SPRINT PLANNING — Preparing a Sprint
|
|
292
|
+
|
|
293
|
+
Sprint Planning is a collaborative process between AI and human. No sprint starts without a confirmed Sprint Plan.
|
|
294
|
+
|
|
295
|
+
**Workflow:**
|
|
296
|
+
|
|
297
|
+
1. **Read current state:**
|
|
298
|
+
- Scan `product_plans/backlog/` — read all epic and story frontmatter (status, priority, ambiguity, complexity_label, open questions)
|
|
299
|
+
- Scan `product_plans/archive/` — understand what's already shipped and what context carries forward
|
|
300
|
+
- Read `product_plans/strategy/RISK_REGISTRY.md` — identify risks affecting candidate stories
|
|
301
|
+
- If `vdocs/_manifest.json` exists, read it for documentation context
|
|
302
|
+
|
|
303
|
+
2. **Propose sprint scope:**
|
|
304
|
+
- Select stories based on priority, dependencies, and capacity
|
|
305
|
+
- Identify dependency chains — stories with `Depends On:` must be sequenced
|
|
306
|
+
- Group parallel-safe stories into phases
|
|
307
|
+
- Flag stories with 🔴 High ambiguity — these CANNOT enter the sprint without completed spikes
|
|
308
|
+
|
|
309
|
+
3. **Surface blockers to the human:**
|
|
310
|
+
- Open questions from epics (§8) and stories that haven't been resolved
|
|
311
|
+
- Environment prerequisites missing from stories
|
|
312
|
+
- Risks from Risk Registry that affect planned stories
|
|
313
|
+
- Edge cases or ambiguity the human may not have considered
|
|
314
|
+
- Dependencies on incomplete work
|
|
315
|
+
|
|
316
|
+
4. **Collaborate with the human:**
|
|
317
|
+
- Present proposed scope, risks, and blockers
|
|
318
|
+
- Discuss and adjust — add/remove stories, resolve open questions
|
|
319
|
+
- Agree on execution mode per story (Full Bounce vs Fast Track)
|
|
320
|
+
|
|
321
|
+
5. **Create Sprint Plan:**
|
|
322
|
+
- Create `product_plans/sprints/sprint-{XX}/sprint-{XX}.md` from `templates/sprint.md`
|
|
323
|
+
- Fill §0 Sprint Readiness Gate checklist
|
|
324
|
+
- Fill §1 Active Scope with confirmed stories + Context Pack Readiness
|
|
325
|
+
- Fill §2 Execution Strategy (phases, dependencies, risk flags)
|
|
326
|
+
- Fill §3 Sprint Open Questions (all must be resolved or non-blocking)
|
|
327
|
+
- Set status: `Planning`
|
|
328
|
+
|
|
329
|
+
6. **Gate — Human confirms:**
|
|
330
|
+
- Present finalized plan to human
|
|
331
|
+
- Explicitly ask for confirmation
|
|
332
|
+
- On confirmation: set `status: Confirmed`, fill `confirmed_by` and `confirmed_at`
|
|
333
|
+
- Move story files from `product_plans/backlog/EPIC-{NNN}/` to `product_plans/sprints/sprint-{XX}/`
|
|
334
|
+
- Sprint is now ready for Phase 3 (Execution)
|
|
216
335
|
|
|
217
336
|
### TRANSITION — Moving Documents Between Phases
|
|
218
337
|
|
|
@@ -223,7 +342,12 @@ When modifying a document:
|
|
|
223
342
|
| Charter → Ready for Roadmap | Ambiguity 🟡 or 🟢 (§1 and §5 filled) |
|
|
224
343
|
| Roadmap → Ready for Epics | Charter Ambiguity 🟢 + Roadmap §2 and §3 filled |
|
|
225
344
|
| Epic → Ready for Stories | Ambiguity 🟡 or 🟢 (§2 Scope and §4 Tech Context filled) |
|
|
226
|
-
| Story → Ready to Bounce | Ambiguity 🟢 + ALL Context Pack items checked (
|
|
345
|
+
| Story → Ready to Bounce | Ambiguity 🟢 + ALL Context Pack items checked (Sprint Plan §1) |
|
|
346
|
+
| Sprint Plan → Confirmed | §0 Readiness Gate checklist complete + Human explicitly confirms |
|
|
347
|
+
| Sprint Plan → Active | Status is Confirmed (human approval obtained) |
|
|
348
|
+
| Story (Probing/Spiking) → Refinement | All linked spikes are Validated or Closed |
|
|
349
|
+
| Spike → Validated | Architect confirms findings against Safe Zone |
|
|
350
|
+
| Spike → Closed | All items in §7 Affected Documents are checked off |
|
|
227
351
|
| Hotfix → Bouncing | Complexity strictly L1 + Targets 1-2 files |
|
|
228
352
|
|
|
229
353
|
**Physical Move Rules for State Transitions:**
|
|
@@ -257,9 +381,9 @@ Bouncing → Done: Dev implements + Human manually verifies + DevOps runs `hotfi
|
|
|
257
381
|
| Agent | Documents Owned | Documents Read |
|
|
258
382
|
|-------|----------------|----------------|
|
|
259
383
|
| **Team Lead** | Delivery Plan, Sprint Report, Delivery archive | Charter, Roadmap, ALL Stories (for context packs) |
|
|
260
|
-
| **Developer** | Story §3 updates (during implementation) | Story §1 + §3, LESSONS.md |
|
|
384
|
+
| **Developer** | Story §3 updates (during implementation), Spike §4 Findings (during investigation) | Story §1 + §3, Spike §1 + §2 + §3, LESSONS.md |
|
|
261
385
|
| **QA** | QA Validation Report | Story §2, Dev Implementation Report |
|
|
262
|
-
| **Architect** | Architectural Audit Report, Risk flags (in report — Lead writes to Registry) | Full Story, Roadmap §3 ADRs, Risk Registry |
|
|
386
|
+
| **Architect** | Architectural Audit Report, Risk flags (in report — Lead writes to Registry), Spike validation (Findings Ready → Validated) | Full Story, Spike §4 + §5, Roadmap §3 ADRs, Risk Registry |
|
|
263
387
|
| **DevOps** | DevOps Reports (merge + release) | Delivery Plan, LESSONS.md, gate reports |
|
|
264
388
|
| **Scribe** | Product documentation, _manifest.json | Sprint Report, Dev Reports, codebase |
|
|
265
389
|
| **PM/BA (Human)** | Charter, Roadmap, Epic, Story §1 + §2 | Everything |
|
|
@@ -289,4 +413,4 @@ When a sprint is complete:
|
|
|
289
413
|
|
|
290
414
|
## Keywords
|
|
291
415
|
|
|
292
|
-
charter, roadmap, epic, story, delivery plan, risk registry, document hierarchy, template, create document, update document, decompose epic, story breakdown, ambiguity score, context pack, V-Bounce state, phase transition, cascade update, planning documents
|
|
416
|
+
charter, roadmap, epic, story, delivery plan, risk registry, sprint plan, sprint planning, document hierarchy, template, create document, update document, decompose epic, story breakdown, ambiguity score, context pack, V-Bounce state, phase transition, cascade update, planning documents, backlog, what's next, what's blocked, start sprint
|
package/skills/improve/SKILL.md
CHANGED
|
@@ -1,19 +1,47 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: improve
|
|
3
|
-
description: "Use when the V-Bounce Engine framework needs to evolve based on accumulated agent feedback. Activates after sprint retros, when recurring friction patterns emerge, or when the user explicitly asks to improve the framework. Reads Process Feedback from sprint reports, identifies patterns, proposes specific changes to templates, skills, brain files, scripts, and agent configs, and applies approved changes. This is the system's self-improvement loop."
|
|
3
|
+
description: "Use when the V-Bounce Engine framework needs to evolve based on accumulated agent feedback. Activates after sprint retros, when recurring friction patterns emerge, or when the user explicitly asks to improve the framework. Reads Process Feedback from sprint reports, analyzes LESSONS.md for automation candidates, identifies patterns, proposes specific changes to templates, skills, brain files, scripts, and agent configs with impact levels, and applies approved changes. This is the system's self-improvement loop."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Framework Self-Improvement
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
V-Bounce Engine is not static. Every sprint generates friction signals from agents who work within the framework daily. This skill closes the feedback loop: it reads what agents struggled with, identifies patterns, and proposes targeted improvements to the framework itself.
|
|
10
|
+
V-Bounce Engine is not static. Every sprint generates friction signals from agents who work within the framework daily. This skill closes the feedback loop: it reads what agents struggled with, analyzes which lessons can be automated, identifies patterns, and proposes targeted improvements to the framework itself.
|
|
11
11
|
|
|
12
12
|
**Core principle:** No framework change happens without human approval. The system suggests — the human decides.
|
|
13
13
|
|
|
14
|
+
## Impact Levels
|
|
15
|
+
|
|
16
|
+
Every improvement proposal is classified by impact to help the human prioritize:
|
|
17
|
+
|
|
18
|
+
| Level | Label | Meaning | Timeline |
|
|
19
|
+
|-------|-------|---------|----------|
|
|
20
|
+
| **P0** | Critical | Blocks agent work or causes incorrect output | Fix before next sprint |
|
|
21
|
+
| **P1** | High | Causes rework — bounces, wasted tokens, repeated manual steps | Fix this improvement cycle |
|
|
22
|
+
| **P2** | Medium | Friction that slows agents but does not block | Fix within 2 sprints |
|
|
23
|
+
| **P3** | Low | Polish — nice-to-have, batch with other improvements | Batch when convenient |
|
|
24
|
+
|
|
25
|
+
### How Impact Is Determined
|
|
26
|
+
|
|
27
|
+
| Signal | Impact |
|
|
28
|
+
|--------|--------|
|
|
29
|
+
| Blocker finding + recurring across 2+ sprints | **P0** |
|
|
30
|
+
| Blocker finding (single sprint) | **P1** |
|
|
31
|
+
| Friction finding recurring across 2+ sprints | **P1** |
|
|
32
|
+
| Lesson with mechanical rule (can be a gate check or script) | **P1** |
|
|
33
|
+
| Previous improvement that didn't resolve its finding | **P1** |
|
|
34
|
+
| Friction finding (single sprint) | **P2** |
|
|
35
|
+
| Lesson graduation candidate (3+ sprints old) | **P2** |
|
|
36
|
+
| Low first-pass rate or high correction tax | **P1** |
|
|
37
|
+
| High bounce rate | **P2** |
|
|
38
|
+
| Framework health checks | **P3** |
|
|
39
|
+
|
|
14
40
|
## When to Use
|
|
15
41
|
|
|
16
|
-
-
|
|
42
|
+
- **Automatically** — `vbounce sprint close S-XX` runs the improvement pipeline and generates `.bounce/improvement-suggestions.md`
|
|
43
|
+
- **On demand** — `vbounce improve S-XX` runs the full pipeline (trends + analyzer + suggestions)
|
|
44
|
+
- After every 2-3 sprints (recommended cadence for applying approved changes)
|
|
17
45
|
- When the same Process Feedback appears across multiple sprint reports
|
|
18
46
|
- When the user explicitly asks to improve templates, skills, or process
|
|
19
47
|
- When a sprint's Framework Self-Assessment reveals Blocker-severity findings
|
|
@@ -21,70 +49,102 @@ V-Bounce Engine is not static. Every sprint generates friction signals from agen
|
|
|
21
49
|
|
|
22
50
|
## Trigger
|
|
23
51
|
|
|
24
|
-
`/improve` OR when the Team Lead identifies recurring framework friction during Sprint Consolidation.
|
|
52
|
+
`/improve` OR `vbounce improve S-XX` OR when the Team Lead identifies recurring framework friction during Sprint Consolidation.
|
|
25
53
|
|
|
26
54
|
## Announcement
|
|
27
55
|
|
|
28
56
|
When using this skill, state: "Using improve skill to evaluate and propose framework changes."
|
|
29
57
|
|
|
58
|
+
## The Automated Pipeline
|
|
59
|
+
|
|
60
|
+
The self-improvement pipeline runs automatically on `vbounce sprint close` and can be triggered manually via `vbounce improve S-XX`:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
vbounce sprint close S-XX
|
|
64
|
+
│
|
|
65
|
+
├── scripts/sprint_trends.mjs → .bounce/trends.md
|
|
66
|
+
│
|
|
67
|
+
├── scripts/post_sprint_improve.mjs → .bounce/improvement-manifest.json
|
|
68
|
+
│ ├── Parse Sprint Report §5 Framework Self-Assessment tables
|
|
69
|
+
│ ├── Parse LESSONS.md for automation candidates
|
|
70
|
+
│ ├── Cross-reference archived sprint reports for recurring patterns
|
|
71
|
+
│ └── Check if previous improvements resolved their findings
|
|
72
|
+
│
|
|
73
|
+
└── scripts/suggest_improvements.mjs → .bounce/improvement-suggestions.md
|
|
74
|
+
├── Consume improvement-manifest.json
|
|
75
|
+
├── Add metric-driven suggestions (bounce rate, correction tax, first-pass rate)
|
|
76
|
+
├── Add lesson graduation candidates
|
|
77
|
+
└── Format with impact levels for human review
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Output Files
|
|
81
|
+
|
|
82
|
+
| File | Purpose |
|
|
83
|
+
|------|---------|
|
|
84
|
+
| `.bounce/improvement-manifest.json` | Machine-readable proposals with metadata (consumed by this skill) |
|
|
85
|
+
| `.bounce/improvement-suggestions.md` | Human-readable improvement suggestions with impact levels |
|
|
86
|
+
| `.bounce/trends.md` | Cross-sprint trend data |
|
|
87
|
+
|
|
30
88
|
## Input Sources
|
|
31
89
|
|
|
32
90
|
The improve skill reads from multiple signals, in priority order:
|
|
33
91
|
|
|
34
|
-
### 1.
|
|
35
|
-
|
|
92
|
+
### 1. Improvement Manifest (Primary — Machine-Generated)
|
|
93
|
+
Read `.bounce/improvement-manifest.json` first. It contains pre-analyzed proposals with impact levels, automation classifications, recurrence data, and effectiveness checks. This is the richest, most structured input.
|
|
94
|
+
|
|
95
|
+
### 2. Sprint Report §5 — Framework Self-Assessment
|
|
96
|
+
The structured retro tables are the richest human-authored source. Each row has:
|
|
36
97
|
- Finding (what went wrong)
|
|
37
98
|
- Source Agent (who experienced it)
|
|
38
99
|
- Severity (Friction vs Blocker)
|
|
39
100
|
- Suggested Fix (agent's proposal)
|
|
40
101
|
|
|
41
|
-
###
|
|
42
|
-
Lessons
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
102
|
+
### 3. LESSONS.md — Automation Candidates
|
|
103
|
+
Lessons are classified by automation potential:
|
|
104
|
+
|
|
105
|
+
| Automation Type | What to Look For | Target |
|
|
106
|
+
|----------------|-----------------|--------|
|
|
107
|
+
| **gate_check** | Rules with "Always check...", "Never use...", "Must have..." | `.bounce/gate-checks.json` or `pre_gate_runner.sh` |
|
|
108
|
+
| **script** | Rules with "Run X before Y", "Use X instead of Y" | `scripts/` |
|
|
109
|
+
| **template_field** | Rules with "Include X in...", "Add X to the story/epic/template" | `templates/*.md` |
|
|
110
|
+
| **agent_config** | General behavioral rules proven over 3+ sprints | `brains/claude-agents/*.md` |
|
|
111
|
+
|
|
112
|
+
**Key insight:** Lessons tell you WHAT to enforce. Sprint retro tells you WHERE the framework is weak. Together they drive targeted improvements.
|
|
46
113
|
|
|
47
|
-
###
|
|
114
|
+
### 4. Sprint Execution Metrics
|
|
48
115
|
Quantitative signals from Sprint Report §3:
|
|
49
116
|
- High bounce ratios → story templates may need better acceptance criteria guidance
|
|
50
117
|
- High correction tax → handoffs may be losing critical context
|
|
51
118
|
- Escalation patterns → complexity labels may need recalibration
|
|
52
119
|
|
|
53
|
-
###
|
|
120
|
+
### 5. Improvement Effectiveness
|
|
121
|
+
The pipeline checks whether previously applied improvements resolved their target findings. Unresolved improvements are re-escalated at P1 priority.
|
|
122
|
+
|
|
123
|
+
### 6. Agent Process Feedback (Raw)
|
|
54
124
|
If sprint reports aren't available, read individual agent reports from `.bounce/archive/` and extract `## Process Feedback` sections directly.
|
|
55
125
|
|
|
56
126
|
## The Improvement Process
|
|
57
127
|
|
|
58
|
-
### Step 1:
|
|
128
|
+
### Step 1: Read the Manifest
|
|
59
129
|
```
|
|
60
|
-
1. Read
|
|
61
|
-
2. Read
|
|
62
|
-
3.
|
|
63
|
-
4. If no sprint reports exist yet, read raw agent reports from .bounce/archive/
|
|
130
|
+
1. Read .bounce/improvement-manifest.json (if it exists)
|
|
131
|
+
2. Read .bounce/improvement-suggestions.md for human-readable context
|
|
132
|
+
3. If no manifest exists, run: vbounce improve S-XX to generate one
|
|
64
133
|
```
|
|
65
134
|
|
|
66
|
-
### Step 2:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
| **Templates** | Missing fields, unused sections, ambiguous instructions | `templates/*.md` |
|
|
72
|
-
| **Agent Handoffs** | Missing report fields, redundant data, unclear formats | `brains/claude-agents/*.md` |
|
|
73
|
-
| **Context Prep** | Missing context, stale prep packs, truncation issues | `scripts/prep_sprint_context.mjs`, `scripts/prep_qa_context.mjs`, `scripts/prep_arch_context.mjs` |
|
|
74
|
-
| **Skills** | Unclear instructions, missing steps, outdated references | `skills/*/SKILL.md`, `skills/*/references/*` |
|
|
75
|
-
| **Process Flow** | Unnecessary steps, wrong ordering, missing gates | `skills/agent-team/SKILL.md`, `skills/doc-manager/SKILL.md` |
|
|
76
|
-
| **Tooling** | Script failures, validation gaps, missing automation | `scripts/*`, `bin/*` |
|
|
77
|
-
| **Brain Files** | Stale rules, missing rules, inconsistencies across brains | `brains/CLAUDE.md`, `brains/GEMINI.md`, `brains/AGENTS.md`, `brains/cursor-rules/*.mdc` |
|
|
135
|
+
### Step 2: Supplement with Manual Analysis
|
|
136
|
+
The manifest handles mechanical detection. The /improve skill adds judgment:
|
|
137
|
+
- Are there patterns the scripts can't detect? (e.g., misaligned mental models between agents)
|
|
138
|
+
- Do the metric anomalies have root causes not captured in §5?
|
|
139
|
+
- Are there skill instructions that agents consistently misinterpret?
|
|
78
140
|
|
|
79
|
-
|
|
141
|
+
### Step 3: Prioritize Using Impact Levels
|
|
142
|
+
Rank all proposals (manifest + manual) by impact:
|
|
80
143
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
2. **Friction reported by 2+ agents** — fix in this improvement pass
|
|
86
|
-
3. **Blockers reported once** — fix if the root cause is clear
|
|
87
|
-
4. **Friction reported once** — note for next improvement pass (may be a one-off)
|
|
144
|
+
1. **P0 Critical** — Fix before next sprint. Non-negotiable.
|
|
145
|
+
2. **P1 High** — Fix in this improvement pass.
|
|
146
|
+
3. **P2 Medium** — Fix if bandwidth allows, otherwise defer.
|
|
147
|
+
4. **P3 Low** — Batch with other improvements when convenient.
|
|
88
148
|
|
|
89
149
|
### Step 4: Propose Changes
|
|
90
150
|
For each finding, write a concrete proposal:
|
|
@@ -92,7 +152,8 @@ For each finding, write a concrete proposal:
|
|
|
92
152
|
```markdown
|
|
93
153
|
### Proposal {N}: {Short title}
|
|
94
154
|
|
|
95
|
-
**
|
|
155
|
+
**Impact:** {P0/P1/P2/P3} — {reason}
|
|
156
|
+
**Finding:** {What went wrong — from the retro or lesson}
|
|
96
157
|
**Pattern:** {How many times / sprints this appeared}
|
|
97
158
|
**Root Cause:** {Why the framework allowed this to happen}
|
|
98
159
|
**Affected Files:**
|
|
@@ -107,15 +168,16 @@ For script changes, describe the new behavior.}
|
|
|
107
168
|
**Reversibility:** {Easy — revert the edit / Medium — downstream docs may need updating}
|
|
108
169
|
```
|
|
109
170
|
|
|
110
|
-
#### Special Case: Gate Check Proposals
|
|
171
|
+
#### Special Case: Lesson → Gate Check Proposals
|
|
111
172
|
|
|
112
|
-
When
|
|
173
|
+
When a lesson contains a mechanical rule (classified as `gate_check` in the manifest):
|
|
113
174
|
|
|
114
175
|
```markdown
|
|
115
176
|
### Proposal {N}: Add pre-gate check — {check name}
|
|
116
177
|
|
|
117
|
-
**
|
|
118
|
-
**
|
|
178
|
+
**Impact:** P1 — mechanical check currently performed manually by agents
|
|
179
|
+
**Lesson:** "{lesson title}" (active since {date})
|
|
180
|
+
**Rule:** {the lesson's rule}
|
|
119
181
|
**Gate:** qa / arch
|
|
120
182
|
**Check config to add to `.bounce/gate-checks.json`:**
|
|
121
183
|
```json
|
|
@@ -131,10 +193,35 @@ When agent feedback reveals a mechanical check that was repeated manually across
|
|
|
131
193
|
```
|
|
132
194
|
```
|
|
133
195
|
|
|
134
|
-
|
|
196
|
+
#### Special Case: Lesson → Script Proposals
|
|
197
|
+
|
|
198
|
+
When a lesson describes a procedural check:
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
### Proposal {N}: Automate — {check name}
|
|
202
|
+
|
|
203
|
+
**Impact:** P1 — repeated manual procedure
|
|
204
|
+
**Lesson:** "{lesson title}" (active since {date})
|
|
205
|
+
**Rule:** {the lesson's rule}
|
|
206
|
+
**Proposed script/enhancement:** {describe the new script or addition to existing script}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
#### Special Case: Lesson Graduation
|
|
210
|
+
|
|
211
|
+
When a lesson has been active 3+ sprints and is classified as `agent_config`:
|
|
212
|
+
|
|
213
|
+
```markdown
|
|
214
|
+
### Proposal {N}: Graduate lesson — "{title}"
|
|
215
|
+
|
|
216
|
+
**Impact:** P2 — proven rule ready for permanent enforcement
|
|
217
|
+
**Active since:** {date} ({N} sprints)
|
|
218
|
+
**Rule:** {the lesson's rule}
|
|
219
|
+
**Target agent config:** `brains/claude-agents/{agent}.md`
|
|
220
|
+
**Action:** Add rule to agent's Critical Rules section. Archive lesson from LESSONS.md.
|
|
221
|
+
```
|
|
135
222
|
|
|
136
223
|
### Step 5: Present to Human
|
|
137
|
-
Present ALL proposals as a numbered list. The human can:
|
|
224
|
+
Present ALL proposals as a numbered list, grouped by impact level. The human can:
|
|
138
225
|
- **Approve** — apply the change
|
|
139
226
|
- **Reject** — skip it (optionally explain why)
|
|
140
227
|
- **Modify** — adjust the proposal before applying
|
|
@@ -148,26 +235,27 @@ For each approved proposal:
|
|
|
148
235
|
2. If brain files are affected, ensure ALL brain surfaces stay in sync (CLAUDE.md, GEMINI.md, AGENTS.md, cursor-rules/)
|
|
149
236
|
3. Log the change in `brains/CHANGELOG.md`
|
|
150
237
|
4. If skills were modified, update skill descriptions in all brain files that reference them
|
|
238
|
+
5. Record in `.bounce/improvement-log.md` under "Applied" with the impact level
|
|
151
239
|
|
|
152
240
|
### Step 7: Validate
|
|
153
241
|
After all changes are applied:
|
|
154
242
|
1. Run `./scripts/pre_bounce_sync.sh` to update RAG embeddings with the new framework content
|
|
155
243
|
2. Verify no cross-references are broken (template paths, skill names, report field names)
|
|
156
|
-
3. Confirm brain file consistency — all
|
|
244
|
+
3. Confirm brain file consistency — all surfaces should describe the same process
|
|
157
245
|
|
|
158
246
|
## Improvement Scope
|
|
159
247
|
|
|
160
248
|
### What CAN Be Improved
|
|
161
249
|
|
|
162
|
-
| Target | Examples |
|
|
163
|
-
|
|
164
|
-
| **
|
|
165
|
-
| **
|
|
166
|
-
| **
|
|
167
|
-
| **
|
|
168
|
-
| **
|
|
169
|
-
| **
|
|
170
|
-
| **
|
|
250
|
+
| Target | Examples | Typical Impact |
|
|
251
|
+
|--------|---------|----------------|
|
|
252
|
+
| **Gate Checks** | New grep/lint rules from lessons | P1 |
|
|
253
|
+
| **Scripts** | New validation, automate manual steps | P1-P2 |
|
|
254
|
+
| **Templates** | Add/remove/rename sections, improve instructions | P2 |
|
|
255
|
+
| **Agent Report Formats** | Add/remove YAML fields, improve handoff clarity | P1-P2 |
|
|
256
|
+
| **Skills** | Update instructions, add/remove steps, add new skills | P1-P2 |
|
|
257
|
+
| **Brain Files** | Graduate lessons to permanent rules, update skill refs | P2 |
|
|
258
|
+
| **Process Flow** | Reorder steps, add/remove gates, adjust thresholds | P1 |
|
|
171
259
|
|
|
172
260
|
### What CANNOT Be Changed Without Escalation
|
|
173
261
|
- **Adding a new agent role** — requires human design decision + new brain config
|
|
@@ -177,14 +265,15 @@ After all changes are applied:
|
|
|
177
265
|
|
|
178
266
|
## Output
|
|
179
267
|
|
|
180
|
-
The improve skill
|
|
268
|
+
The improve skill produces:
|
|
181
269
|
1. The list of proposals presented to the human (inline during the conversation)
|
|
182
270
|
2. The applied changes to framework files
|
|
183
271
|
3. The `brains/CHANGELOG.md` entries documenting what changed and why
|
|
272
|
+
4. Updates to `.bounce/improvement-log.md` tracking approved/rejected/deferred items
|
|
184
273
|
|
|
185
274
|
## Tracking Improvement Velocity
|
|
186
275
|
|
|
187
|
-
Over time, the Sprint Report §5 Framework Self-Assessment tables should shrink. If the same findings keep appearing after improvement passes, the fix didn't work — re-
|
|
276
|
+
Over time, the Sprint Report §5 Framework Self-Assessment tables should shrink. If the same findings keep appearing after improvement passes, the fix didn't work — the pipeline will automatically detect this and re-escalate at P1 priority.
|
|
188
277
|
|
|
189
278
|
The Team Lead should note in the Sprint Report whether the previous improvement pass resolved the issues it targeted:
|
|
190
279
|
- "Improvement pass from S-03 resolved the Dev→QA handoff gap (0 handoff complaints this sprint)"
|
|
@@ -199,7 +288,9 @@ The Team Lead should note in the Sprint Report whether the previous improvement
|
|
|
199
288
|
- **Don't over-engineer.** Fix the actual problem reported by agents. Don't add speculative improvements.
|
|
200
289
|
- **Respect the hierarchy.** Template changes are low-risk. Process flow changes are high-risk. Scope accordingly.
|
|
201
290
|
- **Skills are living documents.** If a skill's instructions consistently confuse agents, rewrite the confusing section — don't add workarounds elsewhere.
|
|
291
|
+
- **Impact levels drive priority.** P0 and P1 items are addressed first. P3 items are batched.
|
|
292
|
+
- **Lessons are fuel.** Every lesson is a potential automation — classify and act on them.
|
|
202
293
|
|
|
203
294
|
## Keywords
|
|
204
295
|
|
|
205
|
-
improve, self-improvement, framework evolution, retro, retrospective, process feedback, friction, template improvement, skill improvement, brain sync, meta-process, self-aware
|
|
296
|
+
improve, self-improvement, framework evolution, retro, retrospective, process feedback, friction, template improvement, skill improvement, brain sync, meta-process, self-aware, impact levels, lesson graduation, gate check, automation
|
package/skills/lesson/SKILL.md
CHANGED
|
@@ -31,6 +31,20 @@ This is NOT just a command — it is a standing directive:
|
|
|
31
31
|
3. **When offering**, say: *"This looks like a lesson worth recording — want me to capture it?"*
|
|
32
32
|
4. **Never record without the user's approval.** Always ask first.
|
|
33
33
|
|
|
34
|
+
## Timing: Record Immediately, Not at Sprint Close
|
|
35
|
+
|
|
36
|
+
**Lessons MUST be recorded as soon as the story that produced them is merged** — not deferred to sprint close. Context decays fast.
|
|
37
|
+
|
|
38
|
+
**Flow:**
|
|
39
|
+
1. During execution, agents flag lessons in their reports (`lessons_flagged` field)
|
|
40
|
+
2. After DevOps merges a story (Phase 3, Step 9), the Team Lead immediately:
|
|
41
|
+
- Reads `lessons_flagged` from Dev and QA reports
|
|
42
|
+
- Presents each lesson to the human for approval
|
|
43
|
+
- Records approved lessons to LESSONS.md right away
|
|
44
|
+
3. At sprint close (Sprint Report §4), the lesson table serves as a **review of what was already recorded** — not a first-time approval step. This is a confirmation, not a gate.
|
|
45
|
+
|
|
46
|
+
**Why this matters:** A lesson recorded 5 minutes after the problem is specific and actionable. A lesson recorded 3 days later at sprint close is vague and often forgotten.
|
|
47
|
+
|
|
34
48
|
## Recording: The `/lesson` Command
|
|
35
49
|
|
|
36
50
|
### Step 1: Gather Context
|
package/templates/epic.md
CHANGED
|
@@ -21,10 +21,12 @@ Output location: `product_plans/backlog/EPIC-{NNN}_{epic_name}/EPIC-{NNN}_{epic_
|
|
|
21
21
|
|
|
22
22
|
Document Hierarchy Position: LEVEL 3 (Charter → Roadmap → **Epic** → Story)
|
|
23
23
|
|
|
24
|
+
**Codebase research is mandatory when filling §4 Technical Context.** Do NOT guess at affected files, dependencies, or integration points. Read the actual codebase — explore directories, read files listed in upstream documents, understand current architecture — then fill §4 with real file paths and verified dependencies.
|
|
25
|
+
|
|
24
26
|
Upstream sources:
|
|
25
27
|
- §1 Problem & Value traces to Charter §1.1 (What It Is) and §5 (Key Workflows)
|
|
26
28
|
- §3.3 Constraints inherits from Charter §6 and Roadmap §5 Strategic Constraints
|
|
27
|
-
- §4 Technical Context references Roadmap §3 ADRs for architecture decisions
|
|
29
|
+
- §4 Technical Context references Roadmap §3 ADRs for architecture decisions AND actual codebase exploration
|
|
28
30
|
- Metadata.Priority aligns with Roadmap §2 Release Plan epic priorities
|
|
29
31
|
|
|
30
32
|
Downstream consumers:
|
|
@@ -132,21 +134,22 @@ flowchart LR
|
|
|
132
134
|
---
|
|
133
135
|
|
|
134
136
|
## 5. Decomposition Guidance
|
|
135
|
-
>
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
- [ ]
|
|
139
|
-
- [ ]
|
|
140
|
-
- [ ]
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
137
|
+
> The AI agent will analyze this epic and research the codebase to create small, focused stories. Each story must deliver a tangible, verifiable result — not just a layer of work.
|
|
138
|
+
|
|
139
|
+
### Affected Areas (for codebase research)
|
|
140
|
+
- [ ] {Area 1: e.g., "Authentication flow in `src/auth/`"}
|
|
141
|
+
- [ ] {Area 2: e.g., "User profile API in `src/api/users.ts`"}
|
|
142
|
+
- [ ] {Area 3: e.g., "Dashboard component in `src/components/Dashboard/`"}
|
|
143
|
+
|
|
144
|
+
### Key Constraints for Story Sizing
|
|
145
|
+
- Each story should touch 1-3 files and have one clear goal
|
|
146
|
+
- Prefer vertical slices (thin end-to-end) over horizontal layers
|
|
147
|
+
- Stories must be independently verifiable
|
|
148
|
+
|
|
149
|
+
### Suggested Sequencing Hints
|
|
150
|
+
1. {What must exist first for other work to build on}
|
|
151
|
+
2. {What depends on #1}
|
|
152
|
+
3. {What can run in parallel}
|
|
150
153
|
|
|
151
154
|
---
|
|
152
155
|
|