@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/README.md +303 -19
- package/bin/vbounce.mjs +44 -0
- package/brains/AGENTS.md +51 -120
- package/brains/CHANGELOG.md +135 -0
- package/brains/CLAUDE.md +58 -133
- package/brains/GEMINI.md +68 -149
- 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 +41 -1
- package/scripts/complete_story.mjs +8 -0
- package/scripts/init_sprint.mjs +8 -0
- package/scripts/post_sprint_improve.mjs +486 -0
- package/scripts/product_graph.mjs +387 -0
- package/scripts/product_impact.mjs +167 -0
- package/scripts/suggest_improvements.mjs +206 -43
- package/skills/agent-team/SKILL.md +63 -28
- package/skills/agent-team/references/discovery.md +97 -0
- package/skills/agent-team/references/mid-sprint-triage.md +40 -26
- package/skills/doc-manager/SKILL.md +172 -19
- package/skills/improve/SKILL.md +151 -60
- package/skills/lesson/SKILL.md +14 -0
- package/skills/product-graph/SKILL.md +102 -0
- package/templates/bug.md +90 -0
- package/templates/change_request.md +105 -0
- package/templates/epic.md +19 -16
- package/templates/spike.md +143 -0
- package/templates/sprint.md +51 -17
- package/templates/sprint_report.md +6 -4
- package/templates/story.md +23 -8
package/brains/GEMINI.md
CHANGED
|
@@ -5,179 +5,98 @@
|
|
|
5
5
|
|
|
6
6
|
## Identity
|
|
7
7
|
|
|
8
|
-
You are an AI
|
|
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
|
-
##
|
|
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
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
64
|
+
**On-demand:** `vibe-code-review`, `react-best-practices`, `write-skill`, `improve`, `file-organization`
|
|
29
65
|
|
|
30
|
-
|
|
66
|
+
## CLI Commands
|
|
31
67
|
|
|
32
68
|
```bash
|
|
33
69
|
# Sprint management
|
|
34
|
-
vbounce sprint init S-06 D-02 --stories STORY-
|
|
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
|
|
42
|
-
vbounce state update STORY-005-02 "QA Passed"
|
|
43
|
-
|
|
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>
|
|
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-
|
|
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
|
|
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
|
|
92
|
+
vbounce doctor
|
|
62
93
|
```
|
|
63
94
|
|
|
64
|
-
##
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
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
package/scripts/close_sprint.mjs
CHANGED
|
@@ -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.
|
|
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
|
+
}
|
package/scripts/init_sprint.mjs
CHANGED
|
@@ -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)'}`);
|