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.
Files changed (39) hide show
  1. package/CHANGELOG.md +130 -1
  2. package/README.md +64 -0
  3. package/package.json +1 -1
  4. package/src/method-skills/1-analysis/wize-document-project/workflow.md +188 -20
  5. package/src/method-skills/1-analysis/wize-prfaq/workflow.md +150 -11
  6. package/src/method-skills/1-analysis/wize-product-brief/workflow.md +90 -19
  7. package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +127 -0
  8. package/src/method-skills/1-analysis/wize-research/workflow.md +101 -9
  9. package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +80 -16
  10. package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +132 -23
  11. package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +132 -28
  12. package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +91 -15
  13. package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +106 -12
  14. package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +101 -11
  15. package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +197 -29
  16. package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +127 -12
  17. package/src/method-skills/3-solutioning/wize-design-system/workflow.md +182 -22
  18. package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +142 -16
  19. package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +127 -21
  20. package/src/method-skills/4-implementation/wize-code-review/workflow.md +105 -10
  21. package/src/method-skills/4-implementation/wize-create-story/workflow.md +131 -10
  22. package/src/method-skills/4-implementation/wize-dev-story/workflow.md +140 -17
  23. package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +121 -18
  24. package/src/method-skills/4-implementation/wize-retrospective/workflow.md +112 -10
  25. package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +85 -10
  26. package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +96 -11
  27. package/src/orchestrator-skills/wize-help/skill.md +25 -1
  28. package/src/tea-skills/wize-tea-design/workflow.md +104 -13
  29. package/src/tea-skills/wize-tea-gate/workflow.md +115 -25
  30. package/src/tea-skills/wize-tea-nfr/workflow.md +104 -14
  31. package/src/tea-skills/wize-tea-review/workflow.md +120 -13
  32. package/src/tea-skills/wize-tea-risk/workflow.md +99 -10
  33. package/src/tea-skills/wize-tea-trace/workflow.md +83 -12
  34. package/tools/installer/baseline.js +128 -0
  35. package/tools/installer/commands/agent.js +197 -0
  36. package/tools/installer/commands/sync.js +45 -0
  37. package/tools/installer/commands/update.js +172 -0
  38. package/tools/installer/version-check.js +117 -0
  39. 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: stub
7
+ status: ready
8
8
  ---
9
9
 
10
10
  # Product Brief
11
11
 
12
- **Goal.** Turn raw demand into a concise, decision-ready brief that the rest of the team can ship from.
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 or file)
17
- - Optional existing materials (deck, doc, ticket, recording)
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. **Frame.** One paragraph: what is being asked, by whom, by when.
27
- 2. **Audience.** Primary user (1), secondary users (≤2), stakeholders (≤3).
28
- 3. **Vision.** One sentence describing the desired future state.
29
- 4. **Success criteria.** 3–5 measurable outcomes (numbers, not adjectives).
30
- 5. **Non-goals.** What this is *not*. Cut ambiguity early.
31
- 6. **Constraints.** Deadlines, budgets, compliance, integrations.
32
- 7. **Open questions.** Ranked, each with the person who can answer.
33
- 8. **Hand off.** Mark `status: ready-for-prd`; ping Wizer to call Maria Hill.
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
- ## Brief template (target file)
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
- - [ ] … (owner: …)
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: stub
6
+ status: ready
7
7
  ---
8
8
 
9
9
  # Research
10
10
 
11
- **Goal.** Synthesize external evidence (market, competitors, analytics, interviews) that informs the brief.
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
- - Research questions from the brief
15
- - External access (browser, MCPs) and/or attached docs
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
- - `.wize/planning/research.md`
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
- 1. List the questions to answer.
22
- 2. For each question: gather sources, summarize, cite.
23
- 3. Mark gaps explicitly as `open` so Wizer can re-route.
24
- 4. Hand off back to brief workflow.
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: stub
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 we want to drive, identify the **trigger** (need/anxiety/desire) and the **business outcome** it unlocks.
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` (if exists)
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. **List target user actions.** From the brief, list the 3–8 actions we want users to take.
26
- 2. **For each action**, fill the row:
27
- - **Trigger** what state of mind/need precedes this action?
28
- - **Friction** — what stops users from doing it today?
29
- - **Business outcome** what changes for the business when this action happens?
30
- - **Signal** what telemetry/event proves it happened?
31
- 3. **Validate.** Cite research or mark `hypothesis`.
32
- 4. **Hand off to Mantis** for UX Scenarios.
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
- ## Trigger Map template
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
- | Action | Trigger | Friction | Business outcome | Signal | Evidence |
38
- |---|---|---|---|---|---|
39
- | | … | … | … | … | research:/hypothesis |
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.