wize-dev-kit 0.1.5 → 0.2.5
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/CHANGELOG.md +130 -1
- package/README.md +64 -0
- package/package.json +1 -1
- package/src/method-skills/1-analysis/wize-document-project/workflow.md +188 -20
- package/src/method-skills/1-analysis/wize-prfaq/workflow.md +150 -11
- package/src/method-skills/1-analysis/wize-product-brief/workflow.md +90 -19
- package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +127 -0
- package/src/method-skills/1-analysis/wize-research/workflow.md +101 -9
- package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +80 -16
- package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +132 -23
- package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +132 -28
- package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +91 -15
- package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +106 -12
- package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +101 -11
- package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +197 -29
- package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +127 -12
- package/src/method-skills/3-solutioning/wize-design-system/workflow.md +182 -22
- package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +142 -16
- package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +127 -21
- package/src/method-skills/4-implementation/wize-code-review/workflow.md +105 -10
- package/src/method-skills/4-implementation/wize-create-story/workflow.md +131 -10
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +140 -17
- package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +121 -18
- package/src/method-skills/4-implementation/wize-retrospective/workflow.md +112 -10
- package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +85 -10
- package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +96 -11
- package/src/orchestrator-skills/wize-help/skill.md +25 -1
- package/src/tea-skills/wize-tea-design/workflow.md +104 -13
- package/src/tea-skills/wize-tea-gate/workflow.md +115 -25
- package/src/tea-skills/wize-tea-nfr/workflow.md +104 -14
- package/src/tea-skills/wize-tea-review/workflow.md +120 -13
- package/src/tea-skills/wize-tea-risk/workflow.md +99 -10
- package/src/tea-skills/wize-tea-trace/workflow.md +83 -12
- package/tools/installer/baseline.js +128 -0
- package/tools/installer/commands/agent.js +197 -0
- package/tools/installer/commands/sync.js +45 -0
- package/tools/installer/commands/update.js +172 -0
- package/tools/installer/version-check.js +117 -0
- package/tools/installer/wize-cli.js +98 -11
|
@@ -2,21 +2,111 @@
|
|
|
2
2
|
code: wize-check-implementation-readiness
|
|
3
3
|
name: Check Implementation Readiness
|
|
4
4
|
phase: 3-solutioning
|
|
5
|
-
owner: wize-agent-architect # Tony Stark (with Hawkeye)
|
|
6
|
-
status:
|
|
5
|
+
owner: wize-agent-architect # Tony Stark (with Hawkeye + Hill)
|
|
6
|
+
status: ready
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Check Implementation Readiness
|
|
10
10
|
|
|
11
|
-
**Goal.** Before any story enters dev, confirm everything is in place.
|
|
11
|
+
**Goal.** Before any story enters dev, confirm everything is in place. This is the **gate at the end of Phase 3**. Cheap; saves multiples of itself downstream.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
13
|
+
Tony chairs. Hill and Hawkeye sign off. Pepper and Mantis answer if pulled in.
|
|
14
|
+
|
|
15
|
+
## Inputs
|
|
16
|
+
|
|
17
|
+
- `.wize/planning/prd.md` (validated)
|
|
18
|
+
- `.wize/planning/ux/ux-design/` + `index.md`
|
|
19
|
+
- `.wize/planning/tech-vision.md`
|
|
20
|
+
- `.wize/planning/nfr-principles.md`
|
|
21
|
+
- `.wize/solutioning/architecture.md`
|
|
22
|
+
- `.wize/solutioning/adrs/`
|
|
23
|
+
- `.wize/solutioning/design-system/`
|
|
24
|
+
- `.wize/solutioning/epics/` + `stories/`
|
|
25
|
+
- `.wize/implementation/tea/risk-profile.md` (Hawkeye)
|
|
26
|
+
- `.wize/config/tea.toml` (policy choice)
|
|
27
|
+
|
|
28
|
+
## Outputs
|
|
29
|
+
|
|
30
|
+
- `.wize/solutioning/readiness-{YYYY-MM-DD}.md` — checklist result + signoffs.
|
|
31
|
+
|
|
32
|
+
## Checklist (Tony chairs)
|
|
33
|
+
|
|
34
|
+
### Planning artifacts
|
|
35
|
+
- [ ] PRD `status: validated`.
|
|
36
|
+
- [ ] All open questions in PRD resolved (no `blocker` open).
|
|
37
|
+
- [ ] Trigger map covers every PRD goal.
|
|
38
|
+
|
|
39
|
+
### UX
|
|
40
|
+
- [ ] Every In-scope item has at least one screen spec.
|
|
41
|
+
- [ ] UX design index maps every screen → scenario → AC.
|
|
42
|
+
- [ ] Design system tokens + components needed by the UX exist.
|
|
43
|
+
|
|
44
|
+
### Strategy
|
|
45
|
+
- [ ] Tech vision `status: aligned`.
|
|
46
|
+
- [ ] NFR principles `status: aligned`; verifiers named for every non-negotiable.
|
|
47
|
+
|
|
48
|
+
### Architecture
|
|
49
|
+
- [ ] Architecture doc `status: ready-for-stories`.
|
|
50
|
+
- [ ] ADRs cover every meaningful trade-off.
|
|
51
|
+
- [ ] NFR check section answers *how* for each non-negotiable.
|
|
52
|
+
|
|
53
|
+
### Stories
|
|
54
|
+
- [ ] Every epic has 3–10 stories.
|
|
55
|
+
- [ ] Every story has AC IDs from the PRD; the union per epic equals the epic's AC set.
|
|
56
|
+
- [ ] No story is XL.
|
|
57
|
+
- [ ] Each story names touch-points + `testid` + reuse of design-system components.
|
|
58
|
+
|
|
59
|
+
### TEA
|
|
60
|
+
- [ ] `tea-risk.md` exists.
|
|
61
|
+
- [ ] `.wize/config/tea.toml` policy is committed (advisory / enforcing).
|
|
62
|
+
- [ ] First-story `tea-design.md` is drafted (proof Hawkeye's contract works).
|
|
63
|
+
|
|
64
|
+
### Cross-cutting
|
|
65
|
+
- [ ] CI runs tests + validators on every PR.
|
|
66
|
+
- [ ] Lint/format on commit.
|
|
67
|
+
- [ ] Branch protection on `main`.
|
|
68
|
+
- [ ] Secrets vault wired; no secret in repo.
|
|
20
69
|
|
|
21
70
|
## Outcome
|
|
22
|
-
|
|
71
|
+
|
|
72
|
+
- **Ready** → write the readiness file, link from `sprint-planning`.
|
|
73
|
+
- **Concerns** → list specifically what's missing, owner per item, deadline. Re-check.
|
|
74
|
+
|
|
75
|
+
## Output template
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
---
|
|
79
|
+
status: ready | concerns
|
|
80
|
+
date: YYYY-MM-DD
|
|
81
|
+
chair: Tony Stark
|
|
82
|
+
signoffs:
|
|
83
|
+
- Maria Hill (PM)
|
|
84
|
+
- Hawkeye (TEA)
|
|
85
|
+
- Mantis (UX) — async
|
|
86
|
+
- Fury (Strategy) — async
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
# Implementation Readiness — {{project_name}}
|
|
90
|
+
|
|
91
|
+
## Result: Ready
|
|
92
|
+
|
|
93
|
+
## Notes
|
|
94
|
+
- Architecture covers 5 epics and 28 stories.
|
|
95
|
+
- TEA policy: advisory; NFR gate per epic.
|
|
96
|
+
- 2 ADRs accepted in this gate review (ADR-008, ADR-009).
|
|
97
|
+
|
|
98
|
+
## Open items (carry forward, not blockers)
|
|
99
|
+
- Marketing site for launch — separate track, owned by …
|
|
100
|
+
- Stripe-Atlas back-office decision — by date X.
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Anti-patterns
|
|
104
|
+
|
|
105
|
+
- "Looks ready" without running the checklist.
|
|
106
|
+
- Signing off before Hawkeye has risk-profiled.
|
|
107
|
+
- Closing concerns without re-checking.
|
|
108
|
+
- Leaving CI configuration "for later" — never gets done.
|
|
109
|
+
|
|
110
|
+
## Hand-off
|
|
111
|
+
|
|
112
|
+
> Implementation readiness signed off. Hill, kick `wize-sprint-planning`. Hawkeye, your gate cadence is set: design per story, trace + review + gate per story, NFR per epic.
|
|
@@ -3,62 +3,230 @@ code: wize-create-architecture
|
|
|
3
3
|
name: Create Architecture
|
|
4
4
|
phase: 3-solutioning
|
|
5
5
|
owner: wize-agent-architect # Tony Stark
|
|
6
|
-
status:
|
|
6
|
+
status: ready
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Create Architecture
|
|
10
10
|
|
|
11
|
-
**Goal.** Design the system inside Fury's frame. Components, sequences, data flows, ADRs. Concrete enough that Shuri can implement and Hawkeye can
|
|
11
|
+
**Goal.** Design the system inside Fury's frame. Components, sequences, data flows, ADRs. Concrete enough that Shuri can implement and Hawkeye can write `tea-design.md` for every story.
|
|
12
|
+
|
|
13
|
+
Tony drives. Output lands in `.wize/solutioning/architecture.md` + `.wize/solutioning/adrs/`.
|
|
12
14
|
|
|
13
15
|
## Inputs
|
|
14
|
-
|
|
15
|
-
- `.wize/planning/
|
|
16
|
-
- `.wize/planning/
|
|
17
|
-
- `.wize/planning/
|
|
18
|
-
- `.wize/
|
|
19
|
-
- `.wize/
|
|
16
|
+
|
|
17
|
+
- `.wize/planning/prd.md` (validated)
|
|
18
|
+
- `.wize/planning/ux/ux-design/` (every architectural decision should make at least one screen possible)
|
|
19
|
+
- `.wize/planning/tech-vision.md` (the frame)
|
|
20
|
+
- `.wize/planning/nfr-principles.md` (the budget)
|
|
21
|
+
- `.wize/solutioning/design-system/` (Mantis' tokens, when available)
|
|
22
|
+
- Stack catalogs (overlays): `web-overlay/stack-catalog.md`, `app-overlay/stack-catalog.md`
|
|
23
|
+
- `.wize/knowledge/document-project/` (brownfield only)
|
|
20
24
|
|
|
21
25
|
## Outputs
|
|
26
|
+
|
|
22
27
|
- `.wize/solutioning/architecture.md`
|
|
23
|
-
- `.wize/solutioning/adrs/
|
|
28
|
+
- `.wize/solutioning/adrs/ADR-NNN-{slug}.md` (one ADR per meaningful trade-off)
|
|
24
29
|
|
|
25
30
|
## Steps
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
|
|
32
|
+
### 1. Stack interview (Tony asks; Wizer relays)
|
|
33
|
+
|
|
34
|
+
Resolve every "TBD" the tech-vision left for Tony. Walk the stack catalog (active overlay) and decide, in order:
|
|
35
|
+
|
|
36
|
+
- Language(s) + runtime(s).
|
|
37
|
+
- Front-end framework + state lib + form lib.
|
|
38
|
+
- Back-end framework or BaaS.
|
|
39
|
+
- DB + ORM/query builder.
|
|
40
|
+
- Auth.
|
|
41
|
+
- Hosting + CI/CD.
|
|
42
|
+
- Observability stack.
|
|
43
|
+
- Test stack (links to `playwright-vitest.md` or `detox-maestro.md`).
|
|
44
|
+
|
|
45
|
+
Decisions Tony makes silently are ADR candidates; decisions Fury already fixed don't get their own ADR.
|
|
46
|
+
|
|
47
|
+
### 2. Components
|
|
48
|
+
|
|
49
|
+
List components with one-line responsibility each. Boundaries before internals. Examples (web SaaS):
|
|
50
|
+
|
|
51
|
+
| Component | Responsibility | Boundary |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| `web` | Server-rendered fullstack app (Next.js) | HTTPS to clients; SQL to db; HTTPS to auth-provider |
|
|
54
|
+
| `db` | Source of truth for users, teams, billing (Postgres) | SQL only via PgBouncer |
|
|
55
|
+
| `auth` | Identity provider (Supabase Auth) | OIDC to `web` |
|
|
56
|
+
| `mailer` | Outbound transactional email | HTTPS to Resend |
|
|
57
|
+
| `worker` | Outbox processor + scheduled jobs (pg_cron) | SQL to db; HTTPS to external APIs |
|
|
58
|
+
|
|
59
|
+
### 3. Sequences (the critical ones)
|
|
60
|
+
|
|
61
|
+
For each "moment of truth" in `.wize/planning/ux/ux-scenarios.md`, draw a sequence. Mermaid is fine; ASCII is fine.
|
|
62
|
+
|
|
63
|
+
```mermaid
|
|
64
|
+
sequenceDiagram
|
|
65
|
+
participant U as User
|
|
66
|
+
participant W as web
|
|
67
|
+
participant A as auth
|
|
68
|
+
participant D as db
|
|
69
|
+
U->>W: POST /signup
|
|
70
|
+
W->>A: signUp(email, password)
|
|
71
|
+
A-->>W: { user_id, session }
|
|
72
|
+
W->>D: INSERT user_id INTO accounts
|
|
73
|
+
D-->>W: ok
|
|
74
|
+
W-->>U: 302 /onboarding (sets cookie)
|
|
75
|
+
Note over W,U: total p95 ≤ 1s (NFR 1.A)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Annotate each sequence with the NFR target it must hit.
|
|
79
|
+
|
|
80
|
+
### 4. Data model
|
|
81
|
+
|
|
82
|
+
For every entity:
|
|
83
|
+
|
|
84
|
+
- Name, columns, types, indexes.
|
|
85
|
+
- Foreign keys + cascade behavior.
|
|
86
|
+
- RLS policies if the stack supports them (Supabase, etc.).
|
|
87
|
+
- Soft-delete vs hard-delete.
|
|
88
|
+
|
|
89
|
+
Include a mini ERD (Mermaid `erDiagram`).
|
|
90
|
+
|
|
91
|
+
### 5. Cross-cutting concerns
|
|
92
|
+
|
|
93
|
+
For each, name the pattern and the library/component:
|
|
94
|
+
|
|
95
|
+
- **Auth & session** — token shape, refresh, multi-device.
|
|
96
|
+
- **Errors** — error class hierarchy, mapping to HTTP, user-facing copy.
|
|
97
|
+
- **Logging** — structured (JSON), correlation IDs, sampling.
|
|
98
|
+
- **Observability** — metrics emitter, traces, dashboards.
|
|
99
|
+
- **Config** — env vars, secrets, feature flags.
|
|
100
|
+
- **Background jobs** — outbox / queue / scheduler.
|
|
101
|
+
- **Idempotency** — keys on write endpoints.
|
|
102
|
+
- **i18n** — string source, translation pipeline.
|
|
103
|
+
- **A11y** — token + library choices that uphold WCAG.
|
|
104
|
+
|
|
105
|
+
### 6. NFR check (every category)
|
|
106
|
+
|
|
107
|
+
Walk Fury's NFRs. For each non-negotiable, write *how* the architecture achieves it.
|
|
108
|
+
|
|
109
|
+
- Perf: LCP ≤ 2.5s → edge runtime + RSC + image policy.
|
|
110
|
+
- Security: PII in EU → DB in `eu-central-1`; backups in same region.
|
|
111
|
+
- Reliability: 99.9% → single-region with multi-AZ; failover playbook in `adrs/ADR-007-failover.md`.
|
|
112
|
+
- A11y: WCAG AA → Radix primitives + axe in CI.
|
|
113
|
+
|
|
114
|
+
### 7. ADRs
|
|
115
|
+
|
|
116
|
+
One ADR per meaningful trade-off. Format below. Number sequentially. Don't gold-plate; an ADR is a few paragraphs.
|
|
117
|
+
|
|
118
|
+
### 8. Hand off
|
|
119
|
+
|
|
120
|
+
Mark `architecture.md` `status: ready-for-stories`. Tony continues with `wize-create-epics-and-stories`.
|
|
34
121
|
|
|
35
122
|
## Architecture doc template
|
|
36
123
|
|
|
37
124
|
```markdown
|
|
125
|
+
---
|
|
126
|
+
status: ready-for-stories
|
|
127
|
+
owner: Tony Stark
|
|
128
|
+
created: YYYY-MM-DD
|
|
129
|
+
---
|
|
130
|
+
|
|
38
131
|
# Architecture — {{project_name}}
|
|
39
132
|
|
|
133
|
+
## Summary
|
|
134
|
+
{{One paragraph: stack family, runtime, primary data store, deploy target. The frame.}}
|
|
135
|
+
|
|
40
136
|
## Stack
|
|
41
|
-
- Language:
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
137
|
+
- Language: TypeScript
|
|
138
|
+
- Front-end: Next.js (App Router, RSC, edge runtime)
|
|
139
|
+
- Back-end: Server Actions + Route Handlers
|
|
140
|
+
- DB: Supabase Postgres + Drizzle ORM
|
|
141
|
+
- Auth: Supabase Auth
|
|
142
|
+
- Hosting: Vercel
|
|
143
|
+
- Observability: Vercel + PostHog
|
|
144
|
+
- Test: Vitest + Playwright (see playbook)
|
|
45
145
|
|
|
46
146
|
## Components
|
|
47
147
|
| Component | Responsibility | Boundary |
|
|
48
148
|
|---|---|---|
|
|
49
149
|
|
|
50
150
|
## Data model
|
|
51
|
-
|
|
151
|
+
- `users` (id PK, email UNIQUE, created_at)
|
|
152
|
+
- `teams` (id PK, name, owner_id FK users)
|
|
153
|
+
- `memberships` (user_id, team_id, role)
|
|
154
|
+
- RLS: `auth.uid() = user_id` on all user-scoped tables.
|
|
155
|
+
|
|
156
|
+
```mermaid
|
|
157
|
+
erDiagram
|
|
158
|
+
USERS ||--o{ MEMBERSHIPS : has
|
|
159
|
+
TEAMS ||--o{ MEMBERSHIPS : has
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Sequences
|
|
163
|
+
|
|
164
|
+
### S1: Sign-up
|
|
165
|
+
{{sequence diagram + NFR annotation}}
|
|
166
|
+
|
|
167
|
+
### S2: Invite teammate
|
|
168
|
+
{{sequence diagram}}
|
|
52
169
|
|
|
53
170
|
## Cross-cutting
|
|
54
|
-
- Auth: …
|
|
55
|
-
- Observability: …
|
|
171
|
+
- Auth & session: …
|
|
56
172
|
- Errors: …
|
|
173
|
+
- Logging: …
|
|
174
|
+
- Observability: …
|
|
175
|
+
- Config: …
|
|
176
|
+
- Background jobs: …
|
|
177
|
+
- Idempotency: …
|
|
178
|
+
- i18n: …
|
|
179
|
+
- A11y: …
|
|
57
180
|
|
|
58
181
|
## NFR check
|
|
59
|
-
-
|
|
60
|
-
- Security:
|
|
61
|
-
- Reliability:
|
|
62
|
-
-
|
|
63
|
-
-
|
|
182
|
+
- Perf (1.A): how
|
|
183
|
+
- Security (2.A): how
|
|
184
|
+
- Reliability (3.A): how
|
|
185
|
+
- Maintainability (4.A): how
|
|
186
|
+
- A11y (5.A): how
|
|
187
|
+
- Cost (6.A): how
|
|
188
|
+
|
|
189
|
+
## ADRs
|
|
190
|
+
See `.wize/solutioning/adrs/`.
|
|
64
191
|
```
|
|
192
|
+
|
|
193
|
+
## ADR template
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
---
|
|
197
|
+
status: accepted | superseded | deprecated
|
|
198
|
+
date: YYYY-MM-DD
|
|
199
|
+
deciders: Tony, Fury
|
|
200
|
+
supersedes: ADR-XXX
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
# ADR-007: {{slug}}
|
|
204
|
+
|
|
205
|
+
## Context
|
|
206
|
+
{{2–4 sentences: what forced the decision, what constraint is binding.}}
|
|
207
|
+
|
|
208
|
+
## Options
|
|
209
|
+
1. {{Option A}} — pros / cons / cost
|
|
210
|
+
2. {{Option B}} — pros / cons / cost
|
|
211
|
+
3. {{Option C}} — pros / cons / cost
|
|
212
|
+
|
|
213
|
+
## Decision
|
|
214
|
+
{{The pick. One sentence.}}
|
|
215
|
+
|
|
216
|
+
## Consequences
|
|
217
|
+
- **Now:** what we gain, what we accept.
|
|
218
|
+
- **Later:** what we'll likely revisit and when.
|
|
219
|
+
- **Related ADRs:** ADR-005, ADR-009.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Anti-patterns Tony rejects
|
|
223
|
+
|
|
224
|
+
- **Architecture without sequences.** A diagram with boxes is half a doc.
|
|
225
|
+
- **NFR check left as "TBD".** Each non-negotiable answers *how*.
|
|
226
|
+
- **ADRs for trivial choices** (which CSS file name) — saves nothing, costs trust.
|
|
227
|
+
- **No ADR for genuinely contested choices** (auth provider, DB selection) — future-readers will re-litigate.
|
|
228
|
+
- **Diagrams in proprietary format only.** Mermaid/ASCII version always present in markdown.
|
|
229
|
+
|
|
230
|
+
## Hand-off
|
|
231
|
+
|
|
232
|
+
> Architecture and 6 ADRs at `.wize/solutioning/`. Sequences hit the NFR targets. Hawkeye, you can write `tea-risk.md` against this. Tony continues with `wize-create-epics-and-stories`.
|
|
@@ -3,22 +3,91 @@ code: wize-create-epics-and-stories
|
|
|
3
3
|
name: Create Epics and Stories
|
|
4
4
|
phase: 3-solutioning
|
|
5
5
|
owner: wize-agent-architect # Tony Stark
|
|
6
|
-
status:
|
|
6
|
+
status: ready
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Create Epics and Stories
|
|
10
10
|
|
|
11
|
-
**Goal.** Slice the PRD + architecture into epics (each ships value) and stories (each is one focused PR-sized unit).
|
|
11
|
+
**Goal.** Slice the PRD + architecture into **epics** (each ships value end-to-end) and **stories** (each is one focused PR-sized unit Shuri can implement and Hawkeye can test).
|
|
12
|
+
|
|
13
|
+
Tony drives. Output lands in `.wize/solutioning/epics/` and `.wize/solutioning/stories/`.
|
|
12
14
|
|
|
13
15
|
## Inputs
|
|
16
|
+
|
|
14
17
|
- `.wize/planning/prd.md`
|
|
15
18
|
- `.wize/solutioning/architecture.md`
|
|
19
|
+
- `.wize/planning/ux/ux-design/` (every story references one or more screens)
|
|
16
20
|
|
|
17
21
|
## Outputs
|
|
22
|
+
|
|
18
23
|
- `.wize/solutioning/epics/{NN}-{slug}.md`
|
|
19
|
-
- `.wize/solutioning/stories/{NN}
|
|
24
|
+
- `.wize/solutioning/stories/{epic-NN}/{story-id}.md`
|
|
25
|
+
|
|
26
|
+
## Epic shape
|
|
27
|
+
|
|
28
|
+
An epic:
|
|
29
|
+
- Ships **value** on its own (a user can do the thing after this epic, even if the next one improves it).
|
|
30
|
+
- Lasts 1–3 sprints when in flight.
|
|
31
|
+
- Has 3–10 stories.
|
|
32
|
+
- Has a single trigger-map row as its anchor.
|
|
33
|
+
|
|
34
|
+
Epic file:
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
---
|
|
38
|
+
epic_id: 01-onboarding
|
|
39
|
+
status: ready
|
|
40
|
+
owner: Tony Stark + Maria Hill
|
|
41
|
+
linked_prd: E01
|
|
42
|
+
trigger_map_row: 1
|
|
43
|
+
priority: 1
|
|
44
|
+
estimate: M
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
# Epic 01: Sign-up + first invite
|
|
48
|
+
|
|
49
|
+
## Outcome
|
|
50
|
+
A first-time team admin signs up, lands in onboarding, and invites at least one teammate within 5 minutes (trigger-map row 1 + 2).
|
|
51
|
+
|
|
52
|
+
## Stories
|
|
53
|
+
- E01-S01: Sign-up empty + happy path (AC-01-1, AC-01-2)
|
|
54
|
+
- E01-S02: Sign-up error states (AC-01-3, AC-01-4)
|
|
55
|
+
- E01-S03: Onboarding step 1 — invite first teammate (AC-02-1, AC-02-2)
|
|
56
|
+
- E01-S04: Email delivery + retry (AC-02-3)
|
|
57
|
+
- E01-S05: Team list empty + with first member (AC-03-1, AC-03-2)
|
|
58
|
+
|
|
59
|
+
## Dependencies
|
|
60
|
+
- Design tokens by Mantis (S0 — already done)
|
|
61
|
+
- Resend account configured (Tony, before S04)
|
|
62
|
+
|
|
63
|
+
## Success
|
|
64
|
+
All ACs of all stories PASS gate. Telemetry shows `teammate_invited` ≥ 80% of `signup_completed` users within 24h in the beta cohort.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Story shape — INVEST
|
|
68
|
+
|
|
69
|
+
Each story passes:
|
|
70
|
+
- **I**ndependent — can be implemented without waiting for another in-flight story.
|
|
71
|
+
- **N**egotiable — wording can move; intent stays.
|
|
72
|
+
- **V**aluable — a real outcome to a real user (or a clear test path that proves a slice).
|
|
73
|
+
- **E**stimable — Tony can size: S/M/L/XL.
|
|
74
|
+
- **S**mall — fits in one PR (≤ 1 day for an experienced dev, including tests).
|
|
75
|
+
- **T**estable — every AC is observable.
|
|
76
|
+
|
|
77
|
+
If a story is XL, slice it before merging it to `stories/`.
|
|
20
78
|
|
|
21
|
-
##
|
|
79
|
+
## Slicing patterns (Tony's defaults)
|
|
80
|
+
|
|
81
|
+
| Pattern | When |
|
|
82
|
+
|---|---|
|
|
83
|
+
| Walking skeleton | When you need the full user path to exist (even with stubs) before going deep on any single screen. |
|
|
84
|
+
| By user role | Admin vs member often slice naturally. |
|
|
85
|
+
| By acceptance criterion | One AC = one PR when ACs are independent. |
|
|
86
|
+
| By happy / error path | Ship happy path first; error states next story. |
|
|
87
|
+
| By back-end / front-end | Avoid unless the back-end can ship usable without UI; otherwise it bundles. |
|
|
88
|
+
| By feature flag | When a story partially ships, use a flag and write the flag retirement story now. |
|
|
89
|
+
|
|
90
|
+
## Story file template
|
|
22
91
|
|
|
23
92
|
```markdown
|
|
24
93
|
---
|
|
@@ -27,22 +96,68 @@ epic: 01-onboarding
|
|
|
27
96
|
status: ready-for-dev
|
|
28
97
|
priority: 2
|
|
29
98
|
estimate: M
|
|
30
|
-
|
|
99
|
+
linked_screens: [onboarding-step-1, invite-modal]
|
|
100
|
+
linked_acs: [AC-02-1, AC-02-2]
|
|
31
101
|
---
|
|
32
102
|
|
|
33
|
-
# Story:
|
|
103
|
+
# Story: Onboarding step 1 — invite first teammate
|
|
34
104
|
|
|
35
105
|
## Context
|
|
36
|
-
|
|
106
|
+
Comes right after sign-up. The user lands here with no team yet. The screen is the moment-of-truth from S1: if the user invites a teammate here, the product earned its value moment.
|
|
37
107
|
|
|
38
108
|
## Acceptance criteria
|
|
39
|
-
- AC-1
|
|
40
|
-
- AC-2
|
|
109
|
+
- **AC-02-1:** Given a new admin on `/onboarding`, When they enter a valid email and click "Send invite", Then a `teammate_invited` event fires and the screen advances to "Invite sent" within 1s.
|
|
110
|
+
- **AC-02-2:** Given an invalid email, When the user blurs the field, Then error text appears (200ms) identifying which rule failed.
|
|
41
111
|
|
|
42
112
|
## Out of scope
|
|
43
|
-
-
|
|
113
|
+
- Bulk invite (multiple emails) — separate story E01-S07.
|
|
114
|
+
- Custom invite message — defer to E02-S03.
|
|
44
115
|
|
|
45
116
|
## Notes for Shuri (Dev)
|
|
46
|
-
|
|
47
|
-
-
|
|
117
|
+
|
|
118
|
+
- Touch points: `app/(onboarding)/invite/page.tsx`, new server action `inviteTeammate`, `lib/email/send-invite.ts`.
|
|
119
|
+
- Reuse `Button`, `Input`, `Banner` from design system.
|
|
120
|
+
- Add `data-testid="invite-form"`, `"invite-email"`, `"invite-cta"` (Hawkeye depends on these).
|
|
121
|
+
|
|
122
|
+
## Notes for Hawkeye (TEA)
|
|
123
|
+
|
|
124
|
+
- Tests required: 2 unit (validation), 1 integration (server action calls mailer with right args), 1 E2E (happy path on Playwright).
|
|
125
|
+
- Mocks: outbound email via MSW; auth context via fixture.
|
|
126
|
+
- NFR sample: response p95 ≤ 800ms locally (NFR 1.A allows up to 1s end-to-end).
|
|
48
127
|
```
|
|
128
|
+
|
|
129
|
+
## Steps
|
|
130
|
+
|
|
131
|
+
### 1. From PRD backbone → epics
|
|
132
|
+
|
|
133
|
+
Each backbone story in the PRD becomes one epic. Name epics by outcome, not by feature: "Sign-up + first invite," not "Auth screens."
|
|
134
|
+
|
|
135
|
+
### 2. From scenarios → stories
|
|
136
|
+
|
|
137
|
+
For each epic, walk the linked scenarios in `ux-scenarios.md`. Slice into stories by the patterns above. Aim for 3–7 stories per epic.
|
|
138
|
+
|
|
139
|
+
### 3. ACs map exactly
|
|
140
|
+
|
|
141
|
+
Every story declares the AC IDs it advances (from PRD). The union of stories per epic equals the AC set of that epic — no gaps, no overlap.
|
|
142
|
+
|
|
143
|
+
### 4. Estimates
|
|
144
|
+
|
|
145
|
+
Story estimates S/M/L/XL. XL gets sliced before merging. If everything is L, slicing pattern is too coarse; revisit.
|
|
146
|
+
|
|
147
|
+
### 5. Hand off
|
|
148
|
+
|
|
149
|
+
- Mark all epics + stories `status: ready-for-dev`.
|
|
150
|
+
- Trigger `wize-check-implementation-readiness` (Tony, with Hawkeye on risk profile).
|
|
151
|
+
- After ready, Hill runs sprint planning.
|
|
152
|
+
|
|
153
|
+
## Anti-patterns Tony rejects
|
|
154
|
+
|
|
155
|
+
- **Stories without AC links.** No traceability → no gate later.
|
|
156
|
+
- **Stories that "ship a back-end."** Bundle with the front-end consumer unless a different team uses it independently.
|
|
157
|
+
- **XL stories.** Slice further or split into two PRs.
|
|
158
|
+
- **"Epic" that is one story.** Then it's a story.
|
|
159
|
+
- **Stories that share `testid` namespace.** They'll collide.
|
|
160
|
+
|
|
161
|
+
## Hand-off
|
|
162
|
+
|
|
163
|
+
> Epics and stories at `.wize/solutioning/`. 5 epics, 28 stories. All have ACs from the PRD. Run `wize-check-implementation-readiness`; Hawkeye, `tea-risk.md` next.
|