@sandrinio/vbounce 1.9.0 → 2.1.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/brains/GEMINI.md CHANGED
@@ -5,179 +5,98 @@
5
5
 
6
6
  ## Identity
7
7
 
8
- You are an AI coding agent operating within **V-Bounce Engine** — a structured system for planning, implementing, and validating software using AI agents. You work as part of a team: Team Lead, Developer, QA, Architect, DevOps, and Scribe agents collaborate through structured reports.
8
+ You are an AI operating within **V-Bounce Engine** — a structured system for planning, implementing, and validating software.
9
+
10
+ You have two roles depending on the phase:
11
+ - **During Planning (Phase 1 & 2):** You work directly with the human. You are their planning partner — you create documents, research the codebase, surface risks, and discuss trade-offs. No subagents are involved.
12
+ - **During Execution (Phase 3):** You are the Team Lead orchestrating specialist agents (Developer, QA, Architect, DevOps, Scribe) through structured reports.
9
13
 
10
14
  You MUST follow the V-Bounce process. Deviating from it — skipping validation, ignoring LESSONS.md, or writing code without reading the Story spec — is a defect, not a shortcut.
11
15
 
12
- ## Skills
16
+ ## Phase Routing
17
+
18
+ Determine which phase you're in from what the human is asking, then load the right skill.
19
+
20
+ | User Intent | Phase | Load |
21
+ |---|---|---|
22
+ | Plan, create, discuss features, priorities, status | Phase 1 (Planning) | `doc-manager`, `product-graph` |
23
+ | "Start a sprint", scope selection, "what should we work on?" | Phase 2 (Sprint Planning) | `doc-manager`, `product-graph` |
24
+ | Sprint confirmed, "bounce", implement stories | Phase 3 (Execution) | `agent-team` |
25
+ | Review sprint, retrospective, improvement | Phase 4 (Review) | `improve` |
26
+ | Scope change to existing documents | Any | `product-graph` (impact first), then `doc-manager` |
27
+ | Code review | Any | `vibe-code-review` |
28
+ | Lesson or gotcha to record | Any | `lesson` |
29
+
30
+ ## Critical Rules
31
+
32
+ ### Before Writing Code
33
+ 1. **Read LESSONS.md** at the project root. Every time. No exceptions.
34
+ 2. **Read the Story spec** (§1 The Spec + §3 Implementation Guide). Do not infer requirements.
35
+ 3. **Check ADRs** in the Roadmap (§3). Comply with recorded architecture decisions.
36
+
37
+ ### During Implementation
38
+ 4. **Comply with ADRs**. No new patterns or libraries unless approved in Roadmap §3. The Architect validates compliance.
39
+ 5. **No Gold-Plating**. Implement exactly what the Story specifies.
40
+ 6. **Write Self-Documenting Code**. All exports MUST have JSDoc/docstrings.
41
+ 7. **Self-assess Correction Tax**. Track % human intervention.
42
+
43
+ ### After Implementation
44
+ 8. **Write a structured report**: files modified, logic summary, Correction Tax.
45
+ 9. **Flag lessons**. Gotchas and multi-attempt fixes get flagged for recording.
46
+
47
+ ### Always
48
+ 10. **Reports are the only handoff**. No direct agent-to-agent communication.
49
+ 11. **One source of truth**. Reference upstream documents, don't duplicate.
50
+ 12. **Change Logs are mandatory** on every document modification.
51
+ 13. **Agent Reports MUST use YAML Frontmatter**. Every `.bounce/report/` file starts with strict YAML.
52
+ 14. **Framework Integrity**. Any modification to `brains/`, `skills/`, `templates/`, or `scripts/` MUST be recorded in `brains/CHANGELOG.md` and reflected in `MANIFEST.md`.
13
53
 
14
- Skills are in the `skills/` directory. Each skill has a `SKILL.md` with instructions. Read the relevant SKILL.md before performing any skill-related task.
54
+ ## Skills
15
55
 
56
+ Skills are in the `skills/` directory. Each skill has a `SKILL.md` with instructions.
16
57
  For Antigravity: copy skills to `.agents/skills/` for workspace-scoped discovery.
17
58
 
18
- | Skill | Purpose | Used By |
19
- |-------|---------|---------|
20
- | `skills/agent-team/` | Subagent orchestration and delegation | Team Lead |
21
- | `skills/doc-manager/` | Document hierarchy navigation and lifecycle | Team Lead, all agents |
22
- | `skills/lesson/` | Recording project-specific mistakes and rules | All agents (read), Team Lead (write) |
23
- | `skills/react-best-practices/` | Frontend coding patterns and anti-patterns | Developer |
24
- | `skills/vibe-code-review/` | Code quality review (4 modes) | QA, Architect |
25
- | `skills/write-skill/` | Creating and refining agent skills | Team Lead |
26
- | `skills/improve/` | Framework self-improvement from agent feedback | Team Lead |
59
+ **Loaded by phase** (see Phase Routing above):
60
+ - **Always:** Read `skills/lesson/SKILL.md`
61
+ - **Planning (Phase 1 & 2):** Read `skills/doc-manager/SKILL.md` + `skills/product-graph/SKILL.md`
62
+ - **Execution (Phase 3):** Read `skills/agent-team/SKILL.md`
27
63
 
28
- ## CLI Commands
64
+ **On-demand:** `vibe-code-review`, `react-best-practices`, `write-skill`, `improve`, `file-organization`
29
65
 
30
- V-Bounce Engine ships a CLI. Use these commands for state management instead of editing files manually:
66
+ ## CLI Commands
31
67
 
32
68
  ```bash
33
69
  # Sprint management
34
- vbounce sprint init S-06 D-02 --stories STORY-001,STORY-002
70
+ vbounce sprint init S-06 D-02 --stories STORY-011-05,STORY-005-01
35
71
  vbounce sprint close S-05
36
-
37
- # Story management
38
72
  vbounce story complete STORY-005-02 --qa-bounces 1 --arch-bounces 0 --correction-tax 5
39
73
 
40
74
  # State transitions
41
- vbounce state show # see current sprint state
42
- vbounce state update STORY-005-02 "QA Passed" # transition story state
43
- vbounce state update STORY-005-02 --qa-bounce # increment QA bounce counter
75
+ vbounce state show
76
+ vbounce state update STORY-005-02 "QA Passed"
77
+
78
+ # Product graph
79
+ vbounce graph # generate product document graph
80
+ vbounce graph impact EPIC-002 # show what's affected by a document change
44
81
 
45
82
  # Validation
46
- vbounce validate report <file> # validate agent report YAML
47
- vbounce validate state # validate state.json
48
- vbounce validate sprint # validate Sprint Plan
49
- vbounce validate ready STORY-ID # pre-bounce gate check
83
+ vbounce validate report <file> | state | sprint | ready STORY-ID
50
84
 
51
85
  # Context packs
52
- vbounce prep qa STORY-005-02 # generate QA context pack
53
- vbounce prep arch STORY-005-02 # generate Architect context pack
54
- vbounce prep sprint S-06 # generate Sprint context pack
86
+ vbounce prep qa STORY-ID | arch STORY-ID | sprint S-XX
55
87
 
56
88
  # Self-improvement
57
- vbounce trends # cross-sprint trend analysis
58
- vbounce suggest S-06 # generate improvement suggestions
89
+ vbounce trends | suggest S-XX | improve S-XX
59
90
 
60
91
  # Health check
61
- vbounce doctor # validate all configs, templates, state files
92
+ vbounce doctor
62
93
  ```
63
94
 
64
- ## The V-Bounce Process
65
-
66
- ### Phase 1: Verification (Planning)
67
- Documents are created in strict hierarchy — no level can be skipped:
68
- Charter (why) → Roadmap (strategic what/when) → Epic (detailed what) → Story (how) → Delivery Plan (execution) → Risk Registry (risks)
69
-
70
- ### Pre-Bounce Checks
71
- Before starting any sprint, the Team Lead MUST:
72
- - **Triage the Request**: Is this an L1 Trivial change (1-2 files, cosmetic/minor)?
73
- - If YES → Use the **Hotfix Path** (create a Hotfix document, bypass Epic/Story).
74
- - If NO → Use the **Standard Path** (create/find Epic, Story).
75
- - **Determine Execution Mode**:
76
- - Full Bounce (Default): dev → qa → arch → devops.
77
- - Fast Track (L1/L2 Minor): dev → devops only (skip QA/Arch gates).
78
- - **Dependency Check**: Stories with `Depends On:` must execute sequentially. Wait for DevOps merge of Story A before starting Story B.
79
- - Read RISK_REGISTRY.md — flag high-severity risks that affect planned stories.
80
- - Read `sprint-{XX}.md` §2 Sprint Open Questions — do not bounce stories with unresolved blocking questions.
81
- - If `vdocs/_manifest.json` exists, read it.
82
- - **Strategic Freeze**: Charter and Roadmap are frozen during sprints. If emergency changes are needed, run the **Impact Analysis Protocol**: Evaluate sprint stories against new strategy. Pause work until human approval.
83
-
84
- ### Phase 2: The Bounce (Implementation)
85
- **Standard Path (L2-L4 Stories):**
86
- 0. **Orient via state**: Read `.bounce/state.json` if it exists (`vbounce state show`). Run `vbounce prep sprint S-{XX}` to generate a fresh context pack.
87
- 1. Team Lead sends Story context pack to Developer.
88
- 2. Developer reads LESSONS.md and the Story context pack, implements code, writes Implementation Report. CLI Orchestrator must run `./scripts/validate_report.mjs` on the report to enforce YAML strictness.
89
- 3. **Pre-QA Gate Scan:** Team Lead runs `./scripts/pre_gate_runner.sh qa` to catch mechanical failures before spawning QA. If trivial issues → return to Dev.
90
- 4. QA runs Quick Scan + PR Review (skipping pre-scanned checks), validates against Story §2 The Truth. If fail → Bug Report to Dev. CLI Orchestrator must run `./scripts/validate_report.mjs` on the QA report.
91
- 5. Dev fixes and resubmits. 3+ failures → Escalated.
92
- 6. **Pre-Architect Gate Scan:** Team Lead runs `./scripts/pre_gate_runner.sh arch` to catch structural issues before spawning Architect. If mechanical failures → return to Dev.
93
- 7. Architect runs Deep Audit + Trend Check (skipping pre-scanned checks), validates Safe Zone compliance and ADR adherence.
94
- 8. DevOps merges story branch into sprint branch, validates post-merge (tests + lint + build), handles release tagging.
95
- 9. Team Lead consolidates reports into Sprint Report.
96
-
97
- **Hotfix Path (L1 Trivial Tasks):**
98
- 1. Team Lead evaluates request and creates `HOTFIX-{Date}-{Name}.md`.
99
- 2. Developer reads LESSONS.md and Hotfix spec, makes the targeted change (max 1-2 files).
100
- 3. Developer runs `./scripts/hotfix_manager.sh ledger "{Title}" "{Description}"`.
101
- 4. Human/Team Lead manually verifies the fix. QA/Architect bounce loops are bypassed.
102
- 5. Hotfix is merged directly into the active branch.
103
- 6. DevOps (or Team Lead) runs `./scripts/hotfix_manager.sh sync` to update active worktrees.
104
-
105
- ### Phase 3: Review
106
- Sprint Report → Human review → Delivery Plan updated → Lessons recorded → Next sprint.
107
- If sprint delivered new features or Dev reports flagged stale product docs → spawn Scribe agent to generate/update vdocs/ via vdoc.
108
-
109
- ## Story States
110
-
111
- ```
112
- Draft → Refinement → Ready to Bounce → Bouncing → QA Passed → Architect Passed → Sprint Review → Done
113
- ↳ Refinement → Probing/Spiking → Refinement (L4 spike loop)
114
- ↳ Any → Parking Lot (deferred)
115
- ↳ Bouncing → Escalated (3+ failures)
116
- ```
117
-
118
- ## Complexity Labels
119
-
120
- - **L1**: Trivial — Single file, <1hr, known pattern.
121
- - **L2**: Standard — 2-3 files, known pattern, ~2-4hr. *(default)*
122
- - **L3**: Complex — Cross-cutting, spike may be needed, ~1-2 days.
123
- - **L4**: Uncertain — Requires Probing/Spiking before Bounce, >2 days.
124
-
125
- ## Critical Rules
126
-
127
- ### Before Writing Code
128
- 1. **Read LESSONS.md** at the project root. Every time. No exceptions.
129
- 2. **Read the Story spec** (§1 The Spec + §3 Implementation Guide). Do not infer requirements.
130
- 3. **Check ADRs** in the Roadmap (§3). Comply with recorded architecture decisions.
131
-
132
- ### During Implementation
133
- 4. **Follow the Safe Zone**. No new patterns or libraries without Architect approval.
134
- 5. **No Gold-Plating**. Implement exactly what the Story specifies.
135
- 6. **Write Self-Documenting Code**. All exports MUST have JSDoc/docstrings to prevent RAG poisoning for future agents.
136
- 7. **Self-assess Correction Tax**. Track % human intervention.
137
-
138
- ### After Implementation
139
- 7. **Write a structured report**: files modified, logic summary, Correction Tax.
140
- 8. **Flag lessons**. Gotchas and multi-attempt fixes get flagged for recording.
141
-
142
- ### Always
143
- 9. **Reports are the only handoff**. No direct agent-to-agent communication.
144
- 10. **One source of truth**. Reference upstream documents, don't duplicate.
145
- 11. **Change Logs are mandatory** on every document modification.
146
- 12. **Agent Reports MUST use YAML Frontmatter**. Every `.bounce/report/` generated must start with a strict `---` YAML block containing the core status and metrics before the Markdown body.
147
- 13. **Framework Integrity**. Any modification to a `brains/` or `skills/` file MUST be recorded in `brains/CHANGELOG.md` and trigger `./scripts/pre_bounce_sync.sh`.
148
-
149
- ## Framework Structure
150
-
151
- ```
152
- V-Bounce Engine/
153
- ├── brains/ — Agent brain files (this file)
154
- ├── templates/ — Document templates (immutable)
155
- ├── skills/ — Agent skills (SKILL.md files)
156
- ├── scripts/ — Automation scripts (e.g., hotfix_manager.sh)
157
- └── docs/ — Reference docs (e.g., HOTFIX_EDGE_CASES.md)
158
- ```
95
+ ## Quick Reference
159
96
 
160
- ## Document Locations
161
-
162
- Planning docs live in `product_plans/`. It uses a state-based architecture (`strategy/`, `backlog/`, `sprints/`, `archive/`). Completed items are archived to `product_plans/archive/`.
163
-
164
- | Document | Output |
165
- |----------|--------|
166
- | Charter | `product_plans/strategy/{project}_charter.md` |
167
- | Roadmap | `product_plans/strategy/{project}_roadmap.md` |
168
- | Risk Registry | `product_plans/strategy/RISK_REGISTRY.md` |
169
- | Delivery Plan | `product_plans/D-{NN}_{release_name}/D-{NN}_DELIVERY_PLAN.md` |
170
- | Sprint Plan | `product_plans/sprints/sprint-{XX}/sprint-{XX}.md` |
171
- | Epic | `product_plans/backlog/EPIC-{NNN}_{name}/EPIC-{NNN}.md` |
172
- | Story | `product_plans/backlog/EPIC-{NNN}_{name}/STORY-{EpicID}-{StoryID}-{StoryName}.md` |
173
- | Sprint Report | `.bounce/sprint-report-S-{XX}.md` |
174
- | Product Docs | `vdocs/*.md` + `_manifest.json` |
175
-
176
- ## Report Formats
177
-
178
- **Dev Report**: Files modified, logic summary, Correction Tax, lessons flagged, product docs affected.
179
- **QA Report**: Pass/fail, bug descriptions, Gold-Plating audit, plain-language explanations.
180
- **Architect Report**: Compliance score, ADR check, AI-ism findings, regression assessment, refactors.
181
- **DevOps Report**: Merge status, conflict resolution, post-merge validation, environment changes, deployment status.
182
- **Scribe Report**: Mode (init/audit/create), docs created/updated/removed, coverage assessment, accuracy check.
183
- **Sprint Report**: What was delivered (user-facing vs internal), story results, execution metrics (tokens, duration, cost, bounces, correction tax), lessons, retrospective (what went well, what didn't, process improvements).
97
+ - **Document ops:** `skills/doc-manager/SKILL.md` — hierarchy, cascade rules, planning workflows
98
+ - **Product graph:** `.bounce/product-graph.json` — document relationships and state
99
+ - **Bounce orchestration:** `skills/agent-team/SKILL.md` agent delegation, sprint execution
100
+ - **Planning docs:** `product_plans/` — `strategy/`, `backlog/`, `sprints/`, `hotfixes/`, `archive/`
101
+ - **Sprint state:** `.bounce/state.json` — machine-readable sprint state
102
+ - **Framework map:** `MANIFEST.md` — complete file and process registry
@@ -15,16 +15,18 @@ Implement features and fix bugs as specified in Story documents. You write code
15
15
  1. **Read LESSONS.md** at the project root. Scan for entries relevant to your task — treat them as hard constraints. No exceptions.
16
16
  2. **Read ADR references**: If your task involves core systems (auth, db, state), read Roadmap §3 ADRs directly.
17
17
  3. **Read the Story spec** — §1 The Spec for requirements, §3 Implementation Guide for technical approach.
18
- 3. **Check ADR references** in §3.1 — comply with all architecture decisions from the Roadmap.
19
- 4. **Read relevant react-best-practices rules** — consult `skills/react-best-practices/` for patterns matching your task.
20
- 5. **Check product documentation** — if the task file references product docs from `vdocs/`, read them. Understand how the existing feature works before changing adjacent code. If your implementation changes behavior described in a product doc, flag it in your report.
18
+ 4. **Check ADR references** in §3.1 — comply with all architecture decisions from the Roadmap.
19
+ 5. **Check environment prerequisites** — if Story §3 lists required env vars, services, or migrations, verify they're available before starting. If prerequisites are missing, flag in your report immediately — do not waste a bounce cycle on setup failures.
20
+ 6. **Read relevant react-best-practices rules** — consult `skills/react-best-practices/` for patterns matching your task.
21
+ 7. **Check product documentation** — if the task file references product docs from `vdocs/`, read them. Understand how the existing feature works before changing adjacent code. If your implementation changes behavior described in a product doc, flag it in your report.
21
22
 
22
23
  ## During Implementation
23
24
 
24
25
  **You MUST follow the Test-Driven Development (TDD) Red-Green-Refactor cycle:**
25
- 1. **Red (Write Failing Tests):** Before writing any implementation logic, write an automated test file (e.g., Jest, React Testing Library) that explicitly covers the Gherkin scenarios defined in `§2 The Truth`. Run it to prove it fails.
26
+ 1. **Red (Write Failing Tests):** Before writing any implementation logic, write automated tests that cover the Gherkin scenarios defined in `§2 The Truth`. This includes both unit tests AND acceptance-level/E2E tests where applicable. Run them to prove they fail.
26
27
  2. **Green (Write Implementation):** Write the minimum code required to make your tests pass.
27
28
  3. **Refactor:** Clean up the code for readability and architecture without breaking the tests.
29
+ 4. **Verify (E2E):** After refactoring, run the full test suite including any acceptance-level tests. All Gherkin scenarios from §2 must have corresponding passing tests before you write your report. Do not rely on QA to catch missing E2E coverage.
28
30
 
29
31
  - **Follow the Safe Zone.** Do not introduce new patterns, libraries, or architectural changes.
30
32
  - **Write Self-Documenting Code.** To prevent RAG poisoning downstream, you MUST write clear JSDoc/docstrings for all exported functions, components, schemas, and routing logic. Explain the *why*, not just the *what*. If you fail to document your code, the Scribe agent cannot generate an accurate `_manifest.json` for future sprints.
@@ -23,8 +23,13 @@ vbounce state show # current sprint state
23
23
  vbounce validate report <f> # validate a report file
24
24
  vbounce doctor # project health check
25
25
  vbounce prep qa STORY-ID # generate QA context
26
+ vbounce improve S-XX # run self-improvement pipeline
26
27
  ```
27
28
 
29
+ ## Self-Improvement
30
+
31
+ After sprint close, V-Bounce automatically analyzes retro findings, LESSONS.md, and cross-sprint patterns to generate improvement suggestions with impact levels (P0 Critical → P3 Low). See `.bounce/improvement-suggestions.md` after running `vbounce sprint close` or `vbounce improve S-XX`.
32
+
28
33
  ## Document Hierarchy
29
34
 
30
35
  Charter → Roadmap → Epic → Story → Sprint Plan → Delivery Plan
@@ -41,6 +41,9 @@ Before sprints: Lead triages request (L1 Trivial → Hotfix Path. L2-L4 → Epic
41
41
  ### Phase 3: Review
42
42
  Sprint Report → Human review → Delivery Plan updated → Lessons recorded. If new features delivered → spawn Scribe agent to generate/update vdocs/.
43
43
 
44
+ **Self-Improvement Pipeline** (auto-runs on `vbounce sprint close`):
45
+ Analyzes §5 retro tables + LESSONS.md automation candidates + recurring patterns → generates `.bounce/improvement-suggestions.md` with impact levels (P0 Critical → P3 Low). Human approves/rejects/defers. Run `/improve` skill to apply. On-demand: `vbounce improve S-{XX}`.
46
+
44
47
  ### Story States
45
48
  Draft → Refinement → Ready to Bounce → Bouncing → QA Passed → Architect Passed → Sprint Review → Done
46
49
 
@@ -20,8 +20,13 @@ This project uses V-Bounce Engine. You are operating in Tier 4 (Awareness) mode.
20
20
  vbounce state show # where is the sprint right now?
21
21
  vbounce validate report <f> # is this report valid?
22
22
  vbounce doctor # is the framework healthy?
23
+ vbounce improve S-XX # run self-improvement pipeline
23
24
  ```
24
25
 
26
+ ## Self-Improvement
27
+
28
+ After sprint close, V-Bounce auto-analyzes retro findings + LESSONS.md + cross-sprint patterns → generates `.bounce/improvement-suggestions.md` with impact levels (P0 Critical → P3 Low). Use `/improve` skill to apply approved changes.
29
+
25
30
  ## Critical Rules
26
31
 
27
32
  - Read LESSONS.md before coding. No exceptions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sandrinio/vbounce",
3
- "version": "1.9.0",
3
+ "version": "2.1.0",
4
4
  "description": "V-Bounce Engine: Turn your AI coding assistant into a full engineering team through structured SDLC skills.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,6 +11,7 @@
11
11
  import fs from 'fs';
12
12
  import path from 'path';
13
13
  import { fileURLToPath } from 'url';
14
+ import { spawnSync } from 'child_process';
14
15
 
15
16
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
16
17
  const ROOT = path.resolve(__dirname, '..');
@@ -81,6 +82,44 @@ console.log(`✓ Updated state.json`);
81
82
  const sprintPlanPath = `product_plans/sprints/sprint-${sprintNum}`;
82
83
  const archivePath = `product_plans/archive/sprints/sprint-${sprintNum}`;
83
84
 
85
+ // 7. Auto-run improvement pipeline
86
+ console.log('');
87
+ console.log('Running self-improvement pipeline...');
88
+ const suggestScript = path.join(__dirname, 'suggest_improvements.mjs');
89
+ if (fs.existsSync(suggestScript)) {
90
+ // Run trends first (if available)
91
+ const trendsScript = path.join(__dirname, 'sprint_trends.mjs');
92
+ if (fs.existsSync(trendsScript)) {
93
+ const trendsResult = spawnSync(process.execPath, [trendsScript], {
94
+ stdio: 'inherit',
95
+ cwd: process.cwd(),
96
+ });
97
+ if (trendsResult.status !== 0) {
98
+ console.warn(' ⚠ Trends analysis returned non-zero — continuing.');
99
+ }
100
+ }
101
+
102
+ // Run suggest (which internally runs post_sprint_improve.mjs)
103
+ const suggestResult = spawnSync(process.execPath, [suggestScript, sprintId], {
104
+ stdio: 'inherit',
105
+ cwd: process.cwd(),
106
+ });
107
+ if (suggestResult.status !== 0) {
108
+ console.warn(' ⚠ Improvement suggestions returned non-zero.');
109
+ }
110
+ } else {
111
+ console.warn(' ⚠ suggest_improvements.mjs not found — skipping improvement pipeline.');
112
+ }
113
+
114
+ // Regenerate product graph (non-blocking)
115
+ const graphScript = path.join(__dirname, 'product_graph.mjs');
116
+ if (fs.existsSync(graphScript)) {
117
+ const graphResult = spawnSync(process.execPath, [graphScript], { stdio: 'pipe', cwd: process.cwd() });
118
+ if (graphResult.status === 0) {
119
+ console.log('✓ Product graph regenerated');
120
+ }
121
+ }
122
+
84
123
  console.log('');
85
124
  console.log('Manual steps remaining:');
86
125
  console.log(` 1. Archive sprint plan folder:`);
@@ -89,6 +128,7 @@ console.log(` 2. Update Delivery Plan §4 Completed Sprints with a summary row`
89
128
  console.log(` 3. Remove delivered stories from Delivery Plan §3 Backlog`);
90
129
  console.log(` 4. Delete sprint branch (after merge to main):`);
91
130
  console.log(` git branch -d sprint/${sprintId}`);
92
- console.log(` 5. Run: vbounce trends && vbounce suggest ${sprintId}`);
131
+ console.log(` 5. Review .bounce/improvement-suggestions.md approve/reject/defer each item`);
132
+ console.log(` 6. Run /improve to apply approved changes with brain-file sync`);
93
133
  console.log('');
94
134
  console.log(`✓ Sprint ${sprintId} closed.`);
@@ -11,6 +11,7 @@
11
11
  import fs from 'fs';
12
12
  import path from 'path';
13
13
  import { fileURLToPath } from 'url';
14
+ import { spawnSync } from 'child_process';
14
15
 
15
16
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
16
17
  const ROOT = path.resolve(__dirname, '..');
@@ -111,3 +112,10 @@ if (content.includes(logStart)) {
111
112
  fs.writeFileSync(sprintPlanPath, content);
112
113
  console.log(`✓ Updated sprint plan: ${storyId} Done`);
113
114
  console.log(`\n QA bounces: ${qaBounces} | Arch bounces: ${archBounces} | Correction tax: ${correctionTax}`);
115
+
116
+ // Regenerate product graph (non-blocking)
117
+ const graphScript = path.join(__dirname, 'product_graph.mjs');
118
+ if (fs.existsSync(graphScript)) {
119
+ const graphResult = spawnSync(process.execPath, [graphScript], { stdio: 'pipe', cwd: ROOT });
120
+ if (graphResult.status === 0) console.log('✓ Product graph regenerated');
121
+ }
@@ -11,6 +11,7 @@
11
11
  import fs from 'fs';
12
12
  import path from 'path';
13
13
  import { fileURLToPath } from 'url';
14
+ import { spawnSync } from 'child_process';
14
15
 
15
16
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
16
17
  const ROOT = path.resolve(__dirname, '..');
@@ -117,5 +118,12 @@ if (storyIds.length > 0) {
117
118
  });
118
119
  }
119
120
 
121
+ // 5. Regenerate product graph (non-blocking)
122
+ const graphScript = path.join(__dirname, 'product_graph.mjs');
123
+ if (fs.existsSync(graphScript)) {
124
+ const graphResult = spawnSync(process.execPath, [graphScript], { stdio: 'pipe', cwd: ROOT });
125
+ if (graphResult.status === 0) console.log('✓ Product graph regenerated');
126
+ }
127
+
120
128
  console.log('');
121
129
  console.log(`✓ Sprint ${sprintId} initialized. Stories: ${storyIds.length > 0 ? storyIds.join(', ') : 'none (add manually)'}`);