wize-dev-kit 0.9.0 → 0.10.0
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 +16 -0
- package/package.json +1 -1
- package/src/core-skills/module.yaml +3 -0
- package/src/core-skills/wize-grill/skill.md +75 -0
- package/src/core-skills/wize-spec/skill.md +1 -1
- package/src/method-skills/1-analysis/wize-product-brief/workflow.md +1 -1
- package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +2 -0
- package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-correct-course/workflow.md +5 -3
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +19 -1
- package/src/orchestrator-skills/wize-help/skill.md +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.10.0] — 2026-07-31
|
|
9
|
+
|
|
10
|
+
Entrada da demanda ganha entrevista estruturada (**`wize-grill`**, adaptado do princípio grill-me) e o loop de implementação ganha verificação automática com guardas de ciclo. Suite verde (246 testes, validate 74 arquivos).
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`wize-grill`** (nova skill core) — entrevista exaustiva do usuário até entendimento compartilhado, antes de redigir briefs, PRDs, epics, stories ou planos. 5 regras: uma pergunta por vez · toda pergunta traz resposta recomendada · fatos são buscados no repo/`.wize/` (só decisões vão ao usuário) · árvore de decisão em ordem de dependência · nada de redigir antes da confirmação. Question ladder de 7 degraus (problema → outcome → audiência → escopo → constraints → riscos → validação) mapeada aos campos dos artefatos; profundidade calibrada por classe (Quick Dev nunca é grelhado; incremental usa passe curto; new value usa a escada inteira); atalho de momentum (3 "como você recomenda" seguidos → modo batch). Sem artefato próprio: decisões vão para os campos do artefato alvo, pendências viram Open questions com dono.
|
|
15
|
+
- **`wize-dev-story`** — Step 7.5 "Loop verification": auto-check antes de declarar o loop concluído (evidência de iteração no `git log`, mapa AC→teste completo, todos os testes de AC verdes) com retorno ao passo correto em caso de falha, e **max-cycles guard** (mesmo AC falhando 3+ ciclos → escala pra Wizer). Step 11 ganha **loop-back protocol** para findings de gate (blocking → volta ao Red; non-blocking → corrige no mesmo PR) com max-retry guard.
|
|
16
|
+
- **`wize-correct-course`** — auto-trigger pelo max-cycles guard e monitor de staleness, além da invocação manual.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **`wize-help`** — sugere `wize-grill` (sempre sugestivo, nunca imposto): no Step 2 quando a demanda difusa ruma a um passo de autoria, no Step 4 como oferta, e em `/wize-help mission` antes de emitir um contrato oco (Objective/Scope/ACs sem resposta no estado do projeto).
|
|
21
|
+
- **`wize-product-brief` / `wize-create-prd` / `wize-create-epics-and-stories`** — ganchos de grill nos pontos de autoria: mais de uma decisão aberta → oferecer entrevista em vez de chutar; respostas caem direto nos campos do artefato.
|
|
22
|
+
- **`wize-spec`** — modo guided referencia o protocolo grill (uma pergunta por turno, recomendação anexada).
|
|
23
|
+
|
|
8
24
|
## [0.9.0] — 2026-07-14
|
|
9
25
|
|
|
10
26
|
A cadeia do WDK passa a operar por **mission contracts** — cada etapa declara objetivo, fontes de verdade, escopo, critérios de aceite, contratos de execução/validação e persistência em `.wize/`, no formato que modelos de longo horizonte executam melhor. Suite verde (246 testes, validate 73 arquivos).
|
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.10.0",
|
|
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",
|
|
@@ -13,6 +13,9 @@ skills:
|
|
|
13
13
|
- code: wize-advanced-elicitation
|
|
14
14
|
name: "Advanced Elicitation"
|
|
15
15
|
description: "Structured technique stack (laddering, 5-why, SCAMPER) callable by any agent."
|
|
16
|
+
- code: wize-grill
|
|
17
|
+
name: "Grill"
|
|
18
|
+
description: "Exhaustive one-question-at-a-time interview to reach shared understanding before drafting briefs, PRDs, epics, stories, or plans."
|
|
16
19
|
- code: wize-brainstorming
|
|
17
20
|
name: "Brainstorming"
|
|
18
21
|
description: "Divergent-then-convergent ideation; produces idea-pool.md."
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: wize-grill
|
|
3
|
+
name: Grill
|
|
4
|
+
module: core
|
|
5
|
+
status: ready
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Grill
|
|
9
|
+
|
|
10
|
+
**Goal.** Interview the user exhaustively about a demand until both sides reach **shared understanding** — before any artifact is drafted. Sharper answers make a sharper brief, PRD, epic, story, or plan. Grill is an input-quality tool, not an artifact of its own.
|
|
11
|
+
|
|
12
|
+
Any persona about to author an artifact can invoke it: Pepper before a brief, Maria Hill before a PRD, Tony before epics/stories/architecture, Wizer when a demand arrives fuzzy. Wizer also **suggests** it from `/wize-help` — always suggest, never force.
|
|
13
|
+
|
|
14
|
+
## The five rules
|
|
15
|
+
|
|
16
|
+
1. **One question at a time.** Ask, then wait for the answer. A batch of questions is bewildering and produces shallow answers.
|
|
17
|
+
2. **Every question ships with a recommendation.** State your recommended answer and a one-line reason. The user confirms or corrects — far cheaper than answering from scratch.
|
|
18
|
+
3. **Facts are looked up; decisions are asked.** If the answer lives in the repo, `.wize/`, or the environment (stack, existing behavior, conventions, prior artifacts), fetch it — never ask. Only genuine decisions — trade-offs, priorities, scope calls — go to the user.
|
|
19
|
+
4. **Walk the decision tree in dependency order.** Resolve upstream decisions before the downstream ones that depend on them. Don't ask about scope before the problem is agreed.
|
|
20
|
+
5. **No drafting until confirmed.** Close with a compact summary of every decision made and ask for confirmation of shared understanding. Only then hand back to the authoring workflow.
|
|
21
|
+
|
|
22
|
+
## Question ladder (dependency order)
|
|
23
|
+
|
|
24
|
+
Climb top-down; **skip any rung an existing artifact already answers** (brief, trigger map, PRD, architecture — check first, rule 3).
|
|
25
|
+
|
|
26
|
+
| Rung | Resolves | Feeds |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| 1. Problem | What hurts, for whom, what's the evidence it hurts | Brief vision / story context |
|
|
29
|
+
| 2. Outcome | The observable result that means "solved" — metric, target, deadline | Success criteria / PRD goals |
|
|
30
|
+
| 3. Audience | Primary user (role + JTBD), who else is affected | Brief audience / trigger map |
|
|
31
|
+
| 4. Scope | What's in, what's explicitly out, non-goals | PRD scope table / story restrictions |
|
|
32
|
+
| 5. Constraints | Deadline, budget, compliance, integrations, protected behaviors | Brief constraints / restrictions |
|
|
33
|
+
| 6. Risks & assumptions | What, if wrong, changes the plan | PRD assumptions / risk profile |
|
|
34
|
+
| 7. Validation | How we'll verify — which checks, which ACs, what "done" means | ACs / validation contract |
|
|
35
|
+
|
|
36
|
+
When an answer comes back vague, apply a technique from `wize-advanced-elicitation` (5 Whys, laddering, premortem) to that one rung before moving on.
|
|
37
|
+
|
|
38
|
+
## Calibration — how hard to grill
|
|
39
|
+
|
|
40
|
+
| Demand class | Depth |
|
|
41
|
+
|---|---|
|
|
42
|
+
| **Quick Dev** (bug fix, copy edit, dep bump) | Don't grill. One clarifying question max — grilling a typo fix is theater. |
|
|
43
|
+
| **Full Lifecycle, incremental** (new story in a known epic) | Short pass: rungs 4, 5, 7 only — the upstream rungs live in the PRD. |
|
|
44
|
+
| **Full Lifecycle, new value** (new feature, new product, new plan) | Full ladder. |
|
|
45
|
+
|
|
46
|
+
Momentum shortcut: after **three consecutive "as you recommend"** answers, switch to batch mode — state the remaining recommendations as one list and ask for a single confirmation. Respect the user's time; the point is clarity, not ceremony.
|
|
47
|
+
|
|
48
|
+
## Where answers land
|
|
49
|
+
|
|
50
|
+
Grill produces no separate file. Route each decision to its home:
|
|
51
|
+
|
|
52
|
+
- **Decisions** → the target artifact's fields (brief sections, PRD scope/ACs, story restrictions/validation contract) — in the artifact's own words, not chat quotes.
|
|
53
|
+
- **Unresolved questions** → the artifact's *Open questions*, each with owner + priority (`blocker` / `important` / `nice-to-know`).
|
|
54
|
+
- **Load-bearing trade-offs** → the artifact's decision log (or `DECISIONS.md` / an ADR when architectural).
|
|
55
|
+
|
|
56
|
+
## Stop conditions
|
|
57
|
+
|
|
58
|
+
Stop grilling when **any** of these hits:
|
|
59
|
+
|
|
60
|
+
- Every relevant rung is resolved or explicitly parked as an open question with an owner.
|
|
61
|
+
- The user says "enough" / "just go" — park the rest as open questions and proceed with your recommendations, flagged as assumptions.
|
|
62
|
+
- The summary is confirmed — shared understanding reached.
|
|
63
|
+
|
|
64
|
+
## Anti-patterns
|
|
65
|
+
|
|
66
|
+
- Multiple questions in one message.
|
|
67
|
+
- Asking a fact `grep` or `.wize/` would answer.
|
|
68
|
+
- A question without a recommendation ("So… what do you want?").
|
|
69
|
+
- Grilling a Quick Dev demand.
|
|
70
|
+
- Re-opening a confirmed decision without new information.
|
|
71
|
+
- Continuing to interrogate after confirmation — grill is a phase, not a personality.
|
|
72
|
+
|
|
73
|
+
## Hand-off
|
|
74
|
+
|
|
75
|
+
> Shared understanding confirmed: {n} decisions captured, {m} open questions parked with owners. Handing back to {persona} / `{workflow}` to draft the {artifact}.
|
|
@@ -50,7 +50,7 @@ Inside the spec folder:
|
|
|
50
50
|
4. When input is mixed (brain dump, transcript, email), sort claims using the three-lens load-bearing test and route to the kernel field or a companion.
|
|
51
51
|
5. Distill into the five-field kernel using `assets/spec-template.md`. When input is rich, extract directly. When input is sparse, choose:
|
|
52
52
|
- **express** — best-effort distill, every gap becomes an `open_questions[]` entry
|
|
53
|
-
- **guided** — walk the five fields with the user one at a time
|
|
53
|
+
- **guided** — walk the five fields with the user one at a time, `wize-grill` style: one question per turn, recommendation attached
|
|
54
54
|
6. Write lean: every sentence must earn its place.
|
|
55
55
|
7. If input is genuinely too thin (e.g. "an app for hikers" with no context), stop and suggest `wize-product-brief` or `wize-create-prd`.
|
|
56
56
|
|
|
@@ -28,7 +28,7 @@ Pepper drives. Peggy edits prose. Output lands in `.wize/planning/brief.md`.
|
|
|
28
28
|
|
|
29
29
|
### 1. Frame in one paragraph
|
|
30
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.
|
|
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. One open decision → ask one clarifying question, then write. More than one → offer a `wize-grill` pass (one question at a time, recommendation attached) and interview until shared understanding; answers land straight in the brief fields below, unresolved ones in *Open questions*.
|
|
32
32
|
|
|
33
33
|
### 2. Audience
|
|
34
34
|
|
|
@@ -12,6 +12,8 @@ status: ready
|
|
|
12
12
|
|
|
13
13
|
Maria Hill drives. Peggy edits prose. Output lands in `.wize/planning/prd.md`.
|
|
14
14
|
|
|
15
|
+
Before drafting: if goals, scope, or ACs would need guessing beyond what the brief + trigger map answer, offer a `wize-grill` pass with the user first — decisions land in the PRD fields, leftovers in *Open questions*. Don't guess scope; ask.
|
|
16
|
+
|
|
15
17
|
## Inputs
|
|
16
18
|
|
|
17
19
|
- `.wize/planning/brief.md` (vision, audience, success criteria).
|
|
@@ -12,6 +12,8 @@ status: ready
|
|
|
12
12
|
|
|
13
13
|
Tony drives. Output lands in `.wize/solutioning/epics/` and `.wize/solutioning/stories/`.
|
|
14
14
|
|
|
15
|
+
When slicing raises decisions the PRD doesn't answer — priority order, sequencing, protected behaviors, what's out of a story — offer a short `wize-grill` pass with the user instead of guessing. Decisions land in the epic/story fields; unresolved ones become open questions with owners.
|
|
16
|
+
|
|
15
17
|
## Inputs
|
|
16
18
|
|
|
17
19
|
Read central docs first, then expand by dependency — don't load unrelated files for padding:
|
|
@@ -14,10 +14,12 @@ Maria Hill chairs. Wizer is on call for cross-cutting decisions. The human alway
|
|
|
14
14
|
|
|
15
15
|
## When to run
|
|
16
16
|
|
|
17
|
-
- `wize-sprint-status` flagged a risk:
|
|
18
|
-
- The team says "we won
|
|
19
|
-
- A story
|
|
17
|
+
- `wize-sprint-status` flagged a risk: "slipping" or "at risk".
|
|
18
|
+
- The team says "we won't make it" during a stand-up.
|
|
19
|
+
- A story's TEA gate came back as `FAIL` mid-sprint.
|
|
20
20
|
- An external event (incident, vendor outage) consumed capacity.
|
|
21
|
+
- **Automatic trigger:** any skill that completes step 7.5 (loop verification) and hits the max-cycles guard escalates to Wizer, who runs this skill.
|
|
22
|
+
- **Staleness monitor:** if `wize-sprint-status` has not been updated in 2+ days, Wizer auto-runs this skill on session start (detected in step 1).
|
|
21
23
|
|
|
22
24
|
## Inputs
|
|
23
25
|
|
|
@@ -91,6 +91,18 @@ feat(invite): validate email per AC-02-1 / AC-02-2
|
|
|
91
91
|
|
|
92
92
|
Until every AC has at least one test + minimum code that makes it pass.
|
|
93
93
|
|
|
94
|
+
### 7.5. Loop verification (auto-check)
|
|
95
|
+
|
|
96
|
+
Before declaring the loop done, run these checks:
|
|
97
|
+
|
|
98
|
+
| Check | How | Fail → |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| **Evidence of iteration** | `git log --oneline` shows ≥2 commits with AC IDs (skip if story has only 1 AC) | Return to step 2 |
|
|
101
|
+
| **AC-to-test mapping** | Every AC in the story file has a corresponding test case name | Return to step 3 (Red) |
|
|
102
|
+
| **All AC tests green** | `npx vitest run --reporter=verbose` (or equivalent) — grep output for each AC's test name | Return to step 4 (Green) |
|
|
103
|
+
|
|
104
|
+
**Max-cycles guard.** If the same AC cycles through Red→Green→Refactor 3+ times without staying green, stop and escalate to Wizer: the test design may be wrong, the AC may be mis-sized, or the approach may need Tony.
|
|
105
|
+
|
|
94
106
|
### 8. Knowledge update (inline, ~60s)
|
|
95
107
|
|
|
96
108
|
Before opening the PR, ask: **did this story touch any of the 5 baseline axes** documented in `.wize/knowledge/document-project/`?
|
|
@@ -137,7 +149,13 @@ PR description includes:
|
|
|
137
149
|
|
|
138
150
|
### 11. Address gate findings
|
|
139
151
|
|
|
140
|
-
If `tea-review` flags issues, fix them in the same PR or open a follow-up if the story has shipped a separate value-bearing slice.
|
|
152
|
+
If `tea-review` or `tea-gate` flags issues, fix them in the same PR or open a follow-up if the story has shipped a separate value-bearing slice.
|
|
153
|
+
|
|
154
|
+
**Loop-back protocol:**
|
|
155
|
+
1. Read each finding's `severity` and `blocking` flag.
|
|
156
|
+
2. For each `blocking: true` finding → return to step 3 (Red) for the affected AC.
|
|
157
|
+
3. For each `blocking: false` finding → log in story `notes` and fix in same PR before re-submitting to gate.
|
|
158
|
+
4. **Max-retry guard:** if the same story cycles through gate → fix → gate 3+ times, stop and escalate to Wizer. The story may be mis-sized, the test design may be wrong, or the ACs may need renegotiation with Hill.
|
|
141
159
|
|
|
142
160
|
## Security + perf during implementation
|
|
143
161
|
|
|
@@ -50,6 +50,8 @@ Read these if they exist (absence is information too):
|
|
|
50
50
|
|
|
51
51
|
Never pick Quick Dev to dodge writing artifacts. If the demand needs an AC, it is Full Lifecycle. When unsure, ask one question rather than guess the class.
|
|
52
52
|
|
|
53
|
+
**Fuzzy demand → suggest a grill.** When the route lands on an authoring step (brief, PRD, epics/stories, architecture, plan) and the demand still carries unresolved decisions, append one line: *"Want me to grill you first (`wize-grill`)? Sharper answers, sharper {artifact}."* Suggest, never force — and never for Quick Dev.
|
|
54
|
+
|
|
53
55
|
Otherwise apply this heuristic top-down; stop at the first match:
|
|
54
56
|
|
|
55
57
|
| # | State | Next step |
|
|
@@ -108,11 +110,11 @@ For `mission`, emit the filled **Mission contract** (see the section below) from
|
|
|
108
110
|
|
|
109
111
|
## Step 4 — offer to act
|
|
110
112
|
|
|
111
|
-
End with one of: "Want me to call {persona}?" · "Want me to baseline the repo first?" (brownfield, no document-project) · "Want me to convene party-mode with {p1} + {p2}?" (cross-cutting decision).
|
|
113
|
+
End with one of: "Want me to call {persona}?" · "Want me to baseline the repo first?" (brownfield, no document-project) · "Want me to convene party-mode with {p1} + {p2}?" (cross-cutting decision) · "Want me to grill you first (`wize-grill`)?" (fuzzy demand heading into an authoring step).
|
|
112
114
|
|
|
113
115
|
## Mission contract (`/wize-help mission`)
|
|
114
116
|
|
|
115
|
-
When asked for a mission, fill this from project state and hand it to the executing persona. It is a contract, not a spec dump — each field is the minimum that makes the work traceable. Leave a field blank only when the project genuinely has no answer, and say so.
|
|
117
|
+
When asked for a mission, fill this from project state and hand it to the executing persona. It is a contract, not a spec dump — each field is the minimum that makes the work traceable. Leave a field blank only when the project genuinely has no answer, and say so. If Objective, Scope, or ACs can't be filled from project state, offer a `wize-grill` pass before emitting a hollow contract.
|
|
116
118
|
|
|
117
119
|
```
|
|
118
120
|
MISSION CONTRACT — {demand in one line}
|