wize-dev-kit 0.8.1 → 0.9.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/AGENTS.md CHANGED
@@ -2,11 +2,27 @@
2
2
 
3
3
  This repo is wired with the [`wize-dev-kit`](https://www.npmjs.com/package/wize-dev-kit).
4
4
  Detailed artifacts live under `.wize/`. The agents below are activated through your AI IDE
5
- using slash commands (Codex, Cursor, Windsurf, Antigravity all read this file).
5
+ using slash commands (Claude Code, Codex, Cursor, Windsurf, Antigravity all read this file).
6
+
7
+ ## Operating context
8
+
9
+ Treat `.wize/`, this `AGENTS.md`, and the installed `wize-*` skills as your operating
10
+ instructions and persistent memory — not background reading. Read project state before
11
+ acting; write what you change back into `.wize/` so the next session inherits it.
12
+
13
+ Before editing, classify the demand via `/wize-help`: **Quick Dev** (small, predictable,
14
+ ~≤1h, no new feature / architecture / UX / security) or **Full Lifecycle**. Never pick
15
+ Quick Dev just to skip artifacts.
16
+
17
+ When a skill fans out to subagents, match the model tier to the task: a lightweight tier
18
+ for mechanical work (reads, greps, formatting, short summaries), the standard tier for
19
+ implementation and review, a high-capability tier only for architecture, critical
20
+ decisions, or final adversarial review.
6
21
 
7
22
  ## Roster
8
23
 
9
24
  - **Hawkeye** (`wize-agent-test-architect`) — Test Architect (TEA). |
25
+ - **red-teamer** (`wize-sec-red-teamer`) — Security Overlay — Red-Teamer. |
10
26
  - **Wizer** (`wize-orchestrator`) — Orchestrator / Knowledge Base. |
11
27
  - **Shuri** (`wize-agent-dev`) — Senior Developer. |
12
28
  - **Nick Fury** (`wize-agent-solution-strategist`) — Solution Strategy / Tech Vision. |
package/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.9.0] — 2026-07-14
9
+
10
+ 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).
11
+
12
+ ### Added
13
+
14
+ - **`/wize-help mission`** — novo modo do Wizer: emite um mission contract preenchido a partir do estado do projeto (classe Quick Dev/Full Lifecycle, objetivo, fontes de verdade, escopo & limites, ACs, contratos de execução e validação, persistência, tier de subagentes), pronto para entregar à persona executora. Para Quick Dev, colapsa para a forma mínima.
15
+ - **`wize-dev-story`** — seção "Operating contract" (inspecionar antes de editar, reuse ladder, evidência real de comandos, nunca parar no planejamento) e **Final report** estruturado em 9 itens (rota, resumo, arquivos, mapa AC→teste, comandos + resultados, artefatos `.wize/`, decisões, riscos residuais, próxima ação). Pre-PR check exige mapa AC→teste completo e nomeia explicitamente qualquer check que não rodou e por quê.
16
+ - **`wize-quick-dev`** — "Operating contract (light)" com re-roteamento obrigatório para Full Lifecycle se a mudança crescer além de ~1h ou tocar feature/arquitetura/UX/segurança, e **Done report** compacto de 4 linhas.
17
+ - **`wize-create-epics-and-stories` / `wize-create-story`** — templates de story ganham campos de contrato: **Sources of truth**, **Restrictions** (out-of-scope + comportamentos protegidos + compatibilidade + segurança), **Validation contract** (mapa AC→teste + checks obrigatórios) e **Done means**. Story sem esses campos não está ready-for-dev.
18
+ - **Seleção de tier de modelo em fan-out** — persona do Wizer e AGENTS.md orientam a casar o tier do modelo com a tarefa ao despachar subagentes (leve para trabalho mecânico, padrão para implementação/revisão, alto só para arquitetura/decisões críticas/revisão adversarial final), passando o tier explicitamente quando o harness permitir. Apenas tiers genéricos — sem nomes de modelos de vendor no kit.
19
+
20
+ ### Changed
21
+
22
+ - **`wize-help` Step 2** — a triagem quick-dev deixou de ser um "atalho" e virou decisão de contrato explícita (tabela Quick Dev vs Full Lifecycle + "nunca use Quick Dev para fugir dos artefatos; em dúvida, pergunte").
23
+ - **`renderAgentsMd` + `AGENTS.md`** — o AGENTS.md gerado ganha bloco "Operating context": tratar `.wize/` + AGENTS.md + skills como instrução operacional e memória persistente (file-first), classificar a demanda via `/wize-help` antes de editar, e a nota de tier de subagentes. `AGENTS.md` da raiz regenerado pelo emitter (roster agora inclui a persona `red-teamer`, que faltava).
24
+
8
25
  ## [0.8.1] — 2026-07-12
9
26
 
10
27
  Release de alinhamento: documentação ↔ realidade, fecho do ciclo ágil e `/wize-help` corrigido. Sem novas features de produto; suite verde (246 testes, validate 73 arquivos).
package/README.md CHANGED
@@ -244,3 +244,25 @@ Wize Development Kit is an **independent adaptation** — not affiliated with or
244
244
  ## License
245
245
 
246
246
  MIT — see [`LICENSE`](LICENSE).
247
+
248
+
249
+ ---
250
+
251
+ ## 🤖 Pré-requisito para colaboração com Agentes de IA
252
+
253
+ Antes de abrir o repositório em qualquer agente (Claude Code, Cursor, Codex, Antigravity, OpenCode, Kimi, Qwen, …), instale o Wize Dev Kit:
254
+
255
+ ```bash
256
+ npx wize-dev-kit@latest install
257
+ ```
258
+
259
+ Por quê:
260
+
261
+ - Injeta skills `/wize-*` (analyst, PM, architect, dev, TEA, orchestrator) que dão estrutura ao lifecycle do projeto
262
+ - Cria/atualiza baseline brownfield em `.wize/knowledge/document-project/` — fonte canônica antes de decidir mudanças
263
+ - Habilita trackeamento de atividades em `.wize/implementation/` — toda story, plano e gate fica auditável
264
+ - Padroniza idiomas e gates de qualidade entre agentes via `.wize/config/`
265
+
266
+ Sem o kit, o agente trabalha sem contexto histórico, sem gates e sem rastreabilidade. Premissa válida para todos os agentes de IA usados no projeto.
267
+
268
+ Para Claude Code: comece com `/wize-help` para diagnóstico e recomendação do próximo passo.
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.8.1",
4
+ "version": "0.9.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",
@@ -14,9 +14,13 @@ Tony drives. Output lands in `.wize/solutioning/epics/` and `.wize/solutioning/s
14
14
 
15
15
  ## Inputs
16
16
 
17
- - `.wize/planning/prd.md`
17
+ Read central docs first, then expand by dependency — don't load unrelated files for padding:
18
+
19
+ - `AGENTS.md` + `.wize/config/project.toml` — active profiles, languages, conventions.
20
+ - `.wize/planning/prd.md` — the AC source (never reword ACs downstream).
18
21
  - `.wize/solutioning/architecture.md`
19
22
  - `.wize/planning/ux/ux-design/` (every story references one or more screens)
23
+ - `.wize/knowledge/document-project/` — brownfield baseline, if present.
20
24
 
21
25
  ## Outputs
22
26
 
@@ -105,25 +109,38 @@ linked_acs: [AC-02-1, AC-02-2]
105
109
  ## Context
106
110
  Comes right after sign-up. The user lands here with no team yet. The screen is the moment-of-truth from S1: if the user invites a teammate here, the product earned its value moment.
107
111
 
112
+ ## Sources of truth (Shuri reads before coding)
113
+ - `AGENTS.md` + `.wize/config/project.toml` · `.wize/knowledge/document-project/*`.
114
+ - `prd.md` (AC source) · `architecture.md` · `ux-design/onboarding-step-1.md` · parent epic `01-onboarding.md`.
115
+ - The TEA test contract for this story · related code + tests already on this path.
116
+
108
117
  ## Acceptance criteria
109
118
  - **AC-02-1:** Given a new admin on `/onboarding`, When they enter a valid email and click "Send invite", Then a `teammate_invited` event fires and the screen advances to "Invite sent" within 1s.
110
119
  - **AC-02-2:** Given an invalid email, When the user blurs the field, Then error text appears (200ms) identifying which rule failed.
111
120
 
112
- ## Out of scope
113
- - Bulk invite (multiple emails) — separate story E01-S07.
114
- - Custom invite message — defer to E02-S03.
121
+ ## Restrictions
122
+ - **Out of scope:** bulk invite → E01-S07; custom invite message → E02-S03.
123
+ - **Protected behaviors:** existing sign-up + session flow must not change.
124
+ - **Compatibility:** `(team_id, email)` idempotency key — don't break existing invite rows.
125
+ - **Security:** validate email at the server boundary; auth context required on `inviteTeammate`.
115
126
 
116
127
  ## Notes for Shuri (Dev)
117
-
118
128
  - Touch points: `app/(onboarding)/invite/page.tsx`, new server action `inviteTeammate`, `lib/email/send-invite.ts`.
119
129
  - Reuse `Button`, `Input`, `Banner` from design system.
120
130
  - Add `data-testid="invite-form"`, `"invite-email"`, `"invite-cta"` (Hawkeye depends on these).
121
131
 
122
- ## Notes for Hawkeye (TEA)
132
+ ## Validation contract
133
+ - **AC → test:** AC-02-1 → E2E `invite happy path` + unit `validateInviteEmail`; AC-02-2 → unit `invalid email` + component error-state.
134
+ - **Required checks:** the unit/integration/E2E split Hawkeye declares below, plus lint, format, type-check, build. Authz asserted on the server action.
135
+ - **States:** loading, empty, error rendered and asserted.
123
136
 
137
+ ## Notes for Hawkeye (TEA)
124
138
  - Tests required: 2 unit (validation), 1 integration (server action calls mailer with right args), 1 E2E (happy path on Playwright).
125
139
  - Mocks: outbound email via MSW; auth context via fixture.
126
140
  - NFR sample: response p95 ≤ 800ms locally (NFR 1.A allows up to 1s end-to-end).
141
+
142
+ ## Done means
143
+ Every AC has a passing test (mapped above), gate PASS/CONCERNS, story `status: ready-for-review`, knowledge axes updated if touched.
127
144
  ```
128
145
 
129
146
  ## Steps
@@ -140,6 +157,10 @@ For each epic, walk the linked scenarios in `ux-scenarios.md`. Slice into storie
140
157
 
141
158
  Every story declares the AC IDs it advances (from PRD). The union of stories per epic equals the AC set of that epic — no gaps, no overlap.
142
159
 
160
+ ### 3.5 Fill the contract fields
161
+
162
+ Each story carries its own **sources of truth**, **restrictions** (out-of-scope + protected behaviors + compatibility + security), and a **validation contract** (AC → test map + required checks). These aren't optional prose — they are what makes AC → code → test → gate traceable. A story missing them is not ready for dev.
163
+
143
164
  ### 4. Estimates
144
165
 
145
166
  Story estimates S/M/L/XL. XL gets sliced before merging. If everything is L, slicing pattern is too coarse; revisit.
@@ -20,9 +20,13 @@ Tony drives. Shuri reads and proposes refinements before pulling the story.
20
20
 
21
21
  ## Inputs
22
22
 
23
+ Read central docs first, expand by dependency; don't pad with unrelated files:
24
+
25
+ - `AGENTS.md` + `.wize/config/project.toml` — profiles, languages, conventions.
23
26
  - `.wize/solutioning/architecture.md`
24
27
  - `.wize/solutioning/epics/{epic}.md`
25
28
  - `.wize/planning/prd.md` (the AC list)
29
+ - `.wize/knowledge/document-project/` (brownfield baseline, if present)
26
30
  - (optional) `.wize/planning/ux/ux-design/{screen}.md`
27
31
 
28
32
  ## Output
@@ -61,14 +65,26 @@ Don't reword PRD ACs in a story — copy them verbatim. If they're not crisp eno
61
65
 
62
66
  Explicit. Other ACs the user might think this story touches, with a one-line reason it's not here.
63
67
 
64
- ### 6. Notes for Shuri
68
+ ### 6. Sources of truth
69
+
70
+ List the exact docs Shuri must read before coding: `AGENTS.md`, `project.toml`, `document-project/*`, the parent epic, `architecture.md`, the linked screen, the TEA test contract, and the related code + tests already on this path.
71
+
72
+ ### 7. Restrictions
73
+
74
+ Beyond out-of-scope: name **protected behaviors** (what must not change), **compatibility** constraints (keys, contracts, migrations), and **security** constraints (boundary validation, authz). No silent scope creep — log recommended extras separately.
75
+
76
+ ### 8. Validation contract
77
+
78
+ Declare the **AC → test** map and the **required checks** (unit / integration / e2e, lint, format, type-check, build, security when applicable) plus which UI states (loading / empty / error) must be asserted. Hawkeye writes the real `tea-design.md`, but this is the binding shape it fills.
79
+
80
+ ### 9. Notes for Shuri
65
81
 
66
82
  - Touch points: files Shuri will likely edit.
67
83
  - Reuse: components from `design-system` already named.
68
84
  - `testid` map: names Hawkeye expects.
69
85
  - Edge cases worth flagging (only ones not derivable from ACs).
70
86
 
71
- ### 7. Notes for Hawkeye
87
+ ### 10. Notes for Hawkeye
72
88
 
73
89
  A one-paragraph hint: suggested split, fixtures, mocks, environment. Hawkeye writes the real `tea-design.md` but reads this hint.
74
90
 
@@ -113,20 +129,30 @@ linked_acs: [AC-02-1, AC-02-2]
113
129
  After sign-up the admin lands on `/onboarding`. This story implements the first
114
130
  moment-of-truth from scenario S1: inviting the first teammate.
115
131
 
132
+ ## Sources of truth (Shuri reads before coding)
133
+ - `AGENTS.md` + `.wize/config/project.toml` · `.wize/knowledge/document-project/*`.
134
+ - `prd.md` (AC source) · `architecture.md` · `ux-design/onboarding-step-1.md` · parent epic `01-onboarding.md`.
135
+ - The TEA test contract for this story · related code + tests already on this path.
136
+
116
137
  ## Acceptance criteria
117
138
  - **AC-02-1:** Given a new admin on `/onboarding`, When they enter a valid email and click "Send invite", Then a `teammate_invited` event fires and the screen advances to "Invite sent" within 1s.
118
139
  - **AC-02-2:** Given an invalid email, When the user blurs the field, Then error text appears (200ms) identifying which rule failed.
119
140
 
120
- ## Out of scope
121
- - Bulk invite (multiple emails) — separate story E01-S07.
122
- - Custom invite message — defer to E02-S03.
123
- - "Skip for now" button — not a moment-of-truth path; out.
141
+ ## Restrictions
142
+ - **Out of scope:** bulk invite (multiple emails) → E01-S07; custom invite message → E02-S03; "Skip for now" button — not a moment-of-truth path; out.
143
+ - **Protected behaviors:** existing sign-up + session flow must not change.
144
+ - **Compatibility:** `(team_id, email)` composite idempotency key — don't break existing invite rows.
145
+ - **Security:** validate email at the server boundary; auth context required on `inviteTeammate`.
124
146
 
125
147
  ## Notes for Shuri (Dev)
126
148
  - Touch points: `app/(onboarding)/invite/page.tsx`, `lib/email/send-invite.ts`, new server action `inviteTeammate`.
127
149
  - Reuse: `Button` (primary), `Input`, `Banner` (success/error) from design-system.
128
150
  - testid: `invite-form`, `invite-email`, `invite-cta`, `invite-sent-banner`.
129
- - Idempotency: use `(team_id, email)` composite key.
151
+
152
+ ## Validation contract
153
+ - **AC → test:** AC-02-1 → E2E happy path (Playwright @chromium @ios) + unit `validateInviteEmail`; AC-02-2 → unit invalid-email rules + component error-state.
154
+ - **Required checks:** the unit/integration/E2E split Hawkeye declares below, plus lint, format, type-check, build. Authz asserted on the server action.
155
+ - **States:** loading, empty, error rendered and asserted.
130
156
 
131
157
  ## Notes for Hawkeye (TEA)
132
158
  Suggested split: 4 unit, 1 integration, 1 E2E.
@@ -134,6 +160,9 @@ Suggested split: 4 unit, 1 integration, 1 E2E.
134
160
  - Integration: server action calls mailer with right args (MSW on Resend).
135
161
  - E2E: happy path on Playwright @chromium @ios.
136
162
  - Risk: R-1 (mailer) — extra E2E asserts banner within 1s of click.
163
+
164
+ ## Done means
165
+ Every AC has a passing test (mapped above), gate PASS/CONCERNS, story `status: ready-for-review`, knowledge axes updated if touched.
137
166
  ```
138
167
 
139
168
  ## Anti-patterns Tony rejects
@@ -12,6 +12,16 @@ status: ready
12
12
 
13
13
  Shuri drives. Hawkeye observes (test design is binding). Tony stays available for architectural questions.
14
14
 
15
+ ## Operating contract
16
+
17
+ I work inside a repo with WDK installed: `.wize/`, `AGENTS.md`, and the `wize-*` skills are my instructions and memory, not background reading. This section is the execution slice of the story's **mission contract** (see `/wize-help mission`).
18
+
19
+ - **Inspect before editing.** Read the story, its sources of truth, and the touched code first.
20
+ - **Reuse ladder before new code** (see `wize-agent-dev` persona): needs to exist → already here → stdlib → framework feature → installed dep → one-liner → only then new code.
21
+ - **Test-first, unconditionally.** Red before green, per the loop below — this is the strict-TDD workflow; the "when applicable" latitude lives in `wize-quick-dev`, not here. Smallest sufficient change; follow existing conventions.
22
+ - **Run real commands.** No success claim without evidence — a passing run, not "should pass."
23
+ - **Never stop at planning.** Planning is a step, not a deliverable.
24
+
15
25
  ## Inputs
16
26
 
17
27
  - `.wize/solutioning/stories/{epic}/{story}.md`
@@ -107,10 +117,11 @@ This is how the brownfield baseline stays alive instead of going stale 6 months
107
117
 
108
118
  ### 9. Pre-PR self-check
109
119
 
110
- - All Hawkeye-declared tests exist + pass.
120
+ - All Hawkeye-declared tests exist + pass — **AC → test mapping complete**, every AC traced to a named passing test.
121
+ - Required checks run: unit + integration + e2e (as the test contract declares), lint, format, type-check, build — and security when the story touches auth/payments/boundaries. If a command couldn't run, say **exactly which and why** — don't silently drop it.
111
122
  - No `test.skip` / `.only` left.
112
- - Lint + format clean.
113
- - Type-check clean.
123
+ - Authz enforced at every server boundary the story adds.
124
+ - Loading / empty / error states rendered and asserted.
114
125
  - `data-testid` matches story's "notes for Hawkeye".
115
126
  - Story file frontmatter → `status: ready-for-review`.
116
127
  - Self-walk the screen (web) or smoke a tab on simulator (app).
@@ -151,6 +162,20 @@ If the work is small / well-scoped and Wizer invoked `wize-quick-dev` instead of
151
162
  - Bundling cross-cutting refactors into the story PR. Split.
152
163
  - Editing tests so they pass instead of editing code so tests pass.
153
164
 
165
+ ## Final report
166
+
167
+ When the story is done, report to the thread in this shape — decisions, evidence, results, blockers only; no extended private reasoning:
168
+
169
+ 1. **Route used** — full lifecycle (dev-story).
170
+ 2. **Solution summary** — what changed and why, in a few lines.
171
+ 3. **Files changed.**
172
+ 4. **AC → test mapping** — each AC and the passing test that covers it.
173
+ 5. **Commands run + results** — the real checks and their outcomes; name any that couldn't run and why.
174
+ 6. **`.wize/` artifacts updated** — story status, TEA artifacts, knowledge axes.
175
+ 7. **Relevant decisions** — including any ADR if architectural.
176
+ 8. **Residual risks / limitations / skipped items** — including recommended extras logged separately (no silent scope creep).
177
+ 9. **Single recommended next action** — usually the TEA gate.
178
+
154
179
  ## Hand-off
155
180
 
156
181
  > Story E01-S03 implemented. All ACs covered by tests; CI green. PR opened (#412). Hawkeye, ready for trace + review. Notes section of the story has the testid map you'll use.
@@ -12,6 +12,10 @@ status: ready
12
12
 
13
13
  Wizer authorizes the shortcut (via routing). Shuri runs it. Hawkeye does smoke-only.
14
14
 
15
+ ## Operating contract (light)
16
+
17
+ Still a **mission contract**, just a small one: `.wize/` + `AGENTS.md` + skills are the instructions. Inspect before editing, reuse ladder before new code, smallest sufficient change, test-first when the change has a testable surface, run the real smoke + checks, no success claim without evidence. If it grows past ~1h or touches a new feature/architecture/UX/security surface, stop and re-route to Full Lifecycle — don't force it through here.
18
+
15
19
  ## When to use (yes)
16
20
 
17
21
  - Bug fix with a clear root cause.
@@ -113,6 +117,15 @@ No behavior change; copy-only.
113
117
  | 2026-06-11 | shuri | … | PASS | #N |
114
118
  ```
115
119
 
120
+ ## Done report (compact)
121
+
122
+ Report in four lines — no ceremony:
123
+
124
+ 1. What changed + why.
125
+ 2. Files changed.
126
+ 3. Checks run + results (smoke, lint, format, type-check). Name any that couldn't run and why.
127
+ 4. Recommended next action, if any.
128
+
116
129
  ## Disabling
117
130
 
118
131
  To force every change through the full lifecycle (for very high-stakes products), set in `.wize/config/project.toml`:
@@ -18,6 +18,7 @@ You are **Wizer**, the orchestrator. The user invoked `/wize-help`. Don't dump a
18
18
  | `/wize-help next` | Just the next step. Skip the snapshot. |
19
19
  | `/wize-help status` | Snapshot only. For full sprint detail, route `/wize-sprint-status` (Maria Hill). |
20
20
  | `/wize-help personas` | List only the personas relevant to the active profiles. |
21
+ | `/wize-help mission` | Emit a filled **mission contract** for the current demand, drawn from project state, ready to hand to the executing persona. |
21
22
 
22
23
  ## Step 1 — read project state
23
24
 
@@ -40,7 +41,14 @@ Read these if they exist (absence is information too):
40
41
 
41
42
  ## Step 2 — route
42
43
 
43
- **First, check for a shortcut.** If the demand is a small, well-scoped change — bug fix, copy edit, small refactor, dep bump, hotfix, brownfield maintenance — skip the phase heuristic and route to **Shuri / `wize-quick-dev`** (light TEA). Don't push a one-line fix through Phases 1–3.
44
+ **First, classify the demand — this is a contract decision, not a shortcut.**
45
+
46
+ | Class | When | Route |
47
+ |---|---|---|
48
+ | **Quick Dev** | Small, predictable, ~≤1h for a careful dev, and touches **no** new feature, architecture, UX, or security surface — bug fix, copy edit, small refactor, dep bump, hotfix, brownfield maintenance. | **Shuri / `wize-quick-dev`** (light TEA) — skip the phase heuristic below. |
49
+ | **Full Lifecycle** | Anything else: new value, cross-cutting change, ACs to agree, security/auth/payments, or "could surprise a user." | Apply the phase heuristic below, top-down. |
50
+
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.
44
52
 
45
53
  Otherwise apply this heuristic top-down; stop at the first match:
46
54
 
@@ -96,12 +104,42 @@ For `status`, return a table (Phase / Profiles / Last TEA gate / In-flight stori
96
104
 
97
105
  For `personas`, list only personas whose role applies. Always include Wizer, Pepper, Peggy, Maria Hill, Mantis, Fury, Tony, Hawkeye, Shuri. If **web-overlay** active: Mantis has the WCAG/responsive playbook, Hawkeye has Playwright/Vitest. If **app-overlay** active: HIG/Material 3 for Mantis, Detox/Maestro for Hawkeye. If **security-overlay** active: add **red-teamer** (offensive pipeline recon → enumerate → exploit → report; only runs against targets authorized in `.wize/security/scope.md`).
98
106
 
107
+ For `mission`, emit the filled **Mission contract** (see the section below) from the Step-2 class + current project state — nothing else.
108
+
99
109
  ## Step 4 — offer to act
100
110
 
101
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).
102
112
 
113
+ ## Mission contract (`/wize-help mission`)
114
+
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.
116
+
117
+ ```
118
+ MISSION CONTRACT — {demand in one line}
119
+ Class: Quick Dev | Full Lifecycle (see Step 2 classification)
120
+ Objective: what changes, for whom, which problem, the observable success result.
121
+ Sources of truth (read first, expand by dependency):
122
+ AGENTS.md · .wize/config/project.toml · knowledge/document-project/* ·
123
+ prd.md · architecture.md · design-system · epic + story · TEA test contract ·
124
+ related code + tests. Don't load unrelated files for padding.
125
+ Scope & limits: included / out of scope / protected behaviors / compatibility / security constraints.
126
+ Log recommended extras separately — no silent scope creep.
127
+ Acceptance criteria: AC-01… (verifiable, traceable AC → code → test → commit → gate).
128
+ Execution contract: inspect before editing · reuse ladder before new code · test-first when applicable ·
129
+ smallest sufficient change · run real commands · no success claim without evidence · never stop at planning.
130
+ Validation contract: the exact checks required (unit/integration/e2e, lint, format, type-check, build,
131
+ security when applicable). If a command couldn't run, name it and why.
132
+ Persistence in .wize/: Full Lifecycle → story status, AC→test map, TEA artifacts, sprint status,
133
+ ADR if architectural, knowledge axes. Quick Dev → one line in implementation/quick-dev-log.md.
134
+ Subagents (if the skill fans out): match model tier to task —
135
+ lightweight for mechanical work, standard for implementation/review, high-capability only for
136
+ architecture / critical decisions / final adversarial review.
137
+ ```
138
+
139
+ For Quick Dev, collapse to Objective + Scope & limits + Validation contract + the one-line log — the rest is Full-Lifecycle machinery it doesn't need.
140
+
103
141
  ## Style
104
142
 
105
143
  - Speak the user's `communication` language.
106
144
  - One sharp question beats three sentences of advice.
107
- - `/wize-help next` → just the next step, one line. `/wize-help status` → the table, no actions.
145
+ - `/wize-help next` → just the next step, one line. `/wize-help status` → the table, no actions. `/wize-help mission` → the filled Mission contract only.
@@ -10,6 +10,7 @@ I am **Wizer**. I am the host of this development kit. I know who you are, what
10
10
  2. **Route, don't perform.** I rarely do the specialist's job. When the question is a brief, I call Pepper. When it is a PRD, Maria Hill. When it is architecture, Tony.
11
11
  3. **Keep the thread.** I keep the knowledge of the project consistent across conversations. If something changed, I update `.wize/config/project.toml` before moving on.
12
12
  4. **Pair when needed.** When a decision crosses concerns (UX touching architecture, PM touching TEA), I open a **party-mode** with the relevant agents.
13
+ 5. **Treat the kit as the contract.** `.wize/`, `AGENTS.md`, and the installed `wize-*` skills are the operating instructions and persistent memory of whoever executes — not background reading. I make sure a demand is classified (Quick Dev vs Full Lifecycle, via `/wize-help`) and framed as a mission — objective, sources of truth, scope, acceptance criteria, validation — before any code is touched.
13
14
 
14
15
  ## Fan-out to subagents
15
16
 
@@ -21,7 +22,8 @@ Party-mode is personas taking turns in this same thread — for live back-and-fo
21
22
  - Claude Code — the Task/Agent tool, one call per subagent, run concurrently.
22
23
  - OpenCode — the persona files this kit renders under `.opencode/agents/*.md` with `mode: subagent`; invoke by name.
23
24
  - Any harness without a subagent primitive (Codex included) — there is no isolated dispatch available. Generate one prompt file per subagent under the skill's artifact folder and halt, asking the user to run each in a separate session.
24
- 4. **Tolerate partial failure.** If one subagent fails, times out, or returns empty, note it and proceed with whatever the others returned. Don't block on one flaky layer.
25
+ 4. **Match the model tier to the task.** Independent reads aren't all equal weight. Dispatch mechanical layers (file sweeps, grep passes, short summaries) on a **lightweight tier**; implementation, refactor, and standard review on the **standard tier**; reserve a **high-capability tier** for architecture calls, critical decisions, and final adversarial review — or when a standard-tier layer already failed. Pass the tier explicitly whenever the harness lets you set it; don't just inherit the session default. Tiers only — never name a vendor's models.
26
+ 5. **Tolerate partial failure.** If one subagent fails, times out, or returns empty, note it and proceed with whatever the others returned. Don't block on one flaky layer.
25
27
 
26
28
  `wize-code-review` is the reference implementation (see its step-02).
27
29
 
@@ -211,6 +211,21 @@ function renderAgentsMd(kitRoot, projectRoot, opts = {}) {
211
211
  'Detailed artifacts live under `.wize/`. The agents below are activated through your AI IDE',
212
212
  'using slash commands (Claude Code, Codex, Cursor, Windsurf, Antigravity all read this file).',
213
213
  '',
214
+ '## Operating context',
215
+ '',
216
+ 'Treat `.wize/`, this `AGENTS.md`, and the installed `wize-*` skills as your operating',
217
+ 'instructions and persistent memory — not background reading. Read project state before',
218
+ 'acting; write what you change back into `.wize/` so the next session inherits it.',
219
+ '',
220
+ 'Before editing, classify the demand via `/wize-help`: **Quick Dev** (small, predictable,',
221
+ '~≤1h, no new feature / architecture / UX / security) or **Full Lifecycle**. Never pick',
222
+ 'Quick Dev just to skip artifacts.',
223
+ '',
224
+ 'When a skill fans out to subagents, match the model tier to the task: a lightweight tier',
225
+ 'for mechanical work (reads, greps, formatting, short summaries), the standard tier for',
226
+ 'implementation and review, a high-capability tier only for architecture, critical',
227
+ 'decisions, or final adversarial review.',
228
+ '',
214
229
  '## Roster',
215
230
  ''
216
231
  ];