wize-dev-kit 0.15.0 → 0.16.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/ARCH.md +24 -77
- package/CHANGELOG.md +9 -0
- package/DECISIONS.md +1 -27
- package/README.md +4 -0
- package/ROSTER.md +3 -11
- package/adapters/README.md +7 -8
- 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/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 +1 -27
- package/adapters/windsurf/README.md +3 -3
- 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 +0 -2
- package/src/app-overlay/wize-app-scaffold/workflow.md +0 -2
- package/src/app-overlay/wize-app-store-listing/workflow.md +0 -2
- package/src/builder-skills/wize-create-agent/workflow.md +0 -2
- package/src/builder-skills/wize-create-skill/workflow.md +0 -2
- package/src/builder-skills/wize-create-workflow/workflow.md +0 -2
- package/src/core-skills/module.yaml +3 -0
- package/src/core-skills/wize-advanced-elicitation/skill.md +0 -2
- package/src/core-skills/wize-brainstorming/skill.md +0 -2
- package/src/core-skills/wize-eli5/skill.md +72 -0
- package/src/core-skills/wize-review-adversarial/skill.md +0 -3
- package/src/core-skills/wize-shard-doc/skill.md +0 -2
- package/src/method-skills/1-analysis/wize-agent-analyst/agent.yaml +0 -3
- package/src/method-skills/1-analysis/wize-document-project/workflow.md +20 -213
- package/src/method-skills/1-analysis/wize-prfaq/workflow.md +11 -152
- package/src/method-skills/1-analysis/wize-product-brief/workflow.md +19 -92
- package/src/method-skills/1-analysis/wize-research/workflow.md +12 -39
- package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +16 -82
- package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +23 -135
- package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +28 -134
- package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +15 -93
- package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +12 -108
- package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +11 -103
- package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +48 -55
- package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +15 -154
- package/src/method-skills/3-solutioning/wize-design-system/workflow.md +22 -184
- package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +17 -145
- package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +22 -130
- package/src/method-skills/4-implementation/wize-agent-dev/persona.md +0 -12
- package/src/method-skills/4-implementation/wize-code-review/workflow.md +12 -54
- package/src/method-skills/4-implementation/wize-create-story/workflow.md +10 -154
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +17 -185
- package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +18 -136
- package/src/method-skills/4-implementation/wize-retrospective/workflow.md +10 -114
- package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +11 -78
- package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +11 -45
- package/src/method-skills/module.yaml +0 -28
- package/src/orchestrator-skills/module.yaml +1 -7
- package/src/orchestrator-skills/wize-help/skill.md +67 -227
- package/src/orchestrator-skills/wize-onboarding/workflow.md +14 -78
- package/src/orchestrator-skills/wize-orchestrator/agent.yaml +0 -2
- package/src/orchestrator-skills/wize-orchestrator/persona.md +3 -44
- package/src/orchestrator-skills/wize-party-mode/workflow.md +0 -2
- package/src/tea-skills/wize-tea-design/workflow.md +13 -107
- package/src/tea-skills/wize-tea-gate/workflow.md +25 -118
- package/src/tea-skills/wize-tea-nfr/workflow.md +14 -107
- package/src/tea-skills/wize-tea-review/workflow.md +13 -123
- package/src/tea-skills/wize-tea-risk/workflow.md +10 -113
- package/src/tea-skills/wize-tea-trace/workflow.md +12 -86
- package/src/web-overlay/wize-web-deploy/workflow.md +0 -2
- package/src/web-overlay/wize-web-scaffold/workflow.md +0 -2
- package/src/web-overlay/wize-web-seo-audit/workflow.md +0 -2
- package/tools/check-eli5-all-adapters.js +50 -0
- package/tools/installer/onboarding.js +20 -14
- package/tools/installer/render-shared.js +15 -159
- package/tools/installer/setup-helpers.js +0 -1
- package/tools/installer/validators/run-all.js +2 -3
- package/tools/installer/wize-cli.js +70 -500
- package/AGENTS.md +0 -37
- package/README.es.md +0 -295
- package/README.pt-BR.md +0 -293
- package/adapters/hermes/README.md +0 -23
- package/adapters/hermes/adapter.yaml +0 -8
- package/adapters/hermes/render.js +0 -17
- package/docs/harnesses/antigravity.md +0 -20
- package/docs/harnesses/antigravity.pt-BR.md +0 -20
- package/docs/harnesses/claude-code.md +0 -23
- package/docs/harnesses/claude-code.pt-BR.md +0 -23
- package/docs/harnesses/codex.md +0 -21
- package/docs/harnesses/codex.pt-BR.md +0 -21
- package/docs/harnesses/continue.md +0 -21
- package/docs/harnesses/continue.pt-BR.md +0 -21
- package/docs/harnesses/cursor.md +0 -22
- package/docs/harnesses/cursor.pt-BR.md +0 -22
- package/docs/harnesses/generic.md +0 -20
- package/docs/harnesses/generic.pt-BR.md +0 -20
- package/docs/harnesses/hermes.md +0 -26
- package/docs/harnesses/hermes.pt-BR.md +0 -26
- package/docs/harnesses/kimi-code.md +0 -19
- package/docs/harnesses/kimi-code.pt-BR.md +0 -19
- package/docs/harnesses/opencode.md +0 -31
- package/docs/harnesses/opencode.pt-BR.md +0 -31
- package/docs/harnesses/windsurf.md +0 -22
- package/docs/harnesses/windsurf.pt-BR.md +0 -22
- package/src/core-skills/wize-customize/skill.md +0 -116
- package/src/core-skills/wize-editorial-review-prose/skill.md +0 -94
- package/src/core-skills/wize-editorial-review-structure/skill.md +0 -99
- package/src/core-skills/wize-grill/skill.md +0 -77
- package/src/core-skills/wize-index-docs/skill.md +0 -119
- package/src/core-skills/wize-pre-pr-check/skill.md +0 -134
- package/src/core-skills/wize-review-edge-case-hunter/skill.md +0 -115
- package/src/core-skills/wize-spec/assets/headless-schemas.md +0 -39
- package/src/core-skills/wize-spec/assets/spec-template.md +0 -40
- package/src/core-skills/wize-spec/customize.toml +0 -20
- package/src/core-skills/wize-spec/skill.md +0 -112
- package/src/method-skills/1-analysis/wize-document-project/documentation-requirements.csv +0 -12
- package/src/method-skills/1-analysis/wize-document-project/templates/api-contracts-template.md +0 -38
- package/src/method-skills/1-analysis/wize-document-project/templates/architecture-template.md +0 -54
- package/src/method-skills/1-analysis/wize-document-project/templates/component-inventory-template.md +0 -40
- package/src/method-skills/1-analysis/wize-document-project/templates/contribution-guide-template.md +0 -34
- package/src/method-skills/1-analysis/wize-document-project/templates/data-models-template.md +0 -36
- package/src/method-skills/1-analysis/wize-document-project/templates/deep-dive-template.md +0 -312
- package/src/method-skills/1-analysis/wize-document-project/templates/deployment-guide-template.md +0 -42
- package/src/method-skills/1-analysis/wize-document-project/templates/development-guide-template.md +0 -61
- package/src/method-skills/1-analysis/wize-document-project/templates/index-template.md +0 -185
- package/src/method-skills/1-analysis/wize-document-project/templates/project-overview-template.md +0 -110
- package/src/method-skills/1-analysis/wize-document-project/templates/project-scan-report-schema.json +0 -159
- package/src/method-skills/1-analysis/wize-document-project/templates/source-tree-template.md +0 -142
- package/src/method-skills/1-analysis/wize-domain-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-01-init.md +0 -49
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-02-domain-analysis.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-03-competitive-landscape.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-04-regulatory-focus.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-05-technical-trends.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-06-research-synthesis.md +0 -43
- package/src/method-skills/1-analysis/wize-domain-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-domain-research/workflow.md +0 -58
- package/src/method-skills/1-analysis/wize-market-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-market-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-market-research/steps/step-01-init.md +0 -57
- package/src/method-skills/1-analysis/wize-market-research/steps/step-02-customer-behavior.md +0 -39
- package/src/method-skills/1-analysis/wize-market-research/steps/step-03-customer-pain-points.md +0 -37
- package/src/method-skills/1-analysis/wize-market-research/steps/step-04-customer-decisions.md +0 -39
- package/src/method-skills/1-analysis/wize-market-research/steps/step-05-competitive-analysis.md +0 -37
- package/src/method-skills/1-analysis/wize-market-research/steps/step-06-research-completion.md +0 -47
- package/src/method-skills/1-analysis/wize-market-research/workflow.md +0 -66
- package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +0 -129
- package/src/method-skills/1-analysis/wize-technical-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-technical-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-01-init.md +0 -49
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-02-technical-overview.md +0 -45
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-03-integration-patterns.md +0 -39
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-04-architectural-patterns.md +0 -39
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-05-implementation-research.md +0 -42
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-06-research-synthesis.md +0 -46
- package/src/method-skills/1-analysis/wize-technical-research/workflow.md +0 -60
- package/src/method-skills/2-plan-workflows/wize-edit-prd/workflow.md +0 -110
- package/src/method-skills/3-solutioning/wize-create-architecture/architecture-decision-template.md +0 -41
- package/src/method-skills/3-solutioning/wize-create-architecture/customize.toml +0 -20
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01-init.md +0 -95
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01b-continue.md +0 -32
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-02-context.md +0 -126
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-03-starter.md +0 -110
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-04-decisions.md +0 -129
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-05-patterns.md +0 -109
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-06-structure.md +0 -97
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-07-validation.md +0 -124
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-08-complete.md +0 -59
- package/src/method-skills/3-solutioning/wize-project-context/workflow.md +0 -120
- package/src/method-skills/4-implementation/wize-changelog/workflow.md +0 -184
- package/src/method-skills/4-implementation/wize-checkpoint-preview/workflow.md +0 -117
- package/src/method-skills/4-implementation/wize-code-review/customize.toml +0 -21
- package/src/method-skills/4-implementation/wize-code-review/steps/step-01-gather-context.md +0 -64
- package/src/method-skills/4-implementation/wize-code-review/steps/step-02-review.md +0 -40
- package/src/method-skills/4-implementation/wize-code-review/steps/step-03-triage.md +0 -43
- package/src/method-skills/4-implementation/wize-code-review/steps/step-04-present.md +0 -100
- package/src/method-skills/4-implementation/wize-correct-course/workflow.md +0 -93
- package/src/method-skills/4-implementation/wize-investigate/workflow.md +0 -123
- package/src/method-skills/4-implementation/wize-release/workflow.md +0 -162
- package/src/orchestrator-skills/wize/skill.md +0 -164
- package/src/orchestrator-skills/wize-check/skill.md +0 -98
- package/src/security-overlay/_shared/allowlist.js +0 -154
- package/src/security-overlay/_shared/backlog.js +0 -169
- package/src/security-overlay/_shared/cli-runner.js +0 -87
- package/src/security-overlay/_shared/cvss.js +0 -108
- package/src/security-overlay/_shared/detect.js +0 -125
- package/src/security-overlay/_shared/install-script.js +0 -205
- package/src/security-overlay/_shared/invoke-phase.js +0 -86
- package/src/security-overlay/_shared/owasp.js +0 -56
- package/src/security-overlay/_shared/partial.js +0 -225
- package/src/security-overlay/_shared/preflight.js +0 -175
- package/src/security-overlay/_shared/scope-gate.js +0 -172
- package/src/security-overlay/_shared/scope-parser.js +0 -147
- package/src/security-overlay/agents/red-teamer/agent.yaml +0 -54
- package/src/security-overlay/agents/red-teamer/persona.md +0 -49
- package/src/security-overlay/data/common.txt +0 -115
- package/src/security-overlay/data/owasp-top10.json +0 -15
- package/src/security-overlay/data/tool-allowlist.json +0 -31
- package/src/security-overlay/skills/wize-sec-enumerate/scripts/run-enumerate.js +0 -180
- package/src/security-overlay/skills/wize-sec-enumerate/skill.md +0 -34
- package/src/security-overlay/skills/wize-sec-exploit/data/common.txt +0 -117
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-ffuf.js +0 -147
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nikto.js +0 -145
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nuclei.js +0 -176
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-sqlmap.js +0 -139
- package/src/security-overlay/skills/wize-sec-pentest/scripts/run-pipeline.js +0 -184
- package/src/security-overlay/skills/wize-sec-pentest/skill.md +0 -54
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-gitleaks.js +0 -139
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-osv.js +0 -227
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-recon.js +0 -162
- package/src/security-overlay/skills/wize-sec-recon/skill.md +0 -37
- package/src/security-overlay/skills/wize-sec-report/scripts/render-report.js +0 -1033
- package/src/security-overlay/skills/wize-sec-scope/scripts/generate-scope.js +0 -106
- package/src/security-overlay/skills/wize-sec-scope/skill.md +0 -52
- package/src/tea-skills/wize-qa-generate-e2e-tests/workflow.md +0 -121
- package/tools/installer/baseline.js +0 -133
- package/tools/installer/commands/agent.js +0 -197
- package/tools/installer/commands/doctor.js +0 -320
- package/tools/installer/commands/document-project.js +0 -93
- package/tools/installer/commands/sync.js +0 -45
- package/tools/installer/commands/update.js +0 -172
- package/tools/installer/document-project/batch-scanner.js +0 -93
- package/tools/installer/document-project/classify.js +0 -170
- package/tools/installer/document-project/modes/deep-dive.js +0 -196
- package/tools/installer/document-project/modes/full-rescan.js +0 -15
- package/tools/installer/document-project/modes/initial-scan.js +0 -100
- package/tools/installer/document-project/modes/quick.js +0 -211
- package/tools/installer/document-project/render-index.js +0 -101
- package/tools/installer/document-project/state.js +0 -110
- package/tools/installer/version-check.js +0 -117
|
@@ -1,161 +1,33 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
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."
|
|
5
3
|
name: NFR Principles
|
|
6
|
-
phase: 3-
|
|
4
|
+
phase: 2-to-3-boundary
|
|
7
5
|
owner: wize-agent-solution-strategist # Nick Fury
|
|
8
|
-
status:
|
|
6
|
+
status: stub
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# NFR Principles
|
|
12
10
|
|
|
13
|
-
**Goal.** Define non-functional non-negotiables Tony must design against and Hawkeye must verify.
|
|
14
|
-
|
|
15
|
-
Fury drives. Output lands in `.wize/planning/nfr-principles.md`.
|
|
16
|
-
|
|
17
|
-
## Inputs
|
|
18
|
-
|
|
19
|
-
- `.wize/planning/prd.md`
|
|
20
|
-
- `.wize/planning/tech-vision.md`
|
|
21
|
-
- `.wize/planning/brief.md` (compliance constraints, audience implications)
|
|
22
|
-
- Overlay perf playbooks if active:
|
|
23
|
-
- `web-overlay/playbooks/web-perf-budgets.md`
|
|
24
|
-
- `app-overlay/playbooks/mobile-perf-budgets.md`
|
|
25
|
-
- `web-overlay/playbooks/wcag-aa.md`
|
|
26
|
-
- `app-overlay/playbooks/apple-hig.md`, `material-design-3.md`
|
|
27
|
-
|
|
28
|
-
## Outputs
|
|
11
|
+
**Goal.** Define non-functional non-negotiables Tony must design against and Hawkeye must verify.
|
|
29
12
|
|
|
13
|
+
## Output
|
|
30
14
|
- `.wize/planning/nfr-principles.md`
|
|
31
15
|
|
|
32
|
-
## Categories
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|---|---|
|
|
40
|
-
| Non-negotiable | LCP ≤ 2.5s mobile, INP ≤ 200ms, CLS ≤ 0.1 (web) — cold start ≤ 1.5s mid-range (app) |
|
|
41
|
-
| Stretch | LCP ≤ 1.8s, INP ≤ 100ms |
|
|
42
|
-
| Deferred | Server-side LCP for edge regions — revisit when audience > 30% non-NA |
|
|
43
|
-
|
|
44
|
-
### 2. Security
|
|
45
|
-
|
|
46
|
-
| Tier | Items |
|
|
47
|
-
|---|---|
|
|
48
|
-
| Non-negotiable | OWASP Top 10 covered; auth via {{vendor}}; tokens never logged; secrets via {{provider}}; RLS on every table with user_id |
|
|
49
|
-
| Stretch | SOC2 type-I controls in place by {{date}} |
|
|
50
|
-
| Deferred | SOC2 type-II — revisit at $1M ARR |
|
|
51
|
-
|
|
52
|
-
### 3. Reliability
|
|
53
|
-
|
|
54
|
-
| Tier | Targets |
|
|
55
|
-
|---|---|
|
|
56
|
-
| Non-negotiable | 99.9% uptime in primary region; error budget 0.1%/month; retries idempotent with deduplication key |
|
|
57
|
-
| Stretch | 99.95% uptime |
|
|
58
|
-
| Deferred | Multi-region active/active — revisit per tech-vision deferred |
|
|
59
|
-
|
|
60
|
-
### 4. Maintainability
|
|
61
|
-
|
|
62
|
-
| Tier | Items |
|
|
63
|
-
|---|---|
|
|
64
|
-
| Non-negotiable | Lint + format on commit; > 80% test coverage on logic modules; ADRs for every architectural decision; deps audited monthly |
|
|
65
|
-
| Stretch | < 5% files over 300 LOC; cyclomatic complexity < 15 per function |
|
|
66
|
-
| Deferred | Auto-doc generation — revisit when API consumers > 3 |
|
|
67
|
-
|
|
68
|
-
### 5. Accessibility
|
|
69
|
-
|
|
70
|
-
| Tier | Items |
|
|
71
|
-
|---|---|
|
|
72
|
-
| Non-negotiable | WCAG 2.2 AA on every shipped page; keyboard-complete; axe in CI |
|
|
73
|
-
| Stretch | AAA on critical flows (signup, billing) |
|
|
74
|
-
| Deferred | Full screen-reader manual audit every release — revisit at next compliance review |
|
|
75
|
-
|
|
76
|
-
### 6. Cost
|
|
77
|
-
|
|
78
|
-
| Tier | Targets |
|
|
79
|
-
|---|---|
|
|
80
|
-
| Non-negotiable | Total infra ≤ ${{X}}/month under {{load}}; degradation strategy documented for 10× spike |
|
|
81
|
-
| Stretch | Cost-per-active-user ≤ ${{Y}} |
|
|
82
|
-
| Deferred | Per-feature cost attribution — revisit when finance asks |
|
|
83
|
-
|
|
84
|
-
## Steps
|
|
85
|
-
|
|
86
|
-
### 1. Read the playbooks first
|
|
87
|
-
|
|
88
|
-
If web/app overlays are active, the perf and a11y playbooks already hold real targets calibrated to mid-range device + 3G fast. Use them as starting point.
|
|
89
|
-
|
|
90
|
-
### 2. Tighten by audience
|
|
91
|
-
|
|
92
|
-
Mid-range mobile is the playbook baseline. If your PRD audience is *more* constrained (emerging markets, kiosk hardware, healthcare older devices), tighten. Don't loosen.
|
|
93
|
-
|
|
94
|
-
### 3. Map every non-negotiable to a verifier
|
|
95
|
-
|
|
96
|
-
Every non-negotiable must answer the question: *Who and how do we verify this on every release?*
|
|
97
|
-
|
|
98
|
-
- LCP → `web-perf-budgets.md` lighthouse-ci config.
|
|
99
|
-
- WCAG → axe in CI + Hawkeye review.
|
|
100
|
-
- Uptime → SLO defined in `.wize/solutioning/observability.md` (Tony).
|
|
101
|
-
- Error budget → tracked in {{tool}}.
|
|
102
|
-
|
|
103
|
-
A non-negotiable with no verifier is a wish.
|
|
104
|
-
|
|
105
|
-
### 4. Tell the story (one paragraph)
|
|
106
|
-
|
|
107
|
-
Open the doc with a paragraph: *why these numbers, and what trade-offs they imply.* Future readers re-litigate non-negotiables every six months; the story saves that hour.
|
|
108
|
-
|
|
109
|
-
### 5. Hand off
|
|
110
|
-
|
|
111
|
-
Mark `status: aligned`. Tony reads before architecture; Hawkeye reads before risk profile.
|
|
112
|
-
|
|
113
|
-
## Output template
|
|
16
|
+
## Categories
|
|
17
|
+
- **Performance** — targets (LCP, p95, throughput).
|
|
18
|
+
- **Security** — auth model, data classes, threat surface posture.
|
|
19
|
+
- **Reliability** — uptime, error budget, retry/idempotency policy.
|
|
20
|
+
- **Maintainability** — coding standards, tech-debt allowance.
|
|
21
|
+
- **Accessibility** — WCAG / platform guidelines minimums.
|
|
22
|
+
- **Cost** — monthly envelope and degradation strategy.
|
|
114
23
|
|
|
24
|
+
## Template
|
|
115
25
|
```markdown
|
|
116
|
-
|
|
117
|
-
status: aligned
|
|
118
|
-
owner: Nick Fury
|
|
119
|
-
created: YYYY-MM-DD
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
# NFR Principles — {{project_name}}
|
|
123
|
-
|
|
124
|
-
## Why these numbers
|
|
125
|
-
|
|
126
|
-
{{One paragraph: target audience, country mix, device class, compliance frame. Why we picked these targets specifically.}}
|
|
127
|
-
|
|
128
|
-
## Performance
|
|
129
|
-
| Tier | Targets | Verifier |
|
|
130
|
-
|---|---|---|
|
|
131
|
-
| Non-negotiable | LCP ≤ 2.5s mobile (CWV), INP ≤ 200ms, CLS ≤ 0.1 | lighthouse-ci + web-vitals beacon |
|
|
132
|
-
| Stretch | LCP ≤ 1.8s | same |
|
|
133
|
-
| Deferred | Multi-region LCP — trigger: EU DAU > 5k | — |
|
|
134
|
-
|
|
135
|
-
## Security
|
|
136
|
-
…
|
|
137
|
-
|
|
138
|
-
## Reliability
|
|
139
|
-
…
|
|
140
|
-
|
|
141
|
-
## Maintainability
|
|
142
|
-
…
|
|
143
|
-
|
|
144
|
-
## Accessibility
|
|
145
|
-
…
|
|
26
|
+
# NFR Principles
|
|
146
27
|
|
|
147
|
-
|
|
28
|
+
| Category | Non-negotiable | Stretch | Deferred |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| Performance | … | … | … |
|
|
31
|
+
| Security | … | … | … |
|
|
148
32
|
…
|
|
149
33
|
```
|
|
150
|
-
|
|
151
|
-
## Anti-patterns Fury rejects
|
|
152
|
-
|
|
153
|
-
- **Targets without numbers.** "Fast." Wrong. "p95 server response ≤ 200ms."
|
|
154
|
-
- **Stretch targets that are actually goals.** If you must hit it, it's non-negotiable.
|
|
155
|
-
- **No verifier.** Every non-negotiable answers *who verifies, with what tool, on what cadence*.
|
|
156
|
-
- **Loosening below the playbook.** Tightening is fine. Loosening is a smell — escalate.
|
|
157
|
-
- **Cost left blank.** Cost is always an NFR.
|
|
158
|
-
|
|
159
|
-
## Hand-off
|
|
160
|
-
|
|
161
|
-
> NFRs at `.wize/planning/nfr-principles.md`. Tony, architecture must respect items 1.A and 4.A from day one (perf and ADR discipline). Hawkeye, your gate policy can stay advisory but NFR gate per epic is mandatory. Hill, scope must keep the budget headroom for item 6.A.
|
|
@@ -1,151 +1,43 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
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."
|
|
5
3
|
name: Tech Vision
|
|
6
|
-
phase: 3-
|
|
4
|
+
phase: 2-to-3-boundary
|
|
7
5
|
owner: wize-agent-solution-strategist # Nick Fury
|
|
8
|
-
status:
|
|
6
|
+
status: stub
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Tech Vision
|
|
12
10
|
|
|
13
|
-
**Goal.** State the technical north star in one page. Stack family, runtime envelope, build/buy/borrow calls
|
|
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
|
|
11
|
+
**Goal.** State the technical north star in one page. Stack family, language, runtime envelope, build/buy/borrow calls. Not libraries — *shape*.
|
|
27
12
|
|
|
13
|
+
## Output
|
|
28
14
|
- `.wize/planning/tech-vision.md`
|
|
29
15
|
|
|
30
|
-
##
|
|
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
|
-
|
|
16
|
+
## Template
|
|
95
17
|
```markdown
|
|
96
|
-
|
|
97
|
-
status: aligned
|
|
98
|
-
owner: Nick Fury
|
|
99
|
-
created: YYYY-MM-DD
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
# Tech Vision — {{project_name}}
|
|
18
|
+
# Tech Vision
|
|
103
19
|
|
|
104
20
|
## Stack family
|
|
105
|
-
|
|
21
|
+
- {Web|Mobile|Hybrid}
|
|
22
|
+
|
|
23
|
+
## Language(s) of record
|
|
24
|
+
- …
|
|
106
25
|
|
|
107
26
|
## Runtime envelope
|
|
108
|
-
|
|
|
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 |
|
|
27
|
+
- {Browser|Node|Edge|Native iOS|Native Android}
|
|
115
28
|
|
|
116
|
-
## Build
|
|
117
|
-
| Capability | Decision |
|
|
118
|
-
|
|
119
|
-
| Auth |
|
|
120
|
-
| Payments |
|
|
121
|
-
| Search |
|
|
122
|
-
| Queues |
|
|
123
|
-
| Analytics |
|
|
124
|
-
| Email | Buy — Resend |
|
|
29
|
+
## Build vs buy vs borrow
|
|
30
|
+
| Capability | Decision | Why |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| Auth | … | … |
|
|
33
|
+
| Payments | … | … |
|
|
34
|
+
| Search | … | … |
|
|
35
|
+
| Queues | … | … |
|
|
36
|
+
| Analytics | … | … |
|
|
125
37
|
|
|
126
38
|
## Non-negotiables
|
|
127
|
-
|
|
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.
|
|
39
|
+
- …
|
|
135
40
|
|
|
136
|
-
##
|
|
137
|
-
-
|
|
138
|
-
- PRD goal G1 ruled in edge-first reads.
|
|
139
|
-
- Hiring tail in TypeScript ruled out Compose Multiplatform.
|
|
41
|
+
## Deferred (revisit when)
|
|
42
|
+
- … (trigger: …)
|
|
140
43
|
```
|
|
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,18 +12,6 @@ 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
|
-
|
|
27
15
|
## Style
|
|
28
16
|
|
|
29
17
|
- File paths, AC IDs, commit-message brevity.
|
|
@@ -1,66 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-code-review
|
|
4
|
-
description: "Use quando um PR estiver aberto e precisar de revisão de código por pares focada em saúde do código."
|
|
5
3
|
name: Code Review
|
|
6
4
|
phase: 4-implementation
|
|
7
|
-
owner: wize-agent-dev # Shuri (peer
|
|
8
|
-
status:
|
|
5
|
+
owner: wize-agent-dev # Shuri (peer Shuri — done at PR open time)
|
|
6
|
+
status: stub
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Code Review
|
|
12
10
|
|
|
13
|
-
**Goal.**
|
|
14
|
-
|
|
15
|
-
This is **Shuri's peer code review** — separate from Hawkeye's `wize-tea-review` (which audits AC fulfillment). Both run on every story PR; they are complementary.
|
|
16
|
-
|
|
17
|
-
## When to run
|
|
18
|
-
|
|
19
|
-
Every PR that ships code. Quick-dev PRs get a lighter review (skip architecture checks unless they touched architecture).
|
|
11
|
+
**Goal.** Self/peer review focused on code health. Separate from Hawkeye's story review.
|
|
20
12
|
|
|
21
|
-
##
|
|
13
|
+
## What this checks
|
|
14
|
+
- Naming, structure, dead code
|
|
15
|
+
- Test coverage and quality (not just presence)
|
|
16
|
+
- Security obvious-misses
|
|
17
|
+
- Performance obvious-misses
|
|
18
|
+
- Architectural drift (call Tony if found)
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
- Existing code style and project context from `.wize/knowledge/document-project/`.
|
|
20
|
+
## What this does NOT check
|
|
21
|
+
- AC fulfillment — that's Hawkeye's `trace` + `review` + `gate`.
|
|
26
22
|
|
|
27
23
|
## Outputs
|
|
28
|
-
|
|
29
|
-
- Inline-style findings presented in the conversation.
|
|
30
|
-
- Optional patch application if the user chooses to fix findings now.
|
|
31
|
-
- Updated story file with a `### Review Findings` section when a spec file is provided.
|
|
32
|
-
- Updated sprint status when a story key is discovered.
|
|
33
|
-
|
|
34
|
-
## Workflow architecture
|
|
35
|
-
|
|
36
|
-
This skill uses **step-file architecture**:
|
|
37
|
-
|
|
38
|
-
- Each step is self-contained and followed exactly.
|
|
39
|
-
- Sequential enforcement: complete steps in order, no skipping.
|
|
40
|
-
- State tracked in frontmatter variables set at runtime.
|
|
41
|
-
- Append-only building of findings.
|
|
42
|
-
|
|
43
|
-
## Critical rules
|
|
44
|
-
|
|
45
|
-
- **Read completely** each step file before acting.
|
|
46
|
-
- **Never** load multiple step files simultaneously.
|
|
47
|
-
- **Always** halt at checkpoints and wait for human input.
|
|
48
|
-
- Use CWD-relative `path:line` for every code reference.
|
|
49
|
-
|
|
50
|
-
## On activation
|
|
51
|
-
|
|
52
|
-
1. Load `.wize/config/project.toml` and `.wize/config/user.toml`.
|
|
53
|
-
2. Resolve `user_name`, `communication_language`, `document_output_language`, `implementation_artifacts`, `planning_artifacts`.
|
|
54
|
-
3. Greet the user in `communication_language`.
|
|
55
|
-
4. Read fully and follow `./steps/step-01-gather-context.md`.
|
|
56
|
-
|
|
57
|
-
## Steps
|
|
58
|
-
|
|
59
|
-
1. `step-01-gather-context.md` — identify the diff source, construct `{diff_output}`, set `{review_mode}` and `{spec_file}`.
|
|
60
|
-
2. `step-02-review.md` — launch parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor).
|
|
61
|
-
3. `step-03-triage.md` — normalize, deduplicate, and classify findings into `decision_needed`, `patch`, `defer`, `dismiss`.
|
|
62
|
-
4. `step-04-present.md` — present findings, resolve decisions, apply patches, update story status.
|
|
63
|
-
|
|
64
|
-
## Hand-off
|
|
65
|
-
|
|
66
|
-
> Code review complete for `{story_key or change}`. `{decision_needed}` decision(s), `{patch}` patch(es), `{defer}` deferred, `{dismissed}` dismissed as noise. Next: re-run review or continue to `wize-tea-review` (Hawkeye).
|
|
24
|
+
- Inline comments / suggestions on the diff.
|
|
@@ -1,171 +1,27 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-create-story
|
|
4
|
-
description: "Use quando um epic estiver definido e precisar criar uma story individual com acceptance criteria detalhados."
|
|
5
3
|
name: Create Story
|
|
6
4
|
phase: 4-implementation
|
|
7
5
|
owner: wize-agent-architect # Tony writes; Shuri may refine
|
|
8
|
-
status:
|
|
6
|
+
status: stub
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Create Story
|
|
12
10
|
|
|
13
|
-
**Goal.** Author one Pull-Request-sized story with crisp acceptance criteria
|
|
14
|
-
|
|
15
|
-
Tony drives. Shuri reads and proposes refinements before pulling the story.
|
|
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
|
-
|
|
19
|
-
## When to use
|
|
20
|
-
|
|
21
|
-
- New story splits from an epic (most common — done in `wize-create-epics-and-stories`).
|
|
22
|
-
- A story that comes in mid-sprint and needs a quick scaffold.
|
|
23
|
-
- A `tea-gate` waived rationale created a follow-up story.
|
|
11
|
+
**Goal.** Author one Pull-Request-sized story unit with crisp acceptance criteria.
|
|
24
12
|
|
|
25
13
|
## Inputs
|
|
26
|
-
|
|
27
|
-
Read central docs first, expand by dependency; don't pad with unrelated files:
|
|
28
|
-
|
|
29
|
-
- `AGENTS.md` + `.wize/config/project.toml` — profiles, languages, conventions.
|
|
30
14
|
- `.wize/solutioning/architecture.md`
|
|
31
15
|
- `.wize/solutioning/epics/{epic}.md`
|
|
32
|
-
-
|
|
33
|
-
- `.wize/knowledge/document-project/` (brownfield baseline, if present)
|
|
34
|
-
- (optional) `.wize/planning/ux/ux-design/{screen}.md`
|
|
35
|
-
|
|
36
|
-
## Output
|
|
16
|
+
- (optional) UX screen reference
|
|
37
17
|
|
|
18
|
+
## Outputs
|
|
38
19
|
- `.wize/solutioning/stories/{epic}/{story-id}.md`
|
|
39
20
|
|
|
40
|
-
##
|
|
41
|
-
|
|
42
|
-
### 1. Name it by outcome
|
|
43
|
-
|
|
44
|
-
Verb-led, user-visible. *"Onboarding: invite first teammate"* not *"Build invite form."*
|
|
45
|
-
|
|
46
|
-
### 2. Frontmatter
|
|
47
|
-
|
|
48
|
-
```yaml
|
|
49
|
-
---
|
|
50
|
-
story_id: E01-S03
|
|
51
|
-
epic: 01-onboarding
|
|
52
|
-
status: ready-for-dev
|
|
53
|
-
priority: 2 # 1=now, 2=next, 3=later
|
|
54
|
-
linked_screens: [onboarding-step-1, invite-modal]
|
|
55
|
-
linked_acs: [AC-02-1, AC-02-2]
|
|
56
|
-
---
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### 3. Context (3–5 lines)
|
|
60
|
-
|
|
61
|
-
What place this story occupies in the user journey, why it matters here, what it depends on.
|
|
62
|
-
|
|
63
|
-
### 4. ACs (lifted from PRD; not reworded)
|
|
64
|
-
|
|
65
|
-
Don't reword PRD ACs in a story — copy them verbatim. If they're not crisp enough, fix in the PRD first.
|
|
66
|
-
|
|
67
|
-
### 5. Out of scope
|
|
68
|
-
|
|
69
|
-
Explicit. Other ACs the user might think this story touches, with a one-line reason it's not here.
|
|
70
|
-
|
|
71
|
-
### 6. Sources of truth
|
|
72
|
-
|
|
73
|
-
List the exact docs Shuri must read before coding: `AGENTS.md`, `project.toml`, `document-project/*`, the parent epic, `architecture.md`, the linked screen, the TEA test contract, and the related code + tests already on this path.
|
|
74
|
-
|
|
75
|
-
### 7. Restrictions
|
|
76
|
-
|
|
77
|
-
Beyond out-of-scope: name **protected behaviors** (what must not change), **compatibility** constraints (keys, contracts, migrations), and **security** constraints (boundary validation, authz). No silent scope creep — log recommended extras separately.
|
|
78
|
-
|
|
79
|
-
### 8. Validation contract
|
|
80
|
-
|
|
81
|
-
Declare the **AC → test** map and the **required checks** (unit / integration / e2e, lint, format, type-check, build, security when applicable) plus which UI states (loading / empty / error) must be asserted. Hawkeye writes the real `tea-design.md`, but this is the binding shape it fills.
|
|
82
|
-
|
|
83
|
-
### 9. Notes for Shuri
|
|
84
|
-
|
|
85
|
-
- Touch points: files Shuri will likely edit.
|
|
86
|
-
- Reuse: components from `design-system` already named.
|
|
87
|
-
- `testid` map: names Hawkeye expects.
|
|
88
|
-
- Edge cases worth flagging (only ones not derivable from ACs).
|
|
89
|
-
|
|
90
|
-
### 10. Notes for Hawkeye
|
|
91
|
-
|
|
92
|
-
A one-paragraph hint: suggested split, fixtures, mocks, environment. Hawkeye writes the real `tea-design.md` but reads this hint.
|
|
93
|
-
|
|
94
|
-
## INVEST rules
|
|
95
|
-
|
|
96
|
-
Every story passes:
|
|
97
|
-
|
|
98
|
-
- **I**ndependent.
|
|
99
|
-
- **N**egotiable.
|
|
100
|
-
- **V**aluable.
|
|
101
|
-
- **S**mall (≤ 1 PR) — the *only* sizing test; if it doesn't fit one PR, slice.
|
|
102
|
-
- **T**estable.
|
|
103
|
-
|
|
104
|
-
(INVEST's "Estimable" is dropped on purpose — see **No estimates** above. We don't size in time or points.)
|
|
105
|
-
|
|
106
|
-
If any letter fails, fix before queueing.
|
|
107
|
-
|
|
108
|
-
## Full story template
|
|
109
|
-
|
|
110
|
-
```markdown
|
|
111
|
-
---
|
|
112
|
-
story_id: E01-S03
|
|
113
|
-
epic: 01-onboarding
|
|
114
|
-
status: ready-for-dev
|
|
115
|
-
priority: 2
|
|
116
|
-
linked_screens: [onboarding-step-1, invite-modal]
|
|
117
|
-
linked_acs: [AC-02-1, AC-02-2]
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
# Story: Onboarding step 1 — invite first teammate
|
|
121
|
-
|
|
122
|
-
## Context
|
|
123
|
-
After sign-up the admin lands on `/onboarding`. This story implements the first
|
|
124
|
-
moment-of-truth from scenario S1: inviting the first teammate.
|
|
125
|
-
|
|
126
|
-
## Sources of truth (Shuri reads before coding)
|
|
127
|
-
- `AGENTS.md` + `.wize/config/project.toml` · `.wize/knowledge/document-project/*`.
|
|
128
|
-
- `prd.md` (AC source) · `architecture.md` · `ux-design/onboarding-step-1.md` · parent epic `01-onboarding.md`.
|
|
129
|
-
- The TEA test contract for this story · related code + tests already on this path.
|
|
130
|
-
|
|
131
|
-
## Acceptance criteria
|
|
132
|
-
- **AC-02-1:** Given a new admin on `/onboarding`, When they enter a valid email and click "Send invite", Then a `teammate_invited` event fires and the screen advances to "Invite sent" within 1s.
|
|
133
|
-
- **AC-02-2:** Given an invalid email, When the user blurs the field, Then error text appears (200ms) identifying which rule failed.
|
|
134
|
-
|
|
135
|
-
## Restrictions
|
|
136
|
-
- **Out of scope:** bulk invite (multiple emails) → E01-S07; custom invite message → E02-S03; "Skip for now" button — not a moment-of-truth path; out.
|
|
137
|
-
- **Protected behaviors:** existing sign-up + session flow must not change.
|
|
138
|
-
- **Compatibility:** `(team_id, email)` composite idempotency key — don't break existing invite rows.
|
|
139
|
-
- **Security:** validate email at the server boundary; auth context required on `inviteTeammate`.
|
|
140
|
-
|
|
141
|
-
## Notes for Shuri (Dev)
|
|
142
|
-
- Touch points: `app/(onboarding)/invite/page.tsx`, `lib/email/send-invite.ts`, new server action `inviteTeammate`.
|
|
143
|
-
- Reuse: `Button` (primary), `Input`, `Banner` (success/error) from design-system.
|
|
144
|
-
- testid: `invite-form`, `invite-email`, `invite-cta`, `invite-sent-banner`.
|
|
145
|
-
|
|
146
|
-
## Validation contract
|
|
147
|
-
- **AC → test:** AC-02-1 → E2E happy path (Playwright @chromium @ios) + unit `validateInviteEmail`; AC-02-2 → unit invalid-email rules + component error-state.
|
|
148
|
-
- **Required checks:** the unit/integration/E2E split Hawkeye declares below, plus lint, format, type-check, build. Authz asserted on the server action.
|
|
149
|
-
- **States:** loading, empty, error rendered and asserted.
|
|
150
|
-
|
|
151
|
-
## Notes for Hawkeye (TEA)
|
|
152
|
-
Suggested split: 4 unit, 1 integration, 1 E2E.
|
|
153
|
-
- Unit: validateInviteEmail, mailer payload, server action error mapping, retry policy.
|
|
154
|
-
- Integration: server action calls mailer with right args (MSW on Resend).
|
|
155
|
-
- E2E: happy path on Playwright @chromium @ios.
|
|
156
|
-
- Risk: R-1 (mailer) — extra E2E asserts banner within 1s of click.
|
|
157
|
-
|
|
158
|
-
## Done means
|
|
159
|
-
Every AC has a passing test (mapped above), gate PASS/CONCERNS, story `status: ready-for-review`, knowledge axes updated if touched.
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
## Anti-patterns Tony rejects
|
|
163
|
-
|
|
164
|
-
- **ACs reworded from PRD.** Source-of-truth drift.
|
|
165
|
-
- **Stories with no touch points.** Shuri spends an hour finding the files.
|
|
166
|
-
- **No notes for Hawkeye.** TEA designs in the dark.
|
|
167
|
-
- **Stories named by feature** ("Add invite button") — name by **outcome**.
|
|
168
|
-
|
|
169
|
-
## Hand-off
|
|
21
|
+
## Story template
|
|
22
|
+
(See `wize-create-epics-and-stories` for the canonical template.)
|
|
170
23
|
|
|
171
|
-
|
|
24
|
+
## Rules
|
|
25
|
+
- One story = one PR. If two, split.
|
|
26
|
+
- Each AC must be testable. If Hawkeye can't write a test for it, rewrite the AC.
|
|
27
|
+
- "Out of scope" is mandatory. Force the cut.
|