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
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.
|
|
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.
|
|
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:
|
|
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
|
|
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
|
-
|
|
15
|
-
-
|
|
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
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
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
|
-
|
|
24
|
-
- `.wize/knowledge/document-project/
|
|
25
|
-
- `.wize/knowledge/document-project/
|
|
26
|
-
- `.wize/knowledge/document-project/
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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:
|
|
6
|
+
status: ready
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# PR/FAQ
|
|
9
|
+
# PR/FAQ — Working Backwards
|
|
10
10
|
|
|
11
|
-
**Goal.** Force alignment by
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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.
|