vbounce-engine 2.5.1

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.
Files changed (165) hide show
  1. package/README.md +142 -0
  2. package/VBOUNCE_MANIFEST.md +404 -0
  3. package/bin/vbounce.mjs +882 -0
  4. package/brains/AGENTS.md +71 -0
  5. package/brains/CHANGELOG.md +398 -0
  6. package/brains/CLAUDE.md +90 -0
  7. package/brains/GEMINI.md +102 -0
  8. package/brains/SETUP.md +195 -0
  9. package/brains/claude-agents/architect.md +226 -0
  10. package/brains/claude-agents/developer.md +133 -0
  11. package/brains/claude-agents/devops.md +267 -0
  12. package/brains/claude-agents/explorer.md +157 -0
  13. package/brains/claude-agents/qa.md +225 -0
  14. package/brains/claude-agents/scribe.md +171 -0
  15. package/brains/copilot/copilot-instructions.md +54 -0
  16. package/brains/cursor-rules/vbounce-docs.mdc +45 -0
  17. package/brains/cursor-rules/vbounce-process.mdc +51 -0
  18. package/brains/cursor-rules/vbounce-rules.mdc +29 -0
  19. package/brains/windsurf/.windsurfrules +35 -0
  20. package/docs/HOTFIX_EDGE_CASES.md +37 -0
  21. package/docs/IMPROVEMENT.md +46 -0
  22. package/docs/agent-skill-profiles.docx +0 -0
  23. package/docs/icons/alert.svg +1 -0
  24. package/docs/icons/beaker.svg +1 -0
  25. package/docs/icons/book.svg +1 -0
  26. package/docs/icons/git-branch.svg +1 -0
  27. package/docs/icons/git-merge.svg +1 -0
  28. package/docs/icons/graph.svg +1 -0
  29. package/docs/icons/light-bulb.svg +1 -0
  30. package/docs/icons/logo.svg +9 -0
  31. package/docs/icons/pencil.svg +1 -0
  32. package/docs/icons/rocket.svg +1 -0
  33. package/docs/icons/shield.svg +1 -0
  34. package/docs/icons/sync.svg +1 -0
  35. package/docs/icons/terminal.svg +1 -0
  36. package/docs/icons/tools.svg +1 -0
  37. package/docs/icons/zap.svg +1 -0
  38. package/docs/images/bounce_loop_diagram.png +0 -0
  39. package/docs/vbounce-os-manual.docx +0 -0
  40. package/package.json +48 -0
  41. package/scripts/close_sprint.mjs +134 -0
  42. package/scripts/complete_story.mjs +121 -0
  43. package/scripts/count_tokens.mjs +494 -0
  44. package/scripts/doctor.mjs +144 -0
  45. package/scripts/hotfix_manager.sh +157 -0
  46. package/scripts/init_gate_config.sh +151 -0
  47. package/scripts/init_sprint.mjs +129 -0
  48. package/scripts/post_sprint_improve.mjs +486 -0
  49. package/scripts/pre_gate_common.sh +576 -0
  50. package/scripts/pre_gate_runner.sh +176 -0
  51. package/scripts/prep_arch_context.mjs +178 -0
  52. package/scripts/prep_qa_context.mjs +152 -0
  53. package/scripts/prep_sprint_context.mjs +141 -0
  54. package/scripts/prep_sprint_summary.mjs +154 -0
  55. package/scripts/product_graph.mjs +387 -0
  56. package/scripts/product_impact.mjs +167 -0
  57. package/scripts/sprint_trends.mjs +160 -0
  58. package/scripts/suggest_improvements.mjs +363 -0
  59. package/scripts/update_state.mjs +132 -0
  60. package/scripts/validate_bounce_readiness.mjs +152 -0
  61. package/scripts/validate_report.mjs +165 -0
  62. package/scripts/validate_sprint_plan.mjs +117 -0
  63. package/scripts/validate_state.mjs +99 -0
  64. package/scripts/vdoc_match.mjs +269 -0
  65. package/scripts/vdoc_staleness.mjs +199 -0
  66. package/scripts/verify_framework.mjs +122 -0
  67. package/scripts/verify_framework.sh +13 -0
  68. package/skills/agent-team/SKILL.md +579 -0
  69. package/skills/agent-team/references/cleanup.md +42 -0
  70. package/skills/agent-team/references/delivery-sync.md +43 -0
  71. package/skills/agent-team/references/discovery.md +97 -0
  72. package/skills/agent-team/references/git-strategy.md +52 -0
  73. package/skills/agent-team/references/mid-sprint-triage.md +85 -0
  74. package/skills/agent-team/references/report-naming.md +34 -0
  75. package/skills/doc-manager/SKILL.md +444 -0
  76. package/skills/file-organization/SKILL.md +146 -0
  77. package/skills/file-organization/TEST-RESULTS.md +193 -0
  78. package/skills/file-organization/evals/evals.json +41 -0
  79. package/skills/file-organization/references/gitignore-template.md +53 -0
  80. package/skills/file-organization/references/quick-checklist.md +48 -0
  81. package/skills/improve/SKILL.md +296 -0
  82. package/skills/lesson/SKILL.md +136 -0
  83. package/skills/product-graph/SKILL.md +102 -0
  84. package/skills/react-best-practices/SKILL.md +3014 -0
  85. package/skills/react-best-practices/rules/_sections.md +46 -0
  86. package/skills/react-best-practices/rules/_template.md +28 -0
  87. package/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  88. package/skills/react-best-practices/rules/advanced-init-once.md +42 -0
  89. package/skills/react-best-practices/rules/advanced-use-latest.md +39 -0
  90. package/skills/react-best-practices/rules/async-api-routes.md +38 -0
  91. package/skills/react-best-practices/rules/async-defer-await.md +80 -0
  92. package/skills/react-best-practices/rules/async-dependencies.md +51 -0
  93. package/skills/react-best-practices/rules/async-parallel.md +28 -0
  94. package/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  95. package/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  96. package/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  97. package/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  98. package/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  99. package/skills/react-best-practices/rules/bundle-preload.md +50 -0
  100. package/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  101. package/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  102. package/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  103. package/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  104. package/skills/react-best-practices/rules/js-batch-dom-css.md +107 -0
  105. package/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  106. package/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  107. package/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  108. package/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  109. package/skills/react-best-practices/rules/js-early-exit.md +50 -0
  110. package/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  111. package/skills/react-best-practices/rules/js-index-maps.md +37 -0
  112. package/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  113. package/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  114. package/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  115. package/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  116. package/skills/react-best-practices/rules/rendering-activity.md +26 -0
  117. package/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  118. package/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  119. package/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  120. package/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  121. package/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  122. package/skills/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  123. package/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  124. package/skills/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  125. package/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  126. package/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  127. package/skills/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  128. package/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  129. package/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  130. package/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  131. package/skills/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  132. package/skills/react-best-practices/rules/rerender-memo.md +44 -0
  133. package/skills/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  134. package/skills/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  135. package/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  136. package/skills/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  137. package/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  138. package/skills/react-best-practices/rules/server-auth-actions.md +96 -0
  139. package/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  140. package/skills/react-best-practices/rules/server-cache-react.md +76 -0
  141. package/skills/react-best-practices/rules/server-dedup-props.md +65 -0
  142. package/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  143. package/skills/react-best-practices/rules/server-serialization.md +38 -0
  144. package/skills/vibe-code-review/SKILL.md +70 -0
  145. package/skills/vibe-code-review/references/deep-audit.md +259 -0
  146. package/skills/vibe-code-review/references/pr-review.md +234 -0
  147. package/skills/vibe-code-review/references/quick-scan.md +178 -0
  148. package/skills/vibe-code-review/references/report-template.md +189 -0
  149. package/skills/vibe-code-review/references/trend-check.md +224 -0
  150. package/skills/vibe-code-review/scripts/generate-snapshot.sh +89 -0
  151. package/skills/vibe-code-review/scripts/pr-analyze.sh +180 -0
  152. package/skills/write-skill/SKILL.md +133 -0
  153. package/templates/bug.md +100 -0
  154. package/templates/change_request.md +105 -0
  155. package/templates/charter.md +144 -0
  156. package/templates/delivery_plan.md +44 -0
  157. package/templates/epic.md +203 -0
  158. package/templates/hotfix.md +58 -0
  159. package/templates/risk_registry.md +87 -0
  160. package/templates/roadmap.md +174 -0
  161. package/templates/spike.md +143 -0
  162. package/templates/sprint.md +134 -0
  163. package/templates/sprint_context.md +61 -0
  164. package/templates/sprint_report.md +215 -0
  165. package/templates/story.md +193 -0
@@ -0,0 +1,97 @@
1
+ # Discovery Phase — Spike Execution Protocol
2
+
3
+ > On-demand reference from agent-team/SKILL.md. When and how to run discovery spikes for ambiguous work.
4
+
5
+ ## When Discovery Triggers
6
+
7
+ 1. **Epic-level 🔴 ambiguity** — detected during Epic creation or review via the doc-manager ambiguity assessment rubric.
8
+ 2. **Story labeled L4** — transitioning to Probing/Spiking state. L4 stories MUST have at least one linked spike before they can progress.
9
+ 3. **Blocking Open Questions** — Epic §8 has items marked "Blocking" with no ADR or prior decision.
10
+
11
+ ## Spike Lifecycle
12
+
13
+ ```
14
+ Open → Investigating → Findings Ready → Validated → Closed
15
+ ```
16
+
17
+ | Status | Who Acts | What Happens |
18
+ |--------|----------|-------------|
19
+ | **Open** | Team Lead | Spike created from `.vbounce/templates/spike.md`, linked in Epic §9 |
20
+ | **Investigating** | Developer | Code exploration, prototyping, benchmarks. Fills §4 Findings and §5 Decision |
21
+ | **Findings Ready** | Developer → Architect | Developer marks complete. Awaiting Architect validation |
22
+ | **Validated** | Architect | Confirms findings against Safe Zone and ADRs. PASS → Validated. FAIL → back to Investigating |
23
+ | **Closed** | Team Lead | All §7 Affected Documents checked off. Findings propagated to Epic, Roadmap, Risk Registry |
24
+
25
+ ## Execution Protocol
26
+
27
+ ### Step 1: Create Spike (Team Lead)
28
+
29
+ 1. Identify the blocking unknown (from Epic §8 Open Questions or 🔴 ambiguity signals)
30
+ 2. Create spike document from `.vbounce/templates/spike.md`
31
+ 3. Fill §1 Question, §2 Constraints, §3 Approach
32
+ 4. Set status → Open
33
+ 5. Link spike in parent Epic §9 Artifact Links
34
+ 6. Set time box (default: 4 hours for focused questions, 1 day for broader exploration)
35
+
36
+ ### Step 2: Investigate (Developer)
37
+
38
+ 1. Read the spike §1 Question, §2 Constraints, §3 Approach
39
+ 2. Read parent Epic §4 Technical Context for existing knowledge
40
+ 3. Investigate using the specified approach (code exploration, prototyping, benchmarks, doc research)
41
+ 4. Fill §4 Findings with evidence and data
42
+ 5. Fill §5 Decision with chosen approach, rationale, and rejected alternatives
43
+ 6. Mark §5 ADR Required if the decision is architectural
44
+ 7. Fill §6 Residual Risk if unknowns remain
45
+ 8. Set status → Findings Ready
46
+
47
+ ### Step 3: Validate (Architect)
48
+
49
+ 1. Read the spike §4 Findings and §5 Decision
50
+ 2. Validate against:
51
+ - Safe Zone compliance (no unauthorized patterns or libraries)
52
+ - Existing ADRs in Roadmap §3 (no contradictions)
53
+ - Risk profile (§6 Residual Risk is acceptable)
54
+ 3. If **PASS** → status → Validated
55
+ 4. If **FAIL** → provide specific feedback, status remains Findings Ready, Developer re-investigates
56
+
57
+ ### Step 4: Close & Propagate (Team Lead)
58
+
59
+ 1. Walk through §7 Affected Documents checklist:
60
+ - Update Epic §4 Technical Context with findings
61
+ - Mark Epic §8 Open Questions as resolved
62
+ - Add spike reference to Epic §9 Artifact Links
63
+ - If §5 ADR Required → create new ADR row in Roadmap §3
64
+ - If §6 Residual Risk has entries → add to Risk Registry §1
65
+ - If story-level spike → update Story §3 Implementation Guide
66
+ 2. Check off all items in §7
67
+ 3. Set status → Closed
68
+ 4. Parent story transitions: Probing/Spiking → Refinement
69
+
70
+ ## Timing Rules
71
+
72
+ - Spikes happen during **planning/refinement**, NOT during sprint execution
73
+ - No worktrees needed — spikes produce documents, not code
74
+ - Time box is enforced — if the time box expires without findings, the spike is escalated to the human with a status report
75
+ - Prototypes created during spikes are **throwaway** — they are NOT committed to any branch
76
+
77
+ ## What Spikes Are NOT
78
+
79
+ - **Not production code.** Spikes produce findings and decisions, not shippable code.
80
+ - **Not QA/DevOps passes.** No bounce sequence, no gate reports, no merge operations.
81
+ - **Not a worktree activity.** Spikes are document-level work, not branch-level work.
82
+ - **Not open-ended research.** Every spike has a time box and a specific question. If the question is too broad, split into multiple spikes.
83
+
84
+ ## Integration with Bounce Sequence
85
+
86
+ Spikes gate the transition from Probing/Spiking → Refinement → Ready to Bounce:
87
+
88
+ ```
89
+ Story (L4 / 🔴) → Probing/Spiking
90
+ └── Spike(s) created
91
+ └── Developer investigates → Architect validates → Team Lead propagates
92
+ └── All spikes Validated/Closed
93
+ └── Story ambiguity updated (should now be 🟡 or 🟢)
94
+ └── Story → Refinement → Ready to Bounce
95
+ ```
96
+
97
+ No story may enter Ready to Bounce while it has linked spikes in Open, Investigating, or Findings Ready status.
@@ -0,0 +1,52 @@
1
+ # Git Strategy Reference
2
+
3
+ > On-demand reference from agent-team/SKILL.md. Read when setting up worktrees or performing git operations.
4
+
5
+ ## Branch Model
6
+
7
+ ```
8
+ main ← production
9
+ └── sprint/S-01 ← sprint branch (cut from main)
10
+ ├── story/STORY-001-01-login ← story branch (worktree)
11
+ ├── story/STORY-001-02-auth ← story branch (worktree)
12
+ └── story/STORY-001-03-api ← story branch (worktree)
13
+ ```
14
+
15
+ ## Sprint Commands
16
+
17
+ ```bash
18
+ # Cut sprint branch
19
+ git checkout -b sprint/S-06 main
20
+
21
+ # Create story worktree
22
+ git worktree add .worktrees/STORY-001-01-login -b story/STORY-001-01-login sprint/S-06
23
+ mkdir -p .worktrees/STORY-001-01-login/.vbounce/{tasks,reports}
24
+
25
+ # List active worktrees
26
+ git worktree list
27
+
28
+ # Merge story into sprint
29
+ git checkout sprint/S-06
30
+ git merge story/STORY-001-01-login --no-ff -m "Merge STORY-001-01: {Story Name}"
31
+
32
+ # Remove worktree after merge
33
+ git worktree remove .worktrees/STORY-001-01-login
34
+ git branch -d story/STORY-001-01-login
35
+
36
+ # Merge sprint into main
37
+ git checkout main
38
+ git merge sprint/S-06 --no-ff -m "Sprint S-06: {Sprint Goal}"
39
+ git tag -a v{VERSION} -m "Release v{VERSION}"
40
+ ```
41
+
42
+ ## V-Bounce State → Git Operations
43
+
44
+ | V-Bounce State | Git Operation |
45
+ |---------------|---------------|
46
+ | Sprint starts | `git checkout -b sprint/S-XX main` |
47
+ | Ready to Bounce | `git worktree add .worktrees/STORY-{ID} -b story/STORY-{ID} sprint/S-XX` |
48
+ | Bouncing | All work happens inside `.worktrees/STORY-{ID}/` |
49
+ | Done | Merge story branch → sprint branch, `git worktree remove` |
50
+ | Sprint Review → Done | Merge sprint branch → main |
51
+ | Escalated | Worktree kept but frozen (no new commits) |
52
+ | Parking Lot | Worktree removed, branch preserved unmerged |
@@ -0,0 +1,85 @@
1
+ # Mid-Sprint Triage
2
+
3
+ > On-demand reference from agent-team/SKILL.md. How the Team Lead handles user interruptions during an active sprint.
4
+
5
+ ## When This Applies
6
+
7
+ Any time the user provides input mid-bounce that is **not** a direct answer to a question the agent asked. Examples:
8
+ - "This is broken"
9
+ - "Actually, change the auth to use OAuth"
10
+ - "I meant X, not Y"
11
+ - "Can we also add Z?"
12
+ - "The wiring between A and B doesn't work"
13
+
14
+ ## Step 1 — Categorize
15
+
16
+ The Team Lead MUST classify the request before acting:
17
+
18
+ | Category | Definition | Example | Template |
19
+ |----------|-----------|---------|----------|
20
+ | **Bug** | Something built (or pre-existing) is broken | "Login crashes when email has a plus sign" | `.vbounce/templates/bug.md` (or `.vbounce/templates/hotfix.md` if L1) |
21
+ | **Spec Clarification** | The spec was ambiguous; user is clarifying intent, not changing scope | "By 'admin' I meant workspace admin, not super admin" | No template — update story spec inline |
22
+ | **Scope Change** | User wants to add, remove, or modify requirements for the current story | "Also add a forgot-password flow to the login story" | `.vbounce/templates/change_request.md` |
23
+ | **Approach Change** | Implementation strategy is wrong; needs a different technical path | "Don't use REST for this — wire it through WebSockets instead" | `.vbounce/templates/change_request.md` |
24
+
25
+ ### How to Decide
26
+
27
+ ```
28
+ Is existing behavior broken?
29
+ YES → Bug
30
+ Is it L1 (1-2 files, trivial)? → Hotfix Path (.vbounce/templates/hotfix.md)
31
+ Is it larger? → Bug Report (.vbounce/templates/bug.md) → fix task in current sprint
32
+ NO → Is the user adding/removing/changing a requirement?
33
+ YES → Scope Change (.vbounce/templates/change_request.md)
34
+ NO → Is the user correcting an ambiguity in the spec?
35
+ YES → Spec Clarification (update story inline, no template)
36
+ NO → Approach Change (.vbounce/templates/change_request.md)
37
+ ```
38
+
39
+ ## Step 2 — Route
40
+
41
+ | Category | Action | Bounce Impact | Document Created |
42
+ |----------|--------|---------------|------------------|
43
+ | **Bug (L1)** | Hotfix Path: Dev fixes, human verifies, merge directly | None — does NOT increment bounce count | `product_plans/hotfixes/HOTFIX-{Date}-{Name}.md` |
44
+ | **Bug (L2+)** | Create bug report, add as fix task within current story bounce | None — does NOT increment bounce count | `product_plans/sprints/sprint-{XX}/BUG-{Date}-{Name}.md` |
45
+ | **Spec Clarification** | Update Story spec inline (§1 or §2). Add a note in the Change Log. Continue current bounce. | None | No separate document |
46
+ | **Scope Change** | **Pause bounce.** Create CR document. Present impact to human. Wait for decision. If approved: update Story spec, reset Dev pass. If rejected: continue as-is. If deferred: add to backlog. | Resets Dev pass. Prior QA/Arch invalidated if change affects tested areas. | `product_plans/sprints/sprint-{XX}/CR-{Date}-{Name}.md` |
47
+ | **Approach Change** | Create CR document. Update Story §3 Implementation Guide. Re-delegate to Developer with updated context. | Resets Dev pass. Prior QA/Arch invalidated. | `product_plans/sprints/sprint-{XX}/CR-{Date}-{Name}.md` |
48
+
49
+ ## Step 3 — Log
50
+
51
+ Every triage event MUST be logged in the Sprint Plan `sprint-{XX}.md` §4 Execution Log:
52
+
53
+ ```
54
+ | {Story or N/A} | {Category} | 0 | 0 | — | CR: {One-line description} |
55
+ ```
56
+
57
+ Use the Notes column with `CR:` prefix to distinguish from regular story completions.
58
+
59
+ ## Step 4 — Present to Human
60
+
61
+ After categorizing, the Team Lead MUST present the triage decision to the human:
62
+
63
+ 1. State the category: "This is a **{Bug / Scope Change / Approach Change / Spec Clarification}**."
64
+ 2. For Bugs: state severity and whether it blocks the current story
65
+ 3. For Scope/Approach Changes: present the impact assessment from the CR document and ask for decision (Approve / Reject / Defer)
66
+ 4. For Spec Clarifications: state what was clarified and confirm with human before updating
67
+
68
+ ## Sprint Report Tracking
69
+
70
+ At sprint consolidation (Step 7), the Team Lead includes a **§2.1 Change Requests** section in the Sprint Report summarizing all mid-sprint triage events:
71
+
72
+ | Story | Category | Description | Impact | Document |
73
+ |-------|----------|-------------|--------|----------|
74
+ | STORY-{ID} | Bug | Login crash on plus-sign emails | Fixed via hotfix, no bounce reset | HOTFIX-2026-03-22-login-plus |
75
+ | STORY-{ID} | Scope Change | Added forgot-password flow | Dev pass reset, +1 session | CR-2026-03-22-forgot-password |
76
+
77
+ ## Key Rules
78
+
79
+ - **Never silently absorb a user change.** Always categorize, document, and log it.
80
+ - **Bugs don't penalize the bounce count.** They are defects, not process failures.
81
+ - **Spec clarifications are cheap.** Update the spec and move on — no ceremony needed.
82
+ - **Scope changes require a CR document and human approval.** Always pause, assess impact, and confirm before resuming.
83
+ - **Approach changes require a CR document.** The technical pivot must be recorded for audit trail.
84
+ - **Correction Tax still applies.** Human intervention is tracked, but the category explains *why*.
85
+ - **Everything gets a document or an inline update.** No change goes unrecorded.
@@ -0,0 +1,34 @@
1
+ # Report Naming Conventions
2
+
3
+ > On-demand reference from agent-team/SKILL.md. Canonical naming for all report files.
4
+
5
+ ## Story Report Files
6
+
7
+ Pattern: `STORY-{EpicID}-{StoryID}-{StoryName}-{agent}[-bounce{N}].md`
8
+
9
+ | Report | Filename | Location |
10
+ |--------|----------|----------|
11
+ | Dev (first pass) | `STORY-001-01-login-dev.md` | `.worktrees/STORY-001-01-login/.vbounce/reports/` |
12
+ | QA FAIL (first bounce) | `STORY-001-01-login-qa-bounce1.md` | `.worktrees/STORY-001-01-login/.vbounce/reports/` |
13
+ | Dev fix (second pass) | `STORY-001-01-login-dev-bounce2.md` | `.worktrees/STORY-001-01-login/.vbounce/reports/` |
14
+ | QA PASS | `STORY-001-01-login-qa-bounce2.md` | `.worktrees/STORY-001-01-login/.vbounce/reports/` |
15
+ | Architect | `STORY-001-01-login-arch.md` | `.worktrees/STORY-001-01-login/.vbounce/reports/` |
16
+ | DevOps merge | `STORY-001-01-login-devops.md` | `.vbounce/archive/S-{XX}/STORY-001-01-login/` |
17
+
18
+ ## Sprint-Level Files
19
+
20
+ | Report | Filename | Location |
21
+ |--------|----------|----------|
22
+ | Sprint DevOps | `sprint-S-{XX}-devops.md` | `.vbounce/archive/S-{XX}/` |
23
+ | Sprint Scribe | `sprint-S-{XX}-scribe.md` | `.vbounce/archive/S-{XX}/` |
24
+ | Sprint Report (active) | `sprint-report-S-{XX}.md` | `.vbounce/` (gitignored) |
25
+ | Sprint Report (archived) | `sprint-report-S-{XX}.md` | `.vbounce/archive/S-{XX}/` (committed) |
26
+ | Sprint Context Pack | `sprint-context-S-{XX}.md` | `.vbounce/` (gitignored) |
27
+ | Sprint Summary | `sprint-summary-S-{XX}.md` | `.vbounce/` (gitignored) |
28
+
29
+ ## Key Rules
30
+
31
+ - Sprint ID always uses `S-{XX}` format (two digits, zero-padded)
32
+ - No delivery prefix on sprint-level files — sprint ID is globally unique
33
+ - Active sprint reports include sprint ID in filename
34
+ - `bounce{N}` suffix counts from 1 (bounce1 = first failure, bounce2 = second failure)