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
|
@@ -4,57 +4,128 @@ name: Product Brief
|
|
|
4
4
|
phase: 1-analysis
|
|
5
5
|
owner: wize-agent-analyst # Pepper Potts
|
|
6
6
|
absorbs: "WDS Saga — Phase 1"
|
|
7
|
-
status:
|
|
7
|
+
status: ready
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Product Brief
|
|
11
11
|
|
|
12
|
-
**Goal.**
|
|
12
|
+
**Goal.** Convert raw demand into a one-page brief the team can ship from. The brief is the single source of truth at this point — every other artifact (PRD, UX, architecture) references back to it.
|
|
13
|
+
|
|
14
|
+
Pepper drives. Peggy edits prose. Output lands in `.wize/planning/brief.md`.
|
|
13
15
|
|
|
14
16
|
## Inputs
|
|
15
17
|
|
|
16
|
-
- Raw demand (chat
|
|
17
|
-
- Optional existing materials (deck, doc,
|
|
18
|
-
- `.wize/config/project.toml
|
|
18
|
+
- Raw demand (chat message, doc, ticket, screenshot, recording).
|
|
19
|
+
- Optional existing materials (deck, doc, prior brief).
|
|
20
|
+
- `.wize/config/project.toml`.
|
|
19
21
|
|
|
20
22
|
## Outputs
|
|
21
23
|
|
|
22
24
|
- `.wize/planning/brief.md`
|
|
25
|
+
- Optionally `.wize/knowledge/research/` if Pepper pulled external sources.
|
|
23
26
|
|
|
24
27
|
## Steps
|
|
25
28
|
|
|
26
|
-
1.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
### 1. Frame in one paragraph
|
|
30
|
+
|
|
31
|
+
What is being asked, by whom, and by when. If you can't write it in three sentences, you don't understand it yet. Ask one clarifying question, then write.
|
|
32
|
+
|
|
33
|
+
### 2. Audience
|
|
34
|
+
|
|
35
|
+
- **Primary user** (one, name them by role + JTBD).
|
|
36
|
+
- **Secondary users** (≤ 2).
|
|
37
|
+
- **Stakeholders** (≤ 3 — the people whose lives change if this ships).
|
|
38
|
+
|
|
39
|
+
If the user list overflows, the brief is too broad. Force the cut.
|
|
40
|
+
|
|
41
|
+
### 3. Vision
|
|
42
|
+
|
|
43
|
+
One sentence describing the desired future state. Future tense. Concrete. No buzzwords. Test: can a new dev one month from now repeat it after a 30-second read?
|
|
44
|
+
|
|
45
|
+
### 4. Success criteria
|
|
46
|
+
|
|
47
|
+
3–5 measurable outcomes. Numbers, not adjectives.
|
|
48
|
+
|
|
49
|
+
Examples:
|
|
50
|
+
- ✓ "Median TTI on the checkout page ≤ 1.5s on a mid-range Android by Q3."
|
|
51
|
+
- ✗ "Faster checkout."
|
|
52
|
+
|
|
53
|
+
### 5. Non-goals
|
|
54
|
+
|
|
55
|
+
What this is *not*. Cut ambiguity early. If a feature isn't ruled in or out here, it will be in the PRD review.
|
|
56
|
+
|
|
57
|
+
### 6. Constraints
|
|
58
|
+
|
|
59
|
+
Hard limits. Pick from:
|
|
60
|
+
- Deadline (and what slipping it means).
|
|
61
|
+
- Budget envelope (one-time and run-rate).
|
|
62
|
+
- Compliance (GDPR, LGPD, SOC2, PCI, HIPAA, etc.).
|
|
63
|
+
- Integrations the product must speak to.
|
|
64
|
+
- Team / hiring envelope.
|
|
65
|
+
|
|
66
|
+
### 7. Open questions
|
|
34
67
|
|
|
35
|
-
|
|
68
|
+
Each with the human who can answer it. Each marked priority `blocker` / `important` / `nice-to-know`. Blockers must be resolved before the PRD starts.
|
|
69
|
+
|
|
70
|
+
### 8. Hand-off
|
|
71
|
+
|
|
72
|
+
- Mark `status: ready-for-prd` in the brief.
|
|
73
|
+
- Notify Wizer: "Brief ready, hand to Hill."
|
|
74
|
+
- Move to `wize-trigger-map` next (Pepper continues).
|
|
75
|
+
|
|
76
|
+
## Brief template
|
|
36
77
|
|
|
37
78
|
```markdown
|
|
79
|
+
---
|
|
80
|
+
status: ready-for-prd | draft
|
|
81
|
+
owner: Pepper Potts
|
|
82
|
+
created: YYYY-MM-DD
|
|
83
|
+
---
|
|
84
|
+
|
|
38
85
|
# Brief — {{project_name}}
|
|
39
86
|
|
|
40
87
|
## Vision
|
|
41
88
|
…
|
|
42
89
|
|
|
43
90
|
## Audience
|
|
44
|
-
- Primary
|
|
45
|
-
- Secondary
|
|
46
|
-
- Stakeholders
|
|
91
|
+
- **Primary:** … (one role + their JTBD)
|
|
92
|
+
- **Secondary:** …
|
|
93
|
+
- **Stakeholders:** …
|
|
47
94
|
|
|
48
95
|
## Success criteria
|
|
49
96
|
1. …
|
|
50
97
|
2. …
|
|
98
|
+
3. …
|
|
51
99
|
|
|
52
100
|
## Non-goals
|
|
53
101
|
- …
|
|
54
102
|
|
|
55
103
|
## Constraints
|
|
56
|
-
- …
|
|
104
|
+
- **Deadline:** …
|
|
105
|
+
- **Budget:** …
|
|
106
|
+
- **Compliance:** …
|
|
107
|
+
- **Integrations:** …
|
|
57
108
|
|
|
58
109
|
## Open questions
|
|
59
|
-
- [ ] …
|
|
110
|
+
- [ ] **(blocker)** … — *owner: NAME*
|
|
111
|
+
- [ ] **(important)** … — *owner: NAME*
|
|
112
|
+
- [ ] **(nice-to-know)** … — *owner: NAME*
|
|
60
113
|
```
|
|
114
|
+
|
|
115
|
+
## Anti-patterns Pepper rejects
|
|
116
|
+
|
|
117
|
+
- "Make the product better." → no audience, no outcome, not a brief.
|
|
118
|
+
- Pasting a stakeholder's slack message verbatim. Rewrite in the brief voice.
|
|
119
|
+
- Success criteria like "increase engagement". Reword: which event, how much, by when.
|
|
120
|
+
- Hidden assumptions ("everyone has fast internet"). Surface them in *Constraints* or *Open questions*.
|
|
121
|
+
- Open questions with no owner. If nobody owns it, the answer never comes.
|
|
122
|
+
|
|
123
|
+
## When to skip
|
|
124
|
+
|
|
125
|
+
This workflow is **not optional** for new products / new features. For tiny fixes (typo, copy, dependency bump), use `wize-quick-dev` instead — Pepper isn't called.
|
|
126
|
+
|
|
127
|
+
## Hand-off
|
|
128
|
+
|
|
129
|
+
When the brief is approved, Pepper notifies Wizer:
|
|
130
|
+
|
|
131
|
+
> Brief is ready in `.wize/planning/brief.md`. No blockers open. Hill, your call on PRD.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: wize-refresh-knowledge
|
|
3
|
+
name: Refresh Project Knowledge
|
|
4
|
+
phase: 1-analysis
|
|
5
|
+
owner: wize-agent-analyst # Pepper (drives), with Peggy on prose
|
|
6
|
+
status: ready
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Refresh Project Knowledge
|
|
10
|
+
|
|
11
|
+
**Goal.** Consolidate the dated bullets added to `document-project/*.md` over the sprint (via `wize-dev-story` step 8 and `wize-quick-dev` step 5) into a coherent, narrated, current-state baseline. Keep what's still true; demote what's outdated; archive what's no longer relevant.
|
|
12
|
+
|
|
13
|
+
This is the workflow that **keeps `document-project` honest over months**, instead of letting it stale within a sprint.
|
|
14
|
+
|
|
15
|
+
Pepper drives the consolidation. Peggy edits prose. Tony reviews architecture-snapshot changes. Hawkeye reviews risk-spots changes.
|
|
16
|
+
|
|
17
|
+
## When to run
|
|
18
|
+
|
|
19
|
+
- **End of sprint** (default cadence). `wize-help next` suggests it when it detects the sprint ended.
|
|
20
|
+
- **After a major epic ships.** Architecture often shifts visibly; this is the moment to consolidate.
|
|
21
|
+
- **Before onboarding a new engineer.** The baseline is the first thing they read; keep it fresh.
|
|
22
|
+
- **Before an audit / external review.** Same.
|
|
23
|
+
|
|
24
|
+
Don't run after every story — that's why each story already does its own inline update. This is the *periodic narration pass*.
|
|
25
|
+
|
|
26
|
+
## Inputs
|
|
27
|
+
|
|
28
|
+
- `.wize/knowledge/document-project/{overview,architecture-snapshot,conventions,dependencies,risk-spots,open-questions}.md`
|
|
29
|
+
- `.wize/implementation/tea/**/gate.md` from this sprint (look for `KN-NN` findings — they flag where the baseline got out of sync).
|
|
30
|
+
- Git log of the sprint window (`git log --since="<sprint-start>" --until="<sprint-end>"`).
|
|
31
|
+
- `.wize/implementation/sprint-status.md` (latest sprint block).
|
|
32
|
+
|
|
33
|
+
## Outputs
|
|
34
|
+
|
|
35
|
+
- Updated `.wize/knowledge/document-project/*.md` (in place).
|
|
36
|
+
- `.wize/knowledge/document-project/_history/{YYYY-Qn}/{sprint-N}.md` — sprint-scoped snapshot (frozen).
|
|
37
|
+
- Optional new entries appended to `open-questions.md`.
|
|
38
|
+
|
|
39
|
+
## Steps
|
|
40
|
+
|
|
41
|
+
### 1. Collect the inline notes
|
|
42
|
+
|
|
43
|
+
For each of the 5 axes, list every dated bullet added since the previous refresh (or since the baseline was created). They look like:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
## 2026-06-12 — E01-S03
|
|
47
|
+
- Conventions: `data-testid="invite-*"` published as public contract.
|
|
48
|
+
- Risk: R-1 (mailer) mitigation confirmed.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Pepper extracts them by axis.
|
|
52
|
+
|
|
53
|
+
### 2. Narrate, don't list
|
|
54
|
+
|
|
55
|
+
For each axis, write a short paragraph that **integrates** the new bullets into the surrounding context. The bullets disappear; the prose grows. Each axis remains a single coherent file — not a chronological log.
|
|
56
|
+
|
|
57
|
+
Example for `conventions.md` before refresh:
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## Tests
|
|
61
|
+
Co-located with the file under test. `.spec.ts` for unit; `.e2e.ts` for end-to-end.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
After refresh integrating an inline note "data-testid='invite-*' is a public contract":
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
## Tests
|
|
68
|
+
Co-located with the file under test. `.spec.ts` for unit; `.e2e.ts` for end-to-end. Test IDs follow the `data-testid="{feature}-{element}"` convention and are treated as a **public contract** — renaming one is a breaking change for end-to-end tests; ping Hawkeye before changing.
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 3. Demote what's outdated
|
|
72
|
+
|
|
73
|
+
If a previous claim no longer holds (a service was retired, a convention was replaced), don't delete silently. Move it to a "Deprecated" section at the bottom of the file with the date it was replaced and the new pattern. Future readers need the breadcrumb.
|
|
74
|
+
|
|
75
|
+
### 4. Archive a sprint snapshot
|
|
76
|
+
|
|
77
|
+
Freeze the *current* state into `_history/{YYYY-Qn}/sprint-{N}.md`. This file is read-only after creation. Six months from now, when someone asks "when did we change the test-id convention?", the answer is in `_history/`.
|
|
78
|
+
|
|
79
|
+
### 5. Open questions sweep
|
|
80
|
+
|
|
81
|
+
Pull any `KN-NN` findings that weren't resolved (the gap was acknowledged but the doc still wasn't updated) and copy them as `open-questions.md` entries with owners.
|
|
82
|
+
|
|
83
|
+
### 6. Diff narrative
|
|
84
|
+
|
|
85
|
+
Append a one-paragraph summary to the bottom of each updated file:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
## Last refresh: 2026-06-25 (Sprint 7)
|
|
89
|
+
- Architecture: 2 new components documented (`<InviteForm>`, `<TeamList>`); ADR-008 anchored in the auth section.
|
|
90
|
+
- Conventions: test-id public contract documented; eslint plugin added (commit 7a3d2f).
|
|
91
|
+
- Risk-spots: R-1 (mailer) closed; R-7 (rate limiter) added.
|
|
92
|
+
- Dependencies: bumped zod, drizzle, expo (notes in dependencies.md).
|
|
93
|
+
- Overview: unchanged; no new top-level feature in this sprint.
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 7. Hand off
|
|
97
|
+
|
|
98
|
+
- All updated docs flip frontmatter `last_refreshed: YYYY-MM-DD`.
|
|
99
|
+
- Wizer announces in `sprint-status.md`: *"Knowledge refresh done; baseline current."*
|
|
100
|
+
- Maria Hill carries this into the retrospective: was the refresh smooth, or did the team accumulate too many KN findings?
|
|
101
|
+
|
|
102
|
+
## Frontmatter convention for `document-project/*.md`
|
|
103
|
+
|
|
104
|
+
Each baseline file ships with:
|
|
105
|
+
|
|
106
|
+
```yaml
|
|
107
|
+
---
|
|
108
|
+
status: baseline
|
|
109
|
+
owner: Pepper + Peggy
|
|
110
|
+
created: 2026-04-02
|
|
111
|
+
last_refreshed: 2026-06-25
|
|
112
|
+
sampled: "wkly + sprint refresh"
|
|
113
|
+
---
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`last_refreshed` tells the next reader how much to trust the file vs read the more recent inline notes from `_history/`.
|
|
117
|
+
|
|
118
|
+
## Anti-patterns Pepper rejects
|
|
119
|
+
|
|
120
|
+
- **Refreshing into a chronological log.** That defeats narration; if a new dev opens `conventions.md` and sees 47 dated bullets, they can't form a mental model. Narrate.
|
|
121
|
+
- **Refresh without reading the gate findings.** `KN-NN` findings are exactly the gaps you should be patching here; ignoring them recreates the original problem.
|
|
122
|
+
- **Refresh every sprint regardless of activity.** If the sprint touched zero axes (rare but possible — a sprint of pure UI polish), say so in the diff narrative and skip the bulk of the work.
|
|
123
|
+
- **Demotion without breadcrumb.** Future readers need the trail.
|
|
124
|
+
|
|
125
|
+
## Hand-off
|
|
126
|
+
|
|
127
|
+
> Knowledge refresh for Sprint 7 done. Baseline current; 1 historical snapshot frozen at `_history/2026-Q2/sprint-7.md`. KN-01 closed, KN-03 still open (deferred to S8 — assigned to Aaliyah).
|
|
@@ -3,22 +3,114 @@ code: wize-research
|
|
|
3
3
|
name: Research
|
|
4
4
|
phase: 1-analysis
|
|
5
5
|
owner: wize-agent-analyst # Pepper Potts
|
|
6
|
-
status:
|
|
6
|
+
status: ready
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Research
|
|
10
10
|
|
|
11
|
-
**Goal.**
|
|
11
|
+
**Goal.** Surface evidence that hardens the brief and trigger map. Frame the questions Pepper actually needs answered, do focused passes (market / competitors / analytics / interviews), and write the synthesis in a way Maria Hill can quote in the PRD.
|
|
12
|
+
|
|
13
|
+
Pepper drives. Peggy edits prose. Output lands in `.wize/planning/research.md` with raw materials in `.wize/knowledge/research/`.
|
|
12
14
|
|
|
13
15
|
## Inputs
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
+
|
|
17
|
+
- Open questions in `.wize/planning/brief.md`.
|
|
18
|
+
- Hypotheses in `.wize/planning/ux/trigger-map.md`.
|
|
19
|
+
- External access (browser, MCPs) and/or attached materials (decks, transcripts).
|
|
16
20
|
|
|
17
21
|
## Outputs
|
|
18
|
-
|
|
22
|
+
|
|
23
|
+
- `.wize/planning/research.md` — short synthesis (≤ 2 pages) referencing sources.
|
|
24
|
+
- `.wize/knowledge/research/{slug}.md` — one file per major source (raw notes, links, attached PDFs).
|
|
19
25
|
|
|
20
26
|
## Steps
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
|
|
28
|
+
### 1. Frame the questions
|
|
29
|
+
|
|
30
|
+
Convert open questions + hypotheses into a numbered list. Each question is:
|
|
31
|
+
- **Specific** — "What's the median onboarding time for the top 5 competitors?" not "How is onboarding usually done?".
|
|
32
|
+
- **Answerable in a finite pass** — if it takes weeks, decompose.
|
|
33
|
+
- **Tagged with category** — `market / competitive / analytics / interview / desk-research / regulatory`.
|
|
34
|
+
|
|
35
|
+
### 2. Choose the framework that fits each question
|
|
36
|
+
|
|
37
|
+
| Category | Recommended frame | Tools |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| Market sizing | TAM/SAM/SOM, top-down + bottom-up reconciled | Statista, public filings, gov registries |
|
|
40
|
+
| Competitive | Porter's 5 + feature matrix + pricing scan | competitor sites, G2/Capterra, Pricing/Plans pages |
|
|
41
|
+
| User research | Jobs-to-be-Done (Christensen / Klement) | 5–8 interviews (semi-structured, 30min) |
|
|
42
|
+
| Behavioral | 5W2H + analytics funnel | product analytics (Amplitude/PostHog), session replays |
|
|
43
|
+
| Compliance/legal | Reg list + clause map | gov sites, legal counsel review |
|
|
44
|
+
| Macro context | PESTLE (political/economic/social/technological/legal/environmental) | desk research |
|
|
45
|
+
|
|
46
|
+
### 3. Run focused passes
|
|
47
|
+
|
|
48
|
+
One question, one pass. Don't bundle. For each:
|
|
49
|
+
|
|
50
|
+
- Define what "enough evidence" looks like before starting.
|
|
51
|
+
- Cite or it didn't happen. Links + access date.
|
|
52
|
+
- When numbers conflict across sources, write down both and flag.
|
|
53
|
+
|
|
54
|
+
### 4. Synthesize
|
|
55
|
+
|
|
56
|
+
In `research.md`, for each original question, write:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
### Q1. {{the question}}
|
|
60
|
+
**Finding:** one sentence answer.
|
|
61
|
+
**Confidence:** high | medium | low
|
|
62
|
+
**Why we believe it:** 2–3 lines + citations [1][2][3].
|
|
63
|
+
**Implication for the brief/PRD:** what changes (or doesn't) because of this.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Don't include raw quotes here — link to `.wize/knowledge/research/{slug}.md`.
|
|
67
|
+
|
|
68
|
+
### 5. Flag the gaps
|
|
69
|
+
|
|
70
|
+
End the synthesis with a "Still open" section. List questions we couldn't answer + the cheapest next step (one interview / one analytics query / one expert call). Route back to Wizer with the gap.
|
|
71
|
+
|
|
72
|
+
## Output template (synthesis)
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
---
|
|
76
|
+
status: ready-for-prd
|
|
77
|
+
owner: Pepper Potts
|
|
78
|
+
created: YYYY-MM-DD
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
# Research — {{project_name}}
|
|
82
|
+
|
|
83
|
+
## Q1. {{question}}
|
|
84
|
+
**Finding:** …
|
|
85
|
+
**Confidence:** medium
|
|
86
|
+
**Why:** … [1]
|
|
87
|
+
**Implication:** Brief constraint #3 holds; PRD scope can drop feature X.
|
|
88
|
+
|
|
89
|
+
## Q2. …
|
|
90
|
+
|
|
91
|
+
## Still open
|
|
92
|
+
- Q5: pricing elasticity in segment S — needs 1 hour with sales lead.
|
|
93
|
+
|
|
94
|
+
## Sources
|
|
95
|
+
[1] {{title}} — {{url}} (accessed YYYY-MM-DD)
|
|
96
|
+
[2] interview-acme-cto-2026-05-30 — see knowledge/research/acme-cto.md
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## When to use which framework (heuristic)
|
|
100
|
+
|
|
101
|
+
- **JTBD** when you're about to write personas; JTBD is sharper than archetypes.
|
|
102
|
+
- **Porter** when picking a market to enter or a defensible moat.
|
|
103
|
+
- **PESTLE** for projects with regulatory or geopolitical exposure.
|
|
104
|
+
- **5 Whys + analytics funnel** when a metric is bad and the cause isn't obvious.
|
|
105
|
+
|
|
106
|
+
## Anti-patterns Pepper rejects
|
|
107
|
+
|
|
108
|
+
- Synthesis without citations.
|
|
109
|
+
- "We surveyed users" with no n, no method, no script.
|
|
110
|
+
- Single-source claims with high confidence ("everyone is using X" because of one blog post).
|
|
111
|
+
- Using brand-name competitor research as user research — they're different.
|
|
112
|
+
- Continuing to research when the decision is already made. Stop and ship.
|
|
113
|
+
|
|
114
|
+
## Hand-off
|
|
115
|
+
|
|
116
|
+
> Research is in `.wize/planning/research.md`. Q3 still open — sales lead has a slot tomorrow. Hill can start the PRD on what's confirmed.
|
|
@@ -4,17 +4,21 @@ name: Trigger Map
|
|
|
4
4
|
phase: 1-analysis
|
|
5
5
|
owner: wize-agent-analyst # Pepper Potts
|
|
6
6
|
absorbs: "WDS Saga — Phase 2 (Trigger Mapping)"
|
|
7
|
-
status:
|
|
7
|
+
status: ready
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Trigger Map
|
|
11
11
|
|
|
12
|
-
**Goal.** Map user psychology to business goals. For each user action
|
|
12
|
+
**Goal.** Map user psychology to business goals. For each user action the product wants to drive, name the **trigger** (the need/anxiety/desire that precedes it), the **friction** that blocks it today, the **business outcome** unlocked, and the **signal** that confirms it happened.
|
|
13
|
+
|
|
14
|
+
This is the bridge between Pepper's brief and Maria Hill's PRD: it forces the team to argue *why* users would do the thing before *what* the team will build.
|
|
15
|
+
|
|
16
|
+
Pepper drives. Output lands in `.wize/planning/ux/trigger-map.md`.
|
|
13
17
|
|
|
14
18
|
## Inputs
|
|
15
19
|
|
|
16
|
-
- `.wize/planning/brief.md`
|
|
17
|
-
- `.wize/planning/research.md` (
|
|
20
|
+
- `.wize/planning/brief.md` (vision + audience + success criteria).
|
|
21
|
+
- `.wize/planning/research.md` (when present — strengthens triggers with evidence).
|
|
18
22
|
|
|
19
23
|
## Outputs
|
|
20
24
|
|
|
@@ -22,19 +26,79 @@ status: stub
|
|
|
22
26
|
|
|
23
27
|
## Steps
|
|
24
28
|
|
|
25
|
-
1.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
### 1. List target user actions
|
|
30
|
+
|
|
31
|
+
From the brief, list **3–8 actions** users must take for the product to succeed. Verb-led. Concrete.
|
|
32
|
+
|
|
33
|
+
- ✓ "Sign up using a work email."
|
|
34
|
+
- ✓ "Add a teammate."
|
|
35
|
+
- ✓ "Confirm the first invoice."
|
|
36
|
+
- ✗ "Get value." (too abstract)
|
|
37
|
+
|
|
38
|
+
If you have more than 8, you're conflating products. Trim.
|
|
39
|
+
|
|
40
|
+
### 2. Per row: trigger / friction / business outcome / signal
|
|
41
|
+
|
|
42
|
+
For each action, fill four cells. Each cell ≤ 1 sentence.
|
|
43
|
+
|
|
44
|
+
| Field | What goes here |
|
|
45
|
+
|---|---|
|
|
46
|
+
| **Trigger** | The mental state preceding the action. *Need / anxiety / desire.* What makes the user think "I need to do this now"? |
|
|
47
|
+
| **Friction** | The cost of doing it today (in the current workaround or competitor). What stops them? |
|
|
48
|
+
| **Business outcome** | What changes for the business when this action happens. Revenue, retention, cost, NPS, risk reduction. |
|
|
49
|
+
| **Signal** | The telemetry event/state-change proving it happened. Name it like an event (`signup_succeeded`), not a phrase ("user signs up"). |
|
|
50
|
+
|
|
51
|
+
### 3. Mark each row evidence-backed or hypothesis
|
|
52
|
+
|
|
53
|
+
Every cell must be tagged:
|
|
54
|
+
|
|
55
|
+
- `evidence:<source>` — when based on an interview, survey, analytics or a citable doc.
|
|
56
|
+
- `hypothesis` — when we believe it but haven't proven it.
|
|
57
|
+
|
|
58
|
+
Hypotheses are fine. Hidden hypotheses are not. Force the label.
|
|
59
|
+
|
|
60
|
+
### 4. Wire to success criteria
|
|
61
|
+
|
|
62
|
+
For each of Pepper's success criteria in the brief, identify **which row of the map is the load-bearing one**. If a criterion has no row mapped to it, either it's not a real success criterion or the map is missing an action.
|
|
33
63
|
|
|
34
|
-
|
|
64
|
+
### 5. Hand off
|
|
65
|
+
|
|
66
|
+
Mark `status: ready-for-prd`. Tell Wizer the next step is Maria Hill.
|
|
67
|
+
|
|
68
|
+
## Output template
|
|
35
69
|
|
|
36
70
|
```markdown
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
71
|
+
---
|
|
72
|
+
status: ready-for-prd | draft
|
|
73
|
+
owner: Pepper Potts
|
|
74
|
+
created: YYYY-MM-DD
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
# Trigger Map — {{project_name}}
|
|
78
|
+
|
|
79
|
+
## Actions
|
|
80
|
+
|
|
81
|
+
| # | Action | Trigger | Friction | Business outcome | Signal | Evidence |
|
|
82
|
+
|---|---|---|---|---|---|---|
|
|
83
|
+
| 1 | Sign up with work email | "We need a tool we can hand to the team next week." | Existing tool requires manual SSO; we want self-serve. | New paid-team conversion. | `signup_completed` | research:user-interview-2026-04 |
|
|
84
|
+
| 2 | Invite first teammate | Won't move forward solo. | Email + reminder loops cost manager 10min. | Activation. | `teammate_invited` | hypothesis |
|
|
85
|
+
| … | … | … | … | … | … | … |
|
|
86
|
+
|
|
87
|
+
## Coverage of brief success criteria
|
|
88
|
+
|
|
89
|
+
- **Criterion 1** ("TTI ≤ 1.5s on Android by Q3") → covered by row 4 (`page_loaded`).
|
|
90
|
+
- **Criterion 2** ("…") → covered by row 1.
|
|
91
|
+
- …
|
|
40
92
|
```
|
|
93
|
+
|
|
94
|
+
## Anti-patterns Pepper rejects
|
|
95
|
+
|
|
96
|
+
- **Triggers written as features.** "Wants the dashboard." Wrong layer. Reword to the emotion/need: "Wants to know if the team is okay."
|
|
97
|
+
- **Friction in vague language.** "It's confusing." Wrong. Name the step that breaks: "After invite, no email arrives for 4 hours."
|
|
98
|
+
- **Business outcomes with no metric.** "Drives engagement." Wrong. "Reduces churn by ≥ 1pp in cohort C." If you can't measure it, it's not an outcome — it's a hope.
|
|
99
|
+
- **Signals that fire on intent, not completion.** `signup_button_clicked` is intent. `signup_completed` is the signal.
|
|
100
|
+
- **Same row repeated for two actions.** Each row must justify a distinct action. If you can collapse them, do it.
|
|
101
|
+
|
|
102
|
+
## Hand-off
|
|
103
|
+
|
|
104
|
+
> Trigger map is in `.wize/planning/ux/trigger-map.md`. Hill, the PRD goals should anchor on rows 1, 3, and 5 — they map to the success criteria in the brief.
|