wize-dev-kit 0.10.1 → 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 +48 -0
- package/README.es.md +1 -1
- package/README.md +1 -1
- package/README.pt-BR.md +1 -1
- 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 +3 -2
- 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 +3 -1
- 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-02-context.md +1 -1
- 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 +7 -6
- 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 +8 -6
- package/src/method-skills/4-implementation/wize-code-review/workflow.md +2 -0
- package/src/method-skills/4-implementation/wize-correct-course/workflow.md +3 -1
- package/src/method-skills/4-implementation/wize-create-story/workflow.md +7 -13
- 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 +7 -5
- package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +11 -6
- 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 +127 -6
- 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/backlog.js +3 -14
- 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
|
@@ -108,7 +108,7 @@ Prepare the section to append:
|
|
|
108
108
|
**Scale & Complexity:**
|
|
109
109
|
- Primary domain: {{domain}}
|
|
110
110
|
- Complexity level: {{level}}
|
|
111
|
-
-
|
|
111
|
+
- Architectural components: {{count}}
|
|
112
112
|
|
|
113
113
|
### Technical Constraints & Dependencies
|
|
114
114
|
{{list}}
|
|
@@ -47,7 +47,7 @@ lastStep: 8
|
|
|
47
47
|
Architecture complete. Next:
|
|
48
48
|
1. Hawkeye: run wize-tea-risk to build the global risk profile.
|
|
49
49
|
2. Tony: run wize-create-epics-and-stories to slice the work.
|
|
50
|
-
3. Use wize-help anytime to check what comes next.
|
|
50
|
+
3. Use `/wize` (or `/wize-help`) anytime to check what comes next.
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
## On complete
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-create-architecture
|
|
4
|
+
description: "Use quando o PRD e UX design estiverem prontos e precisar projetar a arquitetura do sistema com componentes, sequências e ADRs."
|
|
3
5
|
name: Create Architecture
|
|
4
6
|
phase: 3-solutioning
|
|
5
7
|
owner: wize-agent-architect # Tony Stark
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-create-epics-and-stories
|
|
4
|
+
description: "Use quando a arquitetura estiver definida e precisar fatiar o escopo em epics e stories com acceptance criteria."
|
|
3
5
|
name: Create Epics and Stories
|
|
4
6
|
phase: 3-solutioning
|
|
5
7
|
owner: wize-agent-architect # Tony Stark
|
|
@@ -12,6 +14,8 @@ status: ready
|
|
|
12
14
|
|
|
13
15
|
Tony drives. Output lands in `.wize/solutioning/epics/` and `.wize/solutioning/stories/`.
|
|
14
16
|
|
|
17
|
+
> **No estimates.** Epics and stories never carry a time or effort estimate (hours, days, story points, S/M/L/XL) — at any step. AI development speed has made them noise that only burns time and tokens. The only sizing question is binary: **does a story fit one PR?** If not, slice it.
|
|
18
|
+
|
|
15
19
|
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
20
|
|
|
17
21
|
## Inputs
|
|
@@ -47,7 +51,6 @@ owner: Tony Stark + Maria Hill
|
|
|
47
51
|
linked_prd: E01
|
|
48
52
|
trigger_map_row: 1
|
|
49
53
|
priority: 1
|
|
50
|
-
estimate: M
|
|
51
54
|
---
|
|
52
55
|
|
|
53
56
|
# Epic 01: Sign-up + first invite
|
|
@@ -76,8 +79,7 @@ Each story passes:
|
|
|
76
79
|
- **I**ndependent — can be implemented without waiting for another in-flight story.
|
|
77
80
|
- **N**egotiable — wording can move; intent stays.
|
|
78
81
|
- **V**aluable — a real outcome to a real user (or a clear test path that proves a slice).
|
|
79
|
-
- **
|
|
80
|
-
- **S**mall — fits in one PR (≤ 1 day for an experienced dev, including tests).
|
|
82
|
+
- **S**mall — fits in one PR, tests included. This is the *only* sizing test; no time or point estimate (see **No estimates** above).
|
|
81
83
|
- **T**estable — every AC is observable.
|
|
82
84
|
|
|
83
85
|
If a story is XL, slice it before merging it to `stories/`.
|
|
@@ -101,7 +103,6 @@ story_id: E01-S03
|
|
|
101
103
|
epic: 01-onboarding
|
|
102
104
|
status: ready-for-dev
|
|
103
105
|
priority: 2
|
|
104
|
-
estimate: M
|
|
105
106
|
linked_screens: [onboarding-step-1, invite-modal]
|
|
106
107
|
linked_acs: [AC-02-1, AC-02-2]
|
|
107
108
|
---
|
|
@@ -163,9 +164,9 @@ Every story declares the AC IDs it advances (from PRD). The union of stories per
|
|
|
163
164
|
|
|
164
165
|
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.
|
|
165
166
|
|
|
166
|
-
### 4.
|
|
167
|
+
### 4. Slice check (no estimates)
|
|
167
168
|
|
|
168
|
-
|
|
169
|
+
Don't estimate stories — size them by one question: does each fit a single PR? Anything that doesn't gets sliced before it lands in `stories/`. If most stories feel too big to slice cleanly, the slicing pattern is too coarse; revisit it.
|
|
169
170
|
|
|
170
171
|
### 5. Hand off
|
|
171
172
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-design-system
|
|
4
|
+
description: "Use quando o UX design estiver avançando e precisar estabelecer a baseline do design system (tokens, componentes, grids)."
|
|
3
5
|
name: Design System
|
|
4
6
|
phase: 3-solutioning
|
|
5
7
|
owner: wize-agent-ux-designer # Mantis (WDS Freya — Phase 7)
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-nfr-principles
|
|
4
|
+
description: "Use quando o PRD estiver validado e precisar definir os princípios de NFR (perf, segurança, confiabilidade, acessibilidade, custo) que guiarão a arquitetura."
|
|
3
5
|
name: NFR Principles
|
|
4
|
-
phase:
|
|
6
|
+
phase: 3-solutioning
|
|
5
7
|
owner: wize-agent-solution-strategist # Nick Fury
|
|
6
8
|
status: ready
|
|
7
9
|
---
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-project-context
|
|
4
|
+
description: "Use quando precisar estabelecer ou atualizar o contexto do projeto (stack, convenções, restrições) para orientar a solução."
|
|
3
5
|
name: Project Context
|
|
4
6
|
phase: 3-solutioning
|
|
5
7
|
owner: wize-agent-architect # Tony Stark
|
|
@@ -60,7 +62,7 @@ Read `.wize/implementation/sprint-status.yaml` and include: sprint number, capac
|
|
|
60
62
|
|
|
61
63
|
### 6. Hand off
|
|
62
64
|
|
|
63
|
-
Output is a markdown file. Wizer uses this file to seed `/wize-help`, `/wize-dev-story`, and `/wize-onboarding` reads.
|
|
65
|
+
Output is a markdown file. Wizer uses this file to seed `/wize`, `/wize-help`, `/wize-dev-story`, and `/wize-onboarding` reads.
|
|
64
66
|
|
|
65
67
|
## Output template
|
|
66
68
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-tech-vision
|
|
4
|
+
description: "Use quando o PRD estiver validado e precisar definir o norte técnico: stack family, build-buy-borrow e non-negotiables."
|
|
3
5
|
name: Tech Vision
|
|
4
|
-
phase:
|
|
6
|
+
phase: 3-solutioning
|
|
5
7
|
owner: wize-agent-solution-strategist # Nick Fury
|
|
6
8
|
status: ready
|
|
7
9
|
---
|
|
@@ -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)
|
|
@@ -8,19 +10,19 @@ status: ready
|
|
|
8
10
|
|
|
9
11
|
# Checkpoint Preview
|
|
10
12
|
|
|
11
|
-
**Goal.** Pause mid-story to validate direction before continuing. For
|
|
13
|
+
**Goal.** Pause mid-story to validate direction before continuing. For larger stories where the cost of going off-rail is high, a quick checkpoint catches drift before it becomes rework.
|
|
12
14
|
|
|
13
15
|
Shuri drives. Tony on call for architectural drift. Hawkeye on call for test design drift.
|
|
14
16
|
|
|
15
17
|
## When to run
|
|
16
18
|
|
|
17
|
-
- Manually, when a story is
|
|
18
|
-
- After the first 2-3 commits of
|
|
19
|
+
- Manually, when a story is running long or feels off-track.
|
|
20
|
+
- After the first 2-3 commits of a larger story.
|
|
19
21
|
- When a new constraint is mentioned (security review, perf budget, vendor change).
|
|
20
22
|
|
|
21
23
|
## When NOT to run
|
|
22
24
|
|
|
23
|
-
- Quick-dev /
|
|
25
|
+
- Quick-dev / small stories (overhead exceeds the value).
|
|
24
26
|
- When the story is < 50% done and no surprise has come up yet.
|
|
25
27
|
|
|
26
28
|
## Inputs
|
|
@@ -49,7 +51,7 @@ Write 5 lines:
|
|
|
49
51
|
- ACs done vs. remaining: (X / Y)
|
|
50
52
|
- Tests added: (count, by split)
|
|
51
53
|
- New dependencies: (list)
|
|
52
|
-
-
|
|
54
|
+
- Commits so far: (count)
|
|
53
55
|
|
|
54
56
|
### 3. Sanity check (3 questions)
|
|
55
57
|
|
|
@@ -92,7 +94,7 @@ author: Shuri
|
|
|
92
94
|
- ACs done vs. remaining: 1 / 4
|
|
93
95
|
- Tests added: 2 unit, 1 integration
|
|
94
96
|
- New dependencies: none
|
|
95
|
-
-
|
|
97
|
+
- Commits so far: 3
|
|
96
98
|
|
|
97
99
|
## Sanity check
|
|
98
100
|
- Right problem? Yes.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-correct-course
|
|
4
|
+
description: "Use quando o projeto desviar do plano e precisar de correção de curso com decisão documentada."
|
|
3
5
|
name: Correct Course
|
|
4
6
|
phase: 4-implementation
|
|
5
7
|
owner: wize-agent-pm # Maria Hill, with wize-orchestrator
|
|
@@ -43,7 +45,7 @@ Wizer pulls the latest status file. If `last_updated` is older than 2 days, the
|
|
|
43
45
|
|
|
44
46
|
Pick exactly one cause:
|
|
45
47
|
|
|
46
|
-
- **Cut scope.** Story
|
|
48
|
+
- **Cut scope.** Story turned out larger than one PR, or a non-essential AC can be deferred.
|
|
47
49
|
- **Re-route.** Story needs a different agent (e.g., Mantis for UX) or skill (e.g., `wize-investigate` for a regression).
|
|
48
50
|
- **Escalate.** Story needs more hands, or a decision outside the team.
|
|
49
51
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
|
|
2
3
|
code: wize-create-story
|
|
4
|
+
description: "Use quando um epic estiver definido e precisar criar uma story individual com acceptance criteria detalhados."
|
|
3
5
|
name: Create Story
|
|
4
6
|
phase: 4-implementation
|
|
5
7
|
owner: wize-agent-architect # Tony writes; Shuri may refine
|
|
@@ -12,6 +14,8 @@ status: ready
|
|
|
12
14
|
|
|
13
15
|
Tony drives. Shuri reads and proposes refinements before pulling the story.
|
|
14
16
|
|
|
17
|
+
> **No estimates.** Never attach a time or effort estimate (hours, days, story points, S/M/L/XL) to a story — at any step. AI development speed has made them noise that only burns time and tokens. The only sizing question is binary: **does it fit one PR?** If not, slice it. Nothing else.
|
|
18
|
+
|
|
15
19
|
## When to use
|
|
16
20
|
|
|
17
21
|
- New story splits from an epic (most common — done in `wize-create-epics-and-stories`).
|
|
@@ -47,7 +51,6 @@ story_id: E01-S03
|
|
|
47
51
|
epic: 01-onboarding
|
|
48
52
|
status: ready-for-dev
|
|
49
53
|
priority: 2 # 1=now, 2=next, 3=later
|
|
50
|
-
estimate: M # S | M | L (XL → slice further before merging here)
|
|
51
54
|
linked_screens: [onboarding-step-1, invite-modal]
|
|
52
55
|
linked_acs: [AC-02-1, AC-02-2]
|
|
53
56
|
---
|
|
@@ -95,20 +98,12 @@ Every story passes:
|
|
|
95
98
|
- **I**ndependent.
|
|
96
99
|
- **N**egotiable.
|
|
97
100
|
- **V**aluable.
|
|
98
|
-
- **
|
|
99
|
-
- **S**mall (≤ 1 PR).
|
|
101
|
+
- **S**mall (≤ 1 PR) — the *only* sizing test; if it doesn't fit one PR, slice.
|
|
100
102
|
- **T**estable.
|
|
101
103
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
## Estimation rough guide
|
|
105
|
-
|
|
106
|
-
- **S** ≤ 4h.
|
|
107
|
-
- **M** 4h–1d.
|
|
108
|
-
- **L** 1–2d.
|
|
109
|
-
- **XL** > 2d → split.
|
|
104
|
+
(INVEST's "Estimable" is dropped on purpose — see **No estimates** above. We don't size in time or points.)
|
|
110
105
|
|
|
111
|
-
|
|
106
|
+
If any letter fails, fix before queueing.
|
|
112
107
|
|
|
113
108
|
## Full story template
|
|
114
109
|
|
|
@@ -118,7 +113,6 @@ story_id: E01-S03
|
|
|
118
113
|
epic: 01-onboarding
|
|
119
114
|
status: ready-for-dev
|
|
120
115
|
priority: 2
|
|
121
|
-
estimate: M
|
|
122
116
|
linked_screens: [onboarding-step-1, invite-modal]
|
|
123
117
|
linked_acs: [AC-02-1, AC-02-2]
|
|
124
118
|
---
|
|
@@ -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`.
|