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.
- package/README.md +142 -0
- package/VBOUNCE_MANIFEST.md +404 -0
- package/bin/vbounce.mjs +882 -0
- package/brains/AGENTS.md +71 -0
- package/brains/CHANGELOG.md +398 -0
- package/brains/CLAUDE.md +90 -0
- package/brains/GEMINI.md +102 -0
- package/brains/SETUP.md +195 -0
- package/brains/claude-agents/architect.md +226 -0
- package/brains/claude-agents/developer.md +133 -0
- package/brains/claude-agents/devops.md +267 -0
- package/brains/claude-agents/explorer.md +157 -0
- package/brains/claude-agents/qa.md +225 -0
- package/brains/claude-agents/scribe.md +171 -0
- package/brains/copilot/copilot-instructions.md +54 -0
- package/brains/cursor-rules/vbounce-docs.mdc +45 -0
- package/brains/cursor-rules/vbounce-process.mdc +51 -0
- package/brains/cursor-rules/vbounce-rules.mdc +29 -0
- package/brains/windsurf/.windsurfrules +35 -0
- package/docs/HOTFIX_EDGE_CASES.md +37 -0
- package/docs/IMPROVEMENT.md +46 -0
- package/docs/agent-skill-profiles.docx +0 -0
- package/docs/icons/alert.svg +1 -0
- package/docs/icons/beaker.svg +1 -0
- package/docs/icons/book.svg +1 -0
- package/docs/icons/git-branch.svg +1 -0
- package/docs/icons/git-merge.svg +1 -0
- package/docs/icons/graph.svg +1 -0
- package/docs/icons/light-bulb.svg +1 -0
- package/docs/icons/logo.svg +9 -0
- package/docs/icons/pencil.svg +1 -0
- package/docs/icons/rocket.svg +1 -0
- package/docs/icons/shield.svg +1 -0
- package/docs/icons/sync.svg +1 -0
- package/docs/icons/terminal.svg +1 -0
- package/docs/icons/tools.svg +1 -0
- package/docs/icons/zap.svg +1 -0
- package/docs/images/bounce_loop_diagram.png +0 -0
- package/docs/vbounce-os-manual.docx +0 -0
- package/package.json +48 -0
- package/scripts/close_sprint.mjs +134 -0
- package/scripts/complete_story.mjs +121 -0
- package/scripts/count_tokens.mjs +494 -0
- package/scripts/doctor.mjs +144 -0
- package/scripts/hotfix_manager.sh +157 -0
- package/scripts/init_gate_config.sh +151 -0
- package/scripts/init_sprint.mjs +129 -0
- package/scripts/post_sprint_improve.mjs +486 -0
- package/scripts/pre_gate_common.sh +576 -0
- package/scripts/pre_gate_runner.sh +176 -0
- package/scripts/prep_arch_context.mjs +178 -0
- package/scripts/prep_qa_context.mjs +152 -0
- package/scripts/prep_sprint_context.mjs +141 -0
- package/scripts/prep_sprint_summary.mjs +154 -0
- package/scripts/product_graph.mjs +387 -0
- package/scripts/product_impact.mjs +167 -0
- package/scripts/sprint_trends.mjs +160 -0
- package/scripts/suggest_improvements.mjs +363 -0
- package/scripts/update_state.mjs +132 -0
- package/scripts/validate_bounce_readiness.mjs +152 -0
- package/scripts/validate_report.mjs +165 -0
- package/scripts/validate_sprint_plan.mjs +117 -0
- package/scripts/validate_state.mjs +99 -0
- package/scripts/vdoc_match.mjs +269 -0
- package/scripts/vdoc_staleness.mjs +199 -0
- package/scripts/verify_framework.mjs +122 -0
- package/scripts/verify_framework.sh +13 -0
- package/skills/agent-team/SKILL.md +579 -0
- package/skills/agent-team/references/cleanup.md +42 -0
- package/skills/agent-team/references/delivery-sync.md +43 -0
- package/skills/agent-team/references/discovery.md +97 -0
- package/skills/agent-team/references/git-strategy.md +52 -0
- package/skills/agent-team/references/mid-sprint-triage.md +85 -0
- package/skills/agent-team/references/report-naming.md +34 -0
- package/skills/doc-manager/SKILL.md +444 -0
- package/skills/file-organization/SKILL.md +146 -0
- package/skills/file-organization/TEST-RESULTS.md +193 -0
- package/skills/file-organization/evals/evals.json +41 -0
- package/skills/file-organization/references/gitignore-template.md +53 -0
- package/skills/file-organization/references/quick-checklist.md +48 -0
- package/skills/improve/SKILL.md +296 -0
- package/skills/lesson/SKILL.md +136 -0
- package/skills/product-graph/SKILL.md +102 -0
- package/skills/react-best-practices/SKILL.md +3014 -0
- package/skills/react-best-practices/rules/_sections.md +46 -0
- package/skills/react-best-practices/rules/_template.md +28 -0
- package/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/skills/vibe-code-review/SKILL.md +70 -0
- package/skills/vibe-code-review/references/deep-audit.md +259 -0
- package/skills/vibe-code-review/references/pr-review.md +234 -0
- package/skills/vibe-code-review/references/quick-scan.md +178 -0
- package/skills/vibe-code-review/references/report-template.md +189 -0
- package/skills/vibe-code-review/references/trend-check.md +224 -0
- package/skills/vibe-code-review/scripts/generate-snapshot.sh +89 -0
- package/skills/vibe-code-review/scripts/pr-analyze.sh +180 -0
- package/skills/write-skill/SKILL.md +133 -0
- package/templates/bug.md +100 -0
- package/templates/change_request.md +105 -0
- package/templates/charter.md +144 -0
- package/templates/delivery_plan.md +44 -0
- package/templates/epic.md +203 -0
- package/templates/hotfix.md +58 -0
- package/templates/risk_registry.md +87 -0
- package/templates/roadmap.md +174 -0
- package/templates/spike.md +143 -0
- package/templates/sprint.md +134 -0
- package/templates/sprint_context.md +61 -0
- package/templates/sprint_report.md +215 -0
- 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)
|