wize-dev-kit 0.14.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 +24 -0
- package/DECISIONS.md +1 -27
- package/README.md +7 -2
- package/ROSTER.md +3 -11
- package/adapters/README.md +7 -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/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 +14 -158
- package/tools/installer/validators/run-all.js +2 -3
- package/tools/installer/wize-cli.js +70 -499
- package/AGENTS.md +0 -37
- package/README.es.md +0 -294
- package/README.pt-BR.md +0 -292
- 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/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 -128
- package/tools/installer/commands/agent.js +0 -197
- package/tools/installer/commands/doctor.js +0 -319
- 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,71 +1,64 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-create-architecture
|
|
4
|
-
description: "Use quando o PRD e UX design estiverem prontos e precisar projetar a arquitetura do sistema com componentes, sequências e ADRs."
|
|
5
3
|
name: Create Architecture
|
|
6
4
|
phase: 3-solutioning
|
|
7
5
|
owner: wize-agent-architect # Tony Stark
|
|
8
|
-
status:
|
|
6
|
+
status: stub
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Create Architecture
|
|
12
10
|
|
|
13
|
-
**Goal.** Design the system inside Fury's frame
|
|
14
|
-
|
|
15
|
-
Tony Stark drives. Pepper Potts and Nick Fury may be invoked via `wize-party-mode` or `wize-advanced-elicitation` at any step.
|
|
11
|
+
**Goal.** Design the system inside Fury's frame. Components, sequences, data flows, ADRs. Concrete enough that Shuri can implement and Hawkeye can test.
|
|
16
12
|
|
|
17
13
|
## Inputs
|
|
18
|
-
|
|
19
|
-
- `.wize/planning/
|
|
20
|
-
- `.wize/planning/
|
|
21
|
-
- `.wize/planning/
|
|
22
|
-
- `.wize/
|
|
23
|
-
- `.wize/
|
|
24
|
-
- Stack catalogs from active overlays
|
|
25
|
-
- `.wize/knowledge/document-project/` (brownfield only)
|
|
14
|
+
- `.wize/planning/prd.md`
|
|
15
|
+
- `.wize/planning/ux/ux-design/`
|
|
16
|
+
- `.wize/planning/tech-vision.md` (Fury)
|
|
17
|
+
- `.wize/planning/nfr-principles.md` (Fury)
|
|
18
|
+
- `.wize/solutioning/design-system/` (Mantis)
|
|
19
|
+
- `.wize/knowledge/document-project/` (if brownfield)
|
|
26
20
|
|
|
27
21
|
## Outputs
|
|
28
|
-
|
|
29
22
|
- `.wize/solutioning/architecture.md`
|
|
30
|
-
- `.wize/solutioning/adrs/ADR-NNN-{slug}.md`
|
|
31
|
-
|
|
32
|
-
## Workflow architecture
|
|
33
|
-
|
|
34
|
-
This skill uses **micro-file architecture**:
|
|
35
|
-
|
|
36
|
-
- Each step is a self-contained file with embedded rules.
|
|
37
|
-
- Sequential progression with user control at each step.
|
|
38
|
-
- Document state tracked in frontmatter (`stepsCompleted`).
|
|
39
|
-
- Append-only document building through the conversation.
|
|
40
|
-
- Never proceed to a step file if the current step indicates the user must approve continuation.
|
|
41
|
-
|
|
42
|
-
## On activation
|
|
43
|
-
|
|
44
|
-
1. Load `.wize/config/project.toml` and `.wize/config/user.toml`.
|
|
45
|
-
2. Resolve `user_name`, `communication_language`, `document_output_language`, `output_folder`, and the active profiles.
|
|
46
|
-
3. Greet the user in `communication_language`.
|
|
47
|
-
4. Read fully and follow `./steps/step-01-init.md`.
|
|
23
|
+
- `.wize/solutioning/adrs/{ADR-NNN}-{slug}.md`
|
|
48
24
|
|
|
49
25
|
## Steps
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
26
|
+
1. **Stack interview.** Tony asks the user (via Wizer) about preferences: language, runtime, deployment target. Consults overlay stack catalogs (web/app) if active. Records decisions.
|
|
27
|
+
2. **Components.** List components, responsibilities, boundaries.
|
|
28
|
+
3. **Sequences.** For each critical scenario from Mantis, write a sequence (text or PlantUML).
|
|
29
|
+
4. **Data model.** Tables / collections / contracts.
|
|
30
|
+
5. **Cross-cutting.** Auth, logging, observability, error handling.
|
|
31
|
+
6. **ADRs.** Every significant trade-off becomes its own ADR: context, options, decision, consequences.
|
|
32
|
+
7. **Validate against NFRs.** Check each Fury principle.
|
|
33
|
+
8. **Hand-off to epics.**
|
|
34
|
+
|
|
35
|
+
## Architecture doc template
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
# Architecture — {{project_name}}
|
|
39
|
+
|
|
40
|
+
## Stack
|
|
41
|
+
- Language: …
|
|
42
|
+
- Runtime: …
|
|
43
|
+
- Storage: …
|
|
44
|
+
- Deploy: …
|
|
45
|
+
|
|
46
|
+
## Components
|
|
47
|
+
| Component | Responsibility | Boundary |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
|
|
50
|
+
## Data model
|
|
51
|
+
…
|
|
52
|
+
|
|
53
|
+
## Cross-cutting
|
|
54
|
+
- Auth: …
|
|
55
|
+
- Observability: …
|
|
56
|
+
- Errors: …
|
|
57
|
+
|
|
58
|
+
## NFR check
|
|
59
|
+
- Performance: …
|
|
60
|
+
- Security: …
|
|
61
|
+
- Reliability: …
|
|
62
|
+
- Accessibility: …
|
|
63
|
+
- Cost: …
|
|
64
|
+
```
|
|
@@ -1,101 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-create-epics-and-stories
|
|
4
|
-
description: "Use quando a arquitetura estiver definida e precisar fatiar o escopo em epics e stories com acceptance criteria."
|
|
5
3
|
name: Create Epics and Stories
|
|
6
4
|
phase: 3-solutioning
|
|
7
5
|
owner: wize-agent-architect # Tony Stark
|
|
8
|
-
status:
|
|
6
|
+
status: stub
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Create Epics and Stories
|
|
12
10
|
|
|
13
|
-
**Goal.** Slice the PRD + architecture into
|
|
14
|
-
|
|
15
|
-
Tony drives. Output lands in `.wize/solutioning/epics/` and `.wize/solutioning/stories/`.
|
|
16
|
-
|
|
17
|
-
> **No estimates.** Epics and stories never carry a time or effort estimate (hours, days, story points, S/M/L/XL) — at any step. AI development speed has made them noise that only burns time and tokens. The only sizing question is binary: **does a story fit one PR?** If not, slice it.
|
|
18
|
-
|
|
19
|
-
When slicing raises decisions the PRD doesn't answer — priority order, sequencing, protected behaviors, what's out of a story — offer a short `wize-grill` pass with the user instead of guessing. Decisions land in the epic/story fields; unresolved ones become open questions with owners.
|
|
11
|
+
**Goal.** Slice the PRD + architecture into epics (each ships value) and stories (each is one focused PR-sized unit).
|
|
20
12
|
|
|
21
13
|
## Inputs
|
|
22
|
-
|
|
23
|
-
Read central docs first, then expand by dependency — don't load unrelated files for padding:
|
|
24
|
-
|
|
25
|
-
- `AGENTS.md` + `.wize/config/project.toml` — active profiles, languages, conventions.
|
|
26
|
-
- `.wize/planning/prd.md` — the AC source (never reword ACs downstream).
|
|
14
|
+
- `.wize/planning/prd.md`
|
|
27
15
|
- `.wize/solutioning/architecture.md`
|
|
28
|
-
- `.wize/planning/ux/ux-design/` (every story references one or more screens)
|
|
29
|
-
- `.wize/knowledge/document-project/` — brownfield baseline, if present.
|
|
30
16
|
|
|
31
17
|
## Outputs
|
|
32
|
-
|
|
33
18
|
- `.wize/solutioning/epics/{NN}-{slug}.md`
|
|
34
|
-
- `.wize/solutioning/stories/{
|
|
35
|
-
|
|
36
|
-
## Epic shape
|
|
37
|
-
|
|
38
|
-
An epic:
|
|
39
|
-
- Ships **value** on its own (a user can do the thing after this epic, even if the next one improves it).
|
|
40
|
-
- Lasts 1–3 sprints when in flight.
|
|
41
|
-
- Has 3–10 stories.
|
|
42
|
-
- Has a single trigger-map row as its anchor.
|
|
43
|
-
|
|
44
|
-
Epic file:
|
|
45
|
-
|
|
46
|
-
```markdown
|
|
47
|
-
---
|
|
48
|
-
epic_id: 01-onboarding
|
|
49
|
-
status: ready
|
|
50
|
-
owner: Tony Stark + Maria Hill
|
|
51
|
-
linked_prd: E01
|
|
52
|
-
trigger_map_row: 1
|
|
53
|
-
priority: 1
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
# Epic 01: Sign-up + first invite
|
|
57
|
-
|
|
58
|
-
## Outcome
|
|
59
|
-
A first-time team admin signs up, lands in onboarding, and invites at least one teammate within 5 minutes (trigger-map row 1 + 2).
|
|
60
|
-
|
|
61
|
-
## Stories
|
|
62
|
-
- E01-S01: Sign-up empty + happy path (AC-01-1, AC-01-2)
|
|
63
|
-
- E01-S02: Sign-up error states (AC-01-3, AC-01-4)
|
|
64
|
-
- E01-S03: Onboarding step 1 — invite first teammate (AC-02-1, AC-02-2)
|
|
65
|
-
- E01-S04: Email delivery + retry (AC-02-3)
|
|
66
|
-
- E01-S05: Team list empty + with first member (AC-03-1, AC-03-2)
|
|
67
|
-
|
|
68
|
-
## Dependencies
|
|
69
|
-
- Design tokens by Mantis (S0 — already done)
|
|
70
|
-
- Resend account configured (Tony, before S04)
|
|
71
|
-
|
|
72
|
-
## Success
|
|
73
|
-
All ACs of all stories PASS gate. Telemetry shows `teammate_invited` ≥ 80% of `signup_completed` users within 24h in the beta cohort.
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Story shape — INVEST
|
|
77
|
-
|
|
78
|
-
Each story passes:
|
|
79
|
-
- **I**ndependent — can be implemented without waiting for another in-flight story.
|
|
80
|
-
- **N**egotiable — wording can move; intent stays.
|
|
81
|
-
- **V**aluable — a real outcome to a real user (or a clear test path that proves a slice).
|
|
82
|
-
- **S**mall — fits in one PR, tests included. This is the *only* sizing test; no time or point estimate (see **No estimates** above).
|
|
83
|
-
- **T**estable — every AC is observable.
|
|
84
|
-
|
|
85
|
-
If a story is XL, slice it before merging it to `stories/`.
|
|
19
|
+
- `.wize/solutioning/stories/{NN}-{slug}/{story-id}.md`
|
|
86
20
|
|
|
87
|
-
##
|
|
88
|
-
|
|
89
|
-
| Pattern | When |
|
|
90
|
-
|---|---|
|
|
91
|
-
| Walking skeleton | When you need the full user path to exist (even with stubs) before going deep on any single screen. |
|
|
92
|
-
| By user role | Admin vs member often slice naturally. |
|
|
93
|
-
| By acceptance criterion | One AC = one PR when ACs are independent. |
|
|
94
|
-
| By happy / error path | Ship happy path first; error states next story. |
|
|
95
|
-
| By back-end / front-end | Avoid unless the back-end can ship usable without UI; otherwise it bundles. |
|
|
96
|
-
| By feature flag | When a story partially ships, use a flag and write the flag retirement story now. |
|
|
97
|
-
|
|
98
|
-
## Story file template
|
|
21
|
+
## Story template
|
|
99
22
|
|
|
100
23
|
```markdown
|
|
101
24
|
---
|
|
@@ -103,85 +26,23 @@ story_id: E01-S03
|
|
|
103
26
|
epic: 01-onboarding
|
|
104
27
|
status: ready-for-dev
|
|
105
28
|
priority: 2
|
|
106
|
-
|
|
107
|
-
|
|
29
|
+
estimate: M
|
|
30
|
+
linked_screen: ux-design/signin.md
|
|
108
31
|
---
|
|
109
32
|
|
|
110
|
-
# Story:
|
|
33
|
+
# Story: Sign-in with email + magic link
|
|
111
34
|
|
|
112
35
|
## Context
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
## Sources of truth (Shuri reads before coding)
|
|
116
|
-
- `AGENTS.md` + `.wize/config/project.toml` · `.wize/knowledge/document-project/*`.
|
|
117
|
-
- `prd.md` (AC source) · `architecture.md` · `ux-design/onboarding-step-1.md` · parent epic `01-onboarding.md`.
|
|
118
|
-
- The TEA test contract for this story · related code + tests already on this path.
|
|
36
|
+
…
|
|
119
37
|
|
|
120
38
|
## Acceptance criteria
|
|
121
|
-
-
|
|
122
|
-
-
|
|
39
|
+
- AC-1 …
|
|
40
|
+
- AC-2 …
|
|
123
41
|
|
|
124
|
-
##
|
|
125
|
-
-
|
|
126
|
-
- **Protected behaviors:** existing sign-up + session flow must not change.
|
|
127
|
-
- **Compatibility:** `(team_id, email)` idempotency key — don't break existing invite rows.
|
|
128
|
-
- **Security:** validate email at the server boundary; auth context required on `inviteTeammate`.
|
|
42
|
+
## Out of scope
|
|
43
|
+
- …
|
|
129
44
|
|
|
130
45
|
## Notes for Shuri (Dev)
|
|
131
|
-
- Touch points:
|
|
132
|
-
-
|
|
133
|
-
- Add `data-testid="invite-form"`, `"invite-email"`, `"invite-cta"` (Hawkeye depends on these).
|
|
134
|
-
|
|
135
|
-
## Validation contract
|
|
136
|
-
- **AC → test:** AC-02-1 → E2E `invite happy path` + unit `validateInviteEmail`; AC-02-2 → unit `invalid email` + component error-state.
|
|
137
|
-
- **Required checks:** the unit/integration/E2E split Hawkeye declares below, plus lint, format, type-check, build. Authz asserted on the server action.
|
|
138
|
-
- **States:** loading, empty, error rendered and asserted.
|
|
139
|
-
|
|
140
|
-
## Notes for Hawkeye (TEA)
|
|
141
|
-
- Tests required: 2 unit (validation), 1 integration (server action calls mailer with right args), 1 E2E (happy path on Playwright).
|
|
142
|
-
- Mocks: outbound email via MSW; auth context via fixture.
|
|
143
|
-
- NFR sample: response p95 ≤ 800ms locally (NFR 1.A allows up to 1s end-to-end).
|
|
144
|
-
|
|
145
|
-
## Done means
|
|
146
|
-
Every AC has a passing test (mapped above), gate PASS/CONCERNS, story `status: ready-for-review`, knowledge axes updated if touched.
|
|
46
|
+
- Touch points: …
|
|
47
|
+
- Tests required: …
|
|
147
48
|
```
|
|
148
|
-
|
|
149
|
-
## Steps
|
|
150
|
-
|
|
151
|
-
### 1. From PRD backbone → epics
|
|
152
|
-
|
|
153
|
-
Each backbone story in the PRD becomes one epic. Name epics by outcome, not by feature: "Sign-up + first invite," not "Auth screens."
|
|
154
|
-
|
|
155
|
-
### 2. From scenarios → stories
|
|
156
|
-
|
|
157
|
-
For each epic, walk the linked scenarios in `ux-scenarios.md`. Slice into stories by the patterns above. Aim for 3–7 stories per epic.
|
|
158
|
-
|
|
159
|
-
### 3. ACs map exactly
|
|
160
|
-
|
|
161
|
-
Every story declares the AC IDs it advances (from PRD). The union of stories per epic equals the AC set of that epic — no gaps, no overlap.
|
|
162
|
-
|
|
163
|
-
### 3.5 Fill the contract fields
|
|
164
|
-
|
|
165
|
-
Each story carries its own **sources of truth**, **restrictions** (out-of-scope + protected behaviors + compatibility + security), and a **validation contract** (AC → test map + required checks). These aren't optional prose — they are what makes AC → code → test → gate traceable. A story missing them is not ready for dev.
|
|
166
|
-
|
|
167
|
-
### 4. Slice check (no estimates)
|
|
168
|
-
|
|
169
|
-
Don't estimate stories — size them by one question: does each fit a single PR? Anything that doesn't gets sliced before it lands in `stories/`. If most stories feel too big to slice cleanly, the slicing pattern is too coarse; revisit it.
|
|
170
|
-
|
|
171
|
-
### 5. Hand off
|
|
172
|
-
|
|
173
|
-
- Mark all epics + stories `status: ready-for-dev`.
|
|
174
|
-
- Trigger `wize-check-implementation-readiness` (Tony, with Hawkeye on risk profile).
|
|
175
|
-
- After ready, Hill runs sprint planning.
|
|
176
|
-
|
|
177
|
-
## Anti-patterns Tony rejects
|
|
178
|
-
|
|
179
|
-
- **Stories without AC links.** No traceability → no gate later.
|
|
180
|
-
- **Stories that "ship a back-end."** Bundle with the front-end consumer unless a different team uses it independently.
|
|
181
|
-
- **XL stories.** Slice further or split into two PRs.
|
|
182
|
-
- **"Epic" that is one story.** Then it's a story.
|
|
183
|
-
- **Stories that share `testid` namespace.** They'll collide.
|
|
184
|
-
|
|
185
|
-
## Hand-off
|
|
186
|
-
|
|
187
|
-
> Epics and stories at `.wize/solutioning/`. 5 epics, 28 stories. All have ACs from the PRD. Run `wize-check-implementation-readiness`; Hawkeye, `tea-risk.md` next.
|
|
@@ -1,198 +1,36 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-design-system
|
|
4
|
-
description: "Use quando o UX design estiver avançando e precisar estabelecer a baseline do design system (tokens, componentes, grids)."
|
|
5
3
|
name: Design System
|
|
6
4
|
phase: 3-solutioning
|
|
7
5
|
owner: wize-agent-ux-designer # Mantis (WDS Freya — Phase 7)
|
|
8
6
|
absorbs: "WDS Freya — Phase 7 (Design System)"
|
|
9
|
-
status:
|
|
7
|
+
status: stub
|
|
10
8
|
---
|
|
11
9
|
|
|
12
10
|
# Design System
|
|
13
11
|
|
|
14
|
-
**Goal.** Establish design tokens and a baseline component library Shuri implements consistently
|
|
15
|
-
|
|
16
|
-
Mantis drives. Output lands in `.wize/solutioning/design-system/`.
|
|
12
|
+
**Goal.** Establish design tokens and a baseline component library that Shuri implements consistently across the product.
|
|
17
13
|
|
|
18
14
|
## Inputs
|
|
19
|
-
|
|
20
|
-
- `.wize/planning/ux/ux-design/` (every component the specs use)
|
|
21
|
-
- `.wize/planning/nfr-principles.md` (a11y and perf budgets)
|
|
22
|
-
- Overlay playbooks (active):
|
|
23
|
-
- `web-overlay/playbooks/wcag-aa.md`, `responsive-breakpoints.md`, `semantic-html.md`
|
|
24
|
-
- `app-overlay/playbooks/apple-hig.md`, `material-design-3.md`, `touch-targets-and-gestures.md`
|
|
15
|
+
- `.wize/planning/ux/ux-design/`
|
|
25
16
|
|
|
26
17
|
## Outputs
|
|
27
|
-
|
|
28
|
-
- `.wize/solutioning/design-system/
|
|
29
|
-
- `.wize/solutioning/design-system/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
| `success` | #058E5C | #34D399 | text.onSuccess |
|
|
47
|
-
| `warning` | #C9621E | #F59E0B | text.onWarning |
|
|
48
|
-
| `error` | #B42318 | #FCA5A5 | text.onError |
|
|
49
|
-
| `border.default` | #E5E7EB | #2A313A | — |
|
|
50
|
-
| `border.focus` | accent.brand | accent.brand | — |
|
|
51
|
-
|
|
52
|
-
Validate every pair against WCAG AA (≥ 4.5:1 normal, ≥ 3:1 large). Run before you commit.
|
|
53
|
-
|
|
54
|
-
### Typography
|
|
55
|
-
|
|
56
|
-
| Token | Family | Size | Weight | Line | Letter |
|
|
57
|
-
|---|---|---|---|---|---|
|
|
58
|
-
| `display.l` | Inter Display | clamp(2.5rem, 5vw, 3.5rem) | 700 | 1.05 | -0.02em |
|
|
59
|
-
| `display.m` | Inter Display | clamp(2rem, 4vw, 2.5rem) | 700 | 1.1 | -0.01em |
|
|
60
|
-
| `heading.l` | Inter | clamp(1.5rem, 3vw, 2rem) | 600 | 1.2 | -0.01em |
|
|
61
|
-
| `heading.m` | Inter | 1.25rem | 600 | 1.3 | 0 |
|
|
62
|
-
| `heading.s` | Inter | 1rem | 600 | 1.4 | 0 |
|
|
63
|
-
| `body.l` | Inter | 1.125rem | 400 | 1.6 | 0 |
|
|
64
|
-
| `body.m` | Inter | 1rem | 400 | 1.55 | 0 |
|
|
65
|
-
| `body.s` | Inter | 0.875rem | 400 | 1.5 | 0 |
|
|
66
|
-
| `caption` | Inter | 0.75rem | 500 | 1.4 | 0.01em |
|
|
67
|
-
|
|
68
|
-
Use rem for body; clamp() for fluid headings (see `responsive-breakpoints.md`).
|
|
69
|
-
|
|
70
|
-
### Spacing scale (4px base, geometric)
|
|
71
|
-
|
|
72
|
-
`0` 0 · `1` 4 · `2` 8 · `3` 12 · `4` 16 · `5` 24 · `6` 32 · `7` 48 · `8` 64 · `9` 96 · `10` 128
|
|
73
|
-
|
|
74
|
-
### Radius
|
|
75
|
-
|
|
76
|
-
`none` 0 · `sm` 4 · `md` 8 · `lg` 12 · `xl` 16 · `pill` 999.
|
|
77
|
-
|
|
78
|
-
### Elevation
|
|
79
|
-
|
|
80
|
-
| Token | Light | Dark (tonal) |
|
|
81
|
-
|---|---|---|
|
|
82
|
-
| `e1` | 0 1px 2px rgba(0,0,0,.06) | surface.raised |
|
|
83
|
-
| `e2` | 0 2px 4px rgba(0,0,0,.08) | surface.raised + 4% |
|
|
84
|
-
| `e3` | 0 4px 12px rgba(0,0,0,.10) | surface.raised + 8% |
|
|
85
|
-
| `e4` | 0 12px 24px rgba(0,0,0,.12) | surface.raised + 12% |
|
|
86
|
-
|
|
87
|
-
App overlay: prefer tonal elevation per Material 3.
|
|
88
|
-
|
|
89
|
-
### Motion
|
|
90
|
-
|
|
91
|
-
| Token | Duration | Easing |
|
|
92
|
-
|---|---|---|
|
|
93
|
-
| `motion.micro` | 100ms | `ease-out` |
|
|
94
|
-
| `motion.transition` | 200ms | `cubic-bezier(0.2, 0, 0, 1)` |
|
|
95
|
-
| `motion.page` | 300ms | `cubic-bezier(0.4, 0, 0.2, 1)` |
|
|
96
|
-
| `motion.spring.subtle` | (spring) | mass 1, stiff 350, damp 30 |
|
|
97
|
-
|
|
98
|
-
Honor `prefers-reduced-motion`. Replace transforms with fades.
|
|
99
|
-
|
|
100
|
-
## Components — the baseline set
|
|
101
|
-
|
|
102
|
-
Each component has its own `.md` doc with: purpose, anatomy, states (default/hover/focus/active/disabled/loading), variants, accessibility, do/don't, snippets.
|
|
103
|
-
|
|
104
|
-
| Component | Mandatory states | Notes |
|
|
105
|
-
|---|---|---|
|
|
106
|
-
| Button | default, hover, focus, active, disabled, loading | variants: primary, secondary, tertiary, destructive, ghost |
|
|
107
|
-
| Input | default, focus, error, disabled, success | always has visible label |
|
|
108
|
-
| Select | default, open, focus, disabled | native first; custom only when needed |
|
|
109
|
-
| Textarea | as Input | auto-grow optional |
|
|
110
|
-
| Checkbox | unchecked, checked, indeterminate, focus, disabled | native input + custom skin |
|
|
111
|
-
| Radio | unchecked, checked, focus, disabled | grouped under fieldset |
|
|
112
|
-
| Toggle/Switch | off, on, focus, disabled | `role="switch" aria-checked` |
|
|
113
|
-
| Card | default, raised, interactive | elevation tokens |
|
|
114
|
-
| Modal / Dialog | open, closing | focus trap + ESC + restore |
|
|
115
|
-
| Sheet (app) | half / full | drag handle |
|
|
116
|
-
| Tabs | active, inactive, focus | keyboard arrows |
|
|
117
|
-
| Accordion | collapsed, expanded, focus | `<details>` when possible |
|
|
118
|
-
| Toast / Snackbar | info, success, warning, error | `role="status"` or `alert` |
|
|
119
|
-
| Tooltip | hidden, visible | `aria-describedby`, touch alt |
|
|
120
|
-
| Menu | closed, open, focus | keyboard navigation |
|
|
121
|
-
| Dropdown | (synonym of Menu / Combobox) | follow ARIA combobox |
|
|
122
|
-
| Badge | default, success, warning, error | contrast ≥ 4.5:1 |
|
|
123
|
-
| Avatar | image, initials, placeholder | 1:1 ratio, alt text |
|
|
124
|
-
| Skeleton | static, shimmer | respect reduced-motion |
|
|
125
|
-
| Empty state | default | message + primary action |
|
|
126
|
-
| Loading | spinner / progress | accessible announcement |
|
|
127
|
-
|
|
128
|
-
## Component template (one per component)
|
|
129
|
-
|
|
130
|
-
```markdown
|
|
131
|
-
---
|
|
132
|
-
component: Button
|
|
133
|
-
status: ready
|
|
134
|
-
owner: Mantis
|
|
135
|
-
linked_screens: [signup-empty, team-list-empty, …]
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
# Button
|
|
139
|
-
|
|
140
|
-
## Purpose
|
|
141
|
-
Trigger an action. Never use for navigation between routes.
|
|
142
|
-
|
|
143
|
-
## Anatomy
|
|
144
|
-
[icon?] [label] [icon?] · padding by size · radius `md`
|
|
145
|
-
|
|
146
|
-
## Variants
|
|
147
|
-
- `primary` — main action; one per screen region.
|
|
148
|
-
- `secondary` — alternative action.
|
|
149
|
-
- `tertiary` — text-only.
|
|
150
|
-
- `destructive` — irreversible action.
|
|
151
|
-
- `ghost` — minimal chrome, e.g., toolbar.
|
|
152
|
-
|
|
153
|
-
## Sizes
|
|
154
|
-
- `sm` (height 32, label `body.s`)
|
|
155
|
-
- `md` (height 40, label `body.m`)
|
|
156
|
-
- `lg` (height 48, label `body.m`)
|
|
157
|
-
|
|
158
|
-
## States
|
|
159
|
-
|
|
160
|
-
| State | Treatment |
|
|
161
|
-
|---|---|
|
|
162
|
-
| default | accent.brand bg, text.onAccent label |
|
|
163
|
-
| hover | accent.brand 10% darker |
|
|
164
|
-
| focus | 2px outline `border.focus`, offset 2px |
|
|
165
|
-
| active | accent.brand 15% darker |
|
|
166
|
-
| disabled | opacity 0.4, `aria-disabled="true"`, cursor not-allowed |
|
|
167
|
-
| loading | spinner replaces icon; label unchanged; click ignored |
|
|
168
|
-
|
|
169
|
-
## Accessibility
|
|
170
|
-
- Native `<button>`.
|
|
171
|
-
- `aria-label` when icon-only.
|
|
172
|
-
- Visible focus ring always (don't override).
|
|
173
|
-
- 24×24 px hit area minimum (web), 44pt (iOS), 48dp (Android).
|
|
174
|
-
- Min contrast on label ≥ 4.5:1.
|
|
175
|
-
|
|
176
|
-
## Don't
|
|
177
|
-
- Use `<div onclick>`.
|
|
178
|
-
- Remove the focus ring without replacement.
|
|
179
|
-
- Use destructive for "Continue".
|
|
180
|
-
- Stack > 2 primary buttons on a screen.
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## Theming + overlays
|
|
184
|
-
|
|
185
|
-
- **Web overlay:** tokens emit as CSS custom properties; dark mode toggled via `[data-theme="dark"]` on `<html>`.
|
|
186
|
-
- **App overlay (iOS):** tokens as SwiftUI environment values; dark mode auto.
|
|
187
|
-
- **App overlay (Android):** tokens as Compose `MaterialTheme` extensions; honor `dynamicColorScheme` when allowed.
|
|
188
|
-
|
|
189
|
-
## Anti-patterns Mantis rejects
|
|
190
|
-
|
|
191
|
-
- **Hex in components.** Everything via tokens.
|
|
192
|
-
- **One-off components shipped without doc.** Add to the system or refuse to merge.
|
|
193
|
-
- **Component matrix without states.** A button without disabled+loading isn't a button.
|
|
194
|
-
- **Component that fails axe.** Failed at definition; don't ship.
|
|
195
|
-
|
|
196
|
-
## Hand-off
|
|
197
|
-
|
|
198
|
-
> Tokens + 20 components at `.wize/solutioning/design-system/`. Tony picks the runtime (Tailwind / Vanilla Extract / SwiftUI tokens / Compose theme); Shuri implements. Hawkeye references this in `tea-design.md`: a11y + visual regression hooks point at these tokens.
|
|
18
|
+
- `.wize/solutioning/design-system/tokens.json`
|
|
19
|
+
- `.wize/solutioning/design-system/components/{Component}.md`
|
|
20
|
+
- `.wize/solutioning/design-system/README.md`
|
|
21
|
+
|
|
22
|
+
## Tokens covered
|
|
23
|
+
- color (semantic + raw scale)
|
|
24
|
+
- typography (family, sizes, weights, line-heights)
|
|
25
|
+
- spacing scale
|
|
26
|
+
- radii
|
|
27
|
+
- motion (durations, easings)
|
|
28
|
+
- shadows / elevation
|
|
29
|
+
- z-index layers
|
|
30
|
+
|
|
31
|
+
## Component baseline
|
|
32
|
+
Buttons, inputs, selects, modals, dialogs, tabs, cards, notifications. Enough for the first epic; expand as stories require.
|
|
33
|
+
|
|
34
|
+
## Overlays
|
|
35
|
+
- **Web overlay** active → responsive token variants, REM-based typography.
|
|
36
|
+
- **App overlay** active → platform-token sets (iOS / Android), touch-friendly spacing scale.
|