wize-dev-kit 0.16.0 → 0.16.1
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 +37 -0
- package/ARCH.md +77 -24
- package/CHANGELOG.md +4 -0
- package/DECISIONS.md +27 -1
- package/README.es.md +295 -0
- package/README.pt-BR.md +293 -0
- package/ROSTER.md +11 -3
- package/adapters/README.md +8 -7
- package/adapters/antigravity/README.md +5 -5
- package/adapters/claude-code/README.md +1 -1
- package/adapters/codex/README.md +5 -5
- package/adapters/codex/adapter.yaml +1 -1
- package/adapters/codex/render.js +1 -1
- package/adapters/continue/README.md +5 -5
- package/adapters/cursor/README.md +2 -2
- package/adapters/generic/README.md +1 -1
- package/adapters/hermes/README.md +23 -0
- package/adapters/hermes/adapter.yaml +8 -0
- package/adapters/hermes/render.js +17 -0
- package/adapters/kimi-code/README.md +5 -5
- package/adapters/kimi-code/render.js +2 -2
- package/adapters/opencode/README.md +3 -3
- package/adapters/opencode/render.js +27 -1
- package/adapters/windsurf/README.md +3 -3
- package/docs/harnesses/antigravity.md +20 -0
- package/docs/harnesses/antigravity.pt-BR.md +20 -0
- package/docs/harnesses/claude-code.md +23 -0
- package/docs/harnesses/claude-code.pt-BR.md +23 -0
- package/docs/harnesses/codex.md +21 -0
- package/docs/harnesses/codex.pt-BR.md +21 -0
- package/docs/harnesses/continue.md +21 -0
- package/docs/harnesses/continue.pt-BR.md +21 -0
- package/docs/harnesses/cursor.md +22 -0
- package/docs/harnesses/cursor.pt-BR.md +22 -0
- package/docs/harnesses/generic.md +20 -0
- package/docs/harnesses/generic.pt-BR.md +20 -0
- package/docs/harnesses/hermes.md +26 -0
- package/docs/harnesses/hermes.pt-BR.md +26 -0
- package/docs/harnesses/kimi-code.md +19 -0
- package/docs/harnesses/kimi-code.pt-BR.md +19 -0
- package/docs/harnesses/opencode.md +31 -0
- package/docs/harnesses/opencode.pt-BR.md +31 -0
- package/docs/harnesses/windsurf.md +22 -0
- package/docs/harnesses/windsurf.pt-BR.md +22 -0
- package/package.json +1 -1
- package/schemas/agent.schema.json +2 -2
- package/schemas/workflow.schema.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 +116 -0
- package/src/core-skills/wize-editorial-review-prose/skill.md +94 -0
- package/src/core-skills/wize-editorial-review-structure/skill.md +99 -0
- package/src/core-skills/wize-grill/skill.md +77 -0
- package/src/core-skills/wize-index-docs/skill.md +119 -0
- package/src/core-skills/wize-pre-pr-check/skill.md +134 -0
- package/src/core-skills/wize-review-adversarial/skill.md +3 -0
- package/src/core-skills/wize-review-edge-case-hunter/skill.md +115 -0
- package/src/core-skills/wize-shard-doc/skill.md +2 -0
- package/src/core-skills/wize-spec/assets/headless-schemas.md +39 -0
- package/src/core-skills/wize-spec/assets/spec-template.md +40 -0
- package/src/core-skills/wize-spec/customize.toml +20 -0
- package/src/core-skills/wize-spec/skill.md +112 -0
- package/src/method-skills/1-analysis/wize-agent-analyst/agent.yaml +3 -0
- package/src/method-skills/1-analysis/wize-document-project/documentation-requirements.csv +12 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/api-contracts-template.md +38 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/architecture-template.md +54 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/component-inventory-template.md +40 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/contribution-guide-template.md +34 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/data-models-template.md +36 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/deep-dive-template.md +312 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/deployment-guide-template.md +42 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/development-guide-template.md +61 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/index-template.md +185 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/project-overview-template.md +110 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/project-scan-report-schema.json +159 -0
- package/src/method-skills/1-analysis/wize-document-project/templates/source-tree-template.md +142 -0
- package/src/method-skills/1-analysis/wize-document-project/workflow.md +213 -20
- package/src/method-skills/1-analysis/wize-domain-research/customize.toml +14 -0
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-01-init.md +49 -0
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-02-domain-analysis.md +39 -0
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-03-competitive-landscape.md +39 -0
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-04-regulatory-focus.md +39 -0
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-05-technical-trends.md +39 -0
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-06-research-synthesis.md +43 -0
- package/src/method-skills/1-analysis/wize-domain-research/research.template.md +31 -0
- package/src/method-skills/1-analysis/wize-domain-research/workflow.md +58 -0
- package/src/method-skills/1-analysis/wize-market-research/customize.toml +14 -0
- package/src/method-skills/1-analysis/wize-market-research/research.template.md +31 -0
- package/src/method-skills/1-analysis/wize-market-research/steps/step-01-init.md +57 -0
- package/src/method-skills/1-analysis/wize-market-research/steps/step-02-customer-behavior.md +39 -0
- package/src/method-skills/1-analysis/wize-market-research/steps/step-03-customer-pain-points.md +37 -0
- package/src/method-skills/1-analysis/wize-market-research/steps/step-04-customer-decisions.md +39 -0
- package/src/method-skills/1-analysis/wize-market-research/steps/step-05-competitive-analysis.md +37 -0
- package/src/method-skills/1-analysis/wize-market-research/steps/step-06-research-completion.md +47 -0
- package/src/method-skills/1-analysis/wize-market-research/workflow.md +66 -0
- package/src/method-skills/1-analysis/wize-prfaq/workflow.md +152 -11
- package/src/method-skills/1-analysis/wize-product-brief/workflow.md +92 -19
- package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +129 -0
- package/src/method-skills/1-analysis/wize-research/workflow.md +39 -12
- package/src/method-skills/1-analysis/wize-technical-research/customize.toml +14 -0
- package/src/method-skills/1-analysis/wize-technical-research/research.template.md +31 -0
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-01-init.md +49 -0
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-02-technical-overview.md +45 -0
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-03-integration-patterns.md +39 -0
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-04-architectural-patterns.md +39 -0
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-05-implementation-research.md +42 -0
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-06-research-synthesis.md +46 -0
- package/src/method-skills/1-analysis/wize-technical-research/workflow.md +60 -0
- package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +82 -16
- package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +135 -23
- package/src/method-skills/2-plan-workflows/wize-edit-prd/workflow.md +110 -0
- package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +134 -28
- package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +93 -15
- package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +108 -12
- package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +103 -11
- package/src/method-skills/3-solutioning/wize-create-architecture/architecture-decision-template.md +41 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/customize.toml +20 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01-init.md +95 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01b-continue.md +32 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-02-context.md +126 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-03-starter.md +110 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-04-decisions.md +129 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-05-patterns.md +109 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-06-structure.md +97 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-07-validation.md +124 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-08-complete.md +59 -0
- package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +55 -48
- package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +154 -15
- package/src/method-skills/3-solutioning/wize-design-system/workflow.md +184 -22
- package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +145 -17
- package/src/method-skills/3-solutioning/wize-project-context/workflow.md +120 -0
- package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +130 -22
- package/src/method-skills/4-implementation/wize-agent-dev/persona.md +12 -0
- package/src/method-skills/4-implementation/wize-changelog/workflow.md +184 -0
- package/src/method-skills/4-implementation/wize-checkpoint-preview/workflow.md +117 -0
- package/src/method-skills/4-implementation/wize-code-review/customize.toml +21 -0
- package/src/method-skills/4-implementation/wize-code-review/steps/step-01-gather-context.md +64 -0
- package/src/method-skills/4-implementation/wize-code-review/steps/step-02-review.md +40 -0
- package/src/method-skills/4-implementation/wize-code-review/steps/step-03-triage.md +43 -0
- package/src/method-skills/4-implementation/wize-code-review/steps/step-04-present.md +100 -0
- package/src/method-skills/4-implementation/wize-code-review/workflow.md +54 -12
- package/src/method-skills/4-implementation/wize-correct-course/workflow.md +93 -0
- package/src/method-skills/4-implementation/wize-create-story/workflow.md +154 -10
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +185 -17
- package/src/method-skills/4-implementation/wize-investigate/workflow.md +123 -0
- package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +136 -18
- package/src/method-skills/4-implementation/wize-release/workflow.md +162 -0
- package/src/method-skills/4-implementation/wize-retrospective/workflow.md +114 -10
- package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +78 -11
- package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +45 -11
- package/src/method-skills/module.yaml +28 -0
- package/src/orchestrator-skills/module.yaml +7 -1
- package/src/orchestrator-skills/wize/skill.md +164 -0
- package/src/orchestrator-skills/wize-check/skill.md +98 -0
- package/src/orchestrator-skills/wize-help/skill.md +227 -67
- package/src/orchestrator-skills/wize-onboarding/workflow.md +78 -14
- package/src/orchestrator-skills/wize-orchestrator/agent.yaml +2 -0
- package/src/orchestrator-skills/wize-orchestrator/persona.md +44 -3
- package/src/orchestrator-skills/wize-party-mode/workflow.md +2 -0
- package/src/security-overlay/_shared/allowlist.js +154 -0
- package/src/security-overlay/_shared/backlog.js +169 -0
- package/src/security-overlay/_shared/cli-runner.js +87 -0
- package/src/security-overlay/_shared/cvss.js +108 -0
- package/src/security-overlay/_shared/detect.js +125 -0
- package/src/security-overlay/_shared/install-script.js +205 -0
- package/src/security-overlay/_shared/invoke-phase.js +86 -0
- package/src/security-overlay/_shared/owasp.js +56 -0
- package/src/security-overlay/_shared/partial.js +225 -0
- package/src/security-overlay/_shared/preflight.js +175 -0
- package/src/security-overlay/_shared/scope-gate.js +172 -0
- package/src/security-overlay/_shared/scope-parser.js +147 -0
- package/src/security-overlay/agents/red-teamer/agent.yaml +54 -0
- package/src/security-overlay/agents/red-teamer/persona.md +49 -0
- package/src/security-overlay/data/common.txt +115 -0
- package/src/security-overlay/data/owasp-top10.json +15 -0
- package/src/security-overlay/data/tool-allowlist.json +31 -0
- package/src/security-overlay/skills/wize-sec-enumerate/scripts/run-enumerate.js +180 -0
- package/src/security-overlay/skills/wize-sec-enumerate/skill.md +34 -0
- package/src/security-overlay/skills/wize-sec-exploit/data/common.txt +117 -0
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-ffuf.js +147 -0
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nikto.js +145 -0
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nuclei.js +176 -0
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-sqlmap.js +139 -0
- package/src/security-overlay/skills/wize-sec-pentest/scripts/run-pipeline.js +184 -0
- package/src/security-overlay/skills/wize-sec-pentest/skill.md +54 -0
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-gitleaks.js +139 -0
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-osv.js +227 -0
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-recon.js +162 -0
- package/src/security-overlay/skills/wize-sec-recon/skill.md +37 -0
- package/src/security-overlay/skills/wize-sec-report/scripts/render-report.js +1033 -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 +121 -0
- package/src/tea-skills/wize-tea-design/workflow.md +107 -13
- package/src/tea-skills/wize-tea-gate/workflow.md +118 -25
- package/src/tea-skills/wize-tea-nfr/workflow.md +107 -14
- package/src/tea-skills/wize-tea-review/workflow.md +123 -13
- package/src/tea-skills/wize-tea-risk/workflow.md +113 -10
- package/src/tea-skills/wize-tea-trace/workflow.md +86 -12
- 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/baseline.js +133 -0
- package/tools/installer/commands/agent.js +197 -0
- package/tools/installer/commands/doctor.js +320 -0
- package/tools/installer/commands/document-project.js +93 -0
- package/tools/installer/commands/sync.js +45 -0
- package/tools/installer/commands/update.js +172 -0
- package/tools/installer/document-project/batch-scanner.js +93 -0
- package/tools/installer/document-project/classify.js +170 -0
- package/tools/installer/document-project/modes/deep-dive.js +196 -0
- package/tools/installer/document-project/modes/full-rescan.js +15 -0
- package/tools/installer/document-project/modes/initial-scan.js +100 -0
- package/tools/installer/document-project/modes/quick.js +211 -0
- package/tools/installer/document-project/render-index.js +101 -0
- package/tools/installer/document-project/state.js +110 -0
- package/tools/installer/onboarding.js +14 -20
- package/tools/installer/render-shared.js +159 -15
- package/tools/installer/setup-helpers.js +1 -0
- package/tools/installer/validators/run-all.js +3 -2
- package/tools/installer/version-check.js +117 -0
- package/tools/installer/wize-cli.js +500 -70
|
@@ -1,43 +1,151 @@
|
|
|
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
|
-
status:
|
|
8
|
+
status: ready
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
# Tech Vision
|
|
10
12
|
|
|
11
|
-
**Goal.** State the technical north star in one page. Stack family,
|
|
13
|
+
**Goal.** State the technical north star in one page. Stack family, runtime envelope, build/buy/borrow calls, non-negotiables. Fury sets the **shape**, not the libraries — Tony fills in inside the frame.
|
|
14
|
+
|
|
15
|
+
Output lands in `.wize/planning/tech-vision.md`. Tony reads this before drawing architecture. Hill references it when scoping. Hawkeye uses it when picking gate granularity.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
- `.wize/planning/prd.md` (validated)
|
|
20
|
+
- `.wize/planning/ux/ux-design/` (so the runtime envelope respects the UX)
|
|
21
|
+
- `.wize/knowledge/document-project/` (brownfield only)
|
|
22
|
+
- Stack catalogs (per active overlay):
|
|
23
|
+
- `src/web-overlay/stack-catalog.md`
|
|
24
|
+
- `src/app-overlay/stack-catalog.md`
|
|
25
|
+
|
|
26
|
+
## Outputs
|
|
12
27
|
|
|
13
|
-
## Output
|
|
14
28
|
- `.wize/planning/tech-vision.md`
|
|
15
29
|
|
|
16
|
-
##
|
|
30
|
+
## Steps
|
|
31
|
+
|
|
32
|
+
### 1. Pick the stack family
|
|
33
|
+
|
|
34
|
+
By order of constraint:
|
|
35
|
+
|
|
36
|
+
1. **Audience reach.** Public + SEO-critical? Authenticated app? Native mobile required?
|
|
37
|
+
2. **Latency budget.** Sub-1s LCP on 3G or richer-but-slower OK?
|
|
38
|
+
3. **Team familiarity.** Favor what the team has shipped before unless the project truly demands new.
|
|
39
|
+
4. **Backend coupling.** Separate API / fullstack monolith / BaaS?
|
|
40
|
+
5. **Deploy target.** Edge / container / self-managed.
|
|
41
|
+
|
|
42
|
+
Don't pick libraries here. Pick the *shape*: "Next.js-class SSR fullstack on edge" or "React Native + Expo with a Supabase backend" or "Compose Multiplatform with Kotlin services."
|
|
43
|
+
|
|
44
|
+
### 2. State the runtime envelope
|
|
45
|
+
|
|
46
|
+
| Dimension | Decision |
|
|
47
|
+
|---|---|
|
|
48
|
+
| Language(s) of record | TS, Kotlin, etc. |
|
|
49
|
+
| Runtime(s) | Browser / Node / Edge / Native iOS / Native Android / JVM |
|
|
50
|
+
| Persistence | Postgres / SQLite / KV / cloud-native |
|
|
51
|
+
| Deploy target | Vercel / Cloudflare / Fly / EKS / EAS / etc. |
|
|
52
|
+
| Edge vs origin | Edge-first / origin-first |
|
|
53
|
+
|
|
54
|
+
### 3. Build / buy / borrow
|
|
55
|
+
|
|
56
|
+
For each capability the PRD implies, declare:
|
|
57
|
+
|
|
58
|
+
| Capability | Build | Buy | Borrow (OSS) |
|
|
59
|
+
|---|---|---|---|
|
|
60
|
+
| Auth | — | Clerk / Auth0 | NextAuth / Lucia |
|
|
61
|
+
| Payments | — | Stripe | — |
|
|
62
|
+
| Search | — | Algolia / Typesense Cloud | Meilisearch self-hosted |
|
|
63
|
+
| Queues | — | SQS / Cloud Tasks | BullMQ |
|
|
64
|
+
| Analytics | — | Amplitude | PostHog OSS |
|
|
65
|
+
| Email | — | Resend / Postmark | — |
|
|
66
|
+
| Realtime | — | Pusher / Ably | Supabase Realtime |
|
|
67
|
+
|
|
68
|
+
One row per capability. Empty cells are explicit choices.
|
|
69
|
+
|
|
70
|
+
### 4. Non-negotiables
|
|
71
|
+
|
|
72
|
+
The 2–5 things the team will not compromise on.
|
|
73
|
+
|
|
74
|
+
Examples:
|
|
75
|
+
- *"All endpoint responses ≤ 200ms p95 from the user's region."*
|
|
76
|
+
- *"Single source of truth for user data — no shadow stores."*
|
|
77
|
+
- *"PII never leaves the EU."*
|
|
78
|
+
- *"On-call burden ≤ 0.5 pages per engineer per week."*
|
|
79
|
+
|
|
80
|
+
These outrank PRD goals. If they conflict, Fury escalates.
|
|
81
|
+
|
|
82
|
+
### 5. Deferred (with triggers)
|
|
83
|
+
|
|
84
|
+
What we won't decide yet, and what would trigger the decision. Don't list "could be revisited"; list the *signal* that forces the decision.
|
|
85
|
+
|
|
86
|
+
- *"Multi-region storage: revisit when EU+US daily active users > 5k."*
|
|
87
|
+
- *"WebSockets vs SSE: revisit when realtime updates < 500ms become a PRD goal."*
|
|
88
|
+
|
|
89
|
+
### 6. Hand off
|
|
90
|
+
|
|
91
|
+
Mark `status: aligned`. Tony reads it as the frame; he can argue specific decisions but not redraw the family without escalating.
|
|
92
|
+
|
|
93
|
+
## Output template
|
|
94
|
+
|
|
17
95
|
```markdown
|
|
18
|
-
|
|
96
|
+
---
|
|
97
|
+
status: aligned
|
|
98
|
+
owner: Nick Fury
|
|
99
|
+
created: YYYY-MM-DD
|
|
100
|
+
---
|
|
19
101
|
|
|
20
|
-
|
|
21
|
-
- {Web|Mobile|Hybrid}
|
|
102
|
+
# Tech Vision — {{project_name}}
|
|
22
103
|
|
|
23
|
-
##
|
|
24
|
-
-
|
|
104
|
+
## Stack family
|
|
105
|
+
Next.js-class SSR fullstack on edge, with Supabase Postgres as the system of record.
|
|
25
106
|
|
|
26
107
|
## Runtime envelope
|
|
27
|
-
|
|
108
|
+
| Dimension | Decision |
|
|
109
|
+
|---|---|
|
|
110
|
+
| Language | TypeScript end-to-end |
|
|
111
|
+
| Runtime | Edge (Vercel Edge Functions) + Node (server actions) |
|
|
112
|
+
| Persistence | Supabase Postgres (RLS) + PgBouncer |
|
|
113
|
+
| Deploy target | Vercel for app; Supabase managed for data |
|
|
114
|
+
| Edge vs origin | Edge-first for reads; origin for writes |
|
|
28
115
|
|
|
29
|
-
## Build
|
|
30
|
-
| Capability | Decision |
|
|
31
|
-
|
|
32
|
-
| Auth |
|
|
33
|
-
| Payments |
|
|
34
|
-
| Search |
|
|
35
|
-
| Queues |
|
|
36
|
-
| Analytics |
|
|
116
|
+
## Build / buy / borrow
|
|
117
|
+
| Capability | Decision |
|
|
118
|
+
|---|---|
|
|
119
|
+
| Auth | Buy — Supabase Auth |
|
|
120
|
+
| Payments | Buy — Stripe |
|
|
121
|
+
| Search | Buy — Algolia (1st year), revisit |
|
|
122
|
+
| Queues | Borrow — pg_cron + outbox pattern |
|
|
123
|
+
| Analytics | Borrow — PostHog OSS |
|
|
124
|
+
| Email | Buy — Resend |
|
|
37
125
|
|
|
38
126
|
## Non-negotiables
|
|
39
|
-
|
|
127
|
+
1. PII (incl. emails) stored in the user's region only.
|
|
128
|
+
2. p95 server response ≤ 200ms in the user's region.
|
|
129
|
+
3. Single auth identity per human (no shadow accounts).
|
|
130
|
+
4. On-call rotation never exceeds 0.5 pages/eng/week.
|
|
131
|
+
|
|
132
|
+
## Deferred
|
|
133
|
+
- Multi-region writes: revisit when EU active users > 2k.
|
|
134
|
+
- Native mobile clients: revisit when web TTI > 4s on > 20% of sessions or PRD demands offline.
|
|
40
135
|
|
|
41
|
-
##
|
|
42
|
-
-
|
|
136
|
+
## Constraints that drove this
|
|
137
|
+
- Brief constraint #2 (LGPD/GDPR) ruled out global-replica DBs.
|
|
138
|
+
- PRD goal G1 ruled in edge-first reads.
|
|
139
|
+
- Hiring tail in TypeScript ruled out Compose Multiplatform.
|
|
43
140
|
```
|
|
141
|
+
|
|
142
|
+
## Anti-patterns Fury rejects
|
|
143
|
+
|
|
144
|
+
- **Picking a library here.** That's Tony. Pick the *family*.
|
|
145
|
+
- **Non-negotiables that are aspirations.** "Always 100% uptime." Wrong. "Error budget ≤ 0.1% in EU region."
|
|
146
|
+
- **Deferred items with no trigger.** That's procrastination.
|
|
147
|
+
- **A non-negotiable that contradicts a PRD constraint silently.** Surface it, escalate it, decide it.
|
|
148
|
+
|
|
149
|
+
## Hand-off
|
|
150
|
+
|
|
151
|
+
> Tech vision at `.wize/planning/tech-vision.md`. Tony, build the architecture inside this frame. Hill, scope the PRD against the non-negotiables (item 1 means the global launch is back on the table only after EU baseline holds). Hawkeye, pick gate granularity assuming `policy = advisory`.
|
|
@@ -12,6 +12,18 @@ I am **Shuri**. Wakandan technologist. I implement the story Tony wrote, against
|
|
|
12
12
|
4. **Security & perf.** I think about both at write-time, not at review-time.
|
|
13
13
|
5. **Commit with AC IDs.** Every commit cites the story acceptance criteria it advances.
|
|
14
14
|
|
|
15
|
+
## Before I write new code (the reuse ladder)
|
|
16
|
+
|
|
17
|
+
At the "green" step, before typing a new function, I walk this ladder in order and stop at the first "yes":
|
|
18
|
+
|
|
19
|
+
1. **Does this need to exist?** → no: skip it (YAGNI).
|
|
20
|
+
2. **Already in this codebase?** → reuse it, don't rewrite it.
|
|
21
|
+
3. **Does the stdlib do it?** → use the stdlib.
|
|
22
|
+
4. **Native platform/framework feature?** → use that.
|
|
23
|
+
5. **An installed dependency does it?** → use the dependency.
|
|
24
|
+
6. **Is it one line?** → write the one line.
|
|
25
|
+
7. **Only then** do I write the minimum new code that makes the test pass.
|
|
26
|
+
|
|
15
27
|
## Style
|
|
16
28
|
|
|
17
29
|
- File paths, AC IDs, commit-message brevity.
|
|
@@ -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.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
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."
|
|
5
|
+
name: Checkpoint Preview
|
|
6
|
+
phase: 4-implementation
|
|
7
|
+
owner: wize-agent-dev # Shuri (+ wize-agent-architect Tony on call)
|
|
8
|
+
status: ready
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Checkpoint Preview
|
|
12
|
+
|
|
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.
|
|
14
|
+
|
|
15
|
+
Shuri drives. Tony on call for architectural drift. Hawkeye on call for test design drift.
|
|
16
|
+
|
|
17
|
+
## When to run
|
|
18
|
+
|
|
19
|
+
- Manually, when a story is running long or feels off-track.
|
|
20
|
+
- After the first 2-3 commits of a larger story.
|
|
21
|
+
- When a new constraint is mentioned (security review, perf budget, vendor change).
|
|
22
|
+
|
|
23
|
+
## When NOT to run
|
|
24
|
+
|
|
25
|
+
- Quick-dev / small stories (overhead exceeds the value).
|
|
26
|
+
- When the story is < 50% done and no surprise has come up yet.
|
|
27
|
+
|
|
28
|
+
## Inputs
|
|
29
|
+
|
|
30
|
+
- The current story file: `.wize/solutioning/stories/{epic}/{story}.md`
|
|
31
|
+
- The git diff: uncommitted + committed since story start
|
|
32
|
+
- The `tea-design.md` for the story
|
|
33
|
+
- The `design-system/` tokens used so far
|
|
34
|
+
|
|
35
|
+
## Output
|
|
36
|
+
|
|
37
|
+
- `.wize/implementation/checkpoints/{story_id}.md` (one file per checkpoint, append over time)
|
|
38
|
+
- A decision: continue / pivot / stop
|
|
39
|
+
|
|
40
|
+
## Steps
|
|
41
|
+
|
|
42
|
+
### 1. Pause
|
|
43
|
+
|
|
44
|
+
Stop writing code. Do not commit any pending work until the checkpoint is recorded.
|
|
45
|
+
|
|
46
|
+
### 2. Snapshot
|
|
47
|
+
|
|
48
|
+
Write 5 lines:
|
|
49
|
+
|
|
50
|
+
- Files touched: (list, max 10)
|
|
51
|
+
- ACs done vs. remaining: (X / Y)
|
|
52
|
+
- Tests added: (count, by split)
|
|
53
|
+
- New dependencies: (list)
|
|
54
|
+
- Commits so far: (count)
|
|
55
|
+
|
|
56
|
+
### 3. Sanity check (3 questions)
|
|
57
|
+
|
|
58
|
+
- **Are we solving the right problem?** Compare the implementation with the story's Context and ACs. If the story's intent was misunderstood, pivot.
|
|
59
|
+
- **Is the design holding?** Compare the code with the architecture. If a new pattern emerged without an ADR, flag it.
|
|
60
|
+
- **Any new constraints?** Did anything new appear (security finding, perf regression, vendor change, new stakeholder)?
|
|
61
|
+
|
|
62
|
+
### 4. Decide
|
|
63
|
+
|
|
64
|
+
One of three:
|
|
65
|
+
|
|
66
|
+
- **Continue** — the path is right. Record the snapshot; resume.
|
|
67
|
+
- **Pivot** — change scope or approach. Open a follow-up story with `wize-create-story`; do not edit the current story's ACs.
|
|
68
|
+
- **Stop** — the story is no longer worth it. Move it to `backlog` via `wize-correct-course`.
|
|
69
|
+
|
|
70
|
+
One decision per checkpoint. Re-run for additional decisions.
|
|
71
|
+
|
|
72
|
+
### 5. Hand off
|
|
73
|
+
|
|
74
|
+
Notify the next workflow:
|
|
75
|
+
|
|
76
|
+
- Continue → `/wize-dev-story` (resume).
|
|
77
|
+
- Pivot → `/wize-create-story` (new story for the pivot).
|
|
78
|
+
- Stop → `/wize-correct-course` (defer the original).
|
|
79
|
+
|
|
80
|
+
## Output template
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
---
|
|
84
|
+
story_id: E04-S02
|
|
85
|
+
checkpoint: 1
|
|
86
|
+
date: 2026-06-16
|
|
87
|
+
author: Shuri
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
# Checkpoint — E04-S02
|
|
91
|
+
|
|
92
|
+
## Snapshot
|
|
93
|
+
- Files touched: src/...
|
|
94
|
+
- ACs done vs. remaining: 1 / 4
|
|
95
|
+
- Tests added: 2 unit, 1 integration
|
|
96
|
+
- New dependencies: none
|
|
97
|
+
- Commits so far: 3
|
|
98
|
+
|
|
99
|
+
## Sanity check
|
|
100
|
+
- Right problem? Yes.
|
|
101
|
+
- Design holding? Yes.
|
|
102
|
+
- New constraints? Vendor X deprecated their API; need a different client lib.
|
|
103
|
+
|
|
104
|
+
## Decision
|
|
105
|
+
**Pivot** — see follow-up E04-S04 (client lib migration).
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Anti-patterns Shuri rejects
|
|
109
|
+
|
|
110
|
+
- Skipping the snapshot to "save time" — the snapshot is the artifact.
|
|
111
|
+
- Auto-pivoting (changing scope without an explicit checkpoint).
|
|
112
|
+
- Recording "continue" without the sanity check answers.
|
|
113
|
+
- Bundling multiple pivots in one checkpoint (one decision per run).
|
|
114
|
+
|
|
115
|
+
## Hand-off
|
|
116
|
+
|
|
117
|
+
> "Checkpoint recorded for **{story_id}** (decision: {continue|pivot|stop}). Next: `/wize-dev-story` / `/wize-create-story` / `/wize-correct-course`."
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Wize Dev Kit — overrides for the built-in workflow "wize-code-review".
|
|
2
|
+
# DO NOT EDIT in the installed kit; copy to .wize/custom/workflows/wize-code-review/
|
|
3
|
+
# for project-level overrides.
|
|
4
|
+
|
|
5
|
+
[workflow]
|
|
6
|
+
|
|
7
|
+
# Steps to run before standard activation (config load, greet).
|
|
8
|
+
activation_steps_prepend = []
|
|
9
|
+
|
|
10
|
+
# Steps to run after greet but before the workflow begins.
|
|
11
|
+
activation_steps_append = []
|
|
12
|
+
|
|
13
|
+
# Persistent facts the workflow keeps in mind for the whole run.
|
|
14
|
+
persistent_facts = [
|
|
15
|
+
"file:{project-root}/.wize/knowledge/document-project/conventions.md",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
# Scalar executed when the workflow reaches its final step,
|
|
19
|
+
# after review findings are presented and sprint status is synced.
|
|
20
|
+
# Override wins. Leave empty for no custom post-completion behavior.
|
|
21
|
+
on_complete = ""
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
diff_output: ''
|
|
3
|
+
spec_file: ''
|
|
4
|
+
review_mode: ''
|
|
5
|
+
story_key: ''
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 1: Gather Context
|
|
9
|
+
|
|
10
|
+
## Rules
|
|
11
|
+
|
|
12
|
+
- Speak in `{communication_language}`.
|
|
13
|
+
- The prompt that triggered this workflow IS the intent.
|
|
14
|
+
- Do not modify any files in this step. Read-only.
|
|
15
|
+
|
|
16
|
+
## Instructions
|
|
17
|
+
|
|
18
|
+
1. **Find the review target.** Check in this order and stop as soon as the target is identified:
|
|
19
|
+
|
|
20
|
+
**Tier 1 — Explicit argument.**
|
|
21
|
+
Did the user pass a PR, commit SHA, branch, spec file, or diff source?
|
|
22
|
+
- PR reference → resolve to branch/commit via `gh pr view`.
|
|
23
|
+
- Commit or branch → use directly.
|
|
24
|
+
- Spec file → set `{spec_file}` to the path. Check its frontmatter for `baseline_commit`.
|
|
25
|
+
- Diff-mode keywords: `staged`, `uncommitted`, `branch diff`, `commit range`, `this diff`.
|
|
26
|
+
|
|
27
|
+
**Tier 2 — Recent conversation.**
|
|
28
|
+
Look for refs in the last few messages.
|
|
29
|
+
|
|
30
|
+
**Tier 3 — Sprint tracking.**
|
|
31
|
+
Look for `*sprint-status*` files and find stories with status `review`.
|
|
32
|
+
|
|
33
|
+
**Tier 4 — Current git state.**
|
|
34
|
+
If not on the default branch, confirm whether to review the current branch.
|
|
35
|
+
|
|
36
|
+
**Tier 5 — Ask.**
|
|
37
|
+
Present options: uncommitted changes, staged changes, branch diff, commit range, provided diff.
|
|
38
|
+
|
|
39
|
+
2. **Construct `{diff_output}`.**
|
|
40
|
+
- Staged only: `git diff --cached`
|
|
41
|
+
- Uncommitted: `git diff HEAD`
|
|
42
|
+
- Branch diff: `git diff <base>..<branch>`
|
|
43
|
+
- Commit range: `git diff <from>..<to>`
|
|
44
|
+
- Provided diff: validate and use verbatim
|
|
45
|
+
- File list: `git diff HEAD -- <files...>`, with untracked files included via `git diff --no-index /dev/null <path>`
|
|
46
|
+
|
|
47
|
+
If `{diff_output}` is empty, halt and say so.
|
|
48
|
+
|
|
49
|
+
3. **Set the spec context.**
|
|
50
|
+
- If `{spec_file}` is set and readable, set `{review_mode}` = `"full"`.
|
|
51
|
+
- Otherwise ask: "Is there a spec or story file that provides context for these changes?"
|
|
52
|
+
- Yes → set `{spec_file}`, verify it, set `{review_mode}` = `"full"`.
|
|
53
|
+
- No → set `{review_mode}` = `"no-spec"`.
|
|
54
|
+
|
|
55
|
+
4. **Sanity check.**
|
|
56
|
+
If the diff exceeds ~3000 lines, warn and offer to chunk.
|
|
57
|
+
|
|
58
|
+
### Checkpoint
|
|
59
|
+
|
|
60
|
+
Present a summary: diff stats, `{review_mode}`, loaded spec/context docs. Halt and wait for confirmation to proceed.
|
|
61
|
+
|
|
62
|
+
## Next
|
|
63
|
+
|
|
64
|
+
Read fully and follow `./step-02-review.md`.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
failed_layers: ''
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Step 2: Review
|
|
6
|
+
|
|
7
|
+
## Rules
|
|
8
|
+
|
|
9
|
+
- Speak in `{communication_language}`.
|
|
10
|
+
- The Blind Hunter subagent receives **only** the diff — no project context.
|
|
11
|
+
- The Edge Case Hunter subagent receives the diff and project read access.
|
|
12
|
+
- The Acceptance Auditor subagent receives the diff, spec, and context docs.
|
|
13
|
+
- All review subagents run at the same model capability as the current session.
|
|
14
|
+
|
|
15
|
+
## Instructions
|
|
16
|
+
|
|
17
|
+
This step is an instance of Wizer's subagent fan-out pattern (see `wize-orchestrator` persona): name, scope, dispatch on whatever the current harness natively supports, tolerate partial failure.
|
|
18
|
+
|
|
19
|
+
1. If `{review_mode}` = `"no-spec"`, note: "Acceptance Auditor skipped — no spec file provided."
|
|
20
|
+
|
|
21
|
+
2. Launch parallel subagents without conversation context:
|
|
22
|
+
|
|
23
|
+
- **Blind Hunter** — receives `{diff_output}` only. Invoke via `wize-review-adversarial`.
|
|
24
|
+
Prompt: "Review this diff cynically. Assume problems exist. Find at least ten issues. Output as a Markdown list with one-line titles."
|
|
25
|
+
|
|
26
|
+
- **Edge Case Hunter** — receives `{diff_output}` and read access to the project. Invoke via `wize-review-edge-case-hunter`.
|
|
27
|
+
Prompt: "Walk every branching path and boundary condition in this diff. Report only unhandled edge cases as a JSON array."
|
|
28
|
+
|
|
29
|
+
- **Acceptance Auditor** (only if `{review_mode}` = `"full"`) — receives `{diff_output}`, `{spec_file}` content, and context docs.
|
|
30
|
+
Prompt: "Review this diff against the spec. Check for violations of acceptance criteria, deviations from spec intent, and missing behavior. Output findings as a Markdown list with AC/constraint reference and evidence."
|
|
31
|
+
|
|
32
|
+
3. If subagents are unavailable, generate prompt files in `{implementation_artifacts}` and halt, asking the user to run each in a separate session.
|
|
33
|
+
|
|
34
|
+
4. If any subagent fails, times out, or returns empty, append the layer name to `{failed_layers}` and proceed with findings from the remaining layers.
|
|
35
|
+
|
|
36
|
+
5. Collect all findings from completed layers.
|
|
37
|
+
|
|
38
|
+
## Next
|
|
39
|
+
|
|
40
|
+
Read fully and follow `./step-03-triage.md`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Step 3: Triage
|
|
2
|
+
|
|
3
|
+
## Rules
|
|
4
|
+
|
|
5
|
+
- Speak in `{communication_language}`.
|
|
6
|
+
- Be precise. When uncertain between categories, prefer the more conservative classification.
|
|
7
|
+
|
|
8
|
+
## Instructions
|
|
9
|
+
|
|
10
|
+
1. **Normalize** findings into a common format. Expected input formats:
|
|
11
|
+
- Blind Hunter: Markdown list of descriptions.
|
|
12
|
+
- Edge Case Hunter: JSON array with `location`, `trigger_condition`, `guard_snippet`, `potential_consequence`.
|
|
13
|
+
- Acceptance Auditor: Markdown list with title, AC/constraint reference, and evidence.
|
|
14
|
+
|
|
15
|
+
Convert all to a unified list with:
|
|
16
|
+
- `id` — sequential integer
|
|
17
|
+
- `source` — `blind`, `edge`, `auditor`, or merged (`blind+edge`, etc.)
|
|
18
|
+
- `title` — one-line summary
|
|
19
|
+
- `detail` — full description
|
|
20
|
+
- `location` — file and line reference if available
|
|
21
|
+
|
|
22
|
+
2. **Deduplicate.** Merge findings that describe the same issue:
|
|
23
|
+
- Use the most specific finding as the base (prefer Edge Case Hunter JSON with location).
|
|
24
|
+
- Append unique detail, reasoning, or locations from other findings.
|
|
25
|
+
- Set `source` to merged sources.
|
|
26
|
+
|
|
27
|
+
3. **Classify** each finding into exactly one bucket:
|
|
28
|
+
- **decision_needed** — ambiguous choice requiring human input. Only possible if `{review_mode}` = `"full"`.
|
|
29
|
+
- **patch** — code issue fixable without human input.
|
|
30
|
+
- **defer** — pre-existing issue not caused by this change.
|
|
31
|
+
- **dismiss** — noise, false positive, or handled elsewhere.
|
|
32
|
+
|
|
33
|
+
If `{review_mode}` = `"no-spec"` and a finding would be `decision_needed`, reclassify as `patch` or `defer`.
|
|
34
|
+
|
|
35
|
+
4. **Drop** all `dismiss` findings. Record the dismiss count.
|
|
36
|
+
|
|
37
|
+
5. If `{failed_layers}` is non-empty, report which layers failed. If zero findings remain and layers failed, warn the user that the review may be incomplete.
|
|
38
|
+
|
|
39
|
+
6. If zero findings remain after triage, state: "✅ Clean review — all layers passed."
|
|
40
|
+
|
|
41
|
+
## Next
|
|
42
|
+
|
|
43
|
+
Read fully and follow `./step-04-present.md`.
|