@sandrinio/vbounce 1.3.1 → 1.4.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/brains/claude-agents/developer.md +7 -0
- package/brains/claude-agents/qa.md +6 -4
- package/brains/claude-agents/scribe.md +8 -0
- package/package.json +1 -1
- package/scripts/validate_report.mjs +8 -2
- package/scripts/verify_framework.mjs +6 -0
- package/templates/charter.md +7 -7
- package/templates/delivery_plan.md +9 -11
- package/templates/epic.md +13 -15
- package/templates/hotfix.md +9 -12
- package/templates/risk_registry.md +6 -8
- package/templates/roadmap.md +7 -9
- package/templates/sprint_report.md +9 -10
- package/templates/story.md +16 -14
|
@@ -21,6 +21,11 @@ Implement features and fix bugs as specified in Story documents. You write code
|
|
|
21
21
|
|
|
22
22
|
## During Implementation
|
|
23
23
|
|
|
24
|
+
**You MUST follow the Test-Driven Development (TDD) Red-Green-Refactor cycle:**
|
|
25
|
+
1. **Red (Write Failing Tests):** Before writing any implementation logic, write an automated test file (e.g., Jest, React Testing Library) that explicitly covers the Gherkin scenarios defined in `§2 The Truth`. Run it to prove it fails.
|
|
26
|
+
2. **Green (Write Implementation):** Write the minimum code required to make your tests pass.
|
|
27
|
+
3. **Refactor:** Clean up the code for readability and architecture without breaking the tests.
|
|
28
|
+
|
|
24
29
|
- **Follow the Safe Zone.** Do not introduce new patterns, libraries, or architectural changes.
|
|
25
30
|
- **No Gold-Plating.** Implement exactly what the Story specifies. Extra features are defects, not bonuses.
|
|
26
31
|
- **Track your Correction Tax.** Note every point where you needed human intervention or made a wrong turn.
|
|
@@ -41,6 +46,7 @@ You MUST include the YAML frontmatter block exactly as shown below:
|
|
|
41
46
|
---
|
|
42
47
|
status: "implemented"
|
|
43
48
|
correction_tax: {X}
|
|
49
|
+
tests_written: {number of tests generated}
|
|
44
50
|
files_modified:
|
|
45
51
|
- "path/to/file.ts"
|
|
46
52
|
lessons_flagged: {number of lessons}
|
|
@@ -66,6 +72,7 @@ lessons_flagged: {number of lessons}
|
|
|
66
72
|
|
|
67
73
|
## Status
|
|
68
74
|
- [ ] Code compiles without errors
|
|
75
|
+
- [ ] Automated tests were written FIRST (Red) and now pass (Green)
|
|
69
76
|
- [ ] LESSONS.md was read before implementation
|
|
70
77
|
- [ ] ADRs from Roadmap §3 were followed
|
|
71
78
|
- [ ] No new patterns or libraries introduced
|
|
@@ -36,10 +36,12 @@ Analyze the specific changes from the Developer:
|
|
|
36
36
|
5. **Test Quality** — would tests break if logic changed?
|
|
37
37
|
6. **Coupling** — can you change one thing without breaking five?
|
|
38
38
|
|
|
39
|
-
###
|
|
40
|
-
Run Story §2.1 Gherkin scenarios against the
|
|
41
|
-
-
|
|
42
|
-
-
|
|
39
|
+
### Test Execution & Fidelity
|
|
40
|
+
Run Story §2.1 Gherkin scenarios against the Developer's automated test suite:
|
|
41
|
+
- **Did the Developer actually write tests?** If `tests_written: 0` in their report, the bounce FAILS automatically. TDD is mandatory.
|
|
42
|
+
- **Do the tests pass?** If the Developer's test suite fails when executed (or if there are compilation errors), the bounce FAILS.
|
|
43
|
+
- Each scenario is a binary pass/fail based on test coverage.
|
|
44
|
+
- Document exact failure conditions (input, expected, actual).
|
|
43
45
|
|
|
44
46
|
### Spec Fidelity Check
|
|
45
47
|
After running scenarios, verify:
|
|
@@ -98,8 +98,16 @@ The manifest is a semantic routing table — it helps agents quickly find releva
|
|
|
98
98
|
## Your Output
|
|
99
99
|
|
|
100
100
|
Write a **Scribe Report** to `.bounce/reports/sprint-S-{XX}-scribe.md`:
|
|
101
|
+
You MUST include the YAML frontmatter block exactly as shown below:
|
|
101
102
|
|
|
102
103
|
```markdown
|
|
104
|
+
---
|
|
105
|
+
mode: "{init / audit / create}"
|
|
106
|
+
docs_created: {count}
|
|
107
|
+
docs_updated: {count}
|
|
108
|
+
docs_removed: {count}
|
|
109
|
+
---
|
|
110
|
+
|
|
103
111
|
# Scribe Report: Sprint S-{XX}
|
|
104
112
|
|
|
105
113
|
## Mode
|
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@ import yaml from 'js-yaml';
|
|
|
14
14
|
|
|
15
15
|
// Defined schemas for each report type
|
|
16
16
|
const SCHEMAS = {
|
|
17
|
-
dev: ['status', 'correction_tax', 'files_modified', 'lessons_flagged'],
|
|
17
|
+
dev: ['status', 'correction_tax', 'tests_written', 'files_modified', 'lessons_flagged'],
|
|
18
18
|
qa: {
|
|
19
19
|
base: ['status', 'bounce_count', 'bugs_found', 'gold_plating_detected'],
|
|
20
20
|
conditional: { 'FAIL': ['failed_scenarios'] }
|
|
@@ -26,7 +26,8 @@ const SCHEMAS = {
|
|
|
26
26
|
devops: {
|
|
27
27
|
base: ['type', 'status'],
|
|
28
28
|
conditional: { 'story-merge': ['conflicts_detected'], 'sprint-release': ['version'] }
|
|
29
|
-
}
|
|
29
|
+
},
|
|
30
|
+
scribe: ['mode', 'docs_created', 'docs_updated', 'docs_removed']
|
|
30
31
|
};
|
|
31
32
|
|
|
32
33
|
function extractFrontmatter(content) {
|
|
@@ -89,6 +90,7 @@ function main() {
|
|
|
89
90
|
else if (filename.endsWith('-qa.md')) agentType = 'qa';
|
|
90
91
|
else if (filename.endsWith('-arch.md')) agentType = 'arch';
|
|
91
92
|
else if (filename.endsWith('-devops.md')) agentType = 'devops';
|
|
93
|
+
else if (filename.endsWith('-scribe.md')) agentType = 'scribe';
|
|
92
94
|
|
|
93
95
|
if (agentType === 'unknown') {
|
|
94
96
|
console.error(`WARNING: Unrecognized report type for ${filename}. Ensure filename ends in -dev.md, -qa.md, -arch.md, or -devops.md.`);
|
|
@@ -108,6 +110,10 @@ function main() {
|
|
|
108
110
|
if (agentType === 'qa') validateQA(data);
|
|
109
111
|
if (agentType === 'arch') validateArch(data);
|
|
110
112
|
if (agentType === 'devops') validateDevops(data);
|
|
113
|
+
if (agentType === 'scribe') {
|
|
114
|
+
const missing = SCHEMAS.scribe.filter(k => !(k in data));
|
|
115
|
+
if (missing.length > 0) throw new Error(`SCRIBE_SCHEMA_ERROR: Missing required keys: ${missing.join(', ')}`);
|
|
116
|
+
}
|
|
111
117
|
|
|
112
118
|
console.log(`VALID: ${filename} matches the ${agentType.toUpperCase()} schema.`);
|
|
113
119
|
process.exit(0);
|
package/templates/charter.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-9.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Set status, ambiguity, and readiness
|
|
5
5
|
2. **§1 Project Identity**: What it is, what it's NOT, success metrics
|
|
6
6
|
3. **§2 Design Principles**: 3-5 numbered rules (these guide all future decisions)
|
|
7
7
|
4. **§3 Architecture**: System diagram + Tech Stack table (mark unknown as `[TBD]`)
|
|
@@ -31,13 +31,13 @@ Downstream consumers:
|
|
|
31
31
|
Do NOT output these instructions.
|
|
32
32
|
</instructions>
|
|
33
33
|
|
|
34
|
-
# Project Charter: [Project Name]
|
|
35
|
-
|
|
36
|
-
> **Status**: 🌱 Initial Draft / 🌿 Refining / 🌳 Approved
|
|
37
|
-
> **Ambiguity Score**: 🔴 High / 🟡 Medium / 🟢 Low
|
|
38
|
-
> **Readiness**: Blocked / Ready for Roadmap / Ready for Epics
|
|
39
|
-
|
|
40
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
41
|
|
|
42
42
|
## 1. Project Identity
|
|
43
43
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-7.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Set status, last updated, roadmap ref, risk registry ref, delivery ref, and sprint cadence
|
|
5
5
|
2. **§1 Project Window**: Start/End dates, total sprints, team
|
|
6
6
|
3. **§2 Sprint Registry**: Table of ALL sprints with goals and status (auto-populated between markers)
|
|
7
7
|
4. **§3 Active Sprint**: CURRENT sprint only — goal + assigned stories with L1-L4 labels + V-Bounce state
|
|
@@ -59,19 +59,17 @@ Downstream consumers:
|
|
|
59
59
|
Do NOT output these instructions.
|
|
60
60
|
</instructions>
|
|
61
61
|
|
|
62
|
-
# Delivery Plan: {Project Name}
|
|
63
|
-
|
|
64
62
|
---
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
> **Sprint Cadence**: 1-week sprints within 2-week project window
|
|
72
|
-
|
|
63
|
+
last_updated: "{YYYY-MM-DD}"
|
|
64
|
+
status: "Planning / In Sprint / Delivered"
|
|
65
|
+
roadmap_ref: "product_plans/{project}_roadmap.md"
|
|
66
|
+
risk_registry_ref: "product_plans/RISK_REGISTRY.md"
|
|
67
|
+
delivery_ref: "D-{NN}_{release_name}"
|
|
68
|
+
sprint_cadence: "1-week sprints within 2-week project window"
|
|
73
69
|
---
|
|
74
70
|
|
|
71
|
+
# Delivery Plan: {Project Name}
|
|
72
|
+
|
|
75
73
|
## 1. Project Window
|
|
76
74
|
|
|
77
75
|
| Key | Value |
|
package/templates/epic.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. Output sections in order.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Epic ID, Status, Ambiguity, Context Source, Release, Owner, Priority, Tags, Target Date
|
|
5
5
|
2. **§1 Problem & Value**: Why (problem), What (solution), Success Metrics
|
|
6
6
|
3. **§2 Scope Boundaries**: IN-SCOPE checkboxes, OUT-OF-SCOPE list
|
|
7
7
|
4. **§3 Context**: Personas, User Journey diagram, Constraints table
|
|
@@ -37,21 +37,19 @@ Downstream consumers:
|
|
|
37
37
|
Do NOT output these instructions.
|
|
38
38
|
</instructions>
|
|
39
39
|
|
|
40
|
-
# EPIC-{ID}: {Epic Name}
|
|
41
|
-
|
|
42
|
-
## Metadata
|
|
43
|
-
| Field | Value |
|
|
44
|
-
|-------|-------|
|
|
45
|
-
| **Status** | Draft / Ready / In Progress / Done |
|
|
46
|
-
| **Ambiguity** | 🔴 High / 🟡 Medium / 🟢 Low |
|
|
47
|
-
| **Context Source** | Charter §{section} / Roadmap §{section} / User Input |
|
|
48
|
-
| **Release** | {Release name from Roadmap §2} |
|
|
49
|
-
| **Owner** | {PM/PO name} |
|
|
50
|
-
| **Priority** | P0 - Critical / P1 - High / P2 - Medium |
|
|
51
|
-
| **Tags** | #frontend, #api, #auth |
|
|
52
|
-
| **Target Date** | {YYYY-MM-DD} |
|
|
53
|
-
|
|
54
40
|
---
|
|
41
|
+
epic_id: "EPIC-{ID}"
|
|
42
|
+
status: "Draft / Ready / In Progress / Done"
|
|
43
|
+
ambiguity: "🔴 High / 🟡 Medium / 🟢 Low"
|
|
44
|
+
context_source: "Charter §{section} / Roadmap §{section} / User Input"
|
|
45
|
+
release: "{Release name from Roadmap §2}"
|
|
46
|
+
owner: "{PM/PO name}"
|
|
47
|
+
priority: "P0 - Critical / P1 - High / P2 - Medium"
|
|
48
|
+
tags: ["frontend", "api", "auth"]
|
|
49
|
+
target_date: "{YYYY-MM-DD}"
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# EPIC-{ID}: {Epic Name}
|
|
55
53
|
|
|
56
54
|
## 1. Problem & Value
|
|
57
55
|
> Target Audience: Stakeholders, Business Sponsors
|
package/templates/hotfix.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. This is a lightweight alternative to the Epic/Story hierarchy for L1 (Trivial) tasks.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Hotfix ID, Status, Target Release, Actor, Complexity Label
|
|
5
5
|
2. **§1 The Fix**: What is broken/changing and why
|
|
6
6
|
3. **§2 Implementation Instructions**: Which file(s) to change and what to do
|
|
7
7
|
4. **§3 Verification**: Simple manual test
|
|
@@ -20,18 +20,15 @@ Constraints:
|
|
|
20
20
|
Do NOT output these instructions.
|
|
21
21
|
</instructions>
|
|
22
22
|
|
|
23
|
-
# HOTFIX: {Name}
|
|
24
|
-
|
|
25
|
-
## Metadata
|
|
26
|
-
|
|
27
|
-
| Field | Value |
|
|
28
|
-
|-------|-------|
|
|
29
|
-
| **Target Release** | `D-{NN}_{release_name}` |
|
|
30
|
-
| **Status** | Draft / Bouncing / Done |
|
|
31
|
-
| **Actor** | {Persona Name / User} |
|
|
32
|
-
| **Complexity Label** | L1 (Trivial) |
|
|
33
|
-
|
|
34
23
|
---
|
|
24
|
+
hotfix_id: "HOTFIX-{Date}-{Name}"
|
|
25
|
+
status: "Draft / Bouncing / Done"
|
|
26
|
+
target_release: "D-{NN}_{release_name}"
|
|
27
|
+
actor: "{Persona Name / User}"
|
|
28
|
+
complexity_label: "L1 (Trivial)"
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# HOTFIX: {Name}
|
|
35
32
|
|
|
36
33
|
## 1. The Fix
|
|
37
34
|
> What needs to be changed and why.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-4.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Set status, last updated, and roadmap ref
|
|
5
5
|
2. **§1 Active Risks**: Table of open risks with phase, source, likelihood, impact, mitigation
|
|
6
6
|
3. **§2 Risk Analysis Log**: Phase-stamped entries appended on state transitions
|
|
7
7
|
4. **§3 Closed Risks**: Resolved/mitigated risks moved here
|
|
@@ -31,16 +31,14 @@ The Risk Registry is reviewed by the Team Lead at sprint boundaries and by the A
|
|
|
31
31
|
Do NOT output these instructions.
|
|
32
32
|
</instructions>
|
|
33
33
|
|
|
34
|
-
# Risk Registry: {Project Name}
|
|
35
|
-
|
|
36
34
|
---
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
> **Roadmap**: `product_plans/{project}_roadmap.md`
|
|
41
|
-
|
|
35
|
+
last_updated: "{YYYY-MM-DD}"
|
|
36
|
+
status: "Active / Archived"
|
|
37
|
+
roadmap_ref: "product_plans/{project}_roadmap.md"
|
|
42
38
|
---
|
|
43
39
|
|
|
40
|
+
# Risk Registry: {Project Name}
|
|
41
|
+
|
|
44
42
|
## 1. Active Risks
|
|
45
43
|
|
|
46
44
|
| ID | Risk | Phase | Source | Likelihood | Impact | Mitigation | Owner | Status |
|
package/templates/roadmap.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-7.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Set status, last updated, charter ref, and risk registry ref
|
|
5
5
|
2. **§1 Strategic Context**: Vision (from Charter), primary goal, target users, success metrics
|
|
6
6
|
3. **§2 Release Plan**: Group epics into named releases with exit criteria — NOT sprint-level tracking
|
|
7
7
|
4. **§3 Technical Architecture Decisions**: Key choices with rationale and status (this is the ADR log)
|
|
@@ -26,17 +26,15 @@ Charter (why) → **Roadmap** (strategic what/when) → Epic (detailed what) →
|
|
|
26
26
|
Do NOT output these instructions.
|
|
27
27
|
</instructions>
|
|
28
28
|
|
|
29
|
-
# Product Roadmap: {Project Name}
|
|
30
|
-
|
|
31
29
|
---
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
> **Risk Registry**: `product_plans/RISK_REGISTRY.md`
|
|
37
|
-
|
|
30
|
+
last_updated: "{YYYY-MM-DD}"
|
|
31
|
+
status: "Planning / Active / MVP Complete / Shipped"
|
|
32
|
+
charter_ref: "product_plans/{project}_charter.md"
|
|
33
|
+
risk_registry_ref: "product_plans/RISK_REGISTRY.md"
|
|
38
34
|
---
|
|
39
35
|
|
|
36
|
+
# Product Roadmap: {Project Name}
|
|
37
|
+
|
|
40
38
|
## 1. Strategic Context
|
|
41
39
|
|
|
42
40
|
| Key | Value |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-6.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Sprint ID, Goal, Dates, Status, Delivery Ref, Delivery Plan Ref
|
|
5
5
|
2. **§1 What Was Delivered**: User-facing summary — what's accessible/usable vs what's internal/backend
|
|
6
6
|
3. **§2 Story Results**: Table of all stories with final status and per-story metrics
|
|
7
7
|
4. **§3 Execution Metrics**: AI performance metrics — tokens, duration, bounces, correction tax
|
|
@@ -20,18 +20,17 @@ versus what was built under the hood. Write it from the user's perspective, not
|
|
|
20
20
|
Do NOT output these instructions.
|
|
21
21
|
</instructions>
|
|
22
22
|
|
|
23
|
-
# Sprint Report: S-{XX}
|
|
24
|
-
|
|
25
23
|
---
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
sprint_id: "S-{XX}"
|
|
25
|
+
sprint_goal: "{One-sentence North Star}"
|
|
26
|
+
dates: "{MM/DD - MM/DD}"
|
|
27
|
+
status: "Achieved / Partially Achieved / Failed"
|
|
28
|
+
delivery_ref: "D-{NN}_{release_name}"
|
|
29
|
+
delivery_plan_ref: "product_plans/{delivery}/DELIVERY_PLAN.md"
|
|
33
30
|
---
|
|
34
31
|
|
|
32
|
+
# Sprint Report: S-{XX}
|
|
33
|
+
|
|
35
34
|
## 1. What Was Delivered
|
|
36
35
|
|
|
37
36
|
### User-Facing (Accessible Now)
|
package/templates/story.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<instructions>
|
|
2
2
|
FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-4.
|
|
3
3
|
|
|
4
|
-
1. **
|
|
4
|
+
1. **YAML Frontmatter**: Story ID, Parent Epic, Status, Ambiguity, Context Source, Actor, Complexity, Complexity Label
|
|
5
5
|
2. **§1 The Spec**: User Story (As a... I want... So that...) + Detailed Requirements
|
|
6
6
|
3. **§2 The Truth**: Gherkin acceptance criteria + manual verification steps
|
|
7
7
|
4. **§3 Implementation Guide**: Files to modify, technical logic, API contract
|
|
@@ -38,19 +38,18 @@ Agent handoff sections:
|
|
|
38
38
|
Do NOT output these instructions.
|
|
39
39
|
</instructions>
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
---
|
|
42
|
+
story_id: "STORY-{EpicID}-{StoryID}"
|
|
43
|
+
parent_epic_ref: "EPIC-{ID}"
|
|
44
|
+
status: "Draft / Refinement / Probing/Spiking / Ready to Bounce / Bouncing / QA Passed / Architect Passed / Sprint Review / Done / Escalated / Parking Lot"
|
|
45
|
+
ambiguity: "🔴 High / 🟡 Medium / 🟢 Low"
|
|
46
|
+
context_source: "Epic §{section} / Codebase / User Input"
|
|
47
|
+
actor: "{Persona Name}"
|
|
48
|
+
complexity: "Small (1 file) / Medium (2-3 files) / Large (Refactor needed)"
|
|
49
|
+
complexity_label: "L1 / L2 / L3 / L4 (default: L2)"
|
|
50
|
+
---
|
|
44
51
|
|
|
45
|
-
|
|
46
|
-
|-------|-------|
|
|
47
|
-
| **Parent Epic** | [EPIC-{ID}: {Name}](link) |
|
|
48
|
-
| **Status** | Draft / Refinement / Probing/Spiking / Ready to Bounce / Bouncing / QA Passed / Architect Passed / Sprint Review / Done / Escalated / Parking Lot |
|
|
49
|
-
| **Ambiguity** | 🔴 High / 🟡 Medium / 🟢 Low |
|
|
50
|
-
| **Context Source** | Epic §{section} / Codebase / User Input |
|
|
51
|
-
| **Actor** | {Persona Name} |
|
|
52
|
-
| **Complexity** | Small (1 file) / Medium (2-3 files) / Large (Refactor needed) |
|
|
53
|
-
| **Complexity Label** | L1 / L2 / L3 / L4 (default: L2) |
|
|
52
|
+
# STORY-{EpicID}-{StoryID}: {Story Name}
|
|
54
53
|
|
|
55
54
|
### Complexity Labels (Sprint Planning)
|
|
56
55
|
|
|
@@ -109,6 +108,9 @@ Feature: {Story Name}
|
|
|
109
108
|
> Instructions for the Developer Agent. The "How".
|
|
110
109
|
> Target Audience: Developer Agent (with react-best-practices + lesson skills).
|
|
111
110
|
|
|
111
|
+
### 3.0 Test Implementation
|
|
112
|
+
- {Identify which test suites need to be created or modified to cover the Acceptance Criteria from §2.1. e.g. "Create `AuthComponent.test.tsx`"}
|
|
113
|
+
|
|
112
114
|
### 3.1 Context & Files
|
|
113
115
|
| Item | Value |
|
|
114
116
|
|------|-------|
|
|
@@ -142,7 +144,7 @@ POST /api/resource
|
|
|
142
144
|
|
|
143
145
|
## 4. Definition of Done (The Gate)
|
|
144
146
|
- [ ] Code compiles without errors.
|
|
145
|
-
- [ ]
|
|
147
|
+
- [ ] Unit/Integration Tests were written FIRST (Red), and now pass (Green).
|
|
146
148
|
- [ ] All Acceptance Criteria (§2.1) pass.
|
|
147
149
|
- [ ] Linting rules passed.
|
|
148
150
|
- [ ] LESSONS.md consulted before implementation.
|