@delete101020/aidlc 4.0.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/AUTOMATION.md +148 -0
- package/README.md +684 -0
- package/dist/assets/annotate-artifact.skill.md +121 -0
- package/dist/assets/epic-context.skill.md +55 -0
- package/dist/bundle.js +49470 -0
- package/dist/templates/ainative/agents/native-engineer.md +66 -0
- package/dist/templates/ainative/agents/native-operator.md +71 -0
- package/dist/templates/ainative/agents/native-originator.md +56 -0
- package/dist/templates/ainative/agents/native-product-owner.md +68 -0
- package/dist/templates/ainative/agents/native-reviewer.md +65 -0
- package/dist/templates/ainative/agents/native-verifier.md +58 -0
- package/dist/templates/ainative/artifacts/build-plan.md +56 -0
- package/dist/templates/ainative/artifacts/implement.md +55 -0
- package/dist/templates/ainative/artifacts/intent.md +50 -0
- package/dist/templates/ainative/artifacts/maintain.md +85 -0
- package/dist/templates/ainative/artifacts/review.md +68 -0
- package/dist/templates/ainative/artifacts/spec.md +69 -0
- package/dist/templates/ainative/artifacts/verify.md +55 -0
- package/dist/templates/ainative/skills/native-build-plan.md +74 -0
- package/dist/templates/ainative/skills/native-implement.md +62 -0
- package/dist/templates/ainative/skills/native-intent.md +50 -0
- package/dist/templates/ainative/skills/native-maintain.md +94 -0
- package/dist/templates/ainative/skills/native-review.md +82 -0
- package/dist/templates/ainative/skills/native-spec.md +83 -0
- package/dist/templates/ainative/skills/native-verify.md +60 -0
- package/dist/templates/sdlc/agents/designer.md +87 -0
- package/dist/templates/sdlc/agents/developer.md +178 -0
- package/dist/templates/sdlc/agents/example-with-skills.md +59 -0
- package/dist/templates/sdlc/agents/orchestrator.md +186 -0
- package/dist/templates/sdlc/agents/po.md +115 -0
- package/dist/templates/sdlc/agents/qa.md +141 -0
- package/dist/templates/sdlc/agents/tech-lead.md +124 -0
- package/dist/templates/sdlc/artifacts/design.md +130 -0
- package/dist/templates/sdlc/artifacts/execute-test.md +64 -0
- package/dist/templates/sdlc/artifacts/implement.backend.md +96 -0
- package/dist/templates/sdlc/artifacts/implement.md +70 -0
- package/dist/templates/sdlc/artifacts/implement.web-react.md +109 -0
- package/dist/templates/sdlc/artifacts/implement.web.md +99 -0
- package/dist/templates/sdlc/artifacts/plan.md +97 -0
- package/dist/templates/sdlc/artifacts/prototype.md +141 -0
- package/dist/templates/sdlc/artifacts/test-cases.md +47 -0
- package/dist/templates/sdlc/artifacts/test-plan.md +100 -0
- package/dist/templates/sdlc/artifacts/unit-test.md +32 -0
- package/dist/templates/sdlc/profiles/agile-lite.yaml +29 -0
- package/dist/templates/sdlc/profiles/hybrid.yaml +43 -0
- package/dist/templates/sdlc/profiles/iso-ieee.yaml +67 -0
- package/dist/templates/sdlc/profiles/none.yaml +21 -0
- package/dist/templates/sdlc/skills/advance-epic.md +77 -0
- package/dist/templates/sdlc/skills/analyze-requirements.md +279 -0
- package/dist/templates/sdlc/skills/discovery-gate.md +118 -0
- package/dist/templates/sdlc/skills/execute-test.md +74 -0
- package/dist/templates/sdlc/skills/generate-test-cases.md +77 -0
- package/dist/templates/sdlc/skills/implement.md +74 -0
- package/dist/templates/sdlc/skills/prd.md +114 -0
- package/dist/templates/sdlc/skills/prototype.md +128 -0
- package/dist/templates/sdlc/skills/tech-design.md +134 -0
- package/dist/templates/sdlc/skills/test-plan.md +115 -0
- package/dist/templates/sdlc/skills/test-report.md +38 -0
- package/dist/templates/sdlc/skills/unit-test.md +43 -0
- package/dist/templates/sdlc/validators/ci.mjs +49 -0
- package/dist/templates/sdlc/validators/traceability.mjs +244 -0
- package/dist/templates/speckit/agents/analyst.md +42 -0
- package/dist/templates/speckit/agents/speckit-developer.md +36 -0
- package/dist/templates/speckit/agents/speckit-qa.md +38 -0
- package/dist/templates/speckit/agents/speckit-tech-lead.md +40 -0
- package/dist/templates/speckit/artifacts/analyze.md +48 -0
- package/dist/templates/speckit/artifacts/clarify.md +64 -0
- package/dist/templates/speckit/artifacts/plan.md +57 -0
- package/dist/templates/speckit/artifacts/specify.md +64 -0
- package/dist/templates/speckit/artifacts/tasks.md +33 -0
- package/dist/templates/speckit/skills/analyze.md +50 -0
- package/dist/templates/speckit/skills/clarify.md +31 -0
- package/dist/templates/speckit/skills/plan.md +56 -0
- package/dist/templates/speckit/skills/specify.md +52 -0
- package/dist/templates/speckit/skills/speckit-implement.md +33 -0
- package/dist/templates/speckit/skills/tasks.md +38 -0
- package/dist/tools/epic-memory-hook.mjs +78 -0
- package/dist/tools/epic-memory.mjs +130 -0
- package/dist/tools/md-to-html.mjs +478 -0
- package/dist/tools/vendor/marked.esm.mjs +2432 -0
- package/dist/vendor/annotron/LICENSE +21 -0
- package/dist/vendor/annotron/README.md +213 -0
- package/dist/vendor/annotron/bin/annotron +467 -0
- package/dist/vendor/annotron/commands/annotron.md +11 -0
- package/dist/vendor/annotron/hooks/annotron-hook.sh +38 -0
- package/dist/vendor/annotron/hooks/hooks.json +50 -0
- package/dist/vendor/annotron/package.json +72 -0
- package/dist/vendor/annotron/skills/annotron-review/SKILL.md +86 -0
- package/dist/vendor/annotron/src/chrome.html +2029 -0
- package/dist/vendor/annotron/src/mdRender.js +208 -0
- package/dist/vendor/annotron/src/sdk.js +1042 -0
- package/dist/vendor/annotron/src/server.js +780 -0
- package/package.json +60 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Implementation Summary — [Epic Title]
|
|
2
|
+
|
|
3
|
+
**Epic ID:** `$EPIC_ID`
|
|
4
|
+
**Author:** Developer
|
|
5
|
+
**Branch:** `feature/$EPIC_ID-<slug>`
|
|
6
|
+
**Status:** Draft
|
|
7
|
+
**Created:** `$DATE`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Branch & PR
|
|
12
|
+
|
|
13
|
+
| Item | Value |
|
|
14
|
+
|--------|-------|
|
|
15
|
+
| Branch | `feature/$EPIC_ID-<slug>` |
|
|
16
|
+
| PR | *(link once opened)* |
|
|
17
|
+
| Base | `main` |
|
|
18
|
+
|
|
19
|
+
## 2. Files Changed
|
|
20
|
+
|
|
21
|
+
| File | Type | Description |
|
|
22
|
+
|------|------|-------------|
|
|
23
|
+
| `src/...` | Add | … |
|
|
24
|
+
| `src/...` | Modify | … |
|
|
25
|
+
|
|
26
|
+
## 3. Implementation Notes
|
|
27
|
+
|
|
28
|
+
> *Key decisions made during implementation. Reference design doc sections where relevant.*
|
|
29
|
+
|
|
30
|
+
### Deviations from Tech Design
|
|
31
|
+
|
|
32
|
+
> *List any places where implementation diverged from `TECH-DESIGN.md` and why.*
|
|
33
|
+
|
|
34
|
+
None.
|
|
35
|
+
|
|
36
|
+
## 4. Unit Tests (TDD — written before the code)
|
|
37
|
+
|
|
38
|
+
> Tests were authored first (red), then the implementation made them pass (green).
|
|
39
|
+
|
|
40
|
+
| Test file | Cases (`$EPIC_ID-UT*`) | Type (happy / error / edge) |
|
|
41
|
+
|-----------|------------------------|------------------------------|
|
|
42
|
+
| `src/__tests__/...` | | |
|
|
43
|
+
|
|
44
|
+
## 5. Whole-Project Coverage (re-run after implementation)
|
|
45
|
+
|
|
46
|
+
> Required. Coverage is re-run across the **entire** project after the code is
|
|
47
|
+
> green — not just the changed files. If the project has no coverage tooling,
|
|
48
|
+
> state that here instead of leaving it blank.
|
|
49
|
+
|
|
50
|
+
| Item | Value |
|
|
51
|
+
|------|-------|
|
|
52
|
+
| Coverage command | `<project coverage command>` |
|
|
53
|
+
| Total coverage | `<N>%` (lines) / `<N>%` (branches) |
|
|
54
|
+
| Delta vs base | `<+/- N>%` |
|
|
55
|
+
| Meets target | `<yes / no>` (target ≥ 80%) |
|
|
56
|
+
|
|
57
|
+
## 6. Pre-PR Checklist
|
|
58
|
+
|
|
59
|
+
- [ ] Unit tests written **before** the implementation (TDD)
|
|
60
|
+
- [ ] Lint passes (`npm run lint`)
|
|
61
|
+
- [ ] Type-check passes (`npm run typecheck`)
|
|
62
|
+
- [ ] Full unit-test suite passes (`npm test`)
|
|
63
|
+
- [ ] Whole-project coverage re-run and recorded in §5
|
|
64
|
+
- [ ] No new console errors in dev mode
|
|
65
|
+
- [ ] PR body references epic key `$EPIC_ID`
|
|
66
|
+
- [ ] Reviewer assigned
|
|
67
|
+
|
|
68
|
+
## 7. Known Limitations / Follow-ups
|
|
69
|
+
|
|
70
|
+
- …
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Implementation Summary — [Epic Title]
|
|
2
|
+
|
|
3
|
+
**Epic ID:** `$EPIC_ID`
|
|
4
|
+
**Author:** Developer
|
|
5
|
+
**Branch:** `feature/$EPIC_ID-<slug>`
|
|
6
|
+
**Status:** Draft
|
|
7
|
+
**Created:** `$DATE`
|
|
8
|
+
**Stack:** React
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Branch & PR
|
|
13
|
+
|
|
14
|
+
| Item | Value |
|
|
15
|
+
|--------|-------|
|
|
16
|
+
| Branch | `feature/$EPIC_ID-<slug>` |
|
|
17
|
+
| PR | *(link once opened)* |
|
|
18
|
+
| Base | `main` |
|
|
19
|
+
|
|
20
|
+
## 2. Files Changed
|
|
21
|
+
|
|
22
|
+
| File | Type | Description |
|
|
23
|
+
|------|------|-------------|
|
|
24
|
+
| `src/components/...` | Add | … |
|
|
25
|
+
| `src/hooks/...` | Add | … |
|
|
26
|
+
| `src/...` | Modify | … |
|
|
27
|
+
|
|
28
|
+
## 3. Component & Hook Design
|
|
29
|
+
|
|
30
|
+
| Concern | Decision |
|
|
31
|
+
|---------|----------|
|
|
32
|
+
| New components | *(name, props contract, where rendered)* |
|
|
33
|
+
| Custom hooks | *(name, inputs/outputs, what side-effects they own)* |
|
|
34
|
+
| State | *(useState / useReducer / context / external store — and why)* |
|
|
35
|
+
| Data fetching | *(query lib cache key, suspense vs. effect, invalidation)* |
|
|
36
|
+
| Memoization | *(any `useMemo`/`useCallback`/`memo` and the cost they avoid)* |
|
|
37
|
+
|
|
38
|
+
### Re-render / performance notes
|
|
39
|
+
|
|
40
|
+
> *Call out anything done to avoid wasteful re-renders (stable identities,
|
|
41
|
+
> key choices, list virtualization). State "none needed" if N/A.*
|
|
42
|
+
|
|
43
|
+
### Deviations from Tech Design
|
|
44
|
+
|
|
45
|
+
> *List any places where implementation diverged from `TECH-DESIGN.md` and why.*
|
|
46
|
+
|
|
47
|
+
None.
|
|
48
|
+
|
|
49
|
+
## 4. Accessibility
|
|
50
|
+
|
|
51
|
+
- [ ] Interactive elements are real buttons/links (or have correct `role`)
|
|
52
|
+
- [ ] Keyboard navigable, visible focus states, no keyboard traps
|
|
53
|
+
- [ ] Labels/`aria-*` on inputs; errors announced
|
|
54
|
+
- [ ] Color contrast meets WCAG AA
|
|
55
|
+
- [ ] Respects `prefers-reduced-motion`
|
|
56
|
+
|
|
57
|
+
{{#if backend}}
|
|
58
|
+
## 4b. API Integration
|
|
59
|
+
|
|
60
|
+
| Endpoint | Method | Request → Response shape | Query/mutation key | Error states |
|
|
61
|
+
|----------|--------|--------------------------|--------------------|--------------|
|
|
62
|
+
| `/api/...` | GET | … → … | `['...']` | loading / empty / error |
|
|
63
|
+
|
|
64
|
+
- [ ] Loading, empty, and error states rendered for every async call
|
|
65
|
+
- [ ] Response types shared with (or matched to) the backend
|
|
66
|
+
{{/if}}
|
|
67
|
+
|
|
68
|
+
## 5. Tests (TDD — React Testing Library)
|
|
69
|
+
|
|
70
|
+
> Tests authored first (red), then the implementation made them pass (green).
|
|
71
|
+
> Query by **role/label/text** (what the user sees), not by test-id or
|
|
72
|
+
> internal component state. Use `userEvent` for interactions.
|
|
73
|
+
|
|
74
|
+
| Test file | Cases (`$EPIC_ID-UT*`) | Type (happy / error / edge) |
|
|
75
|
+
|-----------|------------------------|------------------------------|
|
|
76
|
+
| `src/components/__tests__/...` | | |
|
|
77
|
+
| `src/hooks/__tests__/...` | | |
|
|
78
|
+
|
|
79
|
+
- [ ] Hooks tested via a component or `renderHook`
|
|
80
|
+
- [ ] Async UI asserted with `findBy*` / `waitFor` (no arbitrary timeouts)
|
|
81
|
+
|
|
82
|
+
## 6. Whole-Project Coverage (re-run after implementation)
|
|
83
|
+
|
|
84
|
+
> Required. Coverage is re-run across the **entire** project after the code is
|
|
85
|
+
> green — not just the changed files. If the project has no coverage tooling,
|
|
86
|
+
> state that here instead of leaving it blank.
|
|
87
|
+
|
|
88
|
+
| Item | Value |
|
|
89
|
+
|------|-------|
|
|
90
|
+
| Coverage command | `<project coverage command>` |
|
|
91
|
+
| Total coverage | `<N>%` (lines) / `<N>%` (branches) |
|
|
92
|
+
| Delta vs base | `<+/- N>%` |
|
|
93
|
+
| Meets target | `<yes / no>` (target ≥ 80%) |
|
|
94
|
+
|
|
95
|
+
## 7. Pre-PR Checklist
|
|
96
|
+
|
|
97
|
+
- [ ] Component/hook tests written **before** the implementation (TDD)
|
|
98
|
+
- [ ] Lint passes (`npm run lint`)
|
|
99
|
+
- [ ] Type-check passes (`npm run typecheck`)
|
|
100
|
+
- [ ] Full test suite passes (`npm test`)
|
|
101
|
+
- [ ] Whole-project coverage re-run and recorded in §6
|
|
102
|
+
- [ ] No new console errors / React warnings (keys, act(), missing deps)
|
|
103
|
+
- [ ] Accessibility checklist (§4) reviewed
|
|
104
|
+
- [ ] PR body references epic key `$EPIC_ID`
|
|
105
|
+
- [ ] Reviewer assigned
|
|
106
|
+
|
|
107
|
+
## 8. Known Limitations / Follow-ups
|
|
108
|
+
|
|
109
|
+
- …
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Implementation Summary — [Epic Title]
|
|
2
|
+
|
|
3
|
+
**Epic ID:** `$EPIC_ID`
|
|
4
|
+
**Author:** Developer
|
|
5
|
+
**Branch:** `feature/$EPIC_ID-<slug>`
|
|
6
|
+
**Status:** Draft
|
|
7
|
+
**Created:** `$DATE`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Branch & PR
|
|
12
|
+
|
|
13
|
+
| Item | Value |
|
|
14
|
+
|--------|-------|
|
|
15
|
+
| Branch | `feature/$EPIC_ID-<slug>` |
|
|
16
|
+
| PR | *(link once opened)* |
|
|
17
|
+
| Base | `main` |
|
|
18
|
+
|
|
19
|
+
## 2. Files Changed
|
|
20
|
+
|
|
21
|
+
| File | Type | Description |
|
|
22
|
+
|------|------|-------------|
|
|
23
|
+
| `src/components/...` | Add | … |
|
|
24
|
+
| `src/...` | Modify | … |
|
|
25
|
+
|
|
26
|
+
## 3. UI / Component Notes
|
|
27
|
+
|
|
28
|
+
> *Key decisions: component breakdown, state management, routing, data fetching.*
|
|
29
|
+
|
|
30
|
+
| Concern | Decision |
|
|
31
|
+
|---------|----------|
|
|
32
|
+
| Component structure | *(container vs. presentational, where state lives)* |
|
|
33
|
+
| State / data fetching | *(local state, store, query cache)* |
|
|
34
|
+
| Routing | *(new routes / params added)* |
|
|
35
|
+
|
|
36
|
+
### Deviations from Tech Design
|
|
37
|
+
|
|
38
|
+
> *List any places where implementation diverged from `TECH-DESIGN.md` and why.*
|
|
39
|
+
|
|
40
|
+
None.
|
|
41
|
+
|
|
42
|
+
## 4. Accessibility & Responsiveness
|
|
43
|
+
|
|
44
|
+
- [ ] Keyboard navigable (tab order, focus states, no keyboard traps)
|
|
45
|
+
- [ ] Semantic HTML / ARIA roles where needed
|
|
46
|
+
- [ ] Color contrast meets WCAG AA
|
|
47
|
+
- [ ] Works at mobile / tablet / desktop breakpoints
|
|
48
|
+
- [ ] Respects `prefers-reduced-motion`
|
|
49
|
+
|
|
50
|
+
{{#if backend}}
|
|
51
|
+
## 4b. API Integration
|
|
52
|
+
|
|
53
|
+
> This project also has a backend. Record the contract the UI depends on.
|
|
54
|
+
|
|
55
|
+
| Endpoint | Method | Request → Response shape | Error states handled |
|
|
56
|
+
|----------|--------|--------------------------|----------------------|
|
|
57
|
+
| `/api/...` | GET | … → … | loading / empty / error |
|
|
58
|
+
|
|
59
|
+
- [ ] Loading, empty, and error states rendered for every async call
|
|
60
|
+
- [ ] Request/response types shared with (or matched to) the backend
|
|
61
|
+
{{/if}}
|
|
62
|
+
|
|
63
|
+
## 5. Unit / Component Tests (TDD — written before the code)
|
|
64
|
+
|
|
65
|
+
> Tests authored first (red), then the implementation made them pass (green).
|
|
66
|
+
> Prefer testing behavior through the rendered DOM over implementation details.
|
|
67
|
+
|
|
68
|
+
| Test file | Cases (`$EPIC_ID-UT*`) | Type (happy / error / edge) |
|
|
69
|
+
|-----------|------------------------|------------------------------|
|
|
70
|
+
| `src/components/__tests__/...` | | |
|
|
71
|
+
|
|
72
|
+
## 6. Whole-Project Coverage (re-run after implementation)
|
|
73
|
+
|
|
74
|
+
> Required. Coverage is re-run across the **entire** project after the code is
|
|
75
|
+
> green — not just the changed files. If the project has no coverage tooling,
|
|
76
|
+
> state that here instead of leaving it blank.
|
|
77
|
+
|
|
78
|
+
| Item | Value |
|
|
79
|
+
|------|-------|
|
|
80
|
+
| Coverage command | `<project coverage command>` |
|
|
81
|
+
| Total coverage | `<N>%` (lines) / `<N>%` (branches) |
|
|
82
|
+
| Delta vs base | `<+/- N>%` |
|
|
83
|
+
| Meets target | `<yes / no>` (target ≥ 80%) |
|
|
84
|
+
|
|
85
|
+
## 7. Pre-PR Checklist
|
|
86
|
+
|
|
87
|
+
- [ ] Component/unit tests written **before** the implementation (TDD)
|
|
88
|
+
- [ ] Lint passes (`npm run lint`)
|
|
89
|
+
- [ ] Type-check passes (`npm run typecheck`)
|
|
90
|
+
- [ ] Full test suite passes (`npm test`)
|
|
91
|
+
- [ ] Whole-project coverage re-run and recorded in §6
|
|
92
|
+
- [ ] No new console errors / warnings in dev mode
|
|
93
|
+
- [ ] Accessibility checklist (§4) reviewed
|
|
94
|
+
- [ ] PR body references epic key `$EPIC_ID`
|
|
95
|
+
- [ ] Reviewer assigned
|
|
96
|
+
|
|
97
|
+
## 8. Known Limitations / Follow-ups
|
|
98
|
+
|
|
99
|
+
- …
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# PRD — [Epic Title]
|
|
2
|
+
|
|
3
|
+
**Epic ID:** `$EPIC_ID`
|
|
4
|
+
**Author:** Product Owner
|
|
5
|
+
**Status:** Draft
|
|
6
|
+
**Created:** `$DATE`
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 0. Discovery decisions
|
|
11
|
+
|
|
12
|
+
> *Only when the discovery gate ran. One line per resolved question → the chosen answer
|
|
13
|
+
> (including any "Decide for me" defaults that stood). Downstream phases read confirmed
|
|
14
|
+
> scope / approach from here. Omit this section for a small, clear epic that skipped the gate.*
|
|
15
|
+
|
|
16
|
+
| # | Question | Decision |
|
|
17
|
+
|---|----------|----------|
|
|
18
|
+
| 1 | | |
|
|
19
|
+
|
|
20
|
+
## 1. Problem Statement
|
|
21
|
+
|
|
22
|
+
> *Describe the user or business problem this epic solves. Why does it exist?*
|
|
23
|
+
|
|
24
|
+
## 2. Goals
|
|
25
|
+
|
|
26
|
+
- [ ] Goal 1
|
|
27
|
+
- [ ] Goal 2
|
|
28
|
+
- [ ] Goal 3
|
|
29
|
+
|
|
30
|
+
## 3. Non-Goals
|
|
31
|
+
|
|
32
|
+
- Out of scope: …
|
|
33
|
+
- Will not address: …
|
|
34
|
+
|
|
35
|
+
## 4. Affected Areas
|
|
36
|
+
|
|
37
|
+
> *Existing product surfaces, modules, user segments, or flows this epic
|
|
38
|
+
> touches — including the ones it does NOT change but could regress. Helps
|
|
39
|
+
> reviewers and QA gauge blast radius before any code is written.*
|
|
40
|
+
|
|
41
|
+
| Area / Surface | Kind (screen / flow / service / data / integration) | Impact (new / modified / deprecated) | Notes |
|
|
42
|
+
|----------------|------------------------------------------------------|--------------------------------------|-------|
|
|
43
|
+
| | | | |
|
|
44
|
+
|
|
45
|
+
## 5. User Stories
|
|
46
|
+
|
|
47
|
+
| As a… | I want to… | So that… |
|
|
48
|
+
|--------|------------|----------|
|
|
49
|
+
| user | | |
|
|
50
|
+
|
|
51
|
+
## 6. Functional Requirements
|
|
52
|
+
|
|
53
|
+
### FR-01: [Feature name]
|
|
54
|
+
|
|
55
|
+
**Description:** …
|
|
56
|
+
**Acceptance Criteria:**
|
|
57
|
+
- [ ] AC-01: …
|
|
58
|
+
- [ ] AC-02: …
|
|
59
|
+
|
|
60
|
+
### FR-02: [Feature name]
|
|
61
|
+
|
|
62
|
+
**Description:** …
|
|
63
|
+
**Acceptance Criteria:**
|
|
64
|
+
- [ ] AC-01: …
|
|
65
|
+
|
|
66
|
+
## 7. Non-Functional Requirements
|
|
67
|
+
|
|
68
|
+
| Category | Requirement |
|
|
69
|
+
|----------------|------------------------------------|
|
|
70
|
+
| Performance | p95 response < 500 ms |
|
|
71
|
+
| Accessibility | WCAG 2.1 AA |
|
|
72
|
+
| Security | No PII logged |
|
|
73
|
+
| Compatibility | iOS 16+, Android 12+ |
|
|
74
|
+
|
|
75
|
+
## 8. Design & References
|
|
76
|
+
|
|
77
|
+
- Figma: *(link)*
|
|
78
|
+
- Jira: *(ticket)*
|
|
79
|
+
- Related docs: *(links)*
|
|
80
|
+
|
|
81
|
+
## 9. Metrics / Success Criteria
|
|
82
|
+
|
|
83
|
+
| Metric | Baseline | Target |
|
|
84
|
+
|------------------|----------|--------|
|
|
85
|
+
| Conversion rate | — | — |
|
|
86
|
+
| Error rate | — | < 1% |
|
|
87
|
+
|
|
88
|
+
## 10. Open Questions
|
|
89
|
+
|
|
90
|
+
- [ ] Q1: …
|
|
91
|
+
- [ ] Q2: …
|
|
92
|
+
|
|
93
|
+
## 11. Revision History
|
|
94
|
+
|
|
95
|
+
| Date | Author | Change |
|
|
96
|
+
|------|--------|--------|
|
|
97
|
+
| | | Initial draft |
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# UI Prototype — [Epic Title]
|
|
2
|
+
|
|
3
|
+
**Epic ID:** `$EPIC_ID`
|
|
4
|
+
**Designer:** Designer Agent
|
|
5
|
+
**Status:** Draft → Awaiting Review
|
|
6
|
+
**Created:** `$DATE`
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Design Method Chosen
|
|
11
|
+
|
|
12
|
+
- **Method:** [Claude Artifacts / Figma / shadcn/ui / Project Design System / Lo-fi Wireframe]
|
|
13
|
+
- **Why this method:** [Brief rationale — speed vs. fidelity, project needs, team preferences]
|
|
14
|
+
|
|
15
|
+
## Options Generated
|
|
16
|
+
|
|
17
|
+
### Option 1: [Title / Focus]
|
|
18
|
+
|
|
19
|
+
**Intent:**
|
|
20
|
+
> [What makes this option distinct? E.g., "Compact layout with sidebar navigation for power users"]
|
|
21
|
+
|
|
22
|
+
**Layout:**
|
|
23
|
+
- Structure: [Single-column / multi-column / sidebar / top nav?]
|
|
24
|
+
- Grid / spacing: [e.g., 12-column grid, 8px baseline]
|
|
25
|
+
- Breakpoints: [Mobile / tablet / desktop breakpoint targets]
|
|
26
|
+
|
|
27
|
+
**Key Decisions:**
|
|
28
|
+
- Primary action: [What gets emphasis and where?]
|
|
29
|
+
- Information hierarchy: [What's visible first? What's secondary / hidden?]
|
|
30
|
+
- Component patterns: [Which design system components? Any custom variations?]
|
|
31
|
+
- Color / contrast: [Palette, accessibility level (AA / AAA?), dark mode?]
|
|
32
|
+
|
|
33
|
+
**Tradeoffs:**
|
|
34
|
+
- ✓ Strengths: [What works well in this option]
|
|
35
|
+
- ✗ Weaknesses: [What's uncertain or risky]
|
|
36
|
+
|
|
37
|
+
**Responsive notes:** [Mobile behavior, touch targets ≥48px?, landscape mode?]
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### Option 2: [Title / Focus]
|
|
42
|
+
|
|
43
|
+
[Repeat structure above]
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### Option 3 (if generated): [Title / Focus]
|
|
48
|
+
|
|
49
|
+
[Repeat structure above]
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Chosen Option
|
|
54
|
+
|
|
55
|
+
**Selected:** Option [N] — [Title / Focus]
|
|
56
|
+
|
|
57
|
+
**Why the user picked this one:**
|
|
58
|
+
> [Feedback from the discovery gate — what resonated with the team?]
|
|
59
|
+
|
|
60
|
+
**Any adjustments requested:**
|
|
61
|
+
- [Refinements to explore in the Design phase]
|
|
62
|
+
- [Questions the Tech Lead should weigh in on]
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Design Details (Chosen Option)
|
|
67
|
+
|
|
68
|
+
### Layout & Navigation
|
|
69
|
+
|
|
70
|
+
[Structure, grid system, key screens/flows, navigation pattern]
|
|
71
|
+
|
|
72
|
+
### Components
|
|
73
|
+
|
|
74
|
+
| Pattern | Component Used | Customization |
|
|
75
|
+
|---------|----------------|---------------|
|
|
76
|
+
| [Button] | [shadcn Button / Figma component / custom] | [None / minor / significant] |
|
|
77
|
+
| [Form input] | [shadcn Input / custom] | [None / minor / significant] |
|
|
78
|
+
| [Modal] | [shadcn Dialog / custom] | [None / minor / significant] |
|
|
79
|
+
|
|
80
|
+
### Accessibility
|
|
81
|
+
|
|
82
|
+
- **Color contrast:** WCAG [AA / AAA]
|
|
83
|
+
- **Keyboard navigation:** [Fully navigable / mostly / needs work]
|
|
84
|
+
- **Screen reader:** [Semantic HTML / ARIA labels / needs work]
|
|
85
|
+
- **Focus indicators:** [Clear / subtle / needs improvement]
|
|
86
|
+
|
|
87
|
+
### Responsive Behavior
|
|
88
|
+
|
|
89
|
+
| Screen | Layout | Notes |
|
|
90
|
+
|--------|--------|-------|
|
|
91
|
+
| Mobile (< 640px) | [Single-column / stacked nav] | [Touch targets, no hover-only] |
|
|
92
|
+
| Tablet (640–1024px) | [2-column / side nav] | [Optimized spacing] |
|
|
93
|
+
| Desktop (> 1024px) | [Full layout] | [Optimal reading width, pointer interactions] |
|
|
94
|
+
|
|
95
|
+
### Dark Mode
|
|
96
|
+
|
|
97
|
+
- **Status:** [Supported / not applicable / TBD]
|
|
98
|
+
- **Approach:** [CSS variables / Tailwind dark: modifier / manual]
|
|
99
|
+
- **Key color changes:** [List any that differ from light mode]
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Next Steps for Design Phase
|
|
104
|
+
|
|
105
|
+
- [ ] Validate responsive behavior on actual devices (mobile / tablet / desktop)
|
|
106
|
+
- [ ] Confirm all text is final or use placeholder labels (Lorem ipsum OK?)
|
|
107
|
+
- [ ] Check that design system components are available in the project
|
|
108
|
+
- [ ] Any performance concerns (animations, bundle size)?
|
|
109
|
+
- [ ] Questions for the Tech Lead:
|
|
110
|
+
- [What's the existing pattern for X in this project?]
|
|
111
|
+
- [Can we use Y library or do we need Z instead?]
|
|
112
|
+
- [How should error states / loading / empty states look?]
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Artifacts
|
|
117
|
+
|
|
118
|
+
- **`PROTOTYPE-option1.html`** (or `.figma-link.md` / `.excalidraw.md`)
|
|
119
|
+
- [Brief description of what this file contains]
|
|
120
|
+
|
|
121
|
+
- **`PROTOTYPE-option2.html`**
|
|
122
|
+
- [Brief description]
|
|
123
|
+
|
|
124
|
+
- **`PROTOTYPE-option3.html`** (if applicable)
|
|
125
|
+
- [Brief description]
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Review Checklist
|
|
130
|
+
|
|
131
|
+
- [ ] ≥2 distinct UI options generated
|
|
132
|
+
- [ ] Each option documented (layout, components, accessibility)
|
|
133
|
+
- [ ] Chosen option rationale recorded
|
|
134
|
+
- [ ] All design decisions tied back to PRD (esp. Discovery decisions)
|
|
135
|
+
- [ ] Responsive behavior addressed
|
|
136
|
+
- [ ] Accessibility (color contrast, keyboard nav) verified
|
|
137
|
+
- [ ] Ready for Design phase to validate and refine against technical constraints
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
**Next phase:** /design $EPIC_ID — Design phase reads this prototype and writes TECH-DESIGN.md
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Test Cases — {{EPIC_ID}}
|
|
2
|
+
|
|
3
|
+
> Concrete, executable test cases derived from the approved Test Plan.
|
|
4
|
+
> Written by QA while Implementation is in flight (parallel track).
|
|
5
|
+
|
|
6
|
+
## Sources
|
|
7
|
+
|
|
8
|
+
- Test Plan: `TEST-PLAN.md`
|
|
9
|
+
- PRD acceptance criteria: `PRD.md`
|
|
10
|
+
|
|
11
|
+
## Test case catalogue
|
|
12
|
+
|
|
13
|
+
### Unit / IT cases (engineering owns the code)
|
|
14
|
+
|
|
15
|
+
| ID | Description | Type | Linked AC | Notes |
|
|
16
|
+
|----|-------------|------|-----------|-------|
|
|
17
|
+
| UT-1 | | unit | | |
|
|
18
|
+
| IT-1 | | integration | | |
|
|
19
|
+
|
|
20
|
+
### UI / E2E cases
|
|
21
|
+
|
|
22
|
+
| ID | Steps | Expected | Linked AC | Data / fixtures |
|
|
23
|
+
|----|-------|----------|-----------|-----------------|
|
|
24
|
+
| E2E-1 | | | | |
|
|
25
|
+
|
|
26
|
+
### Negative / edge cases
|
|
27
|
+
|
|
28
|
+
| ID | Setup | Action | Expected error | Linked AC |
|
|
29
|
+
|----|-------|--------|----------------|-----------|
|
|
30
|
+
| NEG-1 | | | | |
|
|
31
|
+
|
|
32
|
+
## Data + fixtures
|
|
33
|
+
|
|
34
|
+
- Test users / accounts:
|
|
35
|
+
- Mock services:
|
|
36
|
+
- Seed data:
|
|
37
|
+
|
|
38
|
+
## Out of scope
|
|
39
|
+
|
|
40
|
+
- Cases deferred to a later epic — list explicitly so coverage gaps are
|
|
41
|
+
visible at review time.
|
|
42
|
+
|
|
43
|
+
## Hand-off
|
|
44
|
+
|
|
45
|
+
- Execute Test phase consumes this artifact to drive the test run.
|
|
46
|
+
- Any case that can't be executed without code changes belongs in
|
|
47
|
+
Implementation, not here.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Test Plan — [Epic Title]
|
|
2
|
+
|
|
3
|
+
**Epic ID:** `$EPIC_ID`
|
|
4
|
+
**Author:** QA
|
|
5
|
+
**Status:** Draft
|
|
6
|
+
**Created:** `$DATE`
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Scope
|
|
11
|
+
|
|
12
|
+
> *What is being tested? What is explicitly out of scope?*
|
|
13
|
+
|
|
14
|
+
**In scope:**
|
|
15
|
+
- Feature A
|
|
16
|
+
- Integration with B
|
|
17
|
+
|
|
18
|
+
**Out of scope:**
|
|
19
|
+
- Legacy flow X
|
|
20
|
+
|
|
21
|
+
## 2. Test Strategy
|
|
22
|
+
|
|
23
|
+
| Type | Tool / Approach | Owner |
|
|
24
|
+
|------------------|--------------------------|-------|
|
|
25
|
+
| Unit tests | Jest / XCTest | Dev |
|
|
26
|
+
| Integration | API contract tests | QA |
|
|
27
|
+
| UI / E2E | Detox / Playwright | QA |
|
|
28
|
+
| Performance | k6 / Instruments | QA |
|
|
29
|
+
| Accessibility | axe-core / VoiceOver | QA |
|
|
30
|
+
|
|
31
|
+
## 3. Test Cases
|
|
32
|
+
|
|
33
|
+
### TC-01: [Happy path description]
|
|
34
|
+
|
|
35
|
+
**Preconditions:** …
|
|
36
|
+
**Steps:**
|
|
37
|
+
1. …
|
|
38
|
+
2. …
|
|
39
|
+
3. …
|
|
40
|
+
**Expected result:** …
|
|
41
|
+
**AC covered:** AC-01
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### TC-02: [Error / edge case description]
|
|
46
|
+
|
|
47
|
+
**Preconditions:** …
|
|
48
|
+
**Steps:**
|
|
49
|
+
1. …
|
|
50
|
+
**Expected result:** …
|
|
51
|
+
**AC covered:** AC-02
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### TC-03: [Boundary condition]
|
|
56
|
+
|
|
57
|
+
**Preconditions:** …
|
|
58
|
+
**Steps:**
|
|
59
|
+
1. …
|
|
60
|
+
**Expected result:** …
|
|
61
|
+
|
|
62
|
+
## 4. Unit Test Coverage Requirements
|
|
63
|
+
|
|
64
|
+
| Module | Target coverage | Notes |
|
|
65
|
+
|--------|----------------|-------|
|
|
66
|
+
| `src/` | ≥ 80% | |
|
|
67
|
+
|
|
68
|
+
## 5. Device / Browser Matrix
|
|
69
|
+
|
|
70
|
+
| Platform | Version | Priority |
|
|
71
|
+
|------------|---------|----------|
|
|
72
|
+
| iOS | 17 | P1 |
|
|
73
|
+
| iOS | 16 | P2 |
|
|
74
|
+
| Android | 14 | P1 |
|
|
75
|
+
| Android | 12 | P2 |
|
|
76
|
+
| Chrome | latest | P1 |
|
|
77
|
+
| Safari | latest | P1 |
|
|
78
|
+
|
|
79
|
+
## 6. Performance Benchmarks
|
|
80
|
+
|
|
81
|
+
| Scenario | Threshold |
|
|
82
|
+
|--------------|----------------|
|
|
83
|
+
| API p95 | < 500 ms |
|
|
84
|
+
| First render | < 1 s |
|
|
85
|
+
| Cold start | < 2 s |
|
|
86
|
+
|
|
87
|
+
## 7. Regression Checklist
|
|
88
|
+
|
|
89
|
+
> *Existing flows that must still work after this change.*
|
|
90
|
+
|
|
91
|
+
- [ ] Login / logout
|
|
92
|
+
- [ ] …
|
|
93
|
+
|
|
94
|
+
## 8. Sign-off Criteria
|
|
95
|
+
|
|
96
|
+
- [ ] All TC-xx pass
|
|
97
|
+
- [ ] Unit coverage ≥ target
|
|
98
|
+
- [ ] No P1 open bugs
|
|
99
|
+
- [ ] Performance benchmarks met
|
|
100
|
+
- [ ] QA sign-off
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Unit Test Summary — {{EPIC_KEY}}
|
|
2
|
+
|
|
3
|
+
> Produced by the `unit-test` phase. Records the unit tests added on the
|
|
4
|
+
> feature branch and how they map back to the test plan.
|
|
5
|
+
|
|
6
|
+
## Branch
|
|
7
|
+
`feature/{{EPIC_KEY}}-<slug>`
|
|
8
|
+
|
|
9
|
+
## Tests added
|
|
10
|
+
| Test ID | File | What it verifies | Type (happy / error / edge) |
|
|
11
|
+
|---------|------|------------------|------------------------------|
|
|
12
|
+
| {{EPIC_KEY}}-UT01 | | | |
|
|
13
|
+
|
|
14
|
+
## Coverage vs TEST-PLAN
|
|
15
|
+
- [ ] Every `{{EPIC_KEY}}-UT*` case in `TEST-PLAN.md` has a corresponding test
|
|
16
|
+
- [ ] Happy path covered
|
|
17
|
+
- [ ] Error / failure paths from acceptance criteria covered
|
|
18
|
+
- [ ] Tests are deterministic (no live network, fixed seeds, injected clock)
|
|
19
|
+
|
|
20
|
+
## Results
|
|
21
|
+
- Command run: `<project unit-test command>`
|
|
22
|
+
- Result: `<N passed / 0 failed>`
|
|
23
|
+
|
|
24
|
+
## Whole-project coverage (re-run after implementation)
|
|
25
|
+
> Required — coverage is re-run across the entire project once the code is green,
|
|
26
|
+
> not just the changed files. The same numbers are recorded in `IMPLEMENT-SUMMARY.md`.
|
|
27
|
+
- Coverage command: `<project coverage command>`
|
|
28
|
+
- Total coverage: `<N>%` lines / `<N>%` branches
|
|
29
|
+
- Meets target (≥ 80%): `<yes / no>`
|
|
30
|
+
|
|
31
|
+
## Intentionally skipped
|
|
32
|
+
- _(list any cases deferred to integration / execute-test, with the reason)_
|