wize-dev-kit 0.10.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -9,6 +9,25 @@ Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [0.11.0] — 2026-08-06
13
+
14
+ **No-estimates policy.** The method now refuses to produce development estimates at any step — no hours, days, story points, or S/M/L/XL t-shirt sizes. Following the BMAD stance already stated in the architecture skill ("AI development speed has fundamentally changed"), estimates are treated as noise that only burns time and tokens. The only sizing signal that remains is binary: **does a story fit one PR? If not, slice it.** Suite green (417 tests, validate 74 files).
15
+
16
+ ### Removed
17
+
18
+ - **`estimate` frontmatter field** from the story and epic templates (`wize-create-story`, `wize-create-epics-and-stories`).
19
+ - **`estimateFor()`** helper and the `- **Estimativa:**` / `est S|M|L` output from the security remediation backlog (`security-overlay/_shared/backlog.js`) — the red-teamer's remediation epics/stories no longer carry a size estimate.
20
+ - **"Estimation rough guide"** (S ≤ 4h, M 4h–1d, …) from `wize-create-story`.
21
+
22
+ ### Changed
23
+
24
+ - **INVEST** — the "Estimable" letter is dropped on purpose across `wize-create-prd`, `wize-validate-prd`, `wize-create-story`, and `wize-create-epics-and-stories`. "Small (≤ 1 PR)" is now the only sizing test.
25
+ - **`wize-sprint-planning`** — planning is by story count and priority, not velocity or person-day math; "Optimistic velocity" anti-pattern replaced with "don't estimate."
26
+ - **`wize-retrospective`** — the dashboard reports stories committed vs shipped (a count) instead of velocity; the example retro no longer references M/L estimates.
27
+ - **`wize-checkpoint-preview`** — the snapshot records "Commits so far" instead of "Time spent"; triggers refer to "larger stories," not "M/L stories."
28
+ - **`wize-help`** — the Quick Dev classifier drops the "~≤1h" time threshold; it now reads "trivially scoped."
29
+ - Each affected skill carries an explicit **"No estimates"** note so the rule holds when the skill is loaded standalone.
30
+
12
31
  ## [0.10.1] — 2026-08-02
13
32
 
14
33
  Documentation polish + tooling fixes. The security-overlay persona gets a Marvel name; the README (3 languages) is aligned to v0.10.1; a rendering bug and the test glob are fixed; CI is added. Suite green (418 tests — the security-overlay suite now runs under `npm test`).
package/README.es.md CHANGED
@@ -250,7 +250,7 @@ npx wize-dev-kit version # imprime la versión instalada del kit
250
250
 
251
251
  ## Estado
252
252
 
253
- **v0.10.1 — beta.** El ciclo completo (análisis → plan → solución → implementación) está montado con 10 agentes y una biblioteca estructurada de skills. Los releases recientes suman **contratos de misión** (`/wize-help mission` emite un contrato lleno de objetivo / fuentes de verdad / alcance / ACs / contrato de validación para la persona ejecutora), **`wize-grill`** (una pasada de entrevista hasta entendimiento compartido antes de cualquier paso de autoría) y **loop verification** en `wize-dev-story` (un loop de implementación auto-verificable con guarda de max-cycles que escala a `wize-correct-course`). El `security-overlay` (Pentester de IA) entrega un pipeline de pentest completo, un informe ejecutivo (puntuación de riesgo + briefing + plan de acción por IA) y planificación de remediación post-scan — validado de principio a fin contra una aplicación Laravel/PHP real. Los adapters de IDE para Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode y Antigravity se regeneran automáticamente — [OpenCode](docs/harnesses/opencode.md) recibe wiring nativo de `mode`/`agent`/`subtask`, la integración más profunda de las 9.
253
+ **v0.11.0 — beta.** El método nunca produce estimaciones de desarrollo — ni horas, ni puntos, ni tallas de camiseta; una story se dimensiona solo por si cabe en un único PR. El ciclo completo (análisis → plan → solución → implementación) está montado con 10 agentes y una biblioteca estructurada de skills. Los releases recientes suman **contratos de misión** (`/wize-help mission` emite un contrato lleno de objetivo / fuentes de verdad / alcance / ACs / contrato de validación para la persona ejecutora), **`wize-grill`** (una pasada de entrevista hasta entendimiento compartido antes de cualquier paso de autoría) y **loop verification** en `wize-dev-story` (un loop de implementación auto-verificable con guarda de max-cycles que escala a `wize-correct-course`). El `security-overlay` (Pentester de IA) entrega un pipeline de pentest completo, un informe ejecutivo (puntuación de riesgo + briefing + plan de acción por IA) y planificación de remediación post-scan — validado de principio a fin contra una aplicación Laravel/PHP real. Los adapters de IDE para Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode y Antigravity se regeneran automáticamente — [OpenCode](docs/harnesses/opencode.md) recibe wiring nativo de `mode`/`agent`/`subtask`, la integración más profunda de las 9.
254
254
 
255
255
  ---
256
256
 
package/README.md CHANGED
@@ -245,7 +245,7 @@ npx wize-dev-kit version # print the installed kit version
245
245
 
246
246
  ## Status
247
247
 
248
- **v0.10.1 — beta.** The full lifecycle (analysis → plan → solution → implementation) is wired with 10 agents and a structured skill library. Recent releases add **mission contracts** (`/wize-help mission` emits a filled objective / sources-of-truth / scope / ACs / validation contract for the executing persona), **`wize-grill`** (an interview-to-shared-understanding pass before any authoring step), and **loop verification** in `wize-dev-story` (a self-checking implementation loop with a max-cycles guard that escalates to `wize-correct-course`). The `security-overlay` (AI Pentester) ships a complete pentest pipeline, a stakeholder report (risk score + briefing + AI action plan), and post-scan remediation planning — validated end-to-end against a real Laravel/PHP app. IDE adapters for Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode, and Antigravity are regenerated automatically — [OpenCode](docs/harnesses/opencode.md) gets native `mode`/`agent`/`subtask` wiring, the deepest integration of the 9.
248
+ **v0.11.0 — beta.** The method never produces development estimates — no hours, points, or t-shirt sizes; a story is sized only by whether it fits a single PR. The full lifecycle (analysis → plan → solution → implementation) is wired with 10 agents and a structured skill library. Recent releases add **mission contracts** (`/wize-help mission` emits a filled objective / sources-of-truth / scope / ACs / validation contract for the executing persona), **`wize-grill`** (an interview-to-shared-understanding pass before any authoring step), and **loop verification** in `wize-dev-story` (a self-checking implementation loop with a max-cycles guard that escalates to `wize-correct-course`). The `security-overlay` (AI Pentester) ships a complete pentest pipeline, a stakeholder report (risk score + briefing + AI action plan), and post-scan remediation planning — validated end-to-end against a real Laravel/PHP app. IDE adapters for Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode, and Antigravity are regenerated automatically — [OpenCode](docs/harnesses/opencode.md) gets native `mode`/`agent`/`subtask` wiring, the deepest integration of the 9.
249
249
 
250
250
  ---
251
251
 
package/README.pt-BR.md CHANGED
@@ -248,7 +248,7 @@ npx wize-dev-kit version # imprime a versão instalada do kit
248
248
 
249
249
  ## Status
250
250
 
251
- **v0.10.1 — beta.** O ciclo completo (análise → plano → solução → implementação) está montado com 10 agentes e uma biblioteca estruturada de skills. Releases recentes adicionam **contratos de missão** (`/wize-help mission` emite um contrato preenchido de objetivo / fontes de verdade / escopo / ACs / validação para a persona executora), **`wize-grill`** (uma passagem de entrevista até entendimento compartilhado antes de qualquer passo de autoria) e **loop verification** no `wize-dev-story` (loop de implementação auto-verificável com guarda de max-cycles que escala para `wize-correct-course`). O `security-overlay` (Pentester de IA) entrega um pipeline de pentest completo, um relatório executivo (score de risco + briefing + plano de ação por IA) e planejamento de correção pós-scan — validado de ponta a ponta contra uma aplicação Laravel/PHP real. Os adapters de IDE para Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode e Antigravity são regenerados automaticamente — o [OpenCode](docs/harnesses/opencode.pt-BR.md) tem a integração mais profunda das 9, com `mode`/`agent`/`subtask` nativos.
251
+ **v0.11.0 — beta.** O método nunca produz estimativas de desenvolvimento — nada de horas, pontos ou tamanhos de camiseta; uma story é dimensionada apenas por caber (ou não) em um único PR. O ciclo completo (análise → plano → solução → implementação) está montado com 10 agentes e uma biblioteca estruturada de skills. Releases recentes adicionam **contratos de missão** (`/wize-help mission` emite um contrato preenchido de objetivo / fontes de verdade / escopo / ACs / validação para a persona executora), **`wize-grill`** (uma passagem de entrevista até entendimento compartilhado antes de qualquer passo de autoria) e **loop verification** no `wize-dev-story` (loop de implementação auto-verificável com guarda de max-cycles que escala para `wize-correct-course`). O `security-overlay` (Pentester de IA) entrega um pipeline de pentest completo, um relatório executivo (score de risco + briefing + plano de ação por IA) e planejamento de correção pós-scan — validado de ponta a ponta contra uma aplicação Laravel/PHP real. Os adapters de IDE para Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode e Antigravity são regenerados automaticamente — o [OpenCode](docs/harnesses/opencode.pt-BR.md) tem a integração mais profunda das 9, com `mode`/`agent`/`subtask` nativos.
252
252
 
253
253
  ---
254
254
 
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.10.1",
4
+ "version": "0.11.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",
@@ -149,8 +149,7 @@ Maria Hill validates every story's ACs against INVEST:
149
149
  - **I**ndependent: no implicit dependency on another story being built first.
150
150
  - **N**egotiable: details can move; intent can't.
151
151
  - **V**aluable: a real outcome to a real user.
152
- - **E**stimable: Tony can size it.
153
- - **S**mall: ≤ 1 PR worth (sliced finer in Phase 3 if not).
152
+ - **S**mall: ≤ 1 PR worth (sliced finer in Phase 3 if not) — the only sizing test. INVEST's "Estimable" is dropped on purpose: we don't produce time or point estimates.
154
153
  - **T**estable: every AC is observable.
155
154
 
156
155
  If any letter fails, fix the story before it leaves Plan.
@@ -45,7 +45,7 @@ After `wize-create-prd` produces `status: ready-for-validation`. Run once per ma
45
45
  ### Quality
46
46
  - [ ] Every AC is observable (testable by Hawkeye without ambiguity).
47
47
  - [ ] No AC contains the word "easy", "intuitive", "responsive" without a numeric criterion.
48
- - [ ] INVEST: every backbone story passes (independent, negotiable, valuable, estimable, small, testable).
48
+ - [ ] INVEST: every backbone story passes (independent, negotiable, valuable, small, testable) — "Estimable" is dropped; we don't estimate, we only check it fits one PR.
49
49
  - [ ] No goal repeats a brief constraint as if it were a goal.
50
50
 
51
51
  ### Cross-checks
@@ -108,7 +108,7 @@ Prepare the section to append:
108
108
  **Scale & Complexity:**
109
109
  - Primary domain: {{domain}}
110
110
  - Complexity level: {{level}}
111
- - Estimated architectural components: {{count}}
111
+ - Architectural components: {{count}}
112
112
 
113
113
  ### Technical Constraints & Dependencies
114
114
  {{list}}
@@ -12,6 +12,8 @@ status: ready
12
12
 
13
13
  Tony drives. Output lands in `.wize/solutioning/epics/` and `.wize/solutioning/stories/`.
14
14
 
15
+ > **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.
16
+
15
17
  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
18
 
17
19
  ## Inputs
@@ -47,7 +49,6 @@ owner: Tony Stark + Maria Hill
47
49
  linked_prd: E01
48
50
  trigger_map_row: 1
49
51
  priority: 1
50
- estimate: M
51
52
  ---
52
53
 
53
54
  # Epic 01: Sign-up + first invite
@@ -76,8 +77,7 @@ Each story passes:
76
77
  - **I**ndependent — can be implemented without waiting for another in-flight story.
77
78
  - **N**egotiable — wording can move; intent stays.
78
79
  - **V**aluable — a real outcome to a real user (or a clear test path that proves a slice).
79
- - **E**stimable — Tony can size: S/M/L/XL.
80
- - **S**mall — fits in one PR (≤ 1 day for an experienced dev, including tests).
80
+ - **S**mall — fits in one PR, tests included. This is the *only* sizing test; no time or point estimate (see **No estimates** above).
81
81
  - **T**estable — every AC is observable.
82
82
 
83
83
  If a story is XL, slice it before merging it to `stories/`.
@@ -101,7 +101,6 @@ story_id: E01-S03
101
101
  epic: 01-onboarding
102
102
  status: ready-for-dev
103
103
  priority: 2
104
- estimate: M
105
104
  linked_screens: [onboarding-step-1, invite-modal]
106
105
  linked_acs: [AC-02-1, AC-02-2]
107
106
  ---
@@ -163,9 +162,9 @@ Every story declares the AC IDs it advances (from PRD). The union of stories per
163
162
 
164
163
  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
164
 
166
- ### 4. Estimates
165
+ ### 4. Slice check (no estimates)
167
166
 
168
- Story estimates S/M/L/XL. XL gets sliced before merging. If everything is L, slicing pattern is too coarse; revisit.
167
+ 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
168
 
170
169
  ### 5. Hand off
171
170
 
@@ -8,19 +8,19 @@ status: ready
8
8
 
9
9
  # Checkpoint Preview
10
10
 
11
- **Goal.** Pause mid-story to validate direction before continuing. For M/L stories where the cost of going off-rail is high, a quick checkpoint catches drift before it becomes rework.
11
+ **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
12
 
13
13
  Shuri drives. Tony on call for architectural drift. Hawkeye on call for test design drift.
14
14
 
15
15
  ## When to run
16
16
 
17
- - Manually, when a story is taking longer than expected.
18
- - After the first 2-3 commits of an M or L story.
17
+ - Manually, when a story is running long or feels off-track.
18
+ - After the first 2-3 commits of a larger story.
19
19
  - When a new constraint is mentioned (security review, perf budget, vendor change).
20
20
 
21
21
  ## When NOT to run
22
22
 
23
- - Quick-dev / S stories (overhead exceeds the value).
23
+ - Quick-dev / small stories (overhead exceeds the value).
24
24
  - When the story is < 50% done and no surprise has come up yet.
25
25
 
26
26
  ## Inputs
@@ -49,7 +49,7 @@ Write 5 lines:
49
49
  - ACs done vs. remaining: (X / Y)
50
50
  - Tests added: (count, by split)
51
51
  - New dependencies: (list)
52
- - Time spent: (estimate)
52
+ - Commits so far: (count)
53
53
 
54
54
  ### 3. Sanity check (3 questions)
55
55
 
@@ -92,7 +92,7 @@ author: Shuri
92
92
  - ACs done vs. remaining: 1 / 4
93
93
  - Tests added: 2 unit, 1 integration
94
94
  - New dependencies: none
95
- - Time spent: ~3h
95
+ - Commits so far: 3
96
96
 
97
97
  ## Sanity check
98
98
  - Right problem? Yes.
@@ -43,7 +43,7 @@ Wizer pulls the latest status file. If `last_updated` is older than 2 days, the
43
43
 
44
44
  Pick exactly one cause:
45
45
 
46
- - **Cut scope.** Story is bigger than estimated, or a non-essential AC can be deferred.
46
+ - **Cut scope.** Story turned out larger than one PR, or a non-essential AC can be deferred.
47
47
  - **Re-route.** Story needs a different agent (e.g., Mantis for UX) or skill (e.g., `wize-investigate` for a regression).
48
48
  - **Escalate.** Story needs more hands, or a decision outside the team.
49
49
 
@@ -12,6 +12,8 @@ status: ready
12
12
 
13
13
  Tony drives. Shuri reads and proposes refinements before pulling the story.
14
14
 
15
+ > **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.
16
+
15
17
  ## When to use
16
18
 
17
19
  - New story splits from an epic (most common — done in `wize-create-epics-and-stories`).
@@ -47,7 +49,6 @@ story_id: E01-S03
47
49
  epic: 01-onboarding
48
50
  status: ready-for-dev
49
51
  priority: 2 # 1=now, 2=next, 3=later
50
- estimate: M # S | M | L (XL → slice further before merging here)
51
52
  linked_screens: [onboarding-step-1, invite-modal]
52
53
  linked_acs: [AC-02-1, AC-02-2]
53
54
  ---
@@ -95,20 +96,12 @@ Every story passes:
95
96
  - **I**ndependent.
96
97
  - **N**egotiable.
97
98
  - **V**aluable.
98
- - **E**stimable (Tony sizes).
99
- - **S**mall (≤ 1 PR).
99
+ - **S**mall (≤ 1 PR) — the *only* sizing test; if it doesn't fit one PR, slice.
100
100
  - **T**estable.
101
101
 
102
- If any letter fails, fix before queueing.
103
-
104
- ## Estimation rough guide
102
+ (INVEST's "Estimable" is dropped on purpose — see **No estimates** above. We don't size in time or points.)
105
103
 
106
- - **S** ≤ 4h.
107
- - **M** 4h–1d.
108
- - **L** 1–2d.
109
- - **XL** > 2d → split.
110
-
111
- These are intervals, not commitments. Hill plans capacity against M-median.
104
+ If any letter fails, fix before queueing.
112
105
 
113
106
  ## Full story template
114
107
 
@@ -118,7 +111,6 @@ story_id: E01-S03
118
111
  epic: 01-onboarding
119
112
  status: ready-for-dev
120
113
  priority: 2
121
- estimate: M
122
114
  linked_screens: [onboarding-step-1, invite-modal]
123
115
  linked_acs: [AC-02-1, AC-02-2]
124
116
  ---
@@ -48,7 +48,7 @@ Going over 60 minutes is a sign the retro became therapy. Time-box.
48
48
  ### 1. Open with stats
49
49
 
50
50
  Wizer reads the sprint dashboard from `sprint-status.md`:
51
- - Velocity vs commitment.
51
+ - Stories committed vs shipped (a count, not a velocity metric — we don't estimate).
52
52
  - Number of gates: PASS / CONCERNS / FAIL / WAIVED.
53
53
  - Blockers and their resolution times.
54
54
  - Carry-over count.
@@ -102,9 +102,9 @@ attendees: [Hill, Tony, Mantis, Pepper, Fury, Hawkeye, Shuri]
102
102
  - Mantis' "before/after" recordings in PRs accelerated review.
103
103
 
104
104
  ## Didn't work
105
- - Sprint-status entries went stale on Days 7–8 (Hill on vacation).
106
- - E02-S02 estimated M, actually L; we over-committed.
107
- - Vendor outage with no fallback caught us cold for 4h.
105
+ - Sprint-status entries went stale mid-sprint (Hill on vacation).
106
+ - E02-S02 was too big for one PR and should have been sliced; it stalled the sprint.
107
+ - Vendor outage with no fallback caught us cold.
108
108
 
109
109
  ## Surprised us
110
110
  - A11y audit caught 3 issues on a screen Mantis had already signed off on (axe found dynamic-content edge cases).
@@ -113,7 +113,7 @@ attendees: [Hill, Tony, Mantis, Pepper, Fury, Hawkeye, Shuri]
113
113
  ## Changes for Sprint 8
114
114
 
115
115
  1. **Sprint-status delegation rotation** — when Hill is OOO, Wizer takes over. *Owner: Wizer. By: Sprint 8 Day 1.*
116
- 2. **L estimates require justification** — any L gets one paragraph "why L not M" in the story file. *Owner: Tony. By: Sprint 8 planning.*
116
+ 2. **Slice-check every story at planning** — any story that can't be described as a single PR gets split before it's pulled. *Owner: Tony. By: Sprint 8 planning.*
117
117
  3. **Vendor fallback drill** — quarterly, simulate top-3 vendor outages. *Owner: Hawkeye + Tony. By: end of Q3.*
118
118
 
119
119
  ## Decisions made
@@ -12,6 +12,8 @@ status: ready
12
12
 
13
13
  Maria Hill chairs. Tony advises on slicing. Hawkeye flags risk. Shuri commits to the load.
14
14
 
15
+ > **No estimates.** Plan by story count and priority, never by velocity, points, or person-day math. Estimates only burn time and tokens. Pull what fits, keep a buffer, and let shipped-vs-committed counts (not a velocity number) tell you next time.
16
+
15
17
  ## Inputs
16
18
 
17
19
  - Story backlog: `.wize/solutioning/stories/`
@@ -26,10 +28,10 @@ Maria Hill chairs. Tony advises on slicing. Hawkeye flags risk. Shuri commits to
26
28
 
27
29
  ## Steps
28
30
 
29
- 1. **Look back** — what shipped, what slipped, what surprised.
30
- 2. **Refresh capacity** — person-days × utilization − overhead.
31
+ 1. **Look back** — what shipped, what slipped, what surprised (counts, not velocity).
32
+ 2. **Gauge availability** — who's around this interval and who's out. No person-day math.
31
33
  3. **Pull stories** — continuation first, then priority, then risk.
32
- 4. **Reserve 10–15% buffer** for unknowns.
34
+ 4. **Leave slack** for unknowns — pull fewer stories than feel possible, not a padded number.
33
35
  5. **Walk the gate plan** — design/trace/review/gate per story.
34
36
  6. **Commit** — verbal + written into YAML.
35
37
 
@@ -65,11 +67,12 @@ development_status:
65
67
 
66
68
  ## Anti-patterns
67
69
 
68
- - Optimistic velocity.
70
+ - Estimating — velocity, points, or person-days. Just don't.
71
+ - Over-committing because "it looks like it fits."
69
72
  - Stories without owners.
70
73
  - Stretch goals that are really plan.
71
74
  - Pulling blocked dependencies.
72
- - Zero buffer.
75
+ - Zero slack.
73
76
 
74
77
  ## Hand-off
75
78
 
@@ -83,4 +86,4 @@ development_status:
83
86
  >
84
87
  > `/loop /wize-dev-story` drives one story at a time: TDD red-green-refactor, AC IDs in commits, `tea-design.md` contract, knowledge update on the 5 baseline axes, and a clean gate at the end. `/loop` keeps it going across the sprint's `ready-for-dev` queue until the user pauses.
85
88
  >
86
- > Next: `/wize-sprint-status` (Maria Hill) to acompanhar o progresso.
89
+ > Next: `/wize-sprint-status` (Maria Hill) to track progress.
@@ -45,7 +45,7 @@ Read these if they exist (absence is information too):
45
45
 
46
46
  | Class | When | Route |
47
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. |
48
+ | **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. |
49
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
50
 
51
51
  Never pick Quick Dev to dodge writing artifacts. If the demand needs an AC, it is Full Lifecycle. When unsure, ask one question rather than guess the class.
@@ -27,13 +27,6 @@ function priorityFor(severity) {
27
27
  }
28
28
  }
29
29
 
30
- // Group size -> rough estimate.
31
- function estimateFor(count) {
32
- if (count <= 2) return 'S';
33
- if (count <= 10) return 'M';
34
- return 'L';
35
- }
36
-
37
30
  // Human label + remediation intent per section.
38
31
  const SECTION_THEME = {
39
32
  secrets: { theme: 'Rotacionar e remover segredos expostos', owasp: 'A07:2021' },
@@ -121,8 +114,6 @@ function buildBacklog({ findings = [], actionPlan = [], scopeSha = '', generated
121
114
  const planByTheme = {};
122
115
  for (const a of (actionPlan || [])) planByTheme[(a.title || '').toLowerCase()] = a;
123
116
 
124
- const actionable = groups.filter(g => g.worstSeverity !== 'Info-surface' || g.priority !== 'P2' ? true : true);
125
-
126
117
  if (groups.length === 0) {
127
118
  lines.push('## (sem itens)');
128
119
  lines.push('');
@@ -134,7 +125,6 @@ function buildBacklog({ findings = [], actionPlan = [], scopeSha = '', generated
134
125
  let epicN = 0;
135
126
  for (const g of groups) {
136
127
  epicN++;
137
- const est = estimateFor(g.count);
138
128
  // Find a matching action-plan detail by theme keyword overlap.
139
129
  let planDetail = '';
140
130
  for (const [title, a] of Object.entries(planByTheme)) {
@@ -150,14 +140,13 @@ function buildBacklog({ findings = [], actionPlan = [], scopeSha = '', generated
150
140
  lines.push(`- **Prioridade:** ${g.priority} (pior severidade: ${g.worstSeverity})`);
151
141
  lines.push(`- **Findings cobertos:** ${g.count}`);
152
142
  if (g.owasp) lines.push(`- **OWASP:** ${g.owasp}`);
153
- lines.push(`- **Estimativa:** ${est}`);
154
143
  if (planDetail) lines.push(`- **Como corrigir:** ${planDetail}`);
155
144
  lines.push('');
156
145
  lines.push('### Stories');
157
146
  lines.push('');
158
147
  // For large groups, a single remediation story + a verification story.
159
- lines.push(`- **${g.theme}** (${g.priority}, est ${est}) — corrigir os ${g.count} finding(s) de \`${g.section}\`. _Origem: ${g.section} (${g.count} findings, ${g.worstSeverity})._`);
160
- lines.push(`- **Verificar correção de ${g.section}** (${g.priority}, est S) — re-rodar \`/wize-sec-pentest\` e confirmar que os findings de \`${g.section}\` sumiram (DoD).`);
148
+ lines.push(`- **${g.theme}** (${g.priority}) — corrigir os ${g.count} finding(s) de \`${g.section}\`. _Origem: ${g.section} (${g.count} findings, ${g.worstSeverity})._`);
149
+ lines.push(`- **Verificar correção de ${g.section}** (${g.priority}) — re-rodar \`/wize-sec-pentest\` e confirmar que os findings de \`${g.section}\` sumiram (DoD).`);
161
150
  lines.push('');
162
151
  // Sample of source findings for traceability (cap at 5).
163
152
  const sample = g.findings.slice(0, 5);
@@ -177,4 +166,4 @@ function buildBacklog({ findings = [], actionPlan = [], scopeSha = '', generated
177
166
  return lines.join('\n');
178
167
  }
179
168
 
180
- module.exports = { buildBacklog, priorityFor, estimateFor, groupFindings, CTA_COMMAND };
169
+ module.exports = { buildBacklog, priorityFor, groupFindings, CTA_COMMAND };