- New skill e2e-testing: on-demand Playwright setup (config, test:e2e script), acceptance-criteria-driven specs (one per feature + app-shell smoke), blueprint-driven semantic locators, and the shared verification checklist - /add-feature Step 7 and /execute-milestones Step 2.6 now write/update E2E specs and run npm run test:e2e alongside test/lint/typecheck; milestone gates and completion criteria include E2E - /generate-app Step 5 sets up Playwright and creates the app-shell smoke spec for the web target (integration_test / UI automation noted for flutter/winui3) - steering tasklist template, milestone-planning Definition of Done, milestone-execution task slicing/gates, development-guidelines pointers, and implementation-validator checks updated - CLAUDE.md, README, and settings.json updated Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Phase File Template
Use this structure for each docs/milestones/phase[N]-milestones.md. A phase file contains one or more milestones; milestone numbers are global across all phase files.
# Phase [N]: [Name]
**Status**: Not started | In progress | Completed
**Goal**: [One sentence: what this phase delivers as a release]
**Execute**: `/execute-milestones phase[N]-milestones.md`
**Milestones**: [NN]–[NN]
---
## Milestone [NN]: [Name]
**Status**: Not started | In progress | Completed
**Goal**: [One sentence: what the user can do after this milestone that they could not before]
### Scope
#### In Scope
- [Theme or capability included in this milestone]
#### Out of Scope
- [Explicitly excluded item] → [where it lives instead: milestone NN / icebox]
### Dependencies
- [What must exist before this milestone can start: previous milestone, external system, decision]
### Features
> One `/add-feature` run per feature. Check off each feature when its run completes.
- [ ] [Feature 1 name]
- [ ] [Feature 2 name]
#### Feature: [Feature 1 name]
- **Description**: [What it does and the user value, 1–3 sentences]
- **Related requirements**: [PRD user story / requirement IDs or headings]
- **Affected screens**: [screen ids from ui-blueprint.json, or "n/a"]
- **Acceptance criteria**:
- [Criterion 1]
- [Criterion 2]
- [Criterion 3]
- **Command**: `/add-feature [Feature 1 name]`
#### Feature: [Feature 2 name]
- **Description**: ...
- **Related requirements**: ...
- **Affected screens**: ...
- **Acceptance criteria**:
- ...
- **Command**: `/add-feature [Feature 2 name]`
### Definition of Done
- [ ] All features above are checked off
- [ ] Every feature has a Playwright E2E spec covering its acceptance criteria
- [ ] `npm test`, `npm run lint`, `npm run typecheck`, `npm run test:e2e` pass
- [ ] Persistent documents in `docs/` are reconciled with all features
- [ ] [Milestone-specific criterion, e.g. "demo flow X→Y→Z works end-to-end"]
### Completion Notes
_Filled in when the milestone completes: completion date, deviations from plan, lessons learned._
---
## Milestone [NN+1]: [Name]
[Same structure as above]
Roadmap Template
Use this structure for docs/milestones/roadmap.md.
# Development Roadmap
**Current phase**: [N — name] (`phase[N]-milestones.md`)
**Current milestone**: [NN — name]
## Phases and Milestones
| Phase | File | Milestone | Name | Goal | Features | Status |
|-------|------|-----------|------|------|----------|--------|
| 1 | `phase1-milestones.md` | 01 | [name] | [one-line goal] | [count] | Not started / In progress / Completed |
| 1 | `phase1-milestones.md` | 02 | [name] | [one-line goal] | [count] | Not started |
| 2 | `phase2-milestones.md` | 03 | [name] | [one-line goal] | [count] | Not started |
## Ordering Rationale
[Why this sequence: MVP definition, dependency chains, priority decisions made with the user]
## Later / Icebox
Consciously deferred — revisit when re-planning:
- [Deferred item] — [why deferred]