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
package/CHANGELOG.md CHANGED
@@ -5,6 +5,129 @@ Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.2.5] — 2026-06-12
9
+
10
+ Fixes a real install-time bug that bit non-TTY users (CI smoke + anyone piping input into `wize-dev-kit install`).
11
+
12
+ ### Fixed
13
+
14
+ - **Non-TTY prompt stall.** The CLI's `prompt()` helper created a new `readline.createInterface` per call and used `rl.question()`. Both choices misbehave in pipe mode: per-call interfaces close stdin on the first `rl.close()`, and even with a shared interface `readline.question` stalls when it has to read an empty line in non-TTY mode (Node 24 behavior). After step 1 of `install` (project name), every subsequent prompt would hang silently. Replaced with an event-based line reader: subscribe once to `line`, push waiters in order, propagate empty lines as `""`, treat EOF as "remaining waiters resolve empty". `printf '...\n\n\n\n\nName\n\n' | wize-dev-kit install` now runs cleanly to completion.
15
+
16
+ ### Notes
17
+
18
+ This was the actual cause behind the CI smoke E2E loop. The 0.2.4 fix to the smoke script (using `npm install <tarball>` instead of `npx <tarball>`) was correct, but the underlying CLI couldn't accept piped input either, so the smoke kept failing at the second prompt. With both fixed, the smoke runs end-to-end.
19
+
20
+ ## [0.2.4] — 2026-06-12
21
+
22
+ CI-only hotfix to actually unblock the publish pipeline. Surface area of wize-dev-kit unchanged.
23
+
24
+ ### Fixed
25
+
26
+ - Smoke E2E step used `npx --yes "$tarball" install`. On the GitHub Actions runner that path is interpreted as a shell command, which tries to **execute the tarball directly** before npx ever extracts it — exit code 126, `Permission denied`. Rewrote the step to: install the tarball into a throwaway project via `npm install <tarball>`, then invoke `$NODE_MODULES/.bin/wize-dev-kit` directly. `npm install` extracts the archive properly and sets the bin executable bit, so the rest of the smoke (`install` → assertions → `update` → `agent list`) runs cleanly. Same coverage, named-per-check error messages, and now also sets `WIZE_DISABLE_UPDATE_CHECK=1` so the registry isn't probed mid-smoke.
27
+
28
+ ## [0.2.3] — 2026-06-11
29
+
30
+ Hotfix: 0.2.1 and 0.2.2 publish workflows hung because `test/version-check.test.js` had a sync/async bug in its test scaffolding. CI's smoke E2E never started for those releases. This release fixes the test and re-runs the same smoke for 0.2.2 + 0.2.3.
31
+
32
+ ### Fixed
33
+
34
+ - `withTempCacheHome` helper in `test/version-check.test.js` was synchronous (`return fn(dir)`), so its `finally` block restored the env var before the async callback's `writeCache` resolved. The cache lookup inside the callback then landed in the real `~/.cache/wize-dev-kit/`, contaminating subsequent test runs and intermittently failing the `getLatestVersion returns the cached value when fresh` assertion. Fix: make the helper `async` and `return await fn(dir)`. Confirmed locally + ensures CI doesn't get a stuck cache file across tags.
35
+
36
+ ### Notes
37
+
38
+ No surface area changed; behavior of `wize-dev-kit` itself is identical to 0.2.2. The bump exists only so the publish workflow re-runs cleanly.
39
+
40
+ ## [0.2.2] — 2026-06-11
41
+
42
+ Closes the "documentation always stale" gap: inline knowledge captures per story, Hawkeye enforces, sprint-end refresh consolidates. Plus auto-update nudges on the CLI and Wizer.
43
+
44
+ ### Added — knowledge stays current
45
+
46
+ - **`wize-dev-story` step 8 — Knowledge update (inline).** After commits and before pre-PR check, Shuri checks whether the story touched any of the 5 baseline axes (architecture / conventions / risk-spots / dependencies / overview) and, if yes, adds 1–3 dated bullets to the matching `.wize/knowledge/document-project/*.md` file — same PR. ~60 seconds when applicable; skipped otherwise.
47
+ - **`wize-quick-dev` step 5 — Knowledge update (only if applicable).** Quick-dev rarely touches axes; when it does (dep bump that shifts API, rename that breaks a contract), one line lands in the relevant doc.
48
+ - **`wize-tea-review` step 5 — Knowledge update check.** Hawkeye walks the diff. Touched-but-not-updated stories get a `KN-NN` finding. `tea-review` frontmatter now carries `knowledge_axes_touched` + `knowledge_axes_updated`.
49
+ - **`wize-tea-gate` decision rule extended.** When `knowledge_axes_touched ≠ knowledge_axes_updated`, recommendation flips to `CONCERNS` (advisory) or `FAIL` (enforcing). Example `KN-NN` finding shape documented in the canonical YAML.
50
+ - **`wize-refresh-knowledge` (new workflow).** Sprint-end consolidation: Pepper + Peggy roll the dated bullets accumulated through the sprint into the narrative prose of each axis file, demote stale claims to a `Deprecated` section, freeze a snapshot at `.wize/knowledge/document-project/_history/{YYYY-Qn}/sprint-{N}.md`, and stamp `last_refreshed` in each file. Triggered when `wize-help next` detects the sprint emptied.
51
+ - **`wize-document-project` — Update mode section.** Documents the two-cadence loop (inline-per-story + sprint-refresh) and the file frontmatter convention (`last_refreshed`).
52
+
53
+ ### Added — proactive nudges
54
+
55
+ - **`wize-help` skill — version-skew detection.** Wizer now reads `kit_version` from `.wize/config/project.toml`, compares with the installed package version and (via Bash tool when available) the registry, and proactively suggests `npx wize-dev-kit@latest update` when behind. Worded as a single short line, never as a banner.
56
+ - **`wize-help` skill — sprint-end detection.** Heuristic refined: when sprint-status shows all stories gated and no `ready-for-dev` left, the next-step recommendation is `wize-retrospective` + `wize-refresh-knowledge`, not just retro.
57
+ - **CLI version check (camera 1).** `wize-dev-kit list / sync / agent / workflow / help` now print a one-line `↑ Update available: X → Y` at the top when a newer version sits in the npm registry. Cached for 1 hour, 1.5s network timeout, silent on offline / non-TTY / `WIZE_DISABLE_UPDATE_CHECK=1`. Never blocks. New module `tools/installer/version-check.js`.
58
+
59
+ ### Tests
60
+
61
+ - Total: **104 passing** (was 94 in 0.2.1).
62
+ - 10 new tests in `test/version-check.test.js` covering semver compare, cache freshness, fetch fallback (offline + non-2xx), TTY guard, env disable.
63
+
64
+ ### Files
65
+
66
+ - `src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md` (new).
67
+ - `tools/installer/version-check.js` (new).
68
+ - Edits to `wize-dev-story`, `wize-quick-dev`, `wize-tea-review`, `wize-tea-gate`, `wize-help` skill, `wize-document-project`, `tools/installer/wize-cli.js`.
69
+
70
+ ## [0.2.1] — 2026-06-11
71
+
72
+ Focused polish: brownfield baseline finally runs end-to-end through a detected harness CLI, CI publishes without the deprecated-config warning, and every release is now smoke-tested before going up.
73
+
74
+ ### Added
75
+
76
+ - **Brownfield baseline runs real now.** When the installer detects existing code and you accept the `Run wize-document-project?` prompt, it now scans your PATH for an AI harness CLI (Claude Code, then Codex, then OpenCode), prioritizes whichever you selected as an IDE target, asks you to confirm the headless invocation, and spawns it with the right flags (`claude -p`, `codex exec`, `opencode run`). If no harness CLI is on PATH, the installer prints the exact command you can run later in your IDE. Set `WIZE_SKIP_BASELINE=1` to disable the headless run entirely (used by CI and unattended setups).
77
+ - `tools/installer/baseline.js` — exports `detectHarnessCli`, `runHeadlessBaseline`, `manualInstructions`, `defaultPrompt`. Self-contained, no extra deps; uses a manual PATH walk for hermetic, cross-platform detection.
78
+ - 7 new unit tests covering detection priority, PATH isolation, the skip-baseline env, and instruction strings.
79
+
80
+ ### Fixed
81
+
82
+ - CI publish workflow now strips the deprecated `always-auth=false` line from the runner's `.npmrc` before installing. Removes the `npm warn Unknown user config "always-auth"` noise that appeared in every 0.2.0 publish log. See actions/setup-node#1129.
83
+
84
+ ### Added — CI
85
+
86
+ - **Smoke E2E before publish.** The workflow now packs the tarball, installs it in a temp git repo via `npx`, and asserts that `.wize/`, the Claude adapter SKILL.md, generic AGENTS-equivalent, `kit_version` in `project.toml`, `update`, and `agent list` all work — exactly like a user would experience. Fails the release if anything is off, so we never publish a broken tarball again.
87
+ - Sets `WIZE_SKIP_BASELINE=1` in the smoke step so the harness-run prompt doesn't try to spawn `claude` inside GitHub's runner.
88
+
89
+ ### Tests
90
+
91
+ - Total now **94 passing** (was 87 in 0.2.0).
92
+
93
+ ## [0.2.0] — 2026-06-11
94
+
95
+ First release that delivers the lifecycle end-to-end. Workflows have real bodies; CLI commands work for real; the team has a Walkthrough to follow.
96
+
97
+ ### Added — CLI
98
+
99
+ - **`wize-dev-kit update`** — refreshes an installed kit to the version resolved by `node_modules/wize-dev-kit`. Re-runs every active IDE adapter, preserves `.wize/config/user.toml`, re-applies the suggested `.gitignore` block, and writes the new `kit_version` into `.wize/config/project.toml`. Prints the relevant CHANGELOG excerpt between the previous and current version.
100
+ - **`wize-dev-kit sync`** — re-renders adapter outputs for whatever `ide_targets` the project opted into. Cheap idempotent call after editing config or running `agent create`.
101
+ - **`wize-dev-kit agent list`** — lists every built-in agent (9) plus any custom or override agents the project added.
102
+ - **`wize-dev-kit agent create`** — interactive scaffold of a new custom agent. Validates `code` shape, checks for collisions with built-ins, does a dry-run write+read, then persists to `.wize/custom/agents/{code}/{agent.yaml, persona.md}`. Non-TTY callers can pass a spec via API (`fromSpec`).
103
+ - **`wize-dev-kit agent edit <code>`** — writes a `customize.toml` override for an existing built-in agent into `.wize/custom/agents/{code}/`.
104
+
105
+ ### Added — UX
106
+
107
+ - **End-of-install message** now ends with: "Restart your IDE — many harnesses load skills only at startup." plus a quick-reference to the new CLI commands (`update`, `sync`, `agent list`).
108
+ - **README walkthrough** — a complete end-to-end slash-command map from `/wize-orchestrator` through `/wize-tea-gate`, plus a new "CLI commands" reference section.
109
+
110
+ ### Changed — workflows now have real bodies
111
+
112
+ 22 workflows that were ≈ 30–50-line stubs in 0.1.x now ship 100–250 lines of working method, examples, anti-patterns, and YAML schemas. Tone aligned with the 0.1.5 playbooks (dense, opinionated, citable).
113
+
114
+ - **Analysis (Pepper):** `wize-product-brief`, `wize-trigger-map`, `wize-research`, `wize-prfaq`, `wize-document-project`.
115
+ - **Plan (Maria Hill + Mantis):** `wize-create-prd`, `wize-validate-prd`, `wize-ux-scenarios`, `wize-ux-design`.
116
+ - **Strategy + Solutioning (Fury + Tony + Mantis):** `wize-tech-vision`, `wize-nfr-principles`, `wize-create-architecture`, `wize-design-system`, `wize-create-epics-and-stories`, `wize-check-implementation-readiness`.
117
+ - **TEA gates (Hawkeye):** `wize-tea-risk`, `wize-tea-design`, `wize-tea-trace`, `wize-tea-nfr`, `wize-tea-review`, `wize-tea-gate` — each with canonical YAML frontmatter + concrete examples.
118
+ - **Implementation (Shuri + Hill + Wizer):** `wize-create-story`, `wize-dev-story`, `wize-quick-dev`, `wize-sprint-planning`, `wize-sprint-status`, `wize-retrospective`, `wize-code-review`.
119
+
120
+ ### Added — engineering
121
+
122
+ - `tools/installer/commands/{update,sync,agent}.js` — modular command implementations with a minimal TOML reader for the `project.toml` subset.
123
+ - `test/cli-commands.test.js` — coverage for update / sync / agent list / agent create / agent edit (10 tests).
124
+ - `test/workflow-bodies.test.js` — guards that every workflow.md has ≥ 1.5 KB body and ≥ 4 H2 sections, with an explicit allow-list for intentionally short workflows (overlay scaffolds, builder helpers, orchestrator helpers).
125
+ - Test count: **87 passing** (was 33).
126
+
127
+ ### Notes
128
+
129
+ This release closes JTBD backlog categories 3 (CLI commands real) and 2 (workflows with body) plus 4 (end-of-install UX, README walkthrough). Categories 5 (CI hygiene incl. smoke E2E) and 6 (monorepo routing, TEA enforcing helper) remain on the roadmap.
130
+
8
131
  ## [0.1.5] — 2026-06-01
9
132
 
10
133
  ### Added — promises kept
@@ -139,7 +262,13 @@ Ignore (handled by the suggested block): `.wize/config/user.toml`, `.wize/scratc
139
262
  - Inspired by [BMAD Method v6.8.0](https://github.com/bmad-code-org/BMAD-METHOD).
140
263
  - WDS module inspired by [bmad-method-wds-expansion](https://github.com/bmad-code-org/bmad-method-wds-expansion).
141
264
 
142
- [Unreleased]: https://github.com/qwize-br/wize-development-kit/compare/v0.1.5...HEAD
265
+ [Unreleased]: https://github.com/qwize-br/wize-development-kit/compare/v0.2.5...HEAD
266
+ [0.2.5]: https://github.com/qwize-br/wize-development-kit/compare/v0.2.4...v0.2.5
267
+ [0.2.4]: https://github.com/qwize-br/wize-development-kit/compare/v0.2.3...v0.2.4
268
+ [0.2.3]: https://github.com/qwize-br/wize-development-kit/compare/v0.2.2...v0.2.3
269
+ [0.2.2]: https://github.com/qwize-br/wize-development-kit/compare/v0.2.1...v0.2.2
270
+ [0.2.1]: https://github.com/qwize-br/wize-development-kit/compare/v0.2.0...v0.2.1
271
+ [0.2.0]: https://github.com/qwize-br/wize-development-kit/compare/v0.1.5...v0.2.0
143
272
  [0.1.5]: https://github.com/qwize-br/wize-development-kit/compare/v0.1.4...v0.1.5
144
273
  [0.1.4]: https://github.com/qwize-br/wize-development-kit/compare/v0.1.3...v0.1.4
145
274
  [0.1.3]: https://github.com/qwize-br/wize-development-kit/compare/v0.1.2...v0.1.3
package/README.md CHANGED
@@ -72,6 +72,55 @@ See [`ROSTER.md`](ROSTER.md) for personas, styles and BMAD equivalences.
72
72
 
73
73
  ---
74
74
 
75
+ ## Walkthrough — a full project, end to end
76
+
77
+ Below is the canonical flow Wizer drives in a real session. Each step is a slash command in your IDE; each persona reads the previous artifact before writing its own. Nothing is mocked.
78
+
79
+ ```
80
+ 1. /wize-orchestrator Wizer greets, reads .wize/config/{project,user}.toml.
81
+ Detects the project state and routes you.
82
+
83
+ 2. /wize-product-brief Pepper turns raw demand into brief.md.
84
+ /wize-trigger-map Pepper maps user psychology → business goals (WDS).
85
+ /wize-research Pepper synthesizes external evidence (optional).
86
+
87
+ 3. /wize-create-prd Maria Hill writes prd.md (goals, scope, ACs).
88
+ /wize-validate-prd Maria Hill (+ Mantis/Fury) signs off.
89
+
90
+ 4. /wize-ux-scenarios Mantis runs the 8-question WDS dialog.
91
+ /wize-ux-design Mantis writes page specs (one .md per screen).
92
+
93
+ 5. /wize-tech-vision Fury picks the stack family + non-negotiables.
94
+ /wize-nfr-principles Fury writes the NFR budget (perf, sec, a11y…).
95
+
96
+ 6. /wize-create-architecture Tony writes architecture.md + ADRs.
97
+ /wize-design-system Mantis writes design-system/ (tokens + components).
98
+ /wize-create-epics-and-stories
99
+ Tony slices epics → stories (each has ACs).
100
+
101
+ 7. /wize-tea-risk Hawkeye builds the global risk profile.
102
+ /wize-tea-design Hawkeye writes test design for the next story.
103
+ /wize-dev-story Shuri implements (TDD, AC IDs in commits).
104
+ /wize-tea-trace Hawkeye maps each AC → tests.
105
+ /wize-tea-review Hawkeye runs story review.
106
+ /wize-tea-gate Hawkeye emits PASS / CONCERNS / FAIL / WAIVED.
107
+
108
+ 8. /wize-sprint-status Maria Hill keeps the daily snapshot updated.
109
+ /wize-retrospective Wizer facilitates retro at end of each sprint.
110
+ /wize-tea-nfr Hawkeye assesses NFRs at epic boundary.
111
+
112
+ Cross-cutting:
113
+ /wize-help Wizer figures out where you are and proposes
114
+ the next step (use anytime).
115
+ /wize-quick-dev Shuri takes a small fix without the full ride.
116
+ /wize-party-mode Wizer convenes multi-persona for hard calls.
117
+ ```
118
+
119
+ > Use `/wize-help next` whenever you're unsure — it inspects `.wize/` and tells
120
+ > you the single next action.
121
+
122
+ ---
123
+
75
124
  ## Output layout (in the target repo)
76
125
 
77
126
  ```
@@ -86,6 +135,21 @@ See [`ROSTER.md`](ROSTER.md) for personas, styles and BMAD equivalences.
86
135
 
87
136
  ---
88
137
 
138
+ ## CLI commands
139
+
140
+ ```bash
141
+ npx wize-dev-kit install # interactive setup
142
+ npx wize-dev-kit update # bring an installed kit up to the current package version
143
+ npx wize-dev-kit sync # re-render IDE adapters after editing config
144
+ npx wize-dev-kit agent list # list built-in + custom agents
145
+ npx wize-dev-kit agent create # scaffold a new custom agent (validated + dry-run)
146
+ npx wize-dev-kit agent edit <code> # override a built-in via .wize/custom/agents/<code>/customize.toml
147
+ npx wize-dev-kit validate # structural checks on the kit assets
148
+ npx wize-dev-kit uninstall # remove .wize/ (your code is left untouched)
149
+ ```
150
+
151
+ ---
152
+
89
153
  ## Documentation
90
154
 
91
155
  - [`ARCH.md`](ARCH.md) — full architecture: distribution, fluxos, layout, installer.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wize-dev-kit",
4
- "version": "0.1.5",
4
+ "version": "0.2.5",
5
5
  "description": "Full-lifecycle AI-assisted development kit with Test Architect and Whiteport Design Studio embedded. Inspired by BMAD Method and WDS.",
6
6
  "keywords": [
7
7
  "ai",
@@ -2,35 +2,203 @@
2
2
  code: wize-document-project
3
3
  name: Document Project (brownfield baseline)
4
4
  phase: 1-analysis
5
- owner: wize-agent-analyst # Pepper Potts (paired with Peggy Carter)
6
- status: stub
5
+ owner: wize-agent-analyst # Pepper Potts (paired with Peggy Carter and Tony Stark)
6
+ status: ready
7
7
  ---
8
8
 
9
9
  # Document Project — Brownfield Baseline
10
10
 
11
- **Goal.** When the kit is installed in an existing codebase, baseline the current state so subsequent planning isn't blind. Produces an "as-is" snapshot that Tony reads before drawing the "to-be."
11
+ **Goal.** When the kit is installed in an existing repo, baseline the **as-is** state so the rest of the lifecycle isn't blind. Produces a structured snapshot Tony can read before designing the *to-be*, and a knowledge base Wizer can answer questions from.
12
+
13
+ Pepper drives discovery. Peggy edits prose. Tony validates architecture interpretation. Output lands in `.wize/knowledge/document-project/`.
12
14
 
13
15
  ## When to run
14
- - Installer detected `package.json` / `pubspec.yaml` / `Cargo.toml` / `go.mod` + non-trivial `src/` history.
15
- - User explicitly requests `/wize-document-project`.
16
+
17
+ - The installer detected brownfield signals (`package.json`, `src/`, history) and offered to run this. ✓
18
+ - The team is onboarding to a codebase nobody fully owns. ✓
19
+ - A previous re-platforming decision left the docs stale. ✓
20
+
21
+ Skip:
22
+ - Greenfield (nothing to document yet).
23
+ - Repos < 200 LOC.
16
24
 
17
25
  ## Inputs
18
- - The target repo (root)
19
- - `git log --oneline -50`
20
- - Existing READMEs / ARCHITECTURE / docs
26
+
27
+ - The target repo (root).
28
+ - `git log --since="1 year ago" --oneline | wc -l` to scope.
29
+ - Any prior README / ARCHITECTURE / docs that exist.
21
30
 
22
31
  ## Outputs
23
- - `.wize/knowledge/document-project/overview.md`
24
- - `.wize/knowledge/document-project/architecture-snapshot.md`
25
- - `.wize/knowledge/document-project/conventions.md`
26
- - `.wize/knowledge/document-project/open-questions.md`
32
+
33
+ - `.wize/knowledge/document-project/overview.md` — what the project is, who uses it, how big it is.
34
+ - `.wize/knowledge/document-project/architecture-snapshot.md` — current components, integrations, data flow.
35
+ - `.wize/knowledge/document-project/conventions.md` — coding/test/folder conventions actually used.
36
+ - `.wize/knowledge/document-project/dependencies.md` — runtime deps + dev deps + their roles.
37
+ - `.wize/knowledge/document-project/risk-spots.md` — areas of concentrated complexity, undocumented behavior, or known fragility.
38
+ - `.wize/knowledge/document-project/open-questions.md` — things the code doesn't answer; route to humans.
27
39
 
28
40
  ## Steps
29
- 1. **Inventory.** List packages, top-level modules, infra files, entry points.
30
- 2. **Architecture snapshot.** Components and integrations as currently exist. Diagrams welcome.
31
- 3. **Conventions.** Coding/test/folder conventions surfaced from a sample of files.
32
- 4. **Open questions.** Things the code doesn't answer; route to humans.
33
- 5. **Hand off.** Pepper to Wizer: "baseline ready." Then Wizer decides next agent.
34
-
35
- ## Pairing
36
- Peggy Carter edits prose for clarity and structure. Tony Stark may be looped in to confirm architecture interpretation.
41
+
42
+ ### 1. Inventory (Pepper, mechanical)
43
+
44
+ A first pass that requires no judgment, just listing.
45
+
46
+ ```
47
+ ls -la # top-level layout
48
+ cat package.json | jq '.dependencies, .devDependencies, .scripts'
49
+ git log --since="3 months ago" --oneline | wc -l
50
+ git log --pretty=format:"%an" | sort | uniq -c | sort -rn | head
51
+ find . -name "*.test.*" -o -name "*.spec.*" | wc -l
52
+ find . -type f -name "*.md" | head
53
+ ```
54
+
55
+ Write what you found in `overview.md` (no opinions yet).
56
+
57
+ ### 2. Architecture snapshot (Pepper + Tony)
58
+
59
+ Walk the repo top-down. Identify:
60
+ - **Entry points** (CLI, server, worker, build).
61
+ - **Components** (where the boundaries are — by folder, by package, by feature).
62
+ - **Integrations** (databases, queues, external APIs, third-party SDKs).
63
+ - **Data flow** for at least one end-to-end critical path (e.g., a typical user request).
64
+
65
+ Draw or describe. Diagrams in ASCII or Mermaid are fine — the point is shared mental model.
66
+
67
+ Tony validates. If the snapshot misnames a pattern, fix it.
68
+
69
+ ### 3. Conventions (Peggy)
70
+
71
+ Sample 5–10 files across the repo. Note:
72
+ - Naming (camelCase / snake_case / kebab-case).
73
+ - Folder structure (feature-first / layer-first).
74
+ - Test placement (co-located / `__tests__` / `test/`).
75
+ - Comment style (JSDoc / TSDoc / inline).
76
+ - Import ordering (alphabetical / by source).
77
+ - Logging / error handling patterns.
78
+ - Linter / formatter config (eslint, prettier, etc.).
79
+
80
+ Write the convention found, not the convention you'd prefer.
81
+
82
+ ### 4. Dependencies (Pepper)
83
+
84
+ For each runtime dep, write one line:
85
+ - Name, version, what it does in this repo, whether it's load-bearing.
86
+
87
+ Flag:
88
+ - Deps without a clear role.
89
+ - Deps with known CVEs (run `npm audit --omit=dev` and capture).
90
+ - Multiple deps doing the same job (`lodash` + `ramda`, both date libs, etc.).
91
+ - Deps not maintained in > 2 years (link to last release).
92
+
93
+ ### 5. Risk spots (Pepper + Tony)
94
+
95
+ For each, name the area + the symptom + the likely cause + how confident you are:
96
+
97
+ | Area | Symptom | Likely cause | Confidence |
98
+ |---|---|---|---|
99
+ | `src/legacy/billing/` | 2k-line file with no tests | rushed migration in 2024 | high |
100
+ | Webhooks handler | Silent retries | no idempotency layer | medium |
101
+ | Auth middleware | Custom JWT parsing | predates the library that handles it | high |
102
+
103
+ This is *not* a refactor backlog. It's a map. Tony decides what to fix; this just makes the choices visible.
104
+
105
+ ### 6. Open questions (everyone)
106
+
107
+ Things the code does NOT answer:
108
+ - Why was this choice made?
109
+ - What's the SLA?
110
+ - Who's the owner of feature X?
111
+ - Are there secret configs we're missing?
112
+
113
+ Each question gets an owner (a human Pepper will ask). Route back via Wizer.
114
+
115
+ ### 7. Hand-off
116
+
117
+ - Mark all docs `status: baseline`.
118
+ - Tell Wizer: *"Baseline complete. Tony can read it before architecture work; Hill can read it before scoping."*
119
+
120
+ ## Conventions doc — template
121
+
122
+ ```markdown
123
+ ---
124
+ status: baseline
125
+ owner: Pepper Potts + Peggy Carter
126
+ created: YYYY-MM-DD
127
+ sampled: 8 files across src/, tests/, scripts/
128
+ ---
129
+
130
+ # Conventions (observed, not prescribed)
131
+
132
+ ## Naming
133
+ - Files: kebab-case (e.g., `user-profile.ts`).
134
+ - Classes: PascalCase.
135
+ - Functions: camelCase, verb-led.
136
+ - Constants: UPPER_SNAKE_CASE.
137
+
138
+ ## Folder structure
139
+ Feature-first: `src/features/<feature>/{index.ts, api.ts, ui.tsx, *.spec.ts}`.
140
+ Shared utilities in `src/shared/`.
141
+
142
+ ## Tests
143
+ Co-located with the file under test. `.spec.ts` for unit; `.e2e.ts` for end-to-end (separate runner).
144
+
145
+ ## Lint/format
146
+ `eslint.config.mjs` with `airbnb-base` + custom rules in `eslint.local.cjs`. Prettier with 2-space indent.
147
+
148
+ ## Observed deviations
149
+ - `src/legacy/billing/` doesn't follow feature-first; it predates the convention.
150
+ - Some files use `_test.ts` suffix instead of `.spec.ts` — older code.
151
+ ```
152
+
153
+ ## Update mode (how the baseline stays alive)
154
+
155
+ The first run of this workflow produces the **baseline**. Two complementary mechanisms keep it current after:
156
+
157
+ ### 1. Inline updates per story (the daily cadence)
158
+
159
+ Every `wize-dev-story` ends with a Knowledge Update step (step 8). If the story touched any of the 5 axes (architecture, conventions, risk-spots, dependencies, overview), Shuri appends 1–3 dated bullets to the matching `document-project/*.md` file **in the same PR**. Hawkeye verifies in `tea-review`; a touched-but-not-updated story gets a `KN-NN` finding at gate.
160
+
161
+ `wize-quick-dev` has a lighter version: only when a dep bump or a public rename actually shifts the baseline.
162
+
163
+ This produces dated bullets like:
164
+
165
+ ```markdown
166
+ ## 2026-06-12 — E01-S03
167
+ - Conventions: `data-testid="invite-*"` published as public contract.
168
+ - Risk: R-1 (mailer) mitigation confirmed.
169
+ ```
170
+
171
+ ### 2. Sprint-end refresh (the narrative cadence)
172
+
173
+ `wize-refresh-knowledge` runs at sprint end (triggered by `wize-help next` when it detects the sprint emptied). Pepper + Peggy consolidate the inline bullets into the narrative prose of each axis file, demote stale claims to a "Deprecated" section, freeze a sprint snapshot in `_history/{YYYY-Qn}/sprint-{N}.md`, and stamp `last_refreshed` in each file.
174
+
175
+ Result: the baseline reads like a single coherent document, not a chronological log. New devs can read it linearly and form a mental model. Forensics readers (six months later, asking "when did X change?") consult `_history/`.
176
+
177
+ ### File frontmatter convention
178
+
179
+ Each `document-project/*.md` file ships with:
180
+
181
+ ```yaml
182
+ ---
183
+ status: baseline
184
+ owner: Pepper Potts + Peggy Carter
185
+ created: 2026-04-02
186
+ last_refreshed: 2026-06-25
187
+ sampled: "wkly + sprint refresh"
188
+ ---
189
+ ```
190
+
191
+ `last_refreshed` tells the reader how much to trust the file vs the inline bullets accumulating since.
192
+
193
+ ## Anti-patterns Pepper rejects
194
+
195
+ - "TODO: document later." The baseline IS the documentation pass; later doesn't come.
196
+ - Romanticizing the code ("clean, modular"). Describe what you see; let Tony judge.
197
+ - Architecture diagrams that show what the team *wishes* exists. Diagram the real state.
198
+ - Risk-spot table with no confidence label. Without confidence, readers can't act.
199
+ - Open questions with no owner. They never get answered.
200
+ - Treating the baseline as one-shot. The mode + refresh exist precisely because point-in-time docs lie within weeks.
201
+
202
+ ## Hand-off
203
+
204
+ > Baseline is in `.wize/knowledge/document-project/`. Three risk spots flagged. Five open questions routed to the humans named per question. Tony can read this before drawing `architecture.md`; Hill can scope the PRD knowing what's already there.
@@ -3,25 +3,164 @@ code: wize-prfaq
3
3
  name: PR/FAQ
4
4
  phase: 1-analysis
5
5
  owner: wize-agent-analyst # Pepper Potts
6
- status: stub
6
+ status: ready
7
7
  ---
8
8
 
9
- # PR/FAQ
9
+ # PR/FAQ — Working Backwards
10
10
 
11
- **Goal.** Force alignment by drafting the "future press release + FAQ" before building. Amazon-style.
11
+ **Goal.** Force alignment by writing the *future* press release and a tight FAQ **before** anyone builds anything. Amazon-style. If you can't write a compelling PR, you don't have a product yet.
12
+
13
+ Pepper drives. Peggy polishes prose. Output lands in `.wize/planning/prfaq.md`.
14
+
15
+ ## When to run
16
+
17
+ Run this:
18
+ - New product or new strategic feature.
19
+ - The team disagrees on the user-visible value.
20
+ - You're about to commit > 1 month of engineering.
21
+
22
+ Skip this:
23
+ - Bug fix, copy edit, dependency bump → use `wize-quick-dev`.
24
+ - The brief already crisply names the user-visible value and the team is aligned → write the PRD directly.
12
25
 
13
26
  ## Inputs
27
+
14
28
  - `.wize/planning/brief.md`
29
+ - `.wize/planning/research.md` (optional)
15
30
 
16
31
  ## Outputs
32
+
17
33
  - `.wize/planning/prfaq.md`
18
34
 
35
+ ## Structure (the Amazon shape)
36
+
37
+ A PR/FAQ has two parts: the **PR** (≤ 1 page) and the **FAQ** (≤ 2 pages).
38
+
39
+ ### The PR (write this first)
40
+
41
+ | Section | Length | What goes in it |
42
+ |---|---|---|
43
+ | **Headline** | 1 line | Audience + benefit + product name. Reader-understandable. |
44
+ | **Sub-headline** | 1 line | The non-obvious part of the benefit. |
45
+ | **Summary paragraph** | 3–5 sentences | What it is, who it's for, what changes, where to get it. |
46
+ | **Problem paragraph** | 3–5 sentences | Why this matters *now*, evidence the pain is real. |
47
+ | **Solution paragraph** | 3–5 sentences | How the product solves the problem. Concrete, not abstract. |
48
+ | **Internal quote** | 1 quote | A leader (founder/CEO) saying why this matters strategically. |
49
+ | **How it works** | 3 sentences | Three lines max. Not implementation — the *user* mental model. |
50
+ | **Customer quote** | 1 quote | An imagined real user saying the thing they'd say. Specific. |
51
+ | **How to get started** | 2 lines | One sentence: where + how. One sentence: what's first. |
52
+
53
+ If you find yourself writing more, cut. The discipline is the point.
54
+
55
+ ### The FAQ
56
+
57
+ 5–10 questions a sharp reader would actually ask. Crisp answers.
58
+
59
+ **Mandatory questions** (always include):
60
+
61
+ 1. Who exactly is this for?
62
+ 2. What does this replace today?
63
+ 3. Why now? (Why not last year, why not next year?)
64
+ 4. How is this different from {{nearest competitor}}?
65
+ 5. What's *out* of scope at launch?
66
+ 6. What does success look like in 6 months? In 18 months?
67
+ 7. What are the top three risks?
68
+
69
+ **Optional questions** (include when relevant):
70
+
71
+ 8. What's the pricing model?
72
+ 9. How does this work for non-English locales / accessibility / offline?
73
+ 10. What does the regulatory story look like?
74
+ 11. What's the launch sequence (geos / segments / preview)?
75
+
19
76
  ## Steps
20
- 1. **Headline + subhead.** One sentence each. Reader must understand.
21
- 2. **Quote (customer).** Why does this matter to a real user?
22
- 3. **Quote (internal leader).** Why does this matter to the business?
23
- 4. **How it works.** Three paragraphs max.
24
- 5. **FAQ.** 5–10 most likely sharp questions, with crisp answers.
25
-
26
- ## When to skip
27
- Skip this workflow for small fixes or features whose audience is obvious. Use for net-new products or strategic bets.
77
+
78
+ ### 1. Frame and freeze the audience
79
+
80
+ Write the audience line at the top of your draft and don't move it. Every sentence is judged against "does this matter to the audience?"
81
+
82
+ ### 2. PR before FAQ
83
+
84
+ Always. The discipline of writing the PR exposes vague thinking. The FAQ comes after, when you're forced to defend it.
85
+
86
+ ### 3. Show, don't market
87
+
88
+ No "world-class," "revolutionary," "AI-powered" without a noun next to it. If you can replace the adjective with another and lose nothing, delete it.
89
+
90
+ ### 4. Numbers, not adjectives
91
+
92
+ Every claim has a unit. "Reduces onboarding from 35 minutes to 7" beats "reduces onboarding significantly."
93
+
94
+ ### 5. Pre-mortem question
95
+
96
+ Before sending, write the answer to: *"It's six months after launch and it failed. Why?"*. If the FAQ doesn't already cover the failure mode, add the question.
97
+
98
+ ### 6. Adversarial review
99
+
100
+ Run `wize-review-adversarial` on the draft. Cut what survives only "trust me."
101
+
102
+ ### 7. Hand off
103
+
104
+ The PR/FAQ is **not** the PRD. It's a strategic alignment doc. Marker `status: aligned`. Hill writes the PRD from this + the brief.
105
+
106
+ ## Output template
107
+
108
+ ```markdown
109
+ ---
110
+ status: draft | aligned
111
+ owner: Pepper Potts
112
+ created: YYYY-MM-DD
113
+ ---
114
+
115
+ # PR/FAQ — {{project_name}}
116
+
117
+ ## Press Release
118
+
119
+ **Headline:** {{audience}} can now {{benefit}} with {{product_name}}.
120
+ **Sub-headline:** {{the non-obvious twist}}.
121
+
122
+ {{summary paragraph}}
123
+
124
+ {{problem paragraph}}
125
+
126
+ {{solution paragraph}}
127
+
128
+ > "{{quote}}" — {{internal leader title}}
129
+
130
+ How it works: {{three sentences}}
131
+
132
+ > "{{customer quote}}" — {{persona}}
133
+
134
+ Get started: {{where + first step}}
135
+
136
+ ## FAQ
137
+
138
+ **Q1. Who exactly is this for?**
139
+
140
+
141
+ **Q2. What does this replace today?**
142
+
143
+
144
+ **Q3. Why now?**
145
+
146
+
147
+ (…through Q10 as needed)
148
+
149
+ ## Pre-mortem
150
+ It's six months after launch and it failed. Why?
151
+ 1. …
152
+ 2. …
153
+ 3. …
154
+ ```
155
+
156
+ ## Anti-patterns Pepper rejects
157
+
158
+ - PR longer than one page. Cut.
159
+ - A press release with no user. ("Wize Foo unlocks synergies.") — say *who*.
160
+ - A FAQ that dodges the hard question. The reader will ask it; better in your draft than in a launch review.
161
+ - Pricing left vague when it's the load-bearing question.
162
+ - Customer quote that sounds like marketing copy. Rewrite as a person speaking.
163
+
164
+ ## Hand-off
165
+
166
+ > PR/FAQ is in `.wize/planning/prfaq.md`. Aligned with leadership. Hill, the PRD scope should anchor on FAQ Q5 (in/out). Mantis, the customer quote is your North Star for UX.