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,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: write-skill
|
|
3
|
+
description: Use when creating or updating Claude Code skills. Applies Anthropic best practices and persuasion principles for effective skill authoring.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill Authoring
|
|
7
|
+
|
|
8
|
+
Creates or updates Claude Code skills following Anthropic's best practices and tested persuasion principles.
|
|
9
|
+
|
|
10
|
+
**Core principle:** No skill without a failing test first. RED-GREEN-REFACTOR for process documentation.
|
|
11
|
+
|
|
12
|
+
## Trigger
|
|
13
|
+
|
|
14
|
+
`/write-skill` OR `/write-skill [skill-name]` OR when creating/modifying any `.claude/skills/` content.
|
|
15
|
+
|
|
16
|
+
## Announcement
|
|
17
|
+
|
|
18
|
+
When using this skill, state: "I'm using the write-skill skill to author an effective skill definition."
|
|
19
|
+
|
|
20
|
+
## Action
|
|
21
|
+
|
|
22
|
+
### 1. Baseline (RED Phase)
|
|
23
|
+
|
|
24
|
+
Before writing, establish that the skill is needed:
|
|
25
|
+
- What specific failure or gap does this skill address?
|
|
26
|
+
- Can you demonstrate the failure WITHOUT the skill?
|
|
27
|
+
- If you can't show a gap, you don't need a new skill.
|
|
28
|
+
|
|
29
|
+
### 2. Write Minimal Skill (GREEN Phase)
|
|
30
|
+
|
|
31
|
+
Create the skill at `.claude/skills/[name]/SKILL.md` with this structure:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
---
|
|
35
|
+
name: [kebab-case-name]
|
|
36
|
+
description: [Use when... — must start with triggering conditions, not workflow summary]
|
|
37
|
+
---
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Structure requirements:**
|
|
41
|
+
- YAML frontmatter: `name` and `description` only
|
|
42
|
+
- Description MUST start with "Use when..."
|
|
43
|
+
- Include searchable keywords (errors, symptoms, tools)
|
|
44
|
+
- Clear overview with core principle
|
|
45
|
+
- Inline code for simple patterns; separate files for heavy reference
|
|
46
|
+
|
|
47
|
+
**Size constraints:**
|
|
48
|
+
- Keep SKILL.md under 500 lines
|
|
49
|
+
- Split into reference files when approaching limit
|
|
50
|
+
- Structure references one level deep from SKILL.md
|
|
51
|
+
- Include table of contents for reference files over 100 lines
|
|
52
|
+
|
|
53
|
+
### 3. Apply Persuasion Principles
|
|
54
|
+
|
|
55
|
+
Use the right language patterns based on skill type:
|
|
56
|
+
|
|
57
|
+
| Skill Type | Use | Avoid |
|
|
58
|
+
|:---|:---|:---|
|
|
59
|
+
| **Discipline-enforcing** (TDD, verification) | Authority + Commitment + Social Proof | Liking, Reciprocity |
|
|
60
|
+
| **Guidance/technique** | Moderate Authority + Unity | Heavy authority |
|
|
61
|
+
| **Collaborative** | Unity + Commitment | Authority, Liking |
|
|
62
|
+
| **Reference** | Clarity only | All persuasion |
|
|
63
|
+
|
|
64
|
+
**Effective patterns:**
|
|
65
|
+
- Imperative: "YOU MUST", "Never", "Always", "No exceptions"
|
|
66
|
+
- Commitment: "Announce: I'm using [Skill Name]"
|
|
67
|
+
- Scarcity: "IMMEDIATELY after X", "Before proceeding"
|
|
68
|
+
- Social proof: "Every time", "X without Y = failure"
|
|
69
|
+
- Unity: "We're colleagues", "our codebase"
|
|
70
|
+
|
|
71
|
+
**Example — discipline skill:**
|
|
72
|
+
```markdown
|
|
73
|
+
✅ Write code before test? Delete it. Start over. No exceptions.
|
|
74
|
+
❌ Consider writing tests first when feasible.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 4. Refine (REFACTOR Phase)
|
|
78
|
+
|
|
79
|
+
- Test the skill across different scenarios
|
|
80
|
+
- Plug loopholes where the agent might rationalize skipping steps
|
|
81
|
+
- Add anti-rationalization language for critical rules
|
|
82
|
+
- Verify the skill works with the target model
|
|
83
|
+
|
|
84
|
+
### 5. Skill Type Checklist
|
|
85
|
+
|
|
86
|
+
**Techniques** (step-by-step methods):
|
|
87
|
+
- [ ] Clear trigger conditions
|
|
88
|
+
- [ ] Ordered action steps
|
|
89
|
+
- [ ] Explicit wait points
|
|
90
|
+
- [ ] Output format example
|
|
91
|
+
|
|
92
|
+
**Patterns** (mental models):
|
|
93
|
+
- [ ] Recognition criteria
|
|
94
|
+
- [ ] When to apply vs. when not to
|
|
95
|
+
- [ ] Examples of correct application
|
|
96
|
+
|
|
97
|
+
**References** (API docs/guides):
|
|
98
|
+
- [ ] Table of contents
|
|
99
|
+
- [ ] Searchable headings
|
|
100
|
+
- [ ] Code examples with correct/incorrect pairs
|
|
101
|
+
|
|
102
|
+
## Content Guidelines
|
|
103
|
+
|
|
104
|
+
- **Assume Claude's intelligence** — don't over-explain what can be inferred
|
|
105
|
+
- **Match specificity to fragility:**
|
|
106
|
+
- High freedom (text instructions) → flexible tasks
|
|
107
|
+
- Medium freedom (pseudocode) → preferred patterns
|
|
108
|
+
- Low freedom (exact scripts) → error-prone operations
|
|
109
|
+
- **Avoid time-sensitive information** — use "old patterns" sections for deprecated approaches
|
|
110
|
+
- **Use consistent terminology** — choose one term, not synonyms
|
|
111
|
+
- **Use checklists** for multi-step operations (copyable via TodoWrite)
|
|
112
|
+
- **Include validation loops** — run validator → fix → repeat
|
|
113
|
+
|
|
114
|
+
## Anti-Patterns
|
|
115
|
+
|
|
116
|
+
- Narrative examples (use code pairs instead)
|
|
117
|
+
- Multi-language dilution (focus on the project's stack)
|
|
118
|
+
- Code in flowcharts (use real code blocks)
|
|
119
|
+
- Generic labels ("Step 1", "Step 2" without context)
|
|
120
|
+
- Vague skill names ("helper", "utility")
|
|
121
|
+
- Offering excessive options without clear defaults
|
|
122
|
+
- Deeply nested file references (one level deep max)
|
|
123
|
+
|
|
124
|
+
## Deployment Checklist
|
|
125
|
+
|
|
126
|
+
Before marking complete:
|
|
127
|
+
- [ ] RED: Demonstrated the gap without the skill
|
|
128
|
+
- [ ] GREEN: Wrote minimal content addressing the gap
|
|
129
|
+
- [ ] REFACTOR: Tested and plugged loopholes
|
|
130
|
+
- [ ] Description starts with "Use when..."
|
|
131
|
+
- [ ] SKILL.md under 500 lines
|
|
132
|
+
- [ ] References one level deep
|
|
133
|
+
- [ ] Tested against real task scenarios
|
package/templates/bug.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<instructions>
|
|
2
|
+
FOLLOW THIS EXACT STRUCTURE. This documents a defect found during or after sprint execution.
|
|
3
|
+
|
|
4
|
+
1. **YAML Frontmatter**: Bug ID, Status, Severity, Found During, Affected Story, Reporter
|
|
5
|
+
2. **§1 The Bug**: What's broken, reproduction steps, expected vs actual
|
|
6
|
+
3. **§2 Impact**: What's affected, is it blocking?
|
|
7
|
+
4. **§3 Fix Approach**: Proposed fix, affected files, estimated complexity
|
|
8
|
+
5. **§4 Verification**: How to verify the fix
|
|
9
|
+
|
|
10
|
+
When to use this template:
|
|
11
|
+
- User reports something is broken mid-sprint
|
|
12
|
+
- QA discovers a defect not covered by acceptance criteria
|
|
13
|
+
- Post-sprint manual review finds an issue
|
|
14
|
+
- A previously working feature regresses
|
|
15
|
+
|
|
16
|
+
Triage rules (from mid-sprint-triage.md):
|
|
17
|
+
- If the bug is L1 (1-2 files, trivial fix) → use .vbounce/templates/hotfix.md instead
|
|
18
|
+
- If the bug is larger → use THIS template, add to current sprint as a fix task
|
|
19
|
+
- Bug fixes do NOT increment QA/Architect bounce counts
|
|
20
|
+
|
|
21
|
+
Output location: `product_plans/sprints/sprint-{XX}/BUG-{Date}-{Name}.md`
|
|
22
|
+
If no sprint is active: `product_plans/backlog/BUG-{Date}-{Name}.md`
|
|
23
|
+
|
|
24
|
+
Do NOT output these instructions.
|
|
25
|
+
</instructions>
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
bug_id: "BUG-{YYYY-MM-DD}-{name}"
|
|
29
|
+
status: "Open / In Progress / Fixed / Wont Fix"
|
|
30
|
+
severity: "Critical / High / Medium / Low"
|
|
31
|
+
found_during: "Sprint S-{XX} / Post-Sprint Review / User Report"
|
|
32
|
+
affected_story: "STORY-{ID} / N/A (pre-existing)"
|
|
33
|
+
reporter: "{human / QA / user}"
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
# BUG: {Short Description}
|
|
37
|
+
|
|
38
|
+
## 1. The Bug
|
|
39
|
+
|
|
40
|
+
**Current Behavior:**
|
|
41
|
+
{What happens — be specific}
|
|
42
|
+
|
|
43
|
+
**Expected Behavior:**
|
|
44
|
+
{What should happen instead}
|
|
45
|
+
|
|
46
|
+
**Reproduction Steps:**
|
|
47
|
+
1. {Step 1}
|
|
48
|
+
2. {Step 2}
|
|
49
|
+
3. {Observe: ...}
|
|
50
|
+
|
|
51
|
+
**Environment:**
|
|
52
|
+
- {Browser/OS/Node version if relevant}
|
|
53
|
+
- {Branch: sprint/S-XX or main}
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 2. Impact
|
|
58
|
+
|
|
59
|
+
- **Blocking?** {Yes — blocks STORY-{ID} / No — cosmetic / degraded}
|
|
60
|
+
- **Affected Areas:** {Which features, pages, or flows}
|
|
61
|
+
- **Users Affected:** {All users / specific persona / edge case only}
|
|
62
|
+
- **Data Impact:** {None / corrupted data / lost data}
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 3. Fix Approach
|
|
67
|
+
|
|
68
|
+
- **Root Cause:** {Why it's broken — if known}
|
|
69
|
+
- **Proposed Fix:** {What to change}
|
|
70
|
+
- **Files to Modify:** `{filepath1}`, `{filepath2}`
|
|
71
|
+
- **Complexity:** {L1 Trivial / L2 Standard / L3 Complex}
|
|
72
|
+
|
|
73
|
+
> If complexity is L1 → consider using `.vbounce/templates/hotfix.md` instead for faster resolution.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 4. Verification
|
|
78
|
+
|
|
79
|
+
- [ ] {Reproduction steps no longer reproduce the bug}
|
|
80
|
+
- [ ] {Existing tests still pass}
|
|
81
|
+
- [ ] {New test covers the bug scenario — if applicable}
|
|
82
|
+
- [ ] Run `./.vbounce/scripts/hotfix_manager.sh ledger "BUG: {Name}" "{Brief description}"`
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Token Usage
|
|
89
|
+
> Auto-populated by agents. Each agent runs `node .vbounce/scripts/count_tokens.mjs --self --append <this-file> --name <Agent>` before writing their report.
|
|
90
|
+
|
|
91
|
+
| Agent | Input | Output | Total |
|
|
92
|
+
|-------|-------|--------|-------|
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Change Log
|
|
97
|
+
|
|
98
|
+
| Date | Author | Change |
|
|
99
|
+
|------|--------|--------|
|
|
100
|
+
| {YYYY-MM-DD} | {name} | Created |
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<instructions>
|
|
2
|
+
FOLLOW THIS EXACT STRUCTURE. This documents a scope change or new requirement discovered mid-sprint.
|
|
3
|
+
|
|
4
|
+
1. **YAML Frontmatter**: CR ID, Status, Category, Urgency, Affected Stories, Requestor
|
|
5
|
+
2. **§1 The Change**: What's being requested and why
|
|
6
|
+
3. **§2 Impact Assessment**: What it affects, what breaks, what gets delayed
|
|
7
|
+
4. **§3 Decision**: Approved action with rationale
|
|
8
|
+
5. **§4 Execution Plan**: How the change will be handled
|
|
9
|
+
|
|
10
|
+
When to use this template:
|
|
11
|
+
- User requests a new feature or scope expansion mid-sprint
|
|
12
|
+
- User wants to change the technical approach of an active story
|
|
13
|
+
- External dependency change forces a pivot
|
|
14
|
+
- Requirements discovered during implementation that weren't in the original spec
|
|
15
|
+
|
|
16
|
+
Categories (from mid-sprint-triage.md):
|
|
17
|
+
- **Scope Change**: Adding/removing/modifying requirements → use THIS template
|
|
18
|
+
- **Approach Change**: Different technical path → use THIS template
|
|
19
|
+
- **Spec Clarification**: Just clarifying ambiguity → do NOT use this template (update story spec inline)
|
|
20
|
+
- **Bug**: Something is broken → use .vbounce/templates/bug.md instead
|
|
21
|
+
|
|
22
|
+
Triage rules:
|
|
23
|
+
- Scope changes PAUSE the active bounce until the human approves
|
|
24
|
+
- Approach changes reset the Dev pass
|
|
25
|
+
- All CRs are logged in Sprint Plan §4 Execution Log with event type "CR"
|
|
26
|
+
- CRs that can't fit in the current sprint go to backlog for next sprint planning
|
|
27
|
+
|
|
28
|
+
Output location: `product_plans/sprints/sprint-{XX}/CR-{Date}-{Name}.md`
|
|
29
|
+
If no sprint is active: `product_plans/backlog/CR-{Date}-{Name}.md`
|
|
30
|
+
|
|
31
|
+
Do NOT output these instructions.
|
|
32
|
+
</instructions>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
cr_id: "CR-{YYYY-MM-DD}-{name}"
|
|
36
|
+
status: "Open / Approved / Rejected / Deferred"
|
|
37
|
+
category: "Scope Change / Approach Change"
|
|
38
|
+
urgency: "Blocking / This Sprint / Next Sprint"
|
|
39
|
+
affected_stories: ["STORY-{ID}"]
|
|
40
|
+
requestor: "{human / AI / external}"
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# CR: {Short Description}
|
|
44
|
+
|
|
45
|
+
## 1. The Change
|
|
46
|
+
|
|
47
|
+
**What is being requested:**
|
|
48
|
+
{Describe the change clearly}
|
|
49
|
+
|
|
50
|
+
**Why:**
|
|
51
|
+
{Business reason, user feedback, technical discovery, external dependency change}
|
|
52
|
+
|
|
53
|
+
**Original vs Proposed:**
|
|
54
|
+
| Aspect | Original | Proposed |
|
|
55
|
+
|--------|----------|----------|
|
|
56
|
+
| {Scope/Approach/Tech} | {What was planned} | {What's now requested} |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 2. Impact Assessment
|
|
61
|
+
|
|
62
|
+
**Affected Stories:**
|
|
63
|
+
| Story | Current State | Impact |
|
|
64
|
+
|-------|--------------|--------|
|
|
65
|
+
| STORY-{ID} | {Bouncing / QA Passed / ...} | {Must restart Dev / Spec update only / Blocked} |
|
|
66
|
+
|
|
67
|
+
**Sprint Impact:**
|
|
68
|
+
- {Does this delay the sprint? By how much?}
|
|
69
|
+
- {Does this invalidate completed work?}
|
|
70
|
+
- {Does this require new stories?}
|
|
71
|
+
|
|
72
|
+
**Risk:**
|
|
73
|
+
- {What could go wrong if we make this change?}
|
|
74
|
+
- {What could go wrong if we DON'T make this change?}
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 3. Decision
|
|
79
|
+
|
|
80
|
+
> Filled by human after reviewing the impact assessment.
|
|
81
|
+
|
|
82
|
+
**Decision:** {Approved / Rejected / Deferred to S-{XX}}
|
|
83
|
+
|
|
84
|
+
**Rationale:** {Why this decision}
|
|
85
|
+
|
|
86
|
+
**Conditions:** {Any constraints on the approved change}
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 4. Execution Plan
|
|
91
|
+
|
|
92
|
+
> Filled after decision is approved.
|
|
93
|
+
|
|
94
|
+
- **Stories affected:** {Which stories need spec updates}
|
|
95
|
+
- **New stories needed:** {If any — add to backlog or current sprint}
|
|
96
|
+
- **Bounce impact:** {Which passes reset — Dev only / Dev + QA / full restart}
|
|
97
|
+
- **Timeline:** {Can it fit in current sprint or deferred?}
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Change Log
|
|
102
|
+
|
|
103
|
+
| Date | Author | Change |
|
|
104
|
+
|------|--------|--------|
|
|
105
|
+
| {YYYY-MM-DD} | {name} | Created |
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<instructions>
|
|
2
|
+
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-9.
|
|
3
|
+
|
|
4
|
+
1. **YAML Frontmatter**: Set status, ambiguity, and readiness
|
|
5
|
+
2. **§1 Project Identity**: What it is, what it's NOT, success metrics
|
|
6
|
+
3. **§2 Design Principles**: 3-5 numbered rules (these guide all future decisions)
|
|
7
|
+
4. **§3 Architecture**: System diagram + Tech Stack table (mark unknown as `[TBD]`)
|
|
8
|
+
5. **§4 Core Entities**: Table of data objects (nouns)
|
|
9
|
+
6. **§5 Key Workflows**: Numbered steps for main flows (verbs)
|
|
10
|
+
7. **§6 Constraints**: Known limitations and mitigations
|
|
11
|
+
8. **§7 Open Questions**: Unanswered items that may block progress
|
|
12
|
+
9. **§8-9 Glossary & References**: Terms and links
|
|
13
|
+
|
|
14
|
+
Ambiguity Score:
|
|
15
|
+
- 🔴 High: Missing "why" or primary flow → Blocked
|
|
16
|
+
- 🟡 Medium: Tech TBD but logic clear → Ready for Roadmap
|
|
17
|
+
- 🟢 Low: All filled → Ready for Epics
|
|
18
|
+
|
|
19
|
+
Output location: `product_plans/strategy/{project}_charter.md`
|
|
20
|
+
|
|
21
|
+
Document Hierarchy Position: ROOT
|
|
22
|
+
Charter is the source of truth for WHY. All downstream documents inherit from it:
|
|
23
|
+
Charter (why) → Roadmap (strategic what/when) → Epic (detailed what) → Story (how) → Delivery Plan (execution) → Risk Registry (risks)
|
|
24
|
+
|
|
25
|
+
Downstream consumers:
|
|
26
|
+
- Roadmap §1 pulls Vision, Goal, Users, and Success Metrics from Charter §1
|
|
27
|
+
- Roadmap §3 ADRs are constrained by Charter §3 Tech Stack choices
|
|
28
|
+
- Epic §1 Problem & Value traces back to Charter §1.1 and §5 Workflows
|
|
29
|
+
- Design Principles (§2) are referenced by ALL agents when making ambiguous decisions
|
|
30
|
+
|
|
31
|
+
Do NOT output these instructions.
|
|
32
|
+
</instructions>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
status: "🌱 Initial Draft / 🌿 Refining / 🌳 Approved"
|
|
36
|
+
ambiguity: "🔴 High / 🟡 Medium / 🟢 Low"
|
|
37
|
+
readiness: "Blocked / Ready for Roadmap / Ready for Epics"
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
# Project Charter: [Project Name]
|
|
41
|
+
|
|
42
|
+
## 1. Project Identity
|
|
43
|
+
|
|
44
|
+
### 1.1 What It Is
|
|
45
|
+
> One paragraph: what the product does and for whom.
|
|
46
|
+
|
|
47
|
+
### 1.2 What It Is NOT
|
|
48
|
+
> Explicit boundaries. Prevents scope creep and AI hallucination.
|
|
49
|
+
- Not a {similar product X}
|
|
50
|
+
- Does not handle {out-of-scope capability}
|
|
51
|
+
|
|
52
|
+
### 1.3 Success Definition
|
|
53
|
+
> How do we know we won? Measurable outcomes.
|
|
54
|
+
- {Metric 1}
|
|
55
|
+
- {Metric 2}
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 2. Design Principles
|
|
60
|
+
> Numbered rules that guide ALL decisions. AI agents reference these when uncertain.
|
|
61
|
+
|
|
62
|
+
1. **{Principle Name}**: {One sentence explanation}
|
|
63
|
+
2. **{Principle Name}**: {One sentence explanation}
|
|
64
|
+
3. **{Principle Name}**: {One sentence explanation}
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 3. Architecture Overview
|
|
69
|
+
|
|
70
|
+
### 3.1 System Context
|
|
71
|
+
```mermaid
|
|
72
|
+
flowchart LR
|
|
73
|
+
User --> Frontend
|
|
74
|
+
Frontend --> API
|
|
75
|
+
API --> Database
|
|
76
|
+
API --> ExternalService
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3.2 Technical Foundation
|
|
80
|
+
| Component | Choice | Status | Notes |
|
|
81
|
+
|-----------|--------|--------|-------|
|
|
82
|
+
| **Frontend** | {e.g. Next.js} | Selected / TBD | {Reasoning} |
|
|
83
|
+
| **Backend** | {e.g. Python/FastAPI} | Selected / TBD | |
|
|
84
|
+
| **Database** | {e.g. Supabase} | Selected / TBD | |
|
|
85
|
+
| **AI/ML** | {e.g. Claude API} | Selected / TBD | |
|
|
86
|
+
| **Integrations** | {List External APIs} | Selected / TBD | |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 4. Core Entities
|
|
91
|
+
> The nouns of your system. AI uses this to understand data flow.
|
|
92
|
+
|
|
93
|
+
| Entity | Purpose | Key Fields |
|
|
94
|
+
|--------|---------|------------|
|
|
95
|
+
| User | Account holder | id, email, role |
|
|
96
|
+
| {Entity} | {purpose} | {fields} |
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 5. Key Workflows
|
|
101
|
+
> The verbs of your system. Reference these in Epics.
|
|
102
|
+
|
|
103
|
+
### 5.1 {Workflow Name}
|
|
104
|
+
1. {Step}
|
|
105
|
+
2. {Step}
|
|
106
|
+
3. {Step}
|
|
107
|
+
|
|
108
|
+
### 5.2 {Workflow Name}
|
|
109
|
+
1. {Step}
|
|
110
|
+
2. {Step}
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 6. Constraints & Edge Cases
|
|
115
|
+
| Constraint | Mitigation |
|
|
116
|
+
|------------|------------|
|
|
117
|
+
| {e.g., Rate limits on external API} | {how we handle it} |
|
|
118
|
+
| {e.g., Offline support required} | {approach} |
|
|
119
|
+
| {e.g., GDPR compliance} | {approach} |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 7. Open Questions
|
|
124
|
+
|
|
125
|
+
> [!QUESTION]
|
|
126
|
+
> {Question that blocks progress}
|
|
127
|
+
|
|
128
|
+
| Question | Options | Impact | Status |
|
|
129
|
+
|----------|---------|--------|--------|
|
|
130
|
+
| {decision needed} | A: {x}, B: {y} | Blocks {X} | Open / Decided |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 8. Glossary
|
|
135
|
+
| Term | Definition |
|
|
136
|
+
|------|------------|
|
|
137
|
+
| {term} | {what it means in THIS project} |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 9. References
|
|
142
|
+
- Design Docs: {link}
|
|
143
|
+
- Competitor Analysis: {link}
|
|
144
|
+
- User Research: {link}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<instructions>
|
|
2
|
+
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-4.
|
|
3
|
+
1. **Header**: Set Status, link to Roadmap + Risk Registry, Sprint Cadence
|
|
4
|
+
2. **§1 Project Window**: Start/End dates, total sprints, team
|
|
5
|
+
3. **§2 Epics Included**: Table of all Epics assigned to this delivery
|
|
6
|
+
4. **§3 High-Level Backlog**: Unassigned stories (Epics being broken down)
|
|
7
|
+
|
|
8
|
+
Delivery Lifecycle:
|
|
9
|
+
- This document tracks the *milestone* across multiple sprints.
|
|
10
|
+
- Active sprint work happens inside `sprints/sprint-{XX}/sprint-{XX}.md`, not here.
|
|
11
|
+
- When the delivery is fully shipped, this entire document is archived.
|
|
12
|
+
|
|
13
|
+
Output location: `product_plans/D-{NN}_{release_name}/D-{NN}_DELIVERY_PLAN.md`
|
|
14
|
+
Do NOT output these instructions.
|
|
15
|
+
</instructions>
|
|
16
|
+
# Delivery Plan: {Project Name}
|
|
17
|
+
---
|
|
18
|
+
> **Last Updated**: {YYYY-MM-DD}
|
|
19
|
+
> **Status**: Planning / In Delivery / Completed
|
|
20
|
+
> **Roadmap**: `product_plans/{project}_roadmap.md`
|
|
21
|
+
> **Risk Registry**: `product_plans/RISK_REGISTRY.md`
|
|
22
|
+
> **Delivery**: `D-{NN}_{release_name}`
|
|
23
|
+
> **Sprint Cadence**: 1-week sprints
|
|
24
|
+
---
|
|
25
|
+
## 1. Project Window
|
|
26
|
+
| Key | Value |
|
|
27
|
+
|-----|-------|
|
|
28
|
+
| **Start Date** | {YYYY-MM-DD} |
|
|
29
|
+
| **End Date** | {YYYY-MM-DD} |
|
|
30
|
+
| **Total Sprints** | {N} |
|
|
31
|
+
| **Team** | {CE name(s) / Agent config} |
|
|
32
|
+
---
|
|
33
|
+
## 2. Epics Included
|
|
34
|
+
| Epic | Name | Status | Stories | V-Bounce Phase |
|
|
35
|
+
|------|------|--------|---------|----------------|
|
|
36
|
+
| EPIC-XXX | {Name} | Draft / Refinement / Bouncing / Done | {Y}/{X} | {Phase Name} |
|
|
37
|
+
---
|
|
38
|
+
## 3. High-Level Backlog
|
|
39
|
+
> Stories prioritized for this delivery but not yet assigned to an active Sprint.
|
|
40
|
+
| Priority | Story | Epic | Label | Blocker |
|
|
41
|
+
|----------|-------|------|-------|---------|
|
|
42
|
+
| 1 | STORY-XXX-YY: {name} | EPIC-XXX | L2 | — |
|
|
43
|
+
### Escalated / Parking Lot
|
|
44
|
+
- STORY-XXX-YY: {name} — Reason: {escalated / deferred}
|