wize-dev-kit 0.11.0 → 0.12.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 +3 -3
- package/CHANGELOG.md +29 -0
- package/package.json +1 -1
- package/src/app-overlay/wize-app-release-channels/workflow.md +2 -0
- package/src/app-overlay/wize-app-scaffold/workflow.md +2 -0
- package/src/app-overlay/wize-app-store-listing/workflow.md +2 -0
- package/src/builder-skills/wize-create-agent/workflow.md +2 -0
- package/src/builder-skills/wize-create-skill/workflow.md +2 -0
- package/src/builder-skills/wize-create-workflow/workflow.md +2 -0
- package/src/core-skills/wize-advanced-elicitation/skill.md +2 -0
- package/src/core-skills/wize-brainstorming/skill.md +2 -0
- package/src/core-skills/wize-customize/skill.md +2 -0
- package/src/core-skills/wize-editorial-review-prose/skill.md +2 -0
- package/src/core-skills/wize-editorial-review-structure/skill.md +2 -0
- package/src/core-skills/wize-grill/skill.md +3 -1
- package/src/core-skills/wize-index-docs/skill.md +3 -1
- package/src/core-skills/wize-review-adversarial/skill.md +2 -0
- package/src/core-skills/wize-review-edge-case-hunter/skill.md +2 -0
- package/src/core-skills/wize-shard-doc/skill.md +2 -0
- package/src/core-skills/wize-spec/skill.md +2 -0
- package/src/method-skills/1-analysis/wize-agent-analyst/agent.yaml +3 -0
- package/src/method-skills/1-analysis/wize-document-project/workflow.md +2 -0
- package/src/method-skills/1-analysis/wize-domain-research/workflow.md +7 -0
- package/src/method-skills/1-analysis/wize-market-research/workflow.md +7 -0
- package/src/method-skills/1-analysis/wize-prfaq/workflow.md +2 -0
- package/src/method-skills/1-analysis/wize-product-brief/workflow.md +2 -0
- package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +3 -1
- package/src/method-skills/1-analysis/wize-research/workflow.md +24 -89
- package/src/method-skills/1-analysis/wize-technical-research/workflow.md +7 -0
- package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +2 -0
- package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +2 -0
- package/src/method-skills/2-plan-workflows/wize-edit-prd/workflow.md +3 -1
- package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +2 -0
- package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +2 -0
- package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +2 -0
- package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +2 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-08-complete.md +1 -1
- package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +2 -0
- package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +2 -0
- package/src/method-skills/3-solutioning/wize-design-system/workflow.md +2 -0
- package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +3 -1
- package/src/method-skills/3-solutioning/wize-project-context/workflow.md +3 -1
- package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +3 -1
- package/src/method-skills/4-implementation/wize-changelog/workflow.md +184 -0
- package/src/method-skills/4-implementation/wize-checkpoint-preview/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-code-review/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-correct-course/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-create-story/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +3 -1
- package/src/method-skills/4-implementation/wize-investigate/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-release/workflow.md +162 -0
- package/src/method-skills/4-implementation/wize-retrospective/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +2 -0
- package/src/method-skills/module.yaml +12 -3
- package/src/orchestrator-skills/module.yaml +4 -1
- package/src/orchestrator-skills/wize/skill.md +164 -0
- package/src/orchestrator-skills/wize-help/skill.md +126 -5
- package/src/orchestrator-skills/wize-onboarding/workflow.md +3 -1
- package/src/orchestrator-skills/wize-orchestrator/agent.yaml +1 -0
- package/src/orchestrator-skills/wize-orchestrator/persona.md +29 -4
- package/src/orchestrator-skills/wize-party-mode/workflow.md +2 -0
- package/src/security-overlay/_shared/scope-parser.js +27 -0
- package/src/security-overlay/agents/red-teamer/agent.yaml +2 -0
- package/src/security-overlay/agents/red-teamer/persona.md +6 -0
- package/src/security-overlay/skills/wize-sec-enumerate/skill.md +2 -0
- package/src/security-overlay/skills/wize-sec-pentest/scripts/run-pipeline.js +18 -1
- package/src/security-overlay/skills/wize-sec-pentest/skill.md +2 -0
- package/src/security-overlay/skills/wize-sec-recon/skill.md +2 -0
- package/src/security-overlay/skills/wize-sec-scope/scripts/generate-scope.js +106 -0
- package/src/security-overlay/skills/wize-sec-scope/skill.md +52 -0
- package/src/tea-skills/wize-qa-generate-e2e-tests/workflow.md +2 -0
- package/src/tea-skills/wize-tea-design/workflow.md +3 -0
- package/src/tea-skills/wize-tea-gate/workflow.md +3 -0
- package/src/tea-skills/wize-tea-nfr/workflow.md +3 -0
- package/src/tea-skills/wize-tea-review/workflow.md +3 -0
- package/src/tea-skills/wize-tea-risk/workflow.md +3 -0
- package/src/tea-skills/wize-tea-trace/workflow.md +3 -0
- package/src/web-overlay/wize-web-deploy/workflow.md +2 -0
- package/src/web-overlay/wize-web-scaffold/workflow.md +2 -0
- package/src/web-overlay/wize-web-seo-audit/workflow.md +2 -0
- package/tools/installer/commands/doctor.js +2 -2
- package/tools/installer/onboarding.js +14 -21
- package/tools/installer/render-shared.js +50 -28
- package/tools/installer/validators/run-all.js +3 -2
- package/tools/installer/wize-cli.js +323 -77
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: wize-changelog
|
|
3
|
+
description: "Use quando precisar gerar ou atualizar o changelog no formato Keep a Changelog a partir das stories concluídas."
|
|
4
|
+
name: Changelog
|
|
5
|
+
phase: 4-implementation
|
|
6
|
+
owner: wize-agent-dev # Shuri
|
|
7
|
+
status: ready
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Changelog
|
|
11
|
+
|
|
12
|
+
**Goal.** Gerar `CHANGELOG.md` no formato [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) a partir das stories concluídas no sprint, agrupadas por epic e categoria.
|
|
13
|
+
|
|
14
|
+
Shuri executa. O changelog é gerado em pt-BR (texto voltado ao usuário) e segue a convenção do projeto.
|
|
15
|
+
|
|
16
|
+
## Inputs
|
|
17
|
+
|
|
18
|
+
- `.wize/implementation/sprint-status.yaml` — stories concluídas
|
|
19
|
+
- `.wize/solutioning/stories/{epic}/*.md` — detalhes das stories
|
|
20
|
+
- `.wize/solutioning/epics/*.md` — nomes legíveis dos epics
|
|
21
|
+
- `CHANGELOG.md` — changelog existente (se houver)
|
|
22
|
+
- `git tag --list 'v*' --sort=-v:refname | head -1` — última tag
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
|
|
26
|
+
- `CHANGELOG.md` criado ou atualizado com a nova entrada pré-pendida
|
|
27
|
+
|
|
28
|
+
## Formato Keep a Changelog
|
|
29
|
+
|
|
30
|
+
Seguir estritamente o formato [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/):
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# Changelog
|
|
34
|
+
|
|
35
|
+
All notable changes to this project are documented here.
|
|
36
|
+
Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
37
|
+
|
|
38
|
+
## [Unreleased]
|
|
39
|
+
|
|
40
|
+
## [0.12.0] — 2026-08-08
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
- **Epic 09 — UX / intent:** Release e changelog skills (`wize-release`, `wize-changelog`). #E09-S07
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
- **Epic 09 — UX / intent:** Roteamento por intenção expandido com release/changelog. #E09-S03
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
- **Epic 09 — UX / intent:** Descrições de skill corrigidas (block scalars). #E09-S01
|
|
50
|
+
|
|
51
|
+
### Security
|
|
52
|
+
- (vazio se não houver stories de segurança)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Regras de categoria
|
|
56
|
+
|
|
57
|
+
| Categoria | Quando usar |
|
|
58
|
+
|---|---|
|
|
59
|
+
| **Added** | Nova feature, nova skill, nova funcionalidade |
|
|
60
|
+
| **Changed** | Mudança em funcionalidade existente, alteração de comportamento |
|
|
61
|
+
| **Deprecated** | Funcionalidade que será removida em breve |
|
|
62
|
+
| **Removed** | Funcionalidade removida |
|
|
63
|
+
| **Fixed** | Correção de bug |
|
|
64
|
+
| **Security** | Correção de vulnerabilidade, melhoria de segurança |
|
|
65
|
+
|
|
66
|
+
### Regras de agrupamento
|
|
67
|
+
|
|
68
|
+
- Agrupar por **epic** dentro de cada categoria.
|
|
69
|
+
- Cada linha começa com `- **Epic NN — Nome:**` seguido da descrição e `#story_id`.
|
|
70
|
+
- Stories sem epic definido vão sob `- **Geral:**`.
|
|
71
|
+
- Se uma categoria não tiver stories, escrever `- (vazio)` ou omitir (consistente com o changelog existente).
|
|
72
|
+
|
|
73
|
+
## Steps
|
|
74
|
+
|
|
75
|
+
### 1. Coletar stories concluídas
|
|
76
|
+
|
|
77
|
+
Ler `sprint-status.yaml`. Para cada story com status `done`:
|
|
78
|
+
|
|
79
|
+
1. Localizar o arquivo em `.wize/solutioning/stories/{epic}/{story}.md`
|
|
80
|
+
2. Extrair do frontmatter: `story_id`, `epic`
|
|
81
|
+
3. Extrair do corpo: título (linha `# Story:`) e primeira frase da seção `## Context` como sumário
|
|
82
|
+
|
|
83
|
+
Se o arquivo da story não existir, usar apenas o `story_id` como referência.
|
|
84
|
+
|
|
85
|
+
### 2. Classificar por categoria
|
|
86
|
+
|
|
87
|
+
Para cada story, determinar a categoria com base no conteúdo:
|
|
88
|
+
|
|
89
|
+
| Padrão no título/contexto | Categoria |
|
|
90
|
+
|---|---|
|
|
91
|
+
| "Adicionar", "Criar", "Novo", "Added", "Add" | Added |
|
|
92
|
+
| "Corrigir", "Consertar", "Bug", "Fix", "Hotfix", "Correção" | Fixed |
|
|
93
|
+
| "Alterar", "Mudar", "Refatorar", "Change", "Update" | Changed |
|
|
94
|
+
| "Remover", "Deprecar" | Removed / Deprecated |
|
|
95
|
+
| "Segurança", "Vulnerabilidade", "Security", "CVE" | Security |
|
|
96
|
+
|
|
97
|
+
Se ambíguo, default `Added` para stories novas, `Changed` para alterações.
|
|
98
|
+
|
|
99
|
+
### 3. Agrupar por epic
|
|
100
|
+
|
|
101
|
+
Para cada story, resolver o nome do epic:
|
|
102
|
+
|
|
103
|
+
1. Se o frontmatter tem `epic: NN-nome`, usar `Epic NN — Nome`
|
|
104
|
+
2. Buscar em `.wize/solutioning/epics/{epic}.md` o título (`# Epic NN: Nome`)
|
|
105
|
+
3. Fallback: `Epic {epic_id}`
|
|
106
|
+
|
|
107
|
+
Agrupar stories por epic, depois por categoria.
|
|
108
|
+
|
|
109
|
+
### 4. Gerar entrada do changelog
|
|
110
|
+
|
|
111
|
+
Montar a entrada no formato:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
## [{version}] — {YYYY-MM-DD}
|
|
115
|
+
|
|
116
|
+
{descrição curta do release — 1-2 frases sobre o que esta versão entrega}
|
|
117
|
+
|
|
118
|
+
### Added
|
|
119
|
+
- **{epic_nome}:** {descrição}. #{story_id}
|
|
120
|
+
|
|
121
|
+
### Changed
|
|
122
|
+
- **{epic_nome}:** {descrição}. #{story_id}
|
|
123
|
+
|
|
124
|
+
### Fixed
|
|
125
|
+
- **{epic_nome}:** {descrição}. #{story_id}
|
|
126
|
+
|
|
127
|
+
### Security
|
|
128
|
+
- **{epic_nome}:** {descrição}. #{story_id}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### 5. Atualizar CHANGELOG.md
|
|
132
|
+
|
|
133
|
+
Se `CHANGELOG.md` não existir, criar com o cabeçalho padrão:
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# Changelog
|
|
137
|
+
|
|
138
|
+
All notable changes to this project are documented here.
|
|
139
|
+
Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
140
|
+
|
|
141
|
+
> **Language:** entries are written in **Portuguese (pt-BR)**.
|
|
142
|
+
|
|
143
|
+
## [Unreleased]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Se existir:
|
|
147
|
+
1. Localizar a linha `## [Unreleased]`
|
|
148
|
+
2. Inserir a nova entrada entre `## [Unreleased]` e a primeira `## [versão]` existente
|
|
149
|
+
3. Se não houver `## [Unreleased]`, inserir após o cabeçalho
|
|
150
|
+
|
|
151
|
+
### 6. Verificar formatação
|
|
152
|
+
|
|
153
|
+
- A data está no formato `YYYY-MM-DD`
|
|
154
|
+
- A versão segue semver (`X.Y.Z`)
|
|
155
|
+
- Cada story tem referência ao `#story_id`
|
|
156
|
+
- Categorias vazias foram omitidas
|
|
157
|
+
- O link do Keep a Changelog está presente
|
|
158
|
+
|
|
159
|
+
## Exemplo de saída
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
## [0.12.0] — 2026-08-08
|
|
163
|
+
|
|
164
|
+
Release do cluster de ship: skills de release e changelog para o perfil core, roteamento por intenção expandido.
|
|
165
|
+
|
|
166
|
+
### Added
|
|
167
|
+
- **Epic 09 — UX / intent:** Skill `wize-release` para bump de versão, changelog e tag git a partir das stories gated. #E09-S07
|
|
168
|
+
- **Epic 09 — UX / intent:** Skill `wize-changelog` para geração de changelog no formato Keep a Changelog. #E09-S07
|
|
169
|
+
|
|
170
|
+
### Changed
|
|
171
|
+
- **Epic 09 — UX / intent:** Tabela de roteamento por intenção expandida com release, changelog, lançar, publicar, notas de versão. #E09-S03
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Anti-patterns
|
|
175
|
+
|
|
176
|
+
- Changelog escrito à mão sem referência às stories — perde rastreabilidade.
|
|
177
|
+
- Categoria "Added" para correção de bug — usar "Fixed".
|
|
178
|
+
- Data fora do formato ISO — usar `YYYY-MM-DD`.
|
|
179
|
+
- Pular stories concluídas — toda story `done` no sprint entra no changelog.
|
|
180
|
+
- Escrever changelog em inglês quando o projeto usa pt-BR — seguir o idioma do changelog existente.
|
|
181
|
+
|
|
182
|
+
## Hand-off
|
|
183
|
+
|
|
184
|
+
> Changelog atualizado em `CHANGELOG.md`. {count} stories de {epic_count} epics registradas. Próximo: `/wize-release` para bump de versão e tag, ou revisão manual do changelog.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-checkpoint-preview
|
|
4
|
+
description: "Use quando uma story estiver parcialmente implementada e precisar de preview de checkpoint para validar direção antes de continuar."
|
|
3
5
|
name: Checkpoint Preview
|
|
4
6
|
phase: 4-implementation
|
|
5
7
|
owner: wize-agent-dev # Shuri (+ wize-agent-architect Tony on call)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-dev-story
|
|
4
|
+
description: "Use quando uma story estiver pronta para implementação e precisar ser desenvolvida com TDD e commits rastreáveis."
|
|
3
5
|
name: Dev Story
|
|
4
6
|
phase: 4-implementation
|
|
5
7
|
owner: wize-agent-dev # Shuri
|
|
@@ -14,7 +16,7 @@ Shuri drives. Hawkeye observes (test design is binding). Tony stays available fo
|
|
|
14
16
|
|
|
15
17
|
## Operating contract
|
|
16
18
|
|
|
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`).
|
|
19
|
+
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 mission` or `/wize-help mission`).
|
|
18
20
|
|
|
19
21
|
- **Inspect before editing.** Read the story, its sources of truth, and the touched code first.
|
|
20
22
|
- **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.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-investigate
|
|
4
|
+
description: "Use quando um bug ou comportamento inesperado surgir e precisar de investigação estruturada com root cause analysis."
|
|
3
5
|
name: Investigate
|
|
4
6
|
phase: 4-implementation
|
|
5
7
|
owner: wize-agent-dev # Shuri (+ wize-agent-test-architect Hawkeye on call)
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: wize-release
|
|
3
|
+
description: "Use quando todas as stories do sprint estiverem gated e você precisar gerar release: bump de versão, changelog e tag git."
|
|
4
|
+
name: Release
|
|
5
|
+
phase: 4-implementation
|
|
6
|
+
owner: wize-agent-dev # Shuri + Maria Hill
|
|
7
|
+
status: ready
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Release
|
|
11
|
+
|
|
12
|
+
**Goal.** Bump de versão, changelog a partir das stories gated e tag git. O release é o passo entre "todas as stories passaram no gate" e a retrospectiva.
|
|
13
|
+
|
|
14
|
+
Shuri executa. Maria Hill confirma o escopo (quais epics entram).
|
|
15
|
+
|
|
16
|
+
## Pré-requisitos
|
|
17
|
+
|
|
18
|
+
Antes de iniciar, verificar:
|
|
19
|
+
|
|
20
|
+
1. **Sprint ativo** — `sprint-status.yaml` deve ter `development_status` com stories.
|
|
21
|
+
2. **Todas as stories gated** — cada story no sprint ativo deve estar `done` no `sprint-status.yaml`. Stories com gate `FAIL` bloqueiam o release. Stories com `CONCERNS` precisam de waiver documentado.
|
|
22
|
+
3. **Git limpo** — `git status --porcelain` deve estar vazio (ou conter apenas arquivos não rastreados que não fazem parte do release).
|
|
23
|
+
4. **Branch main** — releases saem da `main`. Se estiver em feature branch, abortar e orientar merge via PR.
|
|
24
|
+
|
|
25
|
+
Se qualquer pré-requisito falhar, reportar o bloqueio e parar. Não fazer release parcial.
|
|
26
|
+
|
|
27
|
+
## Inputs
|
|
28
|
+
|
|
29
|
+
- `.wize/implementation/sprint-status.yaml` — stories concluídas
|
|
30
|
+
- `.wize/solutioning/stories/{epic}/*.md` — detalhes das stories
|
|
31
|
+
- `package.json` — versão atual
|
|
32
|
+
- `CHANGELOG.md` — changelog existente (se houver)
|
|
33
|
+
- `git tag --list 'v*'` — tags existentes
|
|
34
|
+
|
|
35
|
+
## Outputs
|
|
36
|
+
|
|
37
|
+
- `package.json` com versão atualizada
|
|
38
|
+
- `CHANGELOG.md` atualizado com a nova versão
|
|
39
|
+
- Tag git `v{semver}`
|
|
40
|
+
- `sprint-status.yaml` atualizado (sprint marcado como concluído)
|
|
41
|
+
- Resumo do release no terminal
|
|
42
|
+
|
|
43
|
+
## Steps
|
|
44
|
+
|
|
45
|
+
### 1. Verificar pré-requisitos
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
git status --porcelain # deve estar vazio
|
|
49
|
+
git branch --show-current # deve ser main
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Ler `sprint-status.yaml` e validar que todas as stories do sprint ativo estão `done`. Se houver stories `backlog`, `ready-for-dev`, `in-progress` ou `review`, listar cada uma e abortar.
|
|
53
|
+
|
|
54
|
+
### 2. Coletar stories concluídas
|
|
55
|
+
|
|
56
|
+
Varrer `development_status` no `sprint-status.yaml`. Para cada story com status `done`:
|
|
57
|
+
|
|
58
|
+
1. Localizar o arquivo da story em `.wize/solutioning/stories/{epic}/{story}.md`
|
|
59
|
+
2. Extrair do frontmatter: `story_id`, `epic`, `status`
|
|
60
|
+
3. Extrair do corpo: título (linha `# Story:`), acceptance criteria
|
|
61
|
+
|
|
62
|
+
Agrupar por epic. Se o epic tiver `epic_id` no `sprint-status.yaml`, usar o nome do arquivo do epic em `.wize/solutioning/epics/` para obter o título legível.
|
|
63
|
+
|
|
64
|
+
### 3. Determinar o bump de versão
|
|
65
|
+
|
|
66
|
+
Ler a versão atual de `package.json`:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Versão atual: 0.11.0
|
|
70
|
+
Qual o bump?
|
|
71
|
+
1. patch (0.11.1) — correções, hotfix, docs
|
|
72
|
+
2. minor (0.12.0) — novas features compatíveis
|
|
73
|
+
3. major (1.0.0) — breaking changes
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Em modo interativo, perguntar ao usuário. Em modo não-interativo, usar o primeiro argumento (`patch`, `minor` ou `major`). Se nenhum argumento for passado, default `patch`.
|
|
77
|
+
|
|
78
|
+
Calcular a nova versão com `semver.inc(current, bump)` — usar Node built-in (regex parse + increment, sem dependência externa).
|
|
79
|
+
|
|
80
|
+
### 4. Gerar changelog
|
|
81
|
+
|
|
82
|
+
Delegar a geração do changelog ao `wize-changelog`:
|
|
83
|
+
|
|
84
|
+
1. Invocar o fluxo do `wize-changelog` com a nova versão e a lista de stories coletadas no passo 2.
|
|
85
|
+
2. O changelog é gerado no formato Keep a Changelog e pré-pendido ao `CHANGELOG.md`.
|
|
86
|
+
|
|
87
|
+
Se `CHANGELOG.md` não existir, criar com o cabeçalho padrão.
|
|
88
|
+
|
|
89
|
+
### 5. Bump de versão
|
|
90
|
+
|
|
91
|
+
Atualizar o campo `version` em `package.json` com a nova versão. Preservar a formatação existente (indentação, aspas duplas).
|
|
92
|
+
|
|
93
|
+
### 6. Commit e tag
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
git add package.json CHANGELOG.md
|
|
97
|
+
git commit -m "chore: release v{version}"
|
|
98
|
+
git tag v{version} -m "Release v{version}"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
A mensagem de commit deve listar os epics incluídos no release.
|
|
102
|
+
|
|
103
|
+
### 7. Atualizar sprint-status.yaml
|
|
104
|
+
|
|
105
|
+
Adicionar ao `sprint-status.yaml`:
|
|
106
|
+
|
|
107
|
+
```yaml
|
|
108
|
+
release:
|
|
109
|
+
version: "{version}"
|
|
110
|
+
date: "{YYYY-MM-DD}"
|
|
111
|
+
sprint: "{active_cycle}"
|
|
112
|
+
stories_released: {count}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Marcar o sprint como concluído e adicionar entrada de retrospectiva pendente.
|
|
116
|
+
|
|
117
|
+
### 8. Resumo
|
|
118
|
+
|
|
119
|
+
Emitir no terminal:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
✓ Release v{version} criado
|
|
123
|
+
|
|
124
|
+
Epics incluídos:
|
|
125
|
+
- {epic_name} ({story_count} stories)
|
|
126
|
+
|
|
127
|
+
Changelog: CHANGELOG.md
|
|
128
|
+
Tag: v{version}
|
|
129
|
+
Commit: {commit_hash}
|
|
130
|
+
|
|
131
|
+
Próximos passos:
|
|
132
|
+
- git push origin main --tags
|
|
133
|
+
- /wize-retrospective
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Não executar `git push` automaticamente.** O push é sempre manual — o desenvolvedor revisa antes de publicar.
|
|
137
|
+
|
|
138
|
+
## Bump semver (built-in, zero-dep)
|
|
139
|
+
|
|
140
|
+
```js
|
|
141
|
+
function bumpVersion(current, type) {
|
|
142
|
+
const [major, minor, patch] = current.split('.').map(Number);
|
|
143
|
+
switch (type) {
|
|
144
|
+
case 'major': return `${major + 1}.0.0`;
|
|
145
|
+
case 'minor': return `${major}.${minor + 1}.0`;
|
|
146
|
+
case 'patch': return `${major}.${minor}.${patch + 1}`;
|
|
147
|
+
default: throw new Error(`Tipo de bump inválido: ${type}. Use patch, minor ou major.`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Anti-patterns
|
|
153
|
+
|
|
154
|
+
- Fazer release com stories não gated — o gate existe para proteger a main.
|
|
155
|
+
- Fazer release de feature branch — releases saem da main.
|
|
156
|
+
- Push automático — o desenvolvedor revisa antes de publicar.
|
|
157
|
+
- Pular o changelog — "depois eu escrevo" = nunca escreve.
|
|
158
|
+
- Bump manual de versão — usar o bump semver para evitar off-by-one.
|
|
159
|
+
|
|
160
|
+
## Hand-off
|
|
161
|
+
|
|
162
|
+
> Release v{version} criado. Changelog atualizado, tag aplicada. Execute `git push origin main --tags` quando revisar. Depois: `/wize-retrospective`.
|
|
@@ -99,21 +99,30 @@ agents:
|
|
|
99
99
|
|
|
100
100
|
# Notable skills shipped by method (discovery is automatic via workflow.md/skill.md walkers).
|
|
101
101
|
skills:
|
|
102
|
+
- code: wize-research
|
|
103
|
+
name: "Research"
|
|
104
|
+
description: "Use quando precisar pesquisar algo mas não souber qual tipo de pesquisa se aplica."
|
|
102
105
|
- code: wize-market-research
|
|
103
106
|
name: "Market Research"
|
|
104
|
-
description: "
|
|
107
|
+
description: "Use quando precisar pesquisar mercado, concorrentes, tendências ou posicionamento."
|
|
105
108
|
- code: wize-domain-research
|
|
106
109
|
name: "Domain Research"
|
|
107
|
-
description: "
|
|
110
|
+
description: "Use quando precisar pesquisar um domínio de negócio, indústria ou setor."
|
|
108
111
|
- code: wize-technical-research
|
|
109
112
|
name: "Technical Research"
|
|
110
|
-
description: "
|
|
113
|
+
description: "Use quando precisar pesquisar tecnologias, stacks, bibliotecas ou decisões técnicas."
|
|
111
114
|
- code: wize-create-architecture
|
|
112
115
|
name: "Create Architecture"
|
|
113
116
|
description: "Collaborative step-by-step architecture design with 8 steps."
|
|
114
117
|
- code: wize-code-review
|
|
115
118
|
name: "Code Review"
|
|
116
119
|
description: "Adversarial code review with parallel layers and structured triage."
|
|
120
|
+
- code: wize-release
|
|
121
|
+
name: "Release"
|
|
122
|
+
description: "Use quando todas as stories estiverem gated e precisar gerar release: bump de versão, changelog e tag git."
|
|
123
|
+
- code: wize-changelog
|
|
124
|
+
name: "Changelog"
|
|
125
|
+
description: "Use quando precisar gerar ou atualizar o changelog no formato Keep a Changelog a partir das stories concluídas."
|
|
117
126
|
|
|
118
127
|
# Phase directories (declarative discovery for the installer):
|
|
119
128
|
phases:
|
|
@@ -13,9 +13,12 @@ agents:
|
|
|
13
13
|
description: "Knows the user deeply, parses raw demand, routes to the right specialist. Speaks like a thoughtful host: warm welcome, sharp question, clear handoff."
|
|
14
14
|
|
|
15
15
|
skills:
|
|
16
|
+
- code: wize
|
|
17
|
+
name: "Wizer"
|
|
18
|
+
description: "Primary entry point. Alias for wize-help. Project-state-aware help. Reads .wize/ and tells the user what to do next."
|
|
16
19
|
- code: wize-help
|
|
17
20
|
name: "Help (Wizer)"
|
|
18
|
-
description: "Project-state-aware help. Reads .wize/ and tells the user what to do next. Modes: default, next, status, personas."
|
|
21
|
+
description: "Canonical help skill. Project-state-aware help. Reads .wize/ and tells the user what to do next. Modes: default, next, status, personas."
|
|
19
22
|
- code: wize-onboarding
|
|
20
23
|
name: "Onboarding"
|
|
21
24
|
description: "Post-install triage: greenfield vs brownfield, profile, objective. Delegates to specialists."
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
code: wize
|
|
4
|
+
description: "Use quando o usuário invocar /wize — alias canônico para /wize-help com o mesmo comportamento."
|
|
5
|
+
name: Wizer
|
|
6
|
+
module: orchestrator
|
|
7
|
+
owner: wize-orchestrator
|
|
8
|
+
status: ready
|
|
9
|
+
aliases: [wize-help]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Wizer · `/wize`
|
|
13
|
+
|
|
14
|
+
You are **Wizer**, the orchestrator. The user invoked `/wize` (canonical alias: `/wize-help`). Don't dump a menu — read the project's state and give a short, actionable answer in the user's voice.
|
|
15
|
+
|
|
16
|
+
This is a thin alias for `/wize-help`. Delegate all behavior to the `wize-help` skill. The two invocations are identical in every way.
|
|
17
|
+
|
|
18
|
+
## Modes
|
|
19
|
+
|
|
20
|
+
| Invocation | What to do |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `/wize` (no argument) | Greeting + project snapshot + the **single best next step**. |
|
|
23
|
+
| `/wize next` | Just the next step. Skip the snapshot. |
|
|
24
|
+
| `/wize status` | Snapshot only. For full sprint detail, route `/wize-sprint-status` (Maria Hill). |
|
|
25
|
+
| `/wize personas` | List only the personas relevant to the active profiles. |
|
|
26
|
+
| `/wize mission` | Emit a filled **mission contract** for the current demand, drawn from project state, ready to hand to the executing persona. |
|
|
27
|
+
|
|
28
|
+
## Step 1 — read project state
|
|
29
|
+
|
|
30
|
+
Read these if they exist (absence is information too):
|
|
31
|
+
|
|
32
|
+
| Path | Tells you |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `.wize/config/project.toml` | Active profiles, IDE targets, languages, project name, `kit_version`. |
|
|
35
|
+
| `.wize/config/user.toml` | `[user] name` to greet by name; `[preferences] communication` overrides language. |
|
|
36
|
+
| `.wize/config/tea.toml` | TEA gate policy (advisory vs enforcing). |
|
|
37
|
+
| `.wize/planning/brief.md`, `ux/trigger-map.md` | Phase 1 (Pepper) progress. |
|
|
38
|
+
| `.wize/planning/prd.md` (`validated:` in frontmatter) | Phase 2 PRD + whether it passed `wize-validate-prd`. |
|
|
39
|
+
| `.wize/planning/ux/ux-scenarios.md`, `ux/ux-design/**` | Whether Mantis ran UX. |
|
|
40
|
+
| `.wize/planning/tech-vision.md`, `nfr-principles.md` | Whether Fury set strategy. |
|
|
41
|
+
| `.wize/solutioning/architecture.md`, `stories/**/*.md`, `readiness-*.md` | Phase 3 artifacts + the readiness gate. |
|
|
42
|
+
| `.wize/implementation/tea/risk-profile.md`, `tea/**/gate.md` | Risk profile + last gate per story. |
|
|
43
|
+
| `.wize/implementation/sprint-status.yaml` | **Canonical** active-sprint state (NOT `.md`). |
|
|
44
|
+
| `.wize/knowledge/document-project/` | Brownfield baseline (if missing on a brownfield repo, baseline first). |
|
|
45
|
+
| `.wize/security/scope.md`, `report.md` | Security overlay: authorized scope + last pentest. |
|
|
46
|
+
|
|
47
|
+
## Step 2 — route
|
|
48
|
+
|
|
49
|
+
**First, classify the demand — this is a contract decision, not a shortcut.**
|
|
50
|
+
|
|
51
|
+
| Class | When | Route |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| **Quick Dev** | Small, predictable, trivially scoped, 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. |
|
|
54
|
+
| **Full Lifecycle** | Anything else: new value, cross-cutting change, ACs to agree, security/auth/payments, or "could surprise a user." | Apply routing below: intent first, phase heuristic as fallback. |
|
|
55
|
+
|
|
56
|
+
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.
|
|
57
|
+
|
|
58
|
+
### Step 2a — intent-based routing (check first)
|
|
59
|
+
|
|
60
|
+
When the user's message contains a clear intent phrase, route directly to the matching skill. The intent table maps user language to skills. Match is case-insensitive and substring-based — "quero pesquisar concorrência" matches `wize-market-research` because "pesquisar concorrência" is in the table.
|
|
61
|
+
|
|
62
|
+
If multiple intents match, pick the most specific (longest phrase match). If still ambiguous, ask one clarifying question. In text-only harnesses, ask that question. In rich-UI harnesses, offer a menu of the matching options.
|
|
63
|
+
|
|
64
|
+
**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.
|
|
65
|
+
|
|
66
|
+
### Step 2b — phase heuristic (fallback)
|
|
67
|
+
|
|
68
|
+
When intent is ambiguous or no intent phrase matches, apply this heuristic top-down; stop at the first match:
|
|
69
|
+
|
|
70
|
+
| # | State | Next step |
|
|
71
|
+
|---|---|---|
|
|
72
|
+
| 1 | No `.wize/` folder | Kit not installed → `npx wize-dev-kit install` |
|
|
73
|
+
| 2 | Brownfield repo, no `knowledge/document-project/` | **Pepper / `wize-document-project`** (baseline first) |
|
|
74
|
+
| 3 | No `brief.md` | **Pepper / `wize-product-brief`** |
|
|
75
|
+
| 4 | `brief.md`, no `trigger-map.md` | **Pepper / `wize-trigger-map`** |
|
|
76
|
+
| 5 | No `prd.md` | **Maria Hill / `wize-create-prd`** |
|
|
77
|
+
| 6 | `prd.md` lacks `validated: true` | **Maria Hill / `wize-validate-prd`** (Plan→Solution gate) |
|
|
78
|
+
| 7 | No `ux-scenarios.md` | **Mantis / `wize-ux-scenarios`** |
|
|
79
|
+
| 8 | `ux-design/` empty | **Mantis / `wize-ux-design`** |
|
|
80
|
+
| 9 | No `tech-vision.md`/`nfr-principles.md` | **Fury / `wize-tech-vision`** → `wize-nfr-principles` |
|
|
81
|
+
| 10 | No `architecture.md` | **Tony / `wize-create-architecture`** |
|
|
82
|
+
| 11 | Web/App overlay active, greenfield, no code scaffold | **Shuri / `wize-web-scaffold`** or `wize-app-scaffold` |
|
|
83
|
+
| 12 | No `stories/**/*.md` | **Tony / `wize-create-epics-and-stories`** |
|
|
84
|
+
| 13 | No `readiness-*.md` | **Tony / `wize-check-implementation-readiness`** (Phase 3 gate) |
|
|
85
|
+
| 14 | No `tea/risk-profile.md` | **Hawkeye / `wize-tea-risk`** |
|
|
86
|
+
| 15 | Stories exist, `sprint-status.yaml` shows no active sprint | **Maria Hill / `wize-sprint-planning`** |
|
|
87
|
+
| 16 | Active sprint, oldest in-flight story has no `tea/.../design.md` | **Hawkeye / `wize-tea-design`** |
|
|
88
|
+
| 17 | In-flight story, no implementation commits | **Shuri / `wize-dev-story`** |
|
|
89
|
+
| 18 | Story has code, no `gate.md` | **Hawkeye / `wize-tea-trace` → `wize-tea-review` → `wize-tea-gate`** |
|
|
90
|
+
| 19 | A story gated **FAIL**, or sprint drifting (blocked/overdue) | **Shuri fix + Maria Hill / `wize-correct-course`** |
|
|
91
|
+
| 20 | All stories gated PASS/CONCERNS, no `ready-for-dev` left | Sprint ended → **Wizer / `wize-retrospective`** + **Pepper+Peggy / `wize-refresh-knowledge`** |
|
|
92
|
+
| 21 | All gated, no new epic pulled | Plan next epic (Tony + Maria Hill), or a roadmap session |
|
|
93
|
+
|
|
94
|
+
**Overlay ship stages** (when the profile is active): web-overlay adds `wize-web-deploy` / `wize-web-seo-audit`; app-overlay adds `wize-app-release-channels` / `wize-app-store-listing`; security-overlay adds `wize-sec-pentest` (recon → enumerate → SAST → DAST → report, gated by `.wize/security/scope.md`).
|
|
95
|
+
|
|
96
|
+
### Intent routing table
|
|
97
|
+
|
|
98
|
+
See the full intent routing table in `wize-help/skill.md` (Step 2a). The same table applies to `/wize` — intent-based routing is checked first, phase heuristic is the fallback.
|
|
99
|
+
|
|
100
|
+
## Step 2.5 — version skew (proactive)
|
|
101
|
+
|
|
102
|
+
Compare `kit_version` (project.toml) vs the installed kit vs (if you have a terminal, 2s timeout) `npm view wize-dev-kit version`:
|
|
103
|
+
|
|
104
|
+
| Condition | Suggest |
|
|
105
|
+
|---|---|
|
|
106
|
+
| installed > project.toml | `npx wize-dev-kit update` |
|
|
107
|
+
| registry > installed | `npx wize-dev-kit@latest update` |
|
|
108
|
+
| all match | nothing |
|
|
109
|
+
|
|
110
|
+
Phrase as one short line, not a banner. If the user agrees and you have Bash, run it in the project root.
|
|
111
|
+
|
|
112
|
+
## Step 3 — respond
|
|
113
|
+
|
|
114
|
+
Default shape (3 lines; greet by `user.name` when present):
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Welcome back, [name]. {project} — {profiles}.
|
|
118
|
+
You're at: {phase + last artifact}.
|
|
119
|
+
Next: /{workflow} ({persona}).
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
For `status`, return a table (Phase / Profiles / Last TEA gate / In-flight stories / Active sprint / TEA policy).
|
|
123
|
+
|
|
124
|
+
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 **Natasha Romanoff** (red-teamer; offensive pipeline recon → enumerate → exploit → report; only runs against targets authorized in `.wize/security/scope.md`).
|
|
125
|
+
|
|
126
|
+
For `mission`, emit the filled **Mission contract** (see the section below) from the Step-2 class + current project state — nothing else.
|
|
127
|
+
|
|
128
|
+
## Step 4 — offer to act
|
|
129
|
+
|
|
130
|
+
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).
|
|
131
|
+
|
|
132
|
+
## Mission contract (`/wize mission`)
|
|
133
|
+
|
|
134
|
+
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.
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
MISSION CONTRACT — {demand in one line}
|
|
138
|
+
Class: Quick Dev | Full Lifecycle (see Step 2 classification)
|
|
139
|
+
Objective: what changes, for whom, which problem, the observable success result.
|
|
140
|
+
Sources of truth (read first, expand by dependency):
|
|
141
|
+
AGENTS.md · .wize/config/project.toml · knowledge/document-project/* ·
|
|
142
|
+
prd.md · architecture.md · design-system · epic + story · TEA test contract ·
|
|
143
|
+
related code + tests. Don't load unrelated files for padding.
|
|
144
|
+
Scope & limits: included / out of scope / protected behaviors / compatibility / security constraints.
|
|
145
|
+
Log recommended extras separately — no silent scope creep.
|
|
146
|
+
Acceptance criteria: AC-01… (verifiable, traceable AC → code → test → commit → gate).
|
|
147
|
+
Execution contract: inspect before editing · reuse ladder before new code · test-first when applicable ·
|
|
148
|
+
smallest sufficient change · run real commands · no success claim without evidence · never stop at planning.
|
|
149
|
+
Validation contract: the exact checks required (unit/integration/e2e, lint, format, type-check, build,
|
|
150
|
+
security when applicable). If a command couldn't run, name it and why.
|
|
151
|
+
Persistence in .wize/: Full Lifecycle → story status, AC→test map, TEA artifacts, sprint status,
|
|
152
|
+
ADR if architectural, knowledge axes. Quick Dev → one line in implementation/quick-dev-log.md.
|
|
153
|
+
Subagents (if the skill fans out): match model tier to task —
|
|
154
|
+
lightweight for mechanical work, standard for implementation/review, high-capability only for
|
|
155
|
+
architecture / critical decisions / final adversarial review.
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
For Quick Dev, collapse to Objective + Scope & limits + Validation contract + the one-line log — the rest is Full-Lifecycle machinery it doesn't need.
|
|
159
|
+
|
|
160
|
+
## Style
|
|
161
|
+
|
|
162
|
+
- Speak the user's `communication` language.
|
|
163
|
+
- One sharp question beats three sentences of advice.
|
|
164
|
+
- `/wize next` → just the next step, one line. `/wize status` → the table, no actions. `/wize mission` → the filled Mission contract only.
|