@sandrinio/vbounce 1.8.0 → 1.9.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 CHANGED
@@ -1,246 +1,254 @@
1
- # 🎯 V-Bounce OS
1
+ # V-Bounce Engine
2
2
 
3
- **Turn your AI coding assistant into a full engineering team.**
3
+ **A structured SDLC framework for AI coding agents.**
4
4
 
5
- *Stop letting your AI code in a vacuum. V-Bounce OS is a structured, agentic framework that enforces a strict Software Development Lifecycle (SDLC) on AI agents like Claude Code, Cursor, Copilot, Gemini, and Codex.*
5
+ V-Bounce Engine turns AI assistants Claude Code, Cursor, Gemini, Copilot, Codex into disciplined engineering teams. Instead of letting agents code in a vacuum, it enforces a planning-first workflow with automated quality gates, structured handoffs, and a persistent learning loop.
6
6
 
7
- > *Inspired by the work of Cory Hymel*
7
+ > Inspired by the work of Cory Hymel
8
8
 
9
9
  ---
10
10
 
11
- ## 💡 The Hook: Why V-Bounce OS?
11
+ ## How It Works
12
12
 
13
- Multi-agent frameworks are everywhere. But simply putting three agents in a chatroom doesn't write scalable software. When left unchecked, AI coding teams still hallucinate requirements, introduce architectural drift, and break existing patterns because they are disconnected from the truth of what they actually built.
13
+ V-Bounce Engine is built around a **Context Loop** a closed feedback system that makes agents smarter with each sprint.
14
14
 
15
- **The core differentiator of V-Bounce OS is the Context Loop: Requirements → Bounce Reports → Product Documentation.**
15
+ ```
16
+ Plan ──> Build ──> Bounce ──> Document ──> Learn
17
+ │ │ │ │
18
+ │ QA + Arch │ LESSONS.md
19
+ │ gate code Scribe maps │
20
+ │ the codebase │
21
+ └─────────────────────────────────────────────────────┘
22
+ Next sprint reads it all
23
+ ```
24
+
25
+ **Plan.** The Team Lead writes requirements using structured templates (Charter, Epic, Story) before any code is written.
16
26
 
17
- Instead of treating your AI as a solo developer, V-Bounce OS forces distinct, specialized roles (Team Lead, Developer, QA, Architect, Scribe) to communicate exclusively through structured artifacts.
27
+ **Build.** The Developer agent implements each Story in an isolated git worktree and submits an Implementation Report.
18
28
 
19
- 1. **Requirements (`product_plans/`)**: The Team Lead defines standard, immutable templates (Charter, Epic, Story) before a single line of code is written.
20
- 2. **Bounce Reports (`.bounce/`)**: During implementation, the QA and Architect agents do not edit code. They run deep codebase audits and emit structured "Bounce Reports" summarizing anti-patterns and regressions. The Developer must fix the issues and run the loop again until the code passes validation.
21
- 3. **Product Documentation (`vdocs/`)**: The Scribe agent explores the *actual* codebase post-merge and uses our integrated `vdoc` tool to update feature-centric documentation and the semantic `_manifest.json` map.
29
+ **Bounce.** The QA agent validates against acceptance criteria. The Architect agent audits against your architecture rules. If either fails, the work bounces back to the Developer — up to 3 times before escalating to you. Every failure is tagged with a root cause (`missing_tests`, `adr_violation`, `spec_ambiguity`, etc.) for trend analysis.
22
30
 
23
- The next time an agent writes code, it reads the `_manifest.json` and the `LESSONS.md` file from previous sprints. The context loop closes. Your AI writes better code because it finally understands the reality of your evolving system.
31
+ **Document.** After merge, the Scribe agent maps the actual codebase into semantic product documentation using [vdoc](https://github.com/sandrinio/vdoc) (optional).
32
+
33
+ **Learn.** Sprint mistakes are recorded in `LESSONS.md`. All agents read it before writing future code. The framework also tracks its own performance — bounce rates, correction tax, recurring failure patterns — and suggests improvements to its own templates and skills.
24
34
 
25
35
  ---
26
36
 
27
- ## 📂 State-Based Folder Structure
37
+ ## Quick Start
28
38
 
29
- V-Bounce OS organizes planning documents (`product_plans/`) through a strict state machine based on folder location:
39
+ ```bash
40
+ npx @sandrinio/vbounce install claude # Claude Code
41
+ npx @sandrinio/vbounce install cursor # Cursor
42
+ npx @sandrinio/vbounce install gemini # Gemini CLI
43
+ npx @sandrinio/vbounce install codex # OpenAI Codex
44
+ npx @sandrinio/vbounce install vscode # GitHub Copilot
45
+ ```
30
46
 
31
- - **`strategy/`**: High-level context (Charter, Roadmap, Risk Registry, Release Plans). Frozen during active sprints.
32
- - **`backlog/`**: Where unassigned work lives. Epics and their child Stories are refined here until selected for a sprint.
33
- - **`sprints/`**: The active execution workspace. A physical `sprint-XX/` boundary is created and Stories are moved in. Only one sprint is "Active" at a time.
34
- - **`hotfixes/`**: Trivial, emergency tasks that bypass sprint cycles.
35
- - **`archive/`**: Immutable history. Finished sprint folders and fully completed Epics are permanently moved here.
47
+ Then verify your setup:
36
48
 
37
- ---
49
+ ```bash
50
+ npx vbounce doctor
51
+ ```
38
52
 
39
- ## 🛠️ The Tech Stack
53
+ ### What gets installed
40
54
 
41
- V-Bounce OS is built to be **local-first, privacy-conscious, and dependency-light**.
55
+ Here's what lands in your repo (example: Claude Code):
42
56
 
43
- - **Runtime**: Node.js — Powering the validation pipeline, context preparation, and CLI.
44
- - **Data Contract**: YAML Frontmatter + Markdown — Human-readable agent handoffs that are also strictly machine-parsable.
45
- - **State Management**: `.bounce/state.json`Machine-readable sprint state for instant crash recovery without re-reading documents.
46
- - **Context Budget**: On-demand prep scripts (`vbounce prep sprint/qa/arch`) generate capped context packs — no embedding or vector DB required.
57
+ ```
58
+ your-project/
59
+ ├── CLAUDE.md # Brain fileteaches the agent the V-Bounce process
60
+ ├── .claude/agents/ # Subagent instructions (Claude Code only)
61
+ │ ├── developer.md
62
+ │ ├── qa.md
63
+ │ ├── architect.md
64
+ │ ├── devops.md
65
+ │ └── scribe.md
66
+ ├── templates/ # 9 Markdown + YAML frontmatter templates
67
+ │ ├── charter.md
68
+ │ ├── roadmap.md
69
+ │ ├── epic.md
70
+ │ ├── story.md
71
+ │ ├── sprint.md
72
+ │ ├── delivery_plan.md
73
+ │ ├── sprint_report.md
74
+ │ ├── hotfix.md
75
+ │ └── risk_registry.md
76
+ ├── skills/ # 7 modular skill files (see Skills below)
77
+ │ ├── agent-team/
78
+ │ ├── doc-manager/
79
+ │ ├── lesson/
80
+ │ ├── vibe-code-review/
81
+ │ ├── write-skill/
82
+ │ ├── improve/
83
+ │ └── react-best-practices/ # Example — customize for your stack
84
+ ├── scripts/ # 23 automation scripts (validation, context prep, state)
85
+ └── package.json # 3 deps: js-yaml, marked, commander. Nothing else.
86
+ ```
87
+
88
+ Other platforms install the same `templates/`, `skills/`, and `scripts/` — only the brain file differs (`.cursor/rules/`, `GEMINI.md`, `AGENTS.md`, or `.github/copilot-instructions.md`).
89
+
90
+ Everything is plain Markdown and Node.js. No vector DBs, no embedding models, no background services.
47
91
 
48
92
  ---
49
93
 
50
- ## 🚀 Quick Start
94
+ ## Supported Tools
51
95
 
52
- One command to install the entire methodology directly into your AI assistant.
96
+ V-Bounce Engine adapts to each tool's capabilities:
53
97
 
54
- ```bash
55
- # For Claude Code
56
- npx @sandrinio/vbounce install claude
98
+ | Tier | Tool | How it works |
99
+ |------|------|-------------|
100
+ | 1 | Claude Code | Full orchestration — spawns subagents for each role, manages state, runs all CLI commands |
101
+ | 2 | Gemini CLI, Codex | Single-agent mode — follows the bounce loop sequentially, full CLI access |
102
+ | 3 | Cursor | Role-specific context injection via `.cursor/rules/` MDC files |
103
+ | 4 | Copilot, Windsurf | Awareness mode — checklist-driven, reads state, safe CLI operations |
57
104
 
58
- # For Cursor
59
- npx @sandrinio/vbounce install cursor
105
+ ---
60
106
 
61
- # For Gemini / Antigravity
62
- npx @sandrinio/vbounce install gemini
107
+ ## The Bounce Loop
63
108
 
64
- # For Copilot / VS Code
65
- npx @sandrinio/vbounce install vscode
109
+ This is the core execution cycle for every Story:
66
110
 
67
- # For OpenAI Codex
68
- npx @sandrinio/vbounce install codex
111
+ ```
112
+ Developer QA Architect DevOps
113
+ │ │ │ │
114
+ Writes code in worktree │ │ │
115
+ Submits Implementation ──────> │ │ │
116
+ Report Validates against (waits for QA) │
117
+ acceptance criteria │ │
118
+ │ │ │
119
+ PASS ──────────────────────> │ │
120
+ FAIL ──> bounces back Audits against │
121
+ to Developer ADRs + safe zone │
122
+ │ │
123
+ PASS ──────────────────> │
124
+ FAIL ──> bounces back Merges worktree
125
+ to Developer into main branch
69
126
  ```
70
127
 
71
- ### What gets installed?
72
- - **Agent Instructions:** The "Brain" file (e.g., `CLAUDE.md`, `.cursor/rules/`) that teaches your AI how to follow the V-Bounce process.
73
- - **Templates:** Markdown templates for your Charter, Roadmap, Epics, Stories, Sprint Plans, and Delivery Plans.
74
- - **Bundled Scripts:** 16+ automation scripts — validation pipeline, context preparation, state management, sprint lifecycle, and the self-improvement loop.
75
- - **Lightweight Dependencies:** The installer runs `npm install` for `js-yaml`, `marked`, and `commander` — nothing else. No vector DBs, no embedding models.
76
- - **vdoc Integration:** The installer offers to install [`@sandrinio/vdoc`](https://github.com/sandrinio/vdoc) for your platform — enabling automatic semantic product documentation generation via the Scribe agent.
128
+ After 3 failed bounces on either gate, the Story escalates to you for intervention.
77
129
 
78
- After installing, run `vbounce doctor` to verify your setup is complete.
130
+ Each FAIL report includes a `root_cause` tag that feeds into cross-sprint trend analysis via `vbounce trends`.
79
131
 
80
132
  ---
81
133
 
82
- ## 🛠️ The `vbounce` CLI
134
+ ## Skills
83
135
 
84
- All V-Bounce OS operations route through a unified CLI. Every command is designed to be run by the Team Lead agent not just humans.
136
+ Skills are modular markdown instructions the Team Lead invokes automatically during the SDLC:
85
137
 
86
- ```bash
87
- # Sprint lifecycle
88
- vbounce sprint init S-01 D-01 # Initialize sprint state.json + plan dir
89
- vbounce sprint close S-01 # Validate terminal states, archive, close
90
-
91
- # Story lifecycle
92
- vbounce story complete STORY-001-01-login # Update state.json + sprint plan §4
93
-
94
- # State management (crash recovery)
95
- vbounce state show # Print current state.json
96
- vbounce state update STORY-001-01-login "QA Passed" # Update story state
97
- vbounce state update STORY-001-01-login "Bouncing" --qa-bounce # Increment QA bounce
98
-
99
- # Context preparation (context budget management)
100
- vbounce prep sprint S-01 # Generate sprint-context-S-01.md (≤200 lines)
101
- vbounce prep qa STORY-001-01-login # Generate qa-context-STORY-ID.md (≤300 lines)
102
- vbounce prep arch STORY-001-01-login # Generate arch-context with truncated diff
103
-
104
- # Validation gates
105
- vbounce validate report .bounce/reports/STORY-001-01-login-qa.md
106
- vbounce validate state # Validate state.json schema
107
- vbounce validate sprint S-01 # Validate sprint plan structure + cross-refs
108
- vbounce validate ready STORY-001-01-login # Pre-bounce readiness gate
109
-
110
- # Self-improvement loop
111
- vbounce trends # Compute sprint metrics → .bounce/trends.md
112
- vbounce suggest S-01 # Generate improvement suggestions
113
-
114
- # Framework health
115
- vbounce doctor # Check all required files, scripts, templates
116
- ```
138
+ | Skill | Purpose |
139
+ |-------|---------|
140
+ | `agent-team` | Spawns temporary sub-agents (Dev, QA, Architect, DevOps, Scribe) to parallelize work |
141
+ | `doc-manager` | Enforces the document hierarchy for Epics and Stories |
142
+ | `lesson` | Extracts mistakes from sprints into `LESSONS.md` |
143
+ | `vibe-code-review` | Runs Quick Scan or Deep Audit against acceptance criteria and architecture rules |
144
+ | `write-skill` | Allows the Team Lead to author new skills when the team encounters a recurring problem |
145
+ | `improve` | Self-improvement loop — reads agent friction signals across sprints and proposes framework changes (with your approval) |
146
+ | `react-best-practices` | Example tech-stack skill — customize this for your own stack |
117
147
 
118
148
  ---
119
149
 
120
- ## 🔄 State Management & Crash Recovery
150
+ ## State Management
121
151
 
122
- V-Bounce OS tracks sprint state in `.bounce/state.json` — a machine-readable snapshot that survives context resets and session interruptions.
152
+ Sprint state lives in `.bounce/state.json` — a machine-readable snapshot that survives context resets and session interruptions:
123
153
 
124
154
  ```json
125
155
  {
126
156
  "sprint_id": "S-01",
127
- "delivery_id": "D-01",
128
157
  "current_phase": "bouncing",
129
- "last_action": "QA failed STORY-001-01-login — bounce 1",
130
158
  "stories": {
131
159
  "STORY-001-01-login": {
132
160
  "state": "Bouncing",
133
161
  "qa_bounces": 1,
134
162
  "arch_bounces": 0,
135
- "worktree": ".worktrees/STORY-001-01-login",
136
- "updated_at": "2026-03-12T10:00:00Z"
163
+ "worktree": ".worktrees/STORY-001-01-login"
137
164
  }
138
165
  }
139
166
  }
140
167
  ```
141
168
 
142
- When a new session starts, the Team Lead reads `state.json` in under 5 seconds to know exactly where the sprint left off — no re-reading 10 markdown files.
169
+ When a session starts, the Team Lead reads `state.json` to resume exactly where the sprint left off.
143
170
 
144
171
  ---
145
172
 
146
- ## 📊 Self-Improvement Loop
173
+ ## CLI Reference
147
174
 
148
- V-Bounce OS tracks its own performance and suggests improvements automatically.
175
+ ```bash
176
+ # Sprint lifecycle
177
+ vbounce sprint init S-01 D-01 # Initialize sprint
178
+ vbounce sprint close S-01 # Validate, archive, close
149
179
 
150
- 1. **Root Cause Tagging**: Every QA and Architect FAIL report includes a `root_cause:` field (e.g., `missing_tests`, `adr_violation`, `spec_ambiguity`) that feeds into trend analysis.
151
- 2. **Sprint Trends**: `vbounce trends` scans all archived reports to compute first-pass rate, average bounce count, correction tax, and root cause breakdown per sprint.
152
- 3. **Improvement Suggestions**: `vbounce suggest S-{XX}` reads trends, LESSONS.md, and the improvement log to flag stale lessons, recurring failure patterns, and graduation candidates.
153
- 4. **Improvement Log**: `.bounce/improvement-log.md` tracks every suggestion with Applied/Rejected/Deferred status — so nothing falls through the cracks.
180
+ # Story lifecycle
181
+ vbounce story complete STORY-ID # Mark story done, update state
154
182
 
155
- ---
183
+ # State management
184
+ vbounce state show # Print current state
185
+ vbounce state update STORY-ID STATE # Update story state
156
186
 
157
- ## 🔧 Tool Tier Model
187
+ # Context preparation
188
+ vbounce prep sprint S-01 # Sprint context pack
189
+ vbounce prep qa STORY-ID # QA context pack
190
+ vbounce prep arch STORY-ID # Architect context pack
158
191
 
159
- V-Bounce OS supports four tiers of AI tools with dedicated brain files for each.
192
+ # Validation
193
+ vbounce validate report <file> # Validate report YAML
194
+ vbounce validate state # Validate state.json schema
195
+ vbounce validate sprint S-01 # Validate sprint plan
196
+ vbounce validate ready STORY-ID # Pre-bounce readiness gate
160
197
 
161
- | Tier | Tools | Brain File | Capabilities |
162
- |------|-------|------------|--------------|
163
- | **Tier 1** | Claude Code | `brains/CLAUDE.md` | Full orchestration — spawns subagents, manages state, runs all CLI commands |
164
- | **Tier 2** | Gemini CLI, OpenAI Codex | `brains/GEMINI.md`, `brains/codex/` | Single-agent — follows bounce loop, reads state.json, all CLI commands |
165
- | **Tier 3** | Cursor | `brains/cursor-rules/` | Role-specific context injection via `.cursor/rules/` MDC files |
166
- | **Tier 4** | GitHub Copilot, Windsurf | `brains/copilot/`, `brains/windsurf/` | Awareness mode — checklist-driven, reads state.json, CLI commands for safe operations |
198
+ # Self-improvement
199
+ vbounce trends # Cross-sprint trend analysis
200
+ vbounce suggest S-01 # Generate improvement suggestions
167
201
 
168
- Install the appropriate brain for your tool:
169
- ```bash
170
- npx @sandrinio/vbounce install claude # Tier 1
171
- npx @sandrinio/vbounce install gemini # Tier 2
172
- npx @sandrinio/vbounce install cursor # Tier 3
173
- npx @sandrinio/vbounce install vscode # Tier 4
202
+ # Health check
203
+ vbounce doctor # Verify setup
174
204
  ```
175
205
 
176
206
  ---
177
207
 
178
- ### 🧰 The Bundled Skills
179
- V-Bounce OS installs a powerful suite of specialized markdown `skills/` directly into your workspace. These act as modular capabilities you can invoke dynamically or that the Team Lead agent will invoke automatically during the SDLC process:
208
+ ## Runtime Structure
180
209
 
181
- | Skill | Role | Purpose |
182
- |-------|------|---------|
183
- | `agent-team` | Lead | Spawns temporary sub-agents (Dev, QA, DevOps) to parallelize complex tasks without losing context. |
184
- | `doc-manager` | All | Enforces the strict hierarchy for managing Epic and Story documents *(Charter is optional, used only for new projects or brainstorming)*. |
185
- | `lesson` | Lead | Extracts mistakes made during Sprints and updates `LESSONS.md` to prevent future regressions. |
186
- | `react-best-practices` | Developer | A strict set of frontend execution rules the Developer must follow during implementation. <mark>*(Note: This skill serves as a template and must be customized by the human according to the specific tech stack being used.)*</mark> |
187
- | `vibe-code-review` | QA/Architect | Runs distinct review modes (Quick Scan, Deep Audit) to validate code against Acceptance Criteria and Architecture rules. |
188
- | `write-skill` | Lead | Allows the Team Lead to autonomously write and deploy entirely *new* skills if the team repeatedly encounters a novel problem. |
189
- | `improve` | Lead | The framework's self-improvement loop. Reads agent friction signals from sprint retros and proposes targeted changes to templates, skills, brain files, and scripts — with human approval. |
210
+ As you use V-Bounce Engine, the framework creates these directories to manage your sprints:
190
211
 
191
- ---
192
-
193
- ## ⚙️ A Skill-Driven Methodology
194
-
195
- V-Bounce OS enforces a strict hierarchy. No code is written without a plan, and no task is executed without invoking the proper skills.
196
-
197
- ### 1. Planning Layer
198
- You use the bundled templates to define the work.
199
- `Charter ➔ Roadmap ➔ Epic ➔ Story`
212
+ ```
213
+ product_plans/ # Created when you start planning
214
+ strategy/ # Charter, Roadmap, Risk Registry (frozen during sprints)
215
+ backlog/ # Epics and Stories awaiting sprint assignment
216
+ sprints/ # Active sprint workspace (one active at a time)
217
+ hotfixes/ # Emergency fixes that bypass sprint cycles
218
+ archive/ # Completed sprints and Epics (immutable history)
200
219
 
201
- ### 2. The Bounce Loop (Implementation)
202
- Once a Story is ready, you kick off the AI sprint.
203
- 1. The **Developer** AI writes the code and submits an Implementation Report.
204
- 2. The **QA** AI reads the report and tests it against the Story's requirements. If it fails, it bounces back. (Max 3 attempts before escalating to you).
205
- 3. The **Architect** AI audits the successful QA build against your Safe Zone and Architecture Decision Records (ADRs).
206
- 4. Only when both gates pass does the **DevOps** AI merge the isolated worktree into your main branch.
220
+ .bounce/ # Created on first sprint init
221
+ state.json # Machine-readable sprint state (crash recovery)
222
+ reports/ # QA and Architect bounce reports
223
+ improvement-log.md # Tracked improvement suggestions
207
224
 
208
- ### 3. End of Sprint Reports
209
- When a sprint concludes, V-Bounce OS generates structured reports so human reviewers can audit the work without reading every line of code:
210
- - **Sprint Report**: A comprehensive summary by the Team Lead detailing what was delivered, execution metrics, story results, and a retro of what went wrong.
211
- - **Sprint Release Report**: The DevOps agent's log of the merge process to the main branch, environment changes, and post-merge test validations.
212
- - **Scribe Report**: The Scribe agent's complete audit of which product documentation files were generated, updated, or removed (using `vdoc`) to map the new codebase reality.
225
+ .worktrees/ # Git worktrees for isolated story branches
213
226
 
214
- ### 4. Progressive Learning (`LESSONS.md`)
215
- Every time the AI makes a mistake during the Bounce Loop, it flags the issue. During the sprint retrospective, these mistakes are recorded in `LESSONS.md`—a permanent project memory that all agents read *before* writing any future code. **Your AI gets smarter about your specific codebase with every single sprint.**
227
+ LESSONS.md # Accumulated mistakes — agents read this before coding
228
+ ```
216
229
 
217
- ### 5. Self-Improving Framework (`improve` skill)
218
- V-Bounce OS doesn't just improve your code — it improves *itself*. Every agent report includes a **Process Feedback** section where agents flag friction with the framework: a template missing a critical field, a handoff that lost context, a RAG query that returned irrelevant results, or a skill instruction that was unclear.
230
+ ---
219
231
 
220
- These signals are aggregated into the Sprint Report's **Framework Self-Assessment** — categorized by area (Templates, Handoffs, RAG Pipeline, Skills, Process Flow, Tooling) with severity ratings and suggested fixes.
232
+ ## End-of-Sprint Reports
221
233
 
222
- After every 2-3 sprints, the Team Lead runs the `improve` skill which:
223
- 1. Reads accumulated friction signals across sprints
224
- 2. Identifies recurring patterns (same complaint from multiple agents = real problem)
225
- 3. Proposes specific, targeted changes to templates, skills, brain files, or scripts
226
- 4. **Applies nothing without your approval** — you review every proposed change
234
+ When a sprint concludes, V-Bounce Engine generates three structured reports:
227
235
 
228
- The result: templates get sharper, handoffs get cleaner, skills get more precise, and the bounce loop gets tighter all driven by the agents who actually use the framework every day.
236
+ - **Sprint Report** what was delivered, execution metrics (tokens, cost, bounce rates), story results, lessons learned, and a retrospective.
237
+ - **Release Report** — the DevOps agent's merge log, environment changes, and post-merge validations.
238
+ - **Scribe Report** — which product documentation was created, updated, or flagged as stale.
229
239
 
230
240
  ---
231
241
 
232
- ## 🔍 Keywords for Searchability
233
- `ai coding agent` `claude code` `cursor` `github copilot` `gemini` `openai codex` `software development lifecycle` `sdlc` `ai software engineer` `autonomous coding` `agentic framework` `software architecture` `ai team` `vdoc` `ai documentation` `prompt engineering`
242
+ ## Documentation
234
243
 
235
- ---
244
+ - [Epic template and structure](templates/epic.md)
245
+ - [Hotfix edge cases](docs/HOTFIX_EDGE_CASES.md)
246
+ - [vdoc integration](https://github.com/sandrinio/vdoc)
247
+
248
+ ## Contributing
236
249
 
237
- ## 📖 Documentation
238
- - [How to structure an Epic](templates/epic.md)
239
- - [How the Bounce Loop handles Hotfixes](docs/HOTFIX_EDGE_CASES.md)
240
- - [Integrating with vdoc](https://github.com/sandrinio/vdoc)
250
+ Contributions, issues, and feature requests are welcome. Check the [issues page](https://github.com/sandrinio/v-bounce-engine/issues).
241
251
 
242
- ## 🤝 Contributing
243
- Contributions, issues, and feature requests are welcome! Feel free to check the [issues page]().
252
+ ## License
244
253
 
245
- ## 📝 License
246
- This project is [MIT](LICENSE) licensed.
254
+ [MIT](LICENSE)
package/bin/vbounce.mjs CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  import fs from 'fs';
4
4
  import path from 'path';
5
+ import crypto from 'crypto';
5
6
  import { fileURLToPath } from 'url';
6
7
  import readline from 'readline';
7
8
 
@@ -65,10 +66,10 @@ const askQuestion = (query) => new Promise(resolve => rl.question(query, resolve
65
66
 
66
67
  function displayHelp() {
67
68
  console.log(`
68
- V-Bounce OS CLI
69
+ V-Bounce Engine CLI
69
70
 
70
71
  Usage:
71
- vbounce install <platform> Install V-Bounce OS into a project
72
+ vbounce install <platform> Install V-Bounce Engine into a project
72
73
  vbounce state show Show current sprint state
73
74
  vbounce state update <storyId> <state|--qa-bounce>
74
75
  vbounce sprint init <sprintId> <deliveryId> [--stories STORY-001,...]
@@ -227,6 +228,7 @@ if (command === 'install') {
227
228
  }
228
229
 
229
230
  const CWD = process.cwd();
231
+ const pkgVersion = JSON.parse(fs.readFileSync(path.join(pkgRoot, 'package.json'), 'utf8')).version;
230
232
 
231
233
  // Map vbounce platform names to vdoc platform names
232
234
  const vdocPlatformMap = {
@@ -287,34 +289,208 @@ if (command === 'install') {
287
289
  displayHelp();
288
290
  }
289
291
 
290
- console.log(`\n🚀 Preparing to install V-Bounce OS for \x1b[36m${targetPlatform}\x1b[0m...\n`);
292
+ // ---------------------------------------------------------------------------
293
+ // Upgrade-safe install helpers
294
+ // ---------------------------------------------------------------------------
291
295
 
292
- const toCopy = [];
293
- const toOverwrite = [];
296
+ const META_PATH = path.join(CWD, '.bounce', 'install-meta.json');
297
+ const BACKUPS_DIR = path.join(CWD, '.bounce', 'backups');
294
298
 
295
- mapping.forEach(rule => {
296
- const sourcePath = path.join(pkgRoot, rule.src);
297
- const destPath = path.join(CWD, rule.dest);
299
+ /** Compute MD5 hash of a single file's contents. */
300
+ function computeFileHash(filePath) {
301
+ const content = fs.readFileSync(filePath);
302
+ return crypto.createHash('md5').update(content).digest('hex');
303
+ }
298
304
 
299
- if (!fs.existsSync(sourcePath)) {
300
- return; // Source does not exist internally, skip
305
+ /** Compute a combined hash for a directory by hashing all files sorted by relative path. */
306
+ function computeDirHash(dirPath) {
307
+ const hash = crypto.createHash('md5');
308
+ const entries = [];
309
+
310
+ function walk(dir, rel) {
311
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
312
+ const fullPath = path.join(dir, entry.name);
313
+ const relPath = path.join(rel, entry.name);
314
+ if (entry.isDirectory()) {
315
+ walk(fullPath, relPath);
316
+ } else {
317
+ entries.push({ relPath, fullPath });
318
+ }
319
+ }
301
320
  }
302
321
 
303
- if (fs.existsSync(destPath)) {
304
- toOverwrite.push(rule.dest);
305
- } else {
306
- toCopy.push(rule.dest);
322
+ walk(dirPath, '');
323
+ entries.sort((a, b) => a.relPath.localeCompare(b.relPath));
324
+ for (const e of entries) {
325
+ hash.update(e.relPath);
326
+ hash.update(fs.readFileSync(e.fullPath));
307
327
  }
308
- });
328
+ return hash.digest('hex');
329
+ }
330
+
331
+ /** Compute hash for a path (file or directory). */
332
+ function computeHash(p) {
333
+ const stats = fs.statSync(p);
334
+ return stats.isDirectory() ? computeDirHash(p) : computeFileHash(p);
335
+ }
336
+
337
+ /** Count files in a path (1 for a file, recursive count for a directory). */
338
+ function countFiles(p) {
339
+ const stats = fs.statSync(p);
340
+ if (!stats.isDirectory()) return 1;
341
+ let count = 0;
342
+ function walk(dir) {
343
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
344
+ if (entry.isDirectory()) walk(path.join(dir, entry.name));
345
+ else count++;
346
+ }
347
+ }
348
+ walk(p);
349
+ return count;
350
+ }
351
+
352
+ /** Read install-meta.json, returns null if missing. */
353
+ function readInstallMeta() {
354
+ if (!fs.existsSync(META_PATH)) return null;
355
+ try {
356
+ return JSON.parse(fs.readFileSync(META_PATH, 'utf8'));
357
+ } catch {
358
+ return null;
359
+ }
360
+ }
361
+
362
+ /** Write install-meta.json. */
363
+ function writeInstallMeta(version, platform, files, hashes) {
364
+ const meta = {
365
+ version,
366
+ platform,
367
+ installed_at: new Date().toISOString(),
368
+ files,
369
+ hashes
370
+ };
371
+ fs.mkdirSync(path.dirname(META_PATH), { recursive: true });
372
+ fs.writeFileSync(META_PATH, JSON.stringify(meta, null, 2) + '\n');
373
+ }
374
+
375
+ /** Backup files to .bounce/backups/<version>/. Removes previous backup first. */
376
+ function backupFiles(version, paths) {
377
+ // Remove previous backup (keep only one)
378
+ if (fs.existsSync(BACKUPS_DIR)) {
379
+ for (const entry of fs.readdirSync(BACKUPS_DIR, { withFileTypes: true })) {
380
+ if (entry.isDirectory()) {
381
+ fs.rmSync(path.join(BACKUPS_DIR, entry.name), { recursive: true, force: true });
382
+ }
383
+ }
384
+ }
385
+
386
+ const backupDir = path.join(BACKUPS_DIR, version);
387
+ fs.mkdirSync(backupDir, { recursive: true });
388
+
389
+ for (const relPath of paths) {
390
+ const src = path.join(CWD, relPath);
391
+ const dest = path.join(backupDir, relPath);
392
+
393
+ if (!fs.existsSync(src)) continue;
394
+
395
+ const stats = fs.statSync(src);
396
+ if (stats.isDirectory()) {
397
+ fs.mkdirSync(dest, { recursive: true });
398
+ fs.cpSync(src, dest, { recursive: true });
399
+ } else {
400
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
401
+ fs.copyFileSync(src, dest);
402
+ }
403
+ }
404
+
405
+ return backupDir;
406
+ }
407
+
408
+ /**
409
+ * Classify files into unchanged, modified, and newFiles.
410
+ * - unchanged: dest exists and matches what was installed (safe to overwrite)
411
+ * - modified: dest exists but differs from what was installed (user changed it)
412
+ * - newFiles: dest does not exist
413
+ */
414
+ function classifyFiles(mappingRules, meta) {
415
+ const unchanged = [];
416
+ const modified = [];
417
+ const newFiles = [];
418
+
419
+ for (const rule of mappingRules) {
420
+ const sourcePath = path.join(pkgRoot, rule.src);
421
+ const destPath = path.join(CWD, rule.dest);
422
+
423
+ if (!fs.existsSync(sourcePath)) continue;
309
424
 
310
- if (toCopy.length > 0) {
311
- console.log('The following will be \x1b[32mCREATED\x1b[0m:');
312
- toCopy.forEach(f => console.log(` + ${f}`));
425
+ if (!fs.existsSync(destPath)) {
426
+ newFiles.push(rule);
427
+ continue;
428
+ }
429
+
430
+ // Dest exists — classify as unchanged or modified
431
+ if (!meta || !meta.hashes || !meta.hashes[rule.dest]) {
432
+ // No metadata (first upgrade) — treat as modified to be safe
433
+ modified.push(rule);
434
+ continue;
435
+ }
436
+
437
+ const currentHash = computeHash(destPath);
438
+ const installedHash = meta.hashes[rule.dest];
439
+
440
+ if (currentHash === installedHash) {
441
+ unchanged.push(rule);
442
+ } else {
443
+ modified.push(rule);
444
+ }
445
+ }
446
+
447
+ return { unchanged, modified, newFiles };
448
+ }
449
+
450
+ // ---------------------------------------------------------------------------
451
+ // Begin install flow
452
+ // ---------------------------------------------------------------------------
453
+
454
+ const meta = readInstallMeta();
455
+ const isUpgrade = meta !== null;
456
+
457
+ if (isUpgrade) {
458
+ console.log(`\n🚀 V-Bounce Engine \x1b[36m${pkgVersion}\x1b[0m (upgrading from \x1b[33m${meta.version}\x1b[0m)\n`);
459
+ } else {
460
+ console.log(`\n🚀 Preparing to install V-Bounce Engine \x1b[36m${pkgVersion}\x1b[0m for \x1b[36m${targetPlatform}\x1b[0m...\n`);
461
+ }
462
+
463
+ const { unchanged, modified, newFiles } = classifyFiles(mapping, meta);
464
+
465
+ if (unchanged.length > 0) {
466
+ console.log('Will update (unchanged by you):');
467
+ for (const rule of unchanged) {
468
+ const destPath = path.join(CWD, rule.dest);
469
+ const n = countFiles(destPath);
470
+ const label = n > 1 ? `(${n} files)` : '';
471
+ console.log(` \x1b[32m✓\x1b[0m ${rule.dest} ${label}`);
472
+ }
313
473
  }
314
474
 
315
- if (toOverwrite.length > 0) {
316
- console.log('\nThe following will be \x1b[33mOVERWRITTEN\x1b[0m:');
317
- toOverwrite.forEach(f => console.log(` ! ${f}`));
475
+ if (modified.length > 0) {
476
+ const backupLabel = isUpgrade ? `.bounce/backups/${meta.version}/` : '.bounce/backups/pre-install/';
477
+ console.log(`\nModified by you (backed up to ${backupLabel}):`);
478
+ for (const rule of modified) {
479
+ console.log(` \x1b[33m⚠\x1b[0m ${rule.dest}`);
480
+ }
481
+ }
482
+
483
+ if (newFiles.length > 0) {
484
+ console.log('\nNew in this version:');
485
+ for (const rule of newFiles) {
486
+ console.log(` \x1b[32m+\x1b[0m ${rule.dest}`);
487
+ }
488
+ }
489
+
490
+ if (unchanged.length === 0 && modified.length === 0 && newFiles.length === 0) {
491
+ rl.close();
492
+ console.log('Nothing to install — all source files are missing from the package.');
493
+ process.exit(0);
318
494
  }
319
495
 
320
496
  console.log('');
@@ -328,13 +504,23 @@ if (command === 'install') {
328
504
  process.exit(0);
329
505
  }
330
506
 
507
+ // Backup modified files before overwriting
508
+ if (modified.length > 0) {
509
+ const backupVersion = isUpgrade ? meta.version : 'pre-install';
510
+ const backupDir = backupFiles(backupVersion, modified.map(r => r.dest));
511
+ console.log(`\n📂 Backed up modified files to ${path.relative(CWD, backupDir)}/`);
512
+ }
513
+
331
514
  console.log('\n📦 Installing files...');
332
515
 
333
- mapping.forEach(rule => {
516
+ const installedFiles = [];
517
+ const hashes = {};
518
+
519
+ for (const rule of [...unchanged, ...modified, ...newFiles]) {
334
520
  const sourcePath = path.join(pkgRoot, rule.src);
335
521
  const destPath = path.join(CWD, rule.dest);
336
522
 
337
- if (!fs.existsSync(sourcePath)) return;
523
+ if (!fs.existsSync(sourcePath)) continue;
338
524
 
339
525
  const stats = fs.statSync(sourcePath);
340
526
  if (stats.isDirectory()) {
@@ -347,8 +533,16 @@ if (command === 'install') {
347
533
  }
348
534
  fs.copyFileSync(sourcePath, destPath);
349
535
  }
536
+
537
+ // Record hash of what we just installed (from source)
538
+ hashes[rule.dest] = computeHash(sourcePath);
539
+ installedFiles.push(rule.dest);
350
540
  console.log(` \x1b[32m✓\x1b[0m ${rule.dest}`);
351
- });
541
+ }
542
+
543
+ // Write install metadata
544
+ writeInstallMeta(pkgVersion, targetPlatform, installedFiles, hashes);
545
+ console.log(` \x1b[32m✓\x1b[0m .bounce/install-meta.json`);
352
546
 
353
547
  console.log('\n⚙️ Installing dependencies...');
354
548
  try {
@@ -380,7 +574,22 @@ if (command === 'install') {
380
574
  }
381
575
  }
382
576
 
383
- console.log('\n✅ V-Bounce OS successfully installed! Welcome to the team.\n');
577
+ // Auto-run doctor to verify installation
578
+ console.log('\n🩺 Running doctor to verify installation...');
579
+ const doctorPath = path.join(CWD, 'scripts', 'doctor.mjs');
580
+ if (fs.existsSync(doctorPath)) {
581
+ const result = spawnSync(process.execPath, [doctorPath], {
582
+ stdio: 'inherit',
583
+ cwd: CWD
584
+ });
585
+ if (result.status !== 0) {
586
+ console.error('\n \x1b[33m⚠\x1b[0m Doctor reported issues. Review the output above.');
587
+ }
588
+ } else {
589
+ console.log(' \x1b[33m⚠\x1b[0m Doctor script not found — skipping verification.');
590
+ }
591
+
592
+ console.log('\n✅ V-Bounce Engine successfully installed! Welcome to the team.\n');
384
593
  });
385
594
 
386
595
  } else {
package/brains/AGENTS.md CHANGED
@@ -1,10 +1,10 @@
1
- # V-Bounce OS — Agent Brain (Codex CLI)
1
+ # V-Bounce Engine — Agent Brain (Codex CLI)
2
2
 
3
- > This file configures OpenAI Codex CLI to operate within the V-Bounce OS framework.
3
+ > This file configures OpenAI Codex CLI to operate within the V-Bounce Engine framework.
4
4
 
5
5
  ## Identity
6
6
 
7
- You are an AI coding agent operating within **V-Bounce OS** — 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.
7
+ 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
8
 
9
9
  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.
10
10
 
@@ -106,7 +106,7 @@ Bouncing → Escalated (3+ failures)
106
106
  ## Framework Structure
107
107
 
108
108
  ```
109
- V-Bounce OS/
109
+ V-Bounce Engine/
110
110
  ├── brains/ — Agent brain files (this file)
111
111
  ├── templates/ — Document templates (immutable)
112
112
  ├── skills/ — Agent skills (SKILL.md files)
@@ -1,4 +1,4 @@
1
- # V-Bounce OS Brains & Skills Changelog
1
+ # V-Bounce Engine Brains & Skills Changelog
2
2
 
3
3
  This log tracks modifications to the core agentic framework (e.g., `brains/`, `skills/`).
4
4
  Per **Rule 13: Framework Integrity**, anytime an entry is made here, all tool-specific brain files must be reviewed for consistency.
@@ -21,7 +21,7 @@ Per **Rule 13: Framework Integrity**, anytime an entry is made here, all tool-sp
21
21
  - **Modified**: `.gitignore` — Removed `.bounce/.lancedb/` entry.
22
22
  - **Rationale**: Modern LLMs have 200K+ token context windows. The prep scripts (`vbounce prep sprint/qa/arch`) + LESSONS.md graduation provide targeted, deterministic context without embedding models, sync steps, or heavy dependencies. Removes ~50MB of node_modules and eliminates the most common setup failure point.
23
23
 
24
- ## [2026-03-12] — V-Bounce OS Optimization Plan (12-Change Batch)
24
+ ## [2026-03-12] — V-Bounce Engine Optimization Plan (12-Change Batch)
25
25
 
26
26
  ### State Management (Change #1)
27
27
  - **Added**: `.bounce/state.json` — machine-readable sprint state snapshot for crash recovery. Tracks sprint_id, delivery_id, current_phase, last_action, and per-story state (V-Bounce state, bounce counts, worktree path, updated_at).
package/brains/CLAUDE.md CHANGED
@@ -1,10 +1,10 @@
1
- # V-Bounce OS — Agent Brain
1
+ # V-Bounce Engine — Agent Brain
2
2
 
3
- > This file configures Claude Code to operate within the V-Bounce OS framework.
3
+ > This file configures Claude Code to operate within the V-Bounce Engine framework.
4
4
 
5
5
  ## Identity
6
6
 
7
- You are an AI coding agent operating within **V-Bounce OS** — 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.
7
+ 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
8
 
9
9
  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.
10
10
 
@@ -127,7 +127,7 @@ Draft → Refinement → Ready to Bounce → Bouncing → QA Passed → Architec
127
127
  ## Framework Structure
128
128
 
129
129
  ```
130
- V-Bounce OS/
130
+ V-Bounce Engine/
131
131
  ├── brains/ — Agent brain files (this file)
132
132
  ├── templates/ — Document templates (immutable)
133
133
  ├── skills/ — Agent skills (SKILL.md files)
package/brains/GEMINI.md CHANGED
@@ -1,11 +1,11 @@
1
- # V-Bounce OS — Agent Brain
1
+ # V-Bounce Engine — Agent Brain
2
2
 
3
- > This file configures Gemini CLI and Antigravity to operate within the V-Bounce OS framework.
3
+ > This file configures Gemini CLI and Antigravity to operate within the V-Bounce Engine framework.
4
4
  > Place at project root for Gemini CLI. For Antigravity, also copy skills to `.agents/skills/`.
5
5
 
6
6
  ## Identity
7
7
 
8
- You are an AI coding agent operating within **V-Bounce OS** — 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 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.
9
9
 
10
10
  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
11
 
@@ -27,7 +27,7 @@ For Antigravity: copy skills to `.agents/skills/` for workspace-scoped discovery
27
27
 
28
28
  ## CLI Commands
29
29
 
30
- V-Bounce OS ships a CLI. Use these commands for state management instead of editing files manually:
30
+ V-Bounce Engine ships a CLI. Use these commands for state management instead of editing files manually:
31
31
 
32
32
  ```bash
33
33
  # Sprint management
@@ -149,7 +149,7 @@ Draft → Refinement → Ready to Bounce → Bouncing → QA Passed → Architec
149
149
  ## Framework Structure
150
150
 
151
151
  ```
152
- V-Bounce OS/
152
+ V-Bounce Engine/
153
153
  ├── brains/ — Agent brain files (this file)
154
154
  ├── templates/ — Document templates (immutable)
155
155
  ├── skills/ — Agent skills (SKILL.md files)
package/brains/SETUP.md CHANGED
@@ -1,13 +1,13 @@
1
- # Adding V-Bounce OS to Any Repo
1
+ # Adding V-Bounce Engine to Any Repo
2
2
 
3
- Step-by-step guide to set up V-Bounce OS in an existing or new project.
3
+ Step-by-step guide to set up V-Bounce Engine in an existing or new project.
4
4
 
5
5
  ## Prerequisites
6
6
 
7
- - A git repository (V-Bounce OS uses branches and worktrees)
7
+ - A git repository (V-Bounce Engine uses branches and worktrees)
8
8
  - Node.js installed (for validation and semantic search scripts)
9
9
  - At least one supported AI coding tool installed
10
- - The V-Bounce OS folder (this repo)
10
+ - The V-Bounce Engine folder (this repo)
11
11
 
12
12
  ## Step 1: Copy the Framework
13
13
 
@@ -15,11 +15,11 @@ Copy the `skills/` and `templates/` directories into your project root:
15
15
 
16
16
  ```bash
17
17
  # From your project root
18
- cp -r /path/to/V-Bounce-OS/skills/ ./skills/
19
- cp -r /path/to/V-Bounce-OS/templates/ ./templates/
18
+ cp -r /path/to/V-Bounce-Engine/skills/ ./skills/
19
+ cp -r /path/to/V-Bounce-Engine/templates/ ./templates/
20
20
  ```
21
21
 
22
- These are the core of V-Bounce OS — skills define agent behavior, templates define document structure.
22
+ These are the core of V-Bounce Engine — skills define agent behavior, templates define document structure.
23
23
 
24
24
  ## Step 2: Deploy Brain File for Your AI Tool
25
25
 
@@ -27,32 +27,32 @@ Pick the tool you're using and deploy the corresponding brain file:
27
27
 
28
28
  ### Claude Code
29
29
  ```bash
30
- cp /path/to/V-Bounce-OS/brains/CLAUDE.md ./CLAUDE.md
30
+ cp /path/to/V-Bounce-Engine/brains/CLAUDE.md ./CLAUDE.md
31
31
 
32
32
  # Deploy subagent configs
33
33
  mkdir -p .claude/agents
34
- cp /path/to/V-Bounce-OS/brains/claude-agents/*.md .claude/agents/
34
+ cp /path/to/V-Bounce-Engine/brains/claude-agents/*.md .claude/agents/
35
35
  ```
36
36
 
37
37
  ### Codex CLI (OpenAI)
38
38
  ```bash
39
- cp /path/to/V-Bounce-OS/brains/AGENTS.md ./AGENTS.md
39
+ cp /path/to/V-Bounce-Engine/brains/AGENTS.md ./AGENTS.md
40
40
  ```
41
41
 
42
42
  ### Cursor
43
43
  ```bash
44
44
  mkdir -p .cursor/rules
45
- cp /path/to/V-Bounce-OS/brains/cursor-rules/*.mdc .cursor/rules/
45
+ cp /path/to/V-Bounce-Engine/brains/cursor-rules/*.mdc .cursor/rules/
46
46
  ```
47
47
 
48
48
  ### Gemini CLI
49
49
  ```bash
50
- cp /path/to/V-Bounce-OS/brains/GEMINI.md ./GEMINI.md
50
+ cp /path/to/V-Bounce-Engine/brains/GEMINI.md ./GEMINI.md
51
51
  ```
52
52
 
53
53
  ### Antigravity
54
54
  ```bash
55
- cp /path/to/V-Bounce-OS/brains/GEMINI.md ./GEMINI.md
55
+ cp /path/to/V-Bounce-Engine/brains/GEMINI.md ./GEMINI.md
56
56
  cp -r skills/ .agents/skills/
57
57
  ```
58
58
 
@@ -141,7 +141,7 @@ your-project/
141
141
  ├── CLAUDE.md ← brain file (or AGENTS.md / GEMINI.md)
142
142
  ├── LESSONS.md ← project-specific rules (grows over time)
143
143
  ├── .claude/agents/ ← subagent configs (Claude Code only)
144
- ├── skills/ ← V-Bounce OS skills
144
+ ├── skills/ ← V-Bounce Engine skills
145
145
  │ ├── agent-team/
146
146
  │ ├── doc-manager/
147
147
  │ ├── lesson/
@@ -192,4 +192,4 @@ brains/
192
192
  └── vbounce-docs.mdc
193
193
  ```
194
194
 
195
- Each brain file is self-contained and authoritative for its tool. When updating V-Bounce OS rules, update each brain file directly and keep them in sync.
195
+ Each brain file is self-contained and authoritative for its tool. When updating V-Bounce Engine rules, update each brain file directly and keep them in sync.
@@ -5,7 +5,7 @@ tools: Read, Glob, Grep, Bash
5
5
  disallowedTools: Edit, Write
6
6
  ---
7
7
 
8
- You are the **Architect Agent** in the V-Bounce OS framework.
8
+ You are the **Architect Agent** in the V-Bounce Engine framework.
9
9
 
10
10
  ## Your Role
11
11
  Audit the codebase for structural integrity, standards compliance, and long-term sustainability. You review — you do not implement. You are the last gate before human review.
@@ -5,7 +5,7 @@ tools: Read, Edit, Write, Bash, Glob, Grep
5
5
  model: sonnet
6
6
  ---
7
7
 
8
- You are the **Developer Agent** in the V-Bounce OS framework.
8
+ You are the **Developer Agent** in the V-Bounce Engine framework.
9
9
 
10
10
  ## Your Role
11
11
  Implement features and fix bugs as specified in Story documents. You write code — nothing more, nothing less.
@@ -5,7 +5,7 @@ tools: Read, Edit, Write, Bash, Glob, Grep
5
5
  model: sonnet
6
6
  ---
7
7
 
8
- You are the **DevOps Agent** in the V-Bounce OS framework.
8
+ You are the **DevOps Agent** in the V-Bounce Engine framework.
9
9
 
10
10
  ## Your Role
11
11
 
@@ -5,7 +5,7 @@ tools: Read, Bash, Glob, Grep
5
5
  disallowedTools: Edit, Write
6
6
  ---
7
7
 
8
- You are the **QA Agent** in the V-Bounce OS framework.
8
+ You are the **QA Agent** in the V-Bounce Engine framework.
9
9
 
10
10
  ## Your Role
11
11
  Validate that the Developer's implementation meets the Story's acceptance criteria. You test — you do not fix. If something fails, you write a detailed bug report and send it back.
@@ -5,7 +5,7 @@ tools: Read, Write, Bash, Glob, Grep
5
5
  model: sonnet
6
6
  ---
7
7
 
8
- You are the **Scribe Agent** in the V-Bounce OS framework.
8
+ You are the **Scribe Agent** in the V-Bounce Engine framework.
9
9
 
10
10
  ## Your Role
11
11
 
@@ -1,10 +1,10 @@
1
- # V-Bounce OS — GitHub Copilot Instructions
1
+ # V-Bounce Engine — GitHub Copilot Instructions
2
2
 
3
- This project uses **V-Bounce OS** — a structured AI-agent development framework.
3
+ This project uses **V-Bounce Engine** — a structured AI-agent development framework.
4
4
 
5
5
  ## What This Means for You
6
6
 
7
- You are operating in Tier 4 (Awareness) mode. You understand the project uses V-Bounce OS but you do not orchestrate agents.
7
+ You are operating in Tier 4 (Awareness) mode. You understand the project uses V-Bounce Engine but you do not orchestrate agents.
8
8
 
9
9
  ## Key Behaviors
10
10
 
@@ -1,10 +1,10 @@
1
1
  ---
2
- description: V-Bounce OS document hierarchy — templates, locations, and report formats
2
+ description: V-Bounce Engine document hierarchy — templates, locations, and report formats
3
3
  globs:
4
4
  alwaysApply: false
5
5
  ---
6
6
 
7
- # V-Bounce OS — Document & Report Reference
7
+ # V-Bounce Engine — Document & Report Reference
8
8
 
9
9
  ## Document Locations
10
10
 
@@ -1,12 +1,12 @@
1
1
  ---
2
- description: V-Bounce OS process rules — the core framework for AI-assisted software development
2
+ description: V-Bounce Engine process rules — the core framework for AI-assisted software development
3
3
  globs:
4
4
  alwaysApply: true
5
5
  ---
6
6
 
7
- # V-Bounce OS — Process Rules
7
+ # V-Bounce Engine — Process Rules
8
8
 
9
- You are an AI coding agent operating within **V-Bounce OS** — a structured system for planning, implementing, and validating software using AI agents.
9
+ You are an AI coding agent operating within **V-Bounce Engine** — a structured system for planning, implementing, and validating software using AI agents.
10
10
 
11
11
  ## The V-Bounce Process
12
12
 
@@ -1,10 +1,10 @@
1
1
  ---
2
- description: V-Bounce OS critical rules — mandatory constraints for all implementation work
2
+ description: V-Bounce Engine critical rules — mandatory constraints for all implementation work
3
3
  globs:
4
4
  alwaysApply: true
5
5
  ---
6
6
 
7
- # V-Bounce OS — Critical Rules
7
+ # V-Bounce Engine — Critical Rules
8
8
 
9
9
  ## Before Writing Code
10
10
  1. **Read LESSONS.md** at the project root. Every time. No exceptions.
@@ -1,6 +1,6 @@
1
- # V-Bounce OS — Windsurf Rules
1
+ # V-Bounce Engine — Windsurf Rules
2
2
 
3
- This project uses V-Bounce OS. You are operating in Tier 4 (Awareness) mode.
3
+ This project uses V-Bounce Engine. You are operating in Tier 4 (Awareness) mode.
4
4
 
5
5
  ## Before Writing Code
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Hotfix Workflow: Edge Cases & Mitigations
2
2
 
3
- This document outlines the critical edge cases, failure modes, and required mitigations for the **V-Bounce OS Hotfix (L1 Trivial)** workflow.
3
+ This document outlines the critical edge cases, failure modes, and required mitigations for the **V-Bounce Engine Hotfix (L1 Trivial)** workflow.
4
4
 
5
5
  ---
6
6
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sandrinio/vbounce",
3
- "version": "1.8.0",
4
- "description": "V-Bounce OS: Turn your AI coding assistant into a full engineering team through structured SDLC skills.",
3
+ "version": "1.9.0",
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": {
7
7
  "vbounce": "./bin/vbounce.mjs"
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "git+https://github.com/sandrinio/v-bounce-os.git"
14
+ "url": "git+https://github.com/sandrinio/v-bounce-engine.git"
15
15
  },
16
16
  "keywords": [
17
17
  "ai",
@@ -28,9 +28,9 @@
28
28
  "author": "sandrinio",
29
29
  "license": "MIT",
30
30
  "bugs": {
31
- "url": "https://github.com/sandrinio/v-bounce-os/issues"
31
+ "url": "https://github.com/sandrinio/v-bounce-engine/issues"
32
32
  },
33
- "homepage": "https://github.com/sandrinio/v-bounce-os#readme",
33
+ "homepage": "https://github.com/sandrinio/v-bounce-engine#readme",
34
34
  "files": [
35
35
  "bin",
36
36
  "brains",
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * doctor.mjs
5
- * V-Bounce OS Health Check — validates all configs, templates, state files
5
+ * V-Bounce Engine Health Check — validates all configs, templates, state files
6
6
  * Usage: vbounce doctor
7
7
  */
8
8
 
@@ -42,7 +42,7 @@ const templatesDir = path.join(ROOT, 'templates');
42
42
  let templateCount = 0;
43
43
  for (const t of requiredTemplates) {
44
44
  if (fs.existsSync(path.join(templatesDir, t))) templateCount++;
45
- else fail(`templates/${t} missing`, `Create from V-Bounce OS template`);
45
+ else fail(`templates/${t} missing`, `Create from V-Bounce Engine template`);
46
46
  }
47
47
  if (templateCount === requiredTemplates.length) pass(`templates/ complete (${templateCount}/${requiredTemplates.length})`);
48
48
 
@@ -130,7 +130,7 @@ if (fs.existsSync(path.join(ROOT, 'vbounce.config.json'))) {
130
130
  }
131
131
 
132
132
  // Print results
133
- console.log('\nV-Bounce OS Health Check');
133
+ console.log('\nV-Bounce Engine Health Check');
134
134
  console.log('========================');
135
135
  checks.forEach(c => console.log(c));
136
136
  console.log('');
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
- # V-Bounce OS: Hotfix Manager
3
+ # V-Bounce Engine: Hotfix Manager
4
4
  # Handles edge cases for L1 Trivial tasks to save tokens and ensure framework integrity.
5
5
 
6
6
  set -euo pipefail
@@ -14,7 +14,7 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) || {
14
14
  COMMAND="${1:-}"
15
15
 
16
16
  function show_help {
17
- echo "V-Bounce OS — Hotfix Manager"
17
+ echo "V-Bounce Engine — Hotfix Manager"
18
18
  echo ""
19
19
  echo "Usage: ./scripts/hotfix_manager.sh <command> [args]"
20
20
  echo ""
@@ -17,7 +17,7 @@ YELLOW='\033[1;33m'
17
17
  CYAN='\033[0;36m'
18
18
  NC='\033[0m'
19
19
 
20
- echo -e "${CYAN}V-Bounce OS Gate Config Initializer${NC}"
20
+ echo -e "${CYAN}V-Bounce Engine Gate Config Initializer${NC}"
21
21
  echo -e "Project: ${PROJECT_PATH}"
22
22
  echo ""
23
23
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # pre_gate_common.sh — Shared gate check functions for V-Bounce OS
2
+ # pre_gate_common.sh — Shared gate check functions for V-Bounce Engine
3
3
  # Sourced by pre_gate_runner.sh. Never run directly.
4
4
 
5
5
  set -euo pipefail
@@ -31,7 +31,7 @@ fi
31
31
  # Resolve to absolute path
32
32
  WORKTREE_PATH="$(cd "$WORKTREE_PATH" && pwd)"
33
33
 
34
- echo -e "${CYAN}V-Bounce OS Pre-Gate Scanner${NC}"
34
+ echo -e "${CYAN}V-Bounce Engine Pre-Gate Scanner${NC}"
35
35
  echo -e "Gate: ${YELLOW}${GATE_TYPE}${NC}"
36
36
  echo -e "Target: ${WORKTREE_PATH}"
37
37
  echo ""
@@ -159,7 +159,7 @@ suggestions.push({
159
159
  num: itemNum++,
160
160
  category: 'Health',
161
161
  title: 'Run vbounce doctor',
162
- detail: 'Verify the V-Bounce OS installation is healthy after this sprint.',
162
+ detail: 'Verify the V-Bounce Engine installation is healthy after this sprint.',
163
163
  recommendation: 'Run: `vbounce doctor` — checks brain files, templates, scripts, state.json validity.',
164
164
  target: 'scripts/doctor.mjs',
165
165
  effort: 'Trivial',
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * validate_report.mjs
5
5
  *
6
- * Strict YAML Frontmatter validation for V-Bounce OS Agent Reports.
6
+ * Strict YAML Frontmatter validation for V-Bounce Engine Agent Reports.
7
7
  * Fails loudly if an agent hallucinates formatting or omits required fields,
8
8
  * so the orchestrator can bounce the prompt back.
9
9
  */
@@ -63,7 +63,7 @@ const EXPECTED_PROMPT_SIGNATURES = {
63
63
 
64
64
  function main() {
65
65
  console.log("===========================================");
66
- console.log(" V-Bounce OS: Framework Integrity Check");
66
+ console.log(" V-Bounce Engine: Framework Integrity Check");
67
67
  console.log("===========================================\n");
68
68
 
69
69
  let hasErrors = false;
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: doc-manager
3
- description: "Use when creating, modifying, or navigating V-Bounce OS 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 an agent needs to know which template to use, where a document fits in the hierarchy, or what upstream/downstream documents to read before writing. This skill manages the full document lifecycle from Charter through Sprint execution."
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 an agent needs to know which template to use, where a document fits in the hierarchy, or what upstream/downstream documents to read before writing. This skill manages the full document lifecycle from Charter through Sprint execution."
4
4
  ---
5
5
 
6
6
  # Document Hierarchy Manager
7
7
 
8
8
  ## Purpose
9
9
 
10
- This skill is the navigation system for V-Bounce OS planning documents. It knows the full document hierarchy, what each template contains, where to find templates, and the rules for creating, modifying, and transitioning documents between phases.
10
+ This skill is the navigation system for V-Bounce Engine planning documents. It knows the full document hierarchy, what each template contains, where to find templates, and the rules for creating, modifying, and transitioning documents between phases.
11
11
 
12
12
  **Core principle:** No document exists in isolation. Every document inherits context from upstream and feeds downstream consumers. YOU MUST read upstream documents before creating any new document.
13
13
 
@@ -120,10 +120,10 @@ product_plans/
120
120
  - `sprints/` contains active 1-week execution boundaries. A Story file physically moves here when a sprint begins.
121
121
  - `archive/` is where finished Sprints and finished Epics are moved for permanent record keeping.
122
122
 
123
- ### V-Bounce OS Framework Structure
123
+ ### V-Bounce Engine Framework Structure
124
124
 
125
125
  ```
126
- V-Bounce OS/
126
+ V-Bounce Engine/
127
127
  ├── brains/ — Agent brain files for each AI coding tool
128
128
  │ ├── CLAUDE.md — Claude Code brain
129
129
  │ ├── AGENTS.md — Codex CLI brain
@@ -148,7 +148,7 @@ When initializing a new project, deploy the correct brain file for the AI coding
148
148
  | Gemini CLI | `brains/GEMINI.md` | Project root as `GEMINI.md` |
149
149
  | Antigravity | `brains/GEMINI.md` | Project root + copy `skills/` to `.agents/skills/` |
150
150
 
151
- Brain files contain the V-Bounce process, critical rules, and skill references. Each tool's brain file is self-contained and authoritative. When updating V-Bounce OS rules, update each brain file directly and keep them in sync.
151
+ Brain files contain the V-Bounce process, critical rules, and skill references. Each tool's brain file is self-contained and authoritative. When updating V-Bounce Engine rules, update each brain file directly and keep them in sync.
152
152
 
153
153
  ## Document Operations
154
154
 
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: improve
3
- description: "Use when the V-Bounce OS 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, 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."
4
4
  ---
5
5
 
6
6
  # Framework Self-Improvement
7
7
 
8
8
  ## Purpose
9
9
 
10
- V-Bounce OS 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, 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