@sandrinio/vbounce 1.0.0 โ†’ 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -48,7 +48,9 @@ npx @sandrinio/vbounce install codex
48
48
  ### What gets installed?
49
49
  - **Agent Instructions:** The "Brain" file (e.g., `CLAUDE.md`, `.cursor/rules/`) that teaches your AI how to follow the V-Bounce process.
50
50
  - **Templates:** Markdown templates for your Charter, Roadmap, Epics, and Stories.
51
- - **vdoc Integration:** Fully bundled with [`@sandrinio/vdoc`](https://github.com/sandrinio/vdoc) to automatically construct the `vdocs/` semantic documentation folder.
51
+ - **Bundled Scripts:** Our validation pipeline (`validate_report.mjs`) and RAG synchronization engine (`pre_bounce_sync.sh`).
52
+ - **Autonomous RAG Setup:** The installer automatically runs `npm install` for required libraries and initializes your local LanceDB knowledge base (`.bounce/.lancedb/`).
53
+ - **vdoc Integration:** Fully compatible with [`@sandrinio/vdoc`](https://github.com/sandrinio/vdoc) to automatically construct semantic product documentation.
52
54
 
53
55
  ### ๐Ÿงฐ The Bundled Skills
54
56
  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:
package/bin/vbounce.mjs CHANGED
@@ -5,6 +5,8 @@ import path from 'path';
5
5
  import { fileURLToPath } from 'url';
6
6
  import readline from 'readline';
7
7
 
8
+ import { execSync } from 'child_process';
9
+
8
10
  const __filename = fileURLToPath(import.meta.url);
9
11
  const __dirname = path.dirname(__filename);
10
12
  const pkgRoot = path.join(__dirname, '..');
@@ -61,33 +63,39 @@ const platformMappings = {
61
63
  { src: 'brains/CLAUDE.md', dest: 'CLAUDE.md' },
62
64
  { src: 'brains/claude-agents', dest: '.claude/agents' },
63
65
  { src: 'templates', dest: 'templates' },
64
- { src: 'skills', dest: 'skills' }
66
+ { src: 'skills', dest: 'skills' },
67
+ { src: 'scripts', dest: 'scripts' }
65
68
  ],
66
69
  cursor: [
67
70
  { src: 'brains/cursor-rules', dest: '.cursor/rules' },
68
71
  { src: 'templates', dest: 'templates' },
69
- { src: 'skills', dest: 'skills' }
72
+ { src: 'skills', dest: 'skills' },
73
+ { src: 'scripts', dest: 'scripts' }
70
74
  ],
71
75
  gemini: [
72
76
  { src: 'brains/GEMINI.md', dest: 'GEMINI.md' },
73
77
  { src: 'templates', dest: 'templates' },
74
78
  { src: 'skills', dest: 'skills' },
75
- { src: 'skills', dest: '.agents/skills' }
79
+ { src: 'skills', dest: '.agents/skills' },
80
+ { src: 'scripts', dest: 'scripts' }
76
81
  ],
77
82
  codex: [
78
83
  { src: 'brains/AGENTS.md', dest: 'AGENTS.md' },
79
84
  { src: 'templates', dest: 'templates' },
80
- { src: 'skills', dest: 'skills' }
85
+ { src: 'skills', dest: 'skills' },
86
+ { src: 'scripts', dest: 'scripts' }
81
87
  ],
82
88
  vscode: [
83
89
  { src: 'brains/CLAUDE.md', dest: '.github/copilot-instructions.md' },
84
90
  { src: 'templates', dest: 'templates' },
85
- { src: 'skills', dest: 'skills' }
91
+ { src: 'skills', dest: 'skills' },
92
+ { src: 'scripts', dest: 'scripts' }
86
93
  ],
87
94
  copilot: [
88
95
  { src: 'brains/CLAUDE.md', dest: '.github/copilot-instructions.md' },
89
96
  { src: 'templates', dest: 'templates' },
90
- { src: 'skills', dest: 'skills' }
97
+ { src: 'skills', dest: 'skills' },
98
+ { src: 'scripts', dest: 'scripts' }
91
99
  ]
92
100
  };
93
101
 
@@ -130,7 +138,7 @@ if (toOverwrite.length > 0) {
130
138
 
131
139
  console.log('');
132
140
 
133
- askQuestion('Proceed with installation? [y/N] ').then(answer => {
141
+ askQuestion('Proceed with installation? [y/N] ').then(async answer => {
134
142
  rl.close();
135
143
  const confirmation = answer.trim().toLowerCase();
136
144
 
@@ -161,5 +169,32 @@ askQuestion('Proceed with installation? [y/N] ').then(answer => {
161
169
  console.log(` \x1b[32mโœ“\x1b[0m ${rule.dest}`);
162
170
  });
163
171
 
172
+ console.log('\nโš™๏ธ Installing RAG dependencies...');
173
+ try {
174
+ const deps = [
175
+ '@lancedb/lancedb',
176
+ '@xenova/transformers',
177
+ 'js-yaml',
178
+ 'marked',
179
+ 'commander'
180
+ ];
181
+ console.log(` Running: npm install ${deps.join(' ')}`);
182
+ execSync(`npm install ${deps.join(' ')}`, { stdio: 'inherit', cwd: CWD });
183
+ console.log(' \x1b[32mโœ“\x1b[0m Dependencies installed.');
184
+ } catch (err) {
185
+ console.error(' \x1b[31mโœ–\x1b[0m Failed to install dependencies. You may need to run it manually.');
186
+ }
187
+
188
+ console.log('\n๐Ÿง  Initializing RAG Knowledge Base...');
189
+ try {
190
+ const syncScript = path.join(CWD, 'scripts', 'pre_bounce_sync.sh');
191
+ if (fs.existsSync(syncScript)) {
192
+ execSync(`chmod +x "${syncScript}" && "${syncScript}"`, { stdio: 'inherit', cwd: CWD });
193
+ console.log(' \x1b[32mโœ“\x1b[0m Knowledge base initialized.');
194
+ }
195
+ } catch (err) {
196
+ console.error(' \x1b[31mโœ–\x1b[0m Failed to initialize knowledge base. Run ./scripts/pre_bounce_sync.sh manually.');
197
+ }
198
+
164
199
  console.log('\nโœ… V-Bounce OS successfully installed! Welcome to the team.\n');
165
200
  });
package/brains/AGENTS.md CHANGED
@@ -38,9 +38,10 @@ Before starting any sprint, the Team Lead MUST:
38
38
 
39
39
  ### Phase 2: The Bounce (Implementation)
40
40
  **Standard Path (L2-L4 Stories):**
41
+ 0. Team Lead runs `./scripts/pre_bounce_sync.sh` to ensure LanceDB RAG context is fresh.
41
42
  1. Team Lead sends Story context pack to Developer.
42
- 2. Developer reads LESSONS.md, implements code, writes Implementation Report.
43
- 3. QA runs Quick Scan + PR Review, validates against Story ยง2 The Truth. If fail โ†’ Bug Report to Dev.
43
+ 2. Developer queries LanceDB, implements code, writes Implementation Report. CLI Orchestrator must run `./scripts/validate_report.mjs` on the report to enforce YAML strictness.
44
+ 3. QA runs Quick Scan + PR Review, validates against Story ยง2 The Truth. If fail โ†’ Bug Report to Dev. CLI Orchestrator must run `./scripts/validate_report.mjs` on the QA report before passing to Architect/Dev.
44
45
  4. Dev fixes and resubmits. 3+ failures โ†’ Escalated.
45
46
  5. Architect runs Deep Audit + Trend Check, validates Safe Zone compliance and ADR adherence.
46
47
  6. DevOps merges story branch into sprint branch, validates post-merge, handles release tagging.
@@ -92,6 +93,8 @@ Bouncing โ†’ Escalated (3+ failures)
92
93
  9. Reports are the only handoff. No direct agent-to-agent communication.
93
94
  10. One source of truth. Reference upstream documents, don't duplicate.
94
95
  11. Change Logs are mandatory on every document modification.
96
+ 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.
97
+ 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`.
95
98
 
96
99
  ## Framework Structure
97
100
 
@@ -0,0 +1,7 @@
1
+ # V-Bounce OS Brains & Skills Changelog
2
+
3
+ This log tracks modifications to the core agentic framework (e.g., `brains/`, `skills/`).
4
+ Per **Rule 13: Framework Integrity**, anytime an entry is made here, the orchestrator MUST trigger `./scripts/pre_bounce_sync.sh` to update the RAG embeddings globally.
5
+
6
+ ## [2026-03-02]
7
+ - **Initialized**: Created strict Framework Integrity tracking, YAML context handoffs, and RAG validation pipeline.
package/brains/CLAUDE.md CHANGED
@@ -50,9 +50,10 @@ Before starting any sprint, the Team Lead MUST:
50
50
 
51
51
  ### Phase 2: The Bounce (Implementation)
52
52
  **Standard Path (L2-L4 Stories):**
53
+ 0. Team Lead runs `./scripts/pre_bounce_sync.sh` to ensure LanceDB RAG context is fresh.
53
54
  1. Team Lead sends Story context pack to Developer.
54
- 2. Developer reads LESSONS.md, implements code, writes Implementation Report.
55
- 3. QA runs Quick Scan + PR Review, validates against Story ยง2 The Truth. If fail โ†’ Bug Report to Dev.
55
+ 2. Developer queries LanceDB, implements code, writes Implementation Report. CLI Orchestrator must run `./scripts/validate_report.mjs` on the report to enforce YAML strictness.
56
+ 3. QA runs Quick Scan + PR Review, validates against Story ยง2 The Truth. If fail โ†’ Bug Report to Dev. CLI Orchestrator must run `./scripts/validate_report.mjs` on the QA report before passing to Architect/Dev.
56
57
  4. Dev fixes and resubmits. 3+ failures โ†’ Escalated.
57
58
  5. Architect runs Deep Audit + Trend Check, validates Safe Zone compliance and ADR adherence.
58
59
  6. DevOps merges story branch into sprint branch, validates post-merge, handles release tagging.
@@ -106,6 +107,8 @@ Draft โ†’ Refinement โ†’ Ready to Bounce โ†’ Bouncing โ†’ QA Passed โ†’ Architec
106
107
  9. **Reports are the only handoff**. No direct agent-to-agent communication.
107
108
  10. **One source of truth**. Reference upstream documents, don't duplicate.
108
109
  11. **Change Logs are mandatory** on every document modification.
110
+ 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.
111
+ 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`.
109
112
 
110
113
  ## Framework Structure
111
114
 
package/brains/GEMINI.md CHANGED
@@ -41,9 +41,10 @@ Before starting any sprint, the Team Lead MUST:
41
41
 
42
42
  ### Phase 2: The Bounce (Implementation)
43
43
  **Standard Path (L2-L4 Stories):**
44
+ 0. Team Lead runs `./scripts/pre_bounce_sync.sh` to ensure LanceDB RAG context is fresh.
44
45
  1. Team Lead sends Story context pack to Developer.
45
- 2. Developer reads LESSONS.md, implements code, writes Implementation Report.
46
- 3. QA runs Quick Scan + PR Review, validates against Story ยง2 The Truth. If fail โ†’ Bug Report to Dev.
46
+ 2. Developer queries LanceDB, implements code, writes Implementation Report. CLI Orchestrator must run `./scripts/validate_report.mjs` on the report to enforce YAML strictness.
47
+ 3. QA runs Quick Scan + PR Review, validates against Story ยง2 The Truth. If fail โ†’ Bug Report to Dev. CLI Orchestrator must run `./scripts/validate_report.mjs` on the QA report before passing to Architect/Dev.
47
48
  4. Dev fixes and resubmits. 3+ failures โ†’ Escalated.
48
49
  5. Architect runs Deep Audit + Trend Check, validates Safe Zone compliance and ADR adherence.
49
50
  6. DevOps merges story branch into sprint branch, validates post-merge, handles release tagging.
@@ -97,6 +98,8 @@ Draft โ†’ Refinement โ†’ Ready to Bounce โ†’ Bouncing โ†’ QA Passed โ†’ Architec
97
98
  9. **Reports are the only handoff**. No direct agent-to-agent communication.
98
99
  10. **One source of truth**. Reference upstream documents, don't duplicate.
99
100
  11. **Change Logs are mandatory** on every document modification.
101
+ 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.
102
+ 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`.
100
103
 
101
104
  ## Framework Structure
102
105
 
package/brains/SETUP.md CHANGED
@@ -5,6 +5,7 @@ Step-by-step guide to set up V-Bounce OS in an existing or new project.
5
5
  ## Prerequisites
6
6
 
7
7
  - A git repository (V-Bounce OS uses branches and worktrees)
8
+ - Node.js installed (for validation and semantic search scripts)
8
9
  - At least one supported AI coding tool installed
9
10
  - The V-Bounce OS folder (this repo)
10
11
 
@@ -116,6 +117,17 @@ The agent will:
116
117
  4. Merge completed stories
117
118
  5. Generate a Sprint Report for your review
118
119
 
120
+ ## Step 7: Automated RAG Initialization
121
+
122
+ V-Bounce OS uses LanceDB to provide agents with targeted context. While the `npx @sandrinio/vbounce install` command handles this automatically, you can manually re-trigger a sync if you add new architectural rules or change your brains:
123
+
124
+ ```bash
125
+ # Re-build your local knowledge base
126
+ ./scripts/pre_bounce_sync.sh
127
+ ```
128
+
129
+ This updates your local embeddings in `.bounce/.lancedb/`. Agents use `./scripts/vbounce_ask.mjs` to fetch rules on demand, ensuring they are always aligned with your latest Roadmap and Lessons.
130
+
119
131
  ## Folder Structure After Setup
120
132
 
121
133
  ```
@@ -14,7 +14,7 @@ Audit the codebase for structural integrity, standards compliance, and long-term
14
14
 
15
15
  ## Before Auditing
16
16
 
17
- 1. **Read LESSONS.md** at the project root. Check for historical architectural decisions and past mistakes.
17
+ 1. **Query Project Lessons**: Run `./scripts/vbounce_ask.mjs "architectural constraints and historical mistakes for <story summary>"` to retrieve relevant context from `LESSONS.md` and past reports.
18
18
  2. **Read all reports** for this story (`.bounce/reports/STORY-{ID}-*.md`) โ€” Dev Report, QA Report.
19
19
  3. **Read the full Story spec** โ€” especially ยง3 Implementation Guide and ยง3.1 ADR References.
20
20
  4. **Read Roadmap ยง3 ADRs** โ€” every architecture decision the implementation must comply with.
@@ -65,10 +65,18 @@ Check that the changes don't break existing functionality:
65
65
 
66
66
  ## Your Output
67
67
 
68
- Write an **Architectural Audit Report** to `.bounce/reports/STORY-{ID}-arch.md`:
68
+ Write an **Architectural Audit Report** to `.bounce/reports/STORY-{ID}-arch.md`.
69
+ You MUST include the YAML frontmatter block exactly as shown below:
69
70
 
70
71
  ### If Audit PASSES:
71
72
  ```markdown
73
+ ---
74
+ status: "PASS"
75
+ safe_zone_score: {SCORE}
76
+ ai_isms_detected: {count}
77
+ regression_risk: "{Low/Medium/High}"
78
+ ---
79
+
72
80
  # Architectural Audit Report: STORY-{ID} โ€” PASS
73
81
 
74
82
  ## Safe Zone Compliance: {SCORE}/10
@@ -108,6 +116,12 @@ PASS โ€” Ready for Sprint Review.
108
116
 
109
117
  ### If Audit FAILS:
110
118
  ```markdown
119
+ ---
120
+ status: "FAIL"
121
+ bounce_count: {N}
122
+ critical_failures: {count}
123
+ ---
124
+
111
125
  # Architectural Audit Report: STORY-{ID} โ€” FAIL
112
126
 
113
127
  ## Critical Failures
@@ -130,6 +144,24 @@ When the Team Lead asks for a **Sprint Integration Audit** (after all stories pa
130
144
  - Check for emergent coupling that wasn't visible in individual story reviews
131
145
  - Write the integration audit to `.bounce/reports/sprint-integration-audit.md`
132
146
 
147
+ ## Checkpointing
148
+
149
+ After completing each major phase of your audit (e.g., Deep Audit done, Trend Check done, ADR compliance checked), write a progress checkpoint to `.bounce/reports/STORY-{ID}-arch-checkpoint.md`:
150
+
151
+ ```markdown
152
+ # Architect Checkpoint: STORY-{ID}
153
+ ## Completed
154
+ - {Which audit phases are done}
155
+ ## Remaining
156
+ - {Which phases are left}
157
+ ## Preliminary Findings
158
+ - {Key issues or observations so far}
159
+ ## Current Verdict
160
+ - {Leaning PASS/FAIL and why}
161
+ ```
162
+
163
+ This enables recovery if your session is interrupted. A re-spawned Architect agent reads the checkpoint to continue without re-running completed audit phases. Overwrite the checkpoint file each time โ€” only the latest state matters.
164
+
133
165
  ## Critical Rules
134
166
 
135
167
  - You NEVER fix code. You only report what needs fixing.
@@ -12,8 +12,9 @@ Implement features and fix bugs as specified in Story documents. You write code
12
12
 
13
13
  ## Before Writing ANY Code
14
14
 
15
- 1. **Read LESSONS.md** at the project root. Treat every recorded rule as a hard constraint. No exceptions.
16
- 2. **Read the Story spec** โ€” ยง1 The Spec for requirements, ยง3 Implementation Guide for technical approach.
15
+ 1. **Query Project Lessons**: Run `./scripts/vbounce_ask.mjs "<summarize your specific coding task here>"` to retrieve relevant constraints and gotchas from `LESSONS.md` and historical reports. Treat these as hard constraints. No exceptions.
16
+ 2. **Query Architectural Decisions**: If your task involves core systems (auth, db, state), run `./scripts/vbounce_ask.mjs "<system> decisions"` to get relevant ADRs from the Roadmap.
17
+ 3. **Read the Story spec** โ€” ยง1 The Spec for requirements, ยง3 Implementation Guide for technical approach.
17
18
  3. **Check ADR references** in ยง3.1 โ€” comply with all architecture decisions from the Roadmap.
18
19
  4. **Read relevant react-best-practices rules** โ€” consult `skills/react-best-practices/` for patterns matching your task.
19
20
  5. **Check product documentation** โ€” if the task file references product docs from `product_documentation/`, 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.
@@ -33,9 +34,18 @@ Do NOT proceed with a broken spec. Instead:
33
34
 
34
35
  ## Your Output
35
36
 
36
- Write a **Developer Implementation Report** to `.bounce/reports/STORY-{ID}-dev.md`:
37
+ Write a **Developer Implementation Report** to `.bounce/reports/STORY-{ID}-dev.md`.
38
+ You MUST include the YAML frontmatter block exactly as shown below:
37
39
 
38
40
  ```markdown
41
+ ---
42
+ status: "implemented"
43
+ correction_tax: {X}
44
+ files_modified:
45
+ - "path/to/file.ts"
46
+ lessons_flagged: {number of lessons}
47
+ ---
48
+
39
49
  # Developer Implementation Report: STORY-{ID}
40
50
 
41
51
  ## Files Modified
@@ -61,6 +71,24 @@ Write a **Developer Implementation Report** to `.bounce/reports/STORY-{ID}-dev.m
61
71
  - [ ] No new patterns or libraries introduced
62
72
  ```
63
73
 
74
+ ## Checkpointing
75
+
76
+ After completing each major phase of your work (e.g., initial implementation done, tests written, bug fixes applied), write a progress checkpoint to `.bounce/reports/STORY-{ID}-dev-checkpoint.md`:
77
+
78
+ ```markdown
79
+ # Developer Checkpoint: STORY-{ID}
80
+ ## Completed
81
+ - {What's done so far}
82
+ ## Remaining
83
+ - {What's left to do}
84
+ ## Key Decisions
85
+ - {Important choices made during implementation}
86
+ ## Files Modified
87
+ - {List of files changed so far}
88
+ ```
89
+
90
+ This enables recovery if your session is interrupted. A re-spawned Developer agent reads the checkpoint to continue without restarting from scratch. Overwrite the checkpoint file each time โ€” only the latest state matters.
91
+
64
92
  ## Critical Rules
65
93
 
66
94
  - You NEVER communicate with QA or Architect directly. Your report is your only output.
@@ -146,10 +146,17 @@ Before approving a deployment:
146
146
 
147
147
  ## Your Output
148
148
 
149
- Write a **DevOps Report** to `.bounce/reports/STORY-{ID}-devops.md` (for story merges) or `.bounce/reports/sprint-S-{XX}-devops.md` (for sprint releases):
149
+ Write a **DevOps Report** to `.bounce/reports/STORY-{ID}-devops.md` (for story merges) or `.bounce/reports/sprint-S-{XX}-devops.md` (for sprint releases).
150
+ You MUST include the YAML frontmatter block exactly as shown below:
150
151
 
151
152
  ### Story Merge Report
152
153
  ```markdown
154
+ ---
155
+ type: "story-merge"
156
+ status: "{Clean / Conflicts Resolved / Failed}"
157
+ conflicts_detected: {true/false}
158
+ ---
159
+
153
160
  # DevOps Report: STORY-{ID} Merge
154
161
 
155
162
  ## Pre-Merge Checks
@@ -178,6 +185,12 @@ Write a **DevOps Report** to `.bounce/reports/STORY-{ID}-devops.md` (for story m
178
185
 
179
186
  ### Sprint Release Report
180
187
  ```markdown
188
+ ---
189
+ type: "sprint-release"
190
+ status: "{Deployed / Pending / Manual}"
191
+ version: "{VERSION}"
192
+ ---
193
+
181
194
  # DevOps Report: Sprint S-{XX} Release
182
195
 
183
196
  ## Pre-Release Checks
@@ -12,7 +12,7 @@ Validate that the Developer's implementation meets the Story's acceptance criter
12
12
 
13
13
  ## Before Testing
14
14
 
15
- 1. **Read LESSONS.md** at the project root. Check for known failure patterns relevant to this story.
15
+ 1. **Query Project Lessons**: Run `./scripts/vbounce_ask.mjs "<summarize the story spec here>"` to retrieve known failure patterns relevant to this story from `LESSONS.md` and past reports.
16
16
  2. **Read the Developer Implementation Report** (`.bounce/reports/STORY-{ID}-dev.md`) to understand what was built.
17
17
  3. **Read Story ยง2 The Truth** โ€” these are your pass/fail criteria. If the Gherkin scenarios don't pass, the bounce failed.
18
18
 
@@ -41,6 +41,14 @@ Run Story ยง2.1 Gherkin scenarios against the implementation:
41
41
  - Each scenario is a binary pass/fail
42
42
  - Document exact failure conditions (input, expected, actual)
43
43
 
44
+ ### Spec Fidelity Check
45
+ After running scenarios, verify:
46
+ - Test count matches the number of Gherkin scenarios in ยง2 (not fewer, not more)
47
+ - Fixture data matches spec examples (if spec says "5 items", test uses 5 items)
48
+ - API contracts match ยง3 exactly (methods, parameters, return types)
49
+
50
+ If there's a mismatch, flag it โ€” even if the tests pass. Passing tests with wrong fixture counts means the tests aren't validating what the spec intended.
51
+
44
52
  ### Gold-Plating Audit
45
53
  Check for unnecessary complexity the Developer added beyond the Story spec:
46
54
  - Features not in the requirements
@@ -50,10 +58,18 @@ Check for unnecessary complexity the Developer added beyond the Story spec:
50
58
 
51
59
  ## Your Output
52
60
 
53
- Write a **QA Validation Report** to `.bounce/reports/STORY-{ID}-qa.md`:
61
+ Write a **QA Validation Report** to `.bounce/reports/STORY-{ID}-qa.md`.
62
+ You MUST include the YAML frontmatter block exactly as shown below:
54
63
 
55
64
  ### If Tests PASS:
56
65
  ```markdown
66
+ ---
67
+ status: "PASS"
68
+ bounce_count: {N}
69
+ bugs_found: 0
70
+ gold_plating_detected: false
71
+ ---
72
+
57
73
  # QA Validation Report: STORY-{ID} โ€” PASS
58
74
 
59
75
  ## Quick Scan Results
@@ -74,12 +90,31 @@ Write a **QA Validation Report** to `.bounce/reports/STORY-{ID}-qa.md`:
74
90
  ## Gold-Plating Audit
75
91
  - {Findings or "No gold-plating detected"}
76
92
 
93
+ ## Scrutiny Log
94
+ - **Hardest scenario tested**: {Which scenario was closest to failing and why}
95
+ - **Boundary probed**: {What edge case did you push hardest on}
96
+ - **Observation**: {Anything that passed but felt fragile โ€” worth watching in future sprints}
97
+
98
+ ## Spec Fidelity
99
+ - Test count matches Gherkin scenarios: {Yes/No โ€” if No, list discrepancies}
100
+ - Fixture data matches spec examples: {Yes/No}
101
+ - API contracts match ยง3: {Yes/No}
102
+
77
103
  ## Recommendation
78
104
  PASS โ€” Ready for Architect review.
79
105
  ```
80
106
 
81
107
  ### If Tests FAIL:
82
108
  ```markdown
109
+ ---
110
+ status: "FAIL"
111
+ bounce_count: {N}
112
+ bugs_found: {number of bugs}
113
+ gold_plating_detected: {true/false}
114
+ failed_scenarios:
115
+ - "{scenario name}"
116
+ ---
117
+
83
118
  # QA Validation Report: STORY-{ID} โ€” FAIL (Bounce {N})
84
119
 
85
120
  ## Failures
@@ -103,6 +138,24 @@ Every finding must include a non-coder analogy. Examples:
103
138
  - "High coupling" โ†’ "Pulling one wire takes down the whole electrical system"
104
139
  - "Duplication" โ†’ "Three departments each built their own payroll system"
105
140
 
141
+ ## Checkpointing
142
+
143
+ After completing each major phase of your testing (e.g., Quick Scan done, PR Review done, scenarios validated), write a progress checkpoint to `.bounce/reports/STORY-{ID}-qa-checkpoint.md`:
144
+
145
+ ```markdown
146
+ # QA Checkpoint: STORY-{ID}
147
+ ## Completed
148
+ - {Which testing phases are done}
149
+ ## Remaining
150
+ - {Which phases are left}
151
+ ## Preliminary Findings
152
+ - {Issues found so far, scenarios passed/failed}
153
+ ## Current Verdict
154
+ - {Leaning PASS/FAIL and why}
155
+ ```
156
+
157
+ This enables recovery if your session is interrupted. A re-spawned QA agent reads the checkpoint to continue without re-running completed test phases. Overwrite the checkpoint file each time โ€” only the latest state matters.
158
+
106
159
  ## Critical Rules
107
160
 
108
161
  - You NEVER fix code. You only report what's broken.
@@ -0,0 +1,37 @@
1
+ # Hotfix Workflow: Edge Cases & Mitigations
2
+
3
+ This document outlines the critical edge cases, failure modes, and required mitigations for the **V-Bounce OS Hotfix (L1 Trivial)** workflow.
4
+
5
+ ---
6
+
7
+ ## 1. Scope Creep (The "Just one more file" Fallacy)
8
+
9
+ * **The Edge Case**: A request triaged as a Hotfix (e.g., "Fix button color") turns out to be more complex (e.g., the component is shared across 5 views, requires updating global CSS variables, and affects existing tests).
10
+ * **The Mitigation**:
11
+ * **Mitigation โ€” Developer Hard-Stop**: The Developer agent must stop if a fix requires touching >2 files or introduces new logic patterns.
12
+ * **Mitigation โ€” Escalation to Human**: The Team Lead must escalate the issue back to the Human, providing suggestions and recommendations on how to proceed (e.g., converting to a standard Epic/Story).
13
+
14
+ ## 2. The "Silent Regression" (Bypassing QA)
15
+
16
+ * **The Edge Case**: Bypassing the QA and Architect agents allows a "quick fix" to inadvertently break a downstream component that a human might miss during manual verification.
17
+ * **The Mitigation**:
18
+ * **Mitigation โ€” Automated Validation**: Mandate in `hotfix.md` that the Developer must run localized tests (`npm test`) before submission.
19
+ * **Mitigation โ€” Manual Human Testing**: Because the hotfix bypasses the QA agent, the Human MUST test the fix manually. This includes verifying surrounding features and the overall context, not just the isolated fix.
20
+
21
+ ## 3. Architectural Drift (The "Death by a Thousand Papercuts")
22
+
23
+ * **The Edge Case**: A series of un-audited hotfixes introduces minor anti-patterns (e.g., inline styles instead of Tailwind classes), degrading codebase integrity over time.
24
+ * **The Mitigation**:
25
+ * **Mitigation โ€” Scripted Trend Check (`hotfix-manager audit`)**: To save tokens, an automated bash script runs static analysis (grepping for inline styles, `console.log`, and bypasses) on Hotfix commits before Sprint Integration, raising flags only if anti-patterns are detected.
26
+
27
+ ## 4. Merge Conflicts with Active Worktrees
28
+
29
+ * **The Edge Case**: A hotfix merged directly to the `sprint` branch causes a collision when other agents try to merge their isolated `.worktrees/`.
30
+ * **The Mitigation**:
31
+ * **Mitigation โ€” Scripted Worktree Sync (`hotfix-manager sync`)**: After a Hotfix merge, a script safely detects all active `.worktrees/` and runs a `git pull --rebase` to ensure parallel agents are building on the latest code.
32
+
33
+ ## 5. Invisible Deliverables (The Ghost Fix)
34
+
35
+ * **The Edge Case**: Hotfixes bypass the `DELIVERY_PLAN.md`, so they are excluded from the Sprint Report and user-facing documentation.
36
+ * **The Mitigation**:
37
+ * **Mitigation โ€” Scripted Ledger (`hotfix-manager ledger`)**: An automated script appends a new row (Title and Brief Description) to the **"ยง8 Applied Hotfixes"** table in the `DELIVERY_PLAN.md` specifically for Scribe integration.
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sandrinio/vbounce",
3
- "version": "1.0.0",
3
+ "version": "1.3.0",
4
4
  "description": "V-Bounce OS: Turn your AI coding assistant into a full engineering team through structured SDLC skills.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -35,6 +35,15 @@
35
35
  "bin",
36
36
  "brains",
37
37
  "templates",
38
- "skills"
39
- ]
40
- }
38
+ "skills",
39
+ "scripts",
40
+ "docs"
41
+ ],
42
+ "dependencies": {
43
+ "@lancedb/lancedb": "^0.26.2",
44
+ "@xenova/transformers": "^2.17.2",
45
+ "commander": "^14.0.3",
46
+ "js-yaml": "^4.1.1",
47
+ "marked": "^17.0.3"
48
+ }
49
+ }