docs: update all documentation and add AI tooling configs

- Rewrite README.md with current architecture, features and stack
- Update docs/API.md with all current endpoints (corporate, BI, client 360)
- Update docs/ARCHITECTURE.md with cache, modular queries, services, ETL
- Update docs/GUIA-USUARIO.md for all roles (admin, corporate, agente)
- Add docs/INDEX.md documentation index
- Add PROJETO.md comprehensive project reference
- Add BI-CCC-Implementation-Guide.md
- Include AI agent configs (.claude, .agents, .gemini, _bmad)
- Add netbird VPN configuration
- Add status report

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 13:29:03 -04:00
parent c5b377e788
commit 647cbec54f
3246 changed files with 479789 additions and 983 deletions

View File

@@ -0,0 +1,430 @@
# Specification Audit Report
**Date:** {YYYY-MM-DD}
**Auditor:** {Name/Agent}
**Scope:** {Scenario name or Page name}
**Audit Level:** {Quick/Standard/Complete}
**Project:** {Project name}
---
## Executive Summary
**Overall Status:** {✅ Pass / ⚠️ Pass with Issues / ❌ Fail}
**Issue Counts:**
- 🔴 Critical Issues: {count}
- 🟡 Warnings: {count}
- 🔵 Suggestions: {count}
**Recommendation:** {Ready for development / Needs fixes before development / Major rework required}
---
## Level 0: Specification Formatting & Standards
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
### Markdown Structure
**Checklist:**
- [ ] Proper heading hierarchy (H1 → H2 → H3 → H4)
- [ ] Only one H1 per page
- [ ] No skipped heading levels
**Issues Found:**
- {Issue description, line number, and severity}
---
### Area Label Format
**Checklist:**
- [ ] Format: `**AREA LABEL**: `{label}``
- [ ] Naming convention: `{page}-{section}-{element}`
- [ ] Consistent throughout
**Issues Found:**
- {Issue description, line number, and severity}
---
### Translation Format
**Checklist:**
- [ ] Each language on separate line
- [ ] Format: `- {LANG}: "{content}"`
- [ ] All product languages present
- [ ] Consistent language order
- [ ] No inline translations
**Issues Found:**
- {Issue description, line number, and severity}
---
### List & Code Formatting
**Checklist:**
- [ ] Use `-` for bullets (not `*` or `+`)
- [ ] Consistent indentation
- [ ] Code blocks have language specified
- [ ] Proper spacing
**Issues Found:**
- {Issue description, line number, and severity}
---
### Section Organization
**Checklist:**
- [ ] Sections in standard order
- [ ] No missing required sections
- [ ] Logical flow maintained
**Issues Found:**
- {Issue description, line number, and severity}
---
### File Naming
**Checklist:**
- [ ] Follows WDS naming conventions
- [ ] No generic names (README.md, GUIDE.md)
- [ ] Descriptive and specific
**Issues Found:**
- {Issue description and severity}
---
## Level 1: Scenario-Level Findings
### Strategic Foundation
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] User situation clearly defined
- [ ] Usage context documented
- [ ] Strategic context (Trigger Map) defined and linked
- [ ] Scenario purpose stated
- [ ] Success criteria defined
**Issues Found:**
- {Issue description and severity}
---
### Navigation Flow
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] All pages in scenario identified
- [ ] Entry points documented for each page
- [ ] Exit points documented for each page
- [ ] User can navigate through all pages
- [ ] Navigation paths logical and complete
**Issues Found:**
- {Issue description and severity}
---
## Level 2: Page-Level Findings
### Structure & Organization
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] Page purpose clearly stated
- [ ] Success criteria defined
- [ ] Trigger Map reference present
- [ ] Sections properly separated and named
- [ ] Section purposes defined
- [ ] Page layout logical and flows well
**Structural Area Labels:**
- [ ] Page container (`{page-name}-page`)
- [ ] Header section (`{page-name}-header`)
- [ ] Main content area (`{page-name}-main`)
- [ ] Form container (`{page-name}-form`)
- [ ] Section containers (`{page-name}-{section}-section`)
- [ ] Section header bars (`{page-name}-{section}-header-bar`)
**Issues Found:**
- {Issue description and severity}
---
### Visual-Spec Alignment
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] Sketch/visualization exists
- [ ] Sketch linked in specification
- [ ] All objects in sketch documented in spec
- [ ] All objects in spec visible in sketch
- [ ] Visual hierarchy matches spec structure
**Misalignments Found:**
- **Objects in sketch but missing from spec:**
- {Object name and location}
- **Objects in spec but missing from sketch:**
- {Object name and location}
- **Visual discrepancies:**
- {Description of mismatch}
---
### Area Label Coverage
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] All interactive elements have Area Labels
- [ ] Labels follow naming convention (`{page}-{section}-{element}`)
- [ ] Labels are unique within page
- [ ] ARIA labels match Area Labels
**Missing Area Labels:**
- {Element description and suggested label}
**Naming Convention Issues:**
- {ID that doesn't follow pattern and suggested fix}
---
## Level 3: Component-Level Findings
### Componentization
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] Reusable sections identified
- [ ] Components properly separated from page specs
- [ ] Component specifications exist
- [ ] Component references valid and linked
**Issues Found:**
- **Components needing extraction:**
- {Component name and pages where it appears}
- **Missing component specs:**
- {Component name}
- **Broken component references:**
- {Reference location and issue}
---
### Design System Integration
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail / N/A}
**Checklist:**
- [ ] All components added to design system
- [ ] Components at proper hierarchy level
- [ ] Design tokens applied
- [ ] Figma components linked
**Issues Found:**
- {Issue description and severity}
---
## Level 4: Feature-Level Findings
### Shared Functionality
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] Common features identified
- [ ] Feature files created and documented
- [ ] Feature references consistent across pages
- [ ] Validation rules centralized
**Issues Found:**
- **Features needing extraction:**
- {Feature name and pages where it appears}
- **Inconsistent implementations:**
- {Feature name and inconsistency description}
---
## Level 5: Content Audit Findings
### Text Content
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**Checklist:**
- [ ] All content defined (no placeholders)
- [ ] Multi-language content complete
- [ ] Field labels present and clear
- [ ] Button text defined
- [ ] Error messages in all languages
- [ ] Success messages in all languages
- [ ] Empty state messages defined
- [ ] Loading state messages defined
- [ ] Meta content (page title, meta description) for public pages
- [ ] Social sharing content (title, description, image) for public pages
**Missing Content:**
- {Element and missing content type}
**Language Gaps:**
- {Content that's missing in specific languages}
**Meta Content Issues:**
- {Missing or incomplete meta tags for public pages}
---
### Accessibility Content
**Status:** {✅ Pass / ⚠️ Warning / ❌ Fail}
**ARIA Labels:**
- [ ] All interactive elements have aria-label
- [ ] ARIA labels descriptive and meaningful
**Missing ARIA Labels:**
- {Element description}
**Images:**
- [ ] All images have alt text
- [ ] Alt text descriptive
**Missing Alt Text:**
- {Image location and suggested alt text}
**Forms:**
- [ ] All inputs have labels
- [ ] Required fields marked
- [ ] Field instructions present
**Form Issues:**
- {Issue description}
**Keyboard Navigation:**
- [ ] Tab order documented
- [ ] Focus management specified
- [ ] Skip links present
**Keyboard Issues:**
- {Issue description}
**Screen Reader Support:**
- [ ] Semantic HTML specified
- [ ] Heading hierarchy logical
- [ ] ARIA live regions for dynamic content
**Screen Reader Issues:**
- {Issue description}
**Visual Accessibility:**
- [ ] Color contrast meets WCAG AA
- [ ] Information not color-dependent
- [ ] Focus indicators visible
**Visual Accessibility Issues:**
- {Issue description}
**WCAG Compliance:**
- [ ] Target level documented
- [ ] Known issues documented
**WCAG Issues:**
- {Issue description}
---
## Summary of Issues
### 🔴 Critical Issues (Must Fix Before Development)
1. **{Issue Title}**
- **Location:** {Page/Section}
- **Problem:** {Description}
- **Impact:** {Why this is critical}
- **Recommended Fix:** {Specific action to take}
2. **{Issue Title}**
- **Location:** {Page/Section}
- **Problem:** {Description}
- **Impact:** {Why this is critical}
- **Recommended Fix:** {Specific action to take}
---
### 🟡 Warnings (Should Fix)
1. **{Issue Title}**
- **Location:** {Page/Section}
- **Problem:** {Description}
- **Impact:** {Why this matters}
- **Recommended Fix:** {Specific action to take}
2. **{Issue Title}**
- **Location:** {Page/Section}
- **Problem:** {Description}
- **Impact:** {Why this matters}
- **Recommended Fix:** {Specific action to take}
---
### 🔵 Suggestions (Nice to Have)
1. **{Issue Title}**
- **Location:** {Page/Section}
- **Problem:** {Description}
- **Impact:** {Why this would improve quality}
- **Recommended Fix:** {Specific action to take}
2. **{Issue Title}**
- **Location:** {Page/Section}
- **Problem:** {Description}
- **Impact:** {Why this would improve quality}
- **Recommended Fix:** {Specific action to take}
---
## Recommendations
### Immediate Actions
1. {Action item with priority and owner}
2. {Action item with priority and owner}
### Before Development Handoff
1. {Action item with priority and owner}
2. {Action item with priority and owner}
### Future Improvements
1. {Action item with priority and owner}
2. {Action item with priority and owner}
---
## Next Steps
- [ ] Fix critical issues
- [ ] Address warnings
- [ ] Consider suggestions
- [ ] Re-audit after fixes
- [ ] Update specifications
- [ ] Update sketches if needed
- [ ] Notify development team when ready
---
## Audit Metrics
**Specification Completeness:** {percentage}%
- Structural Area Labels: {X/Y complete}
- Interactive Area Labels: {X/Y complete}
- Content defined: {X/Y complete}
- Accessibility: {X/Y complete}
**Quality Score:** {percentage}%
- Based on critical issues, warnings, and suggestions
**Development Readiness:** {Ready / Not Ready / Needs Review}
---
**Audit Completed:** {YYYY-MM-DD HH:MM}
**Next Audit Scheduled:** {YYYY-MM-DD or "After fixes"}
---
_Generated using WDS Specification Audit Workflow_

View File

@@ -0,0 +1,104 @@
# WDS Design Delivery Template
# Copy this template to: deliveries/DD-XXX-name.yaml
delivery:
id: "DD-XXX" # Format: DD-001, DD-002, etc.
name: "Feature Name" # Human-readable name
type: "user_flow" # user_flow | feature | component
status: "ready" # ready | in_progress | blocked
priority: "high" # high | medium | low
created_by: "wds-ux-expert"
created_at: "YYYY-MM-DDTHH:MM:SSZ"
updated_at: "YYYY-MM-DDTHH:MM:SSZ"
version: "1.0"
description: |
[Describe what this delivery contains and why it matters.
Include the complete user flow and key features.]
user_value:
problem: "[What user problem does this solve?]"
solution: "[How does this feature solve it?]"
success_criteria:
- "[Measurable success criterion 1]"
- "[Measurable success criterion 2]"
- "[Measurable success criterion 3]"
design_artifacts:
scenarios:
- id: "XX-scenario-name"
path: "C-UX-Scenarios/XX-scenario-name/"
screens: ["screen1", "screen2"]
- id: "XX-scenario-name"
path: "C-UX-Scenarios/XX-scenario-name/"
screens: ["screen1"]
user_flows:
- name: "Flow Name"
path: "C-UX-Scenarios/flows/flow-name.excalidraw"
entry: "entry-screen"
exit: "exit-screen"
design_system:
components:
- "Component Name (variants)"
- "Component Name (variants)"
path: "D-Design-System/"
technical_requirements:
platform:
frontend: "framework-name" # From platform-requirements.yaml
backend: "framework-name" # From platform-requirements.yaml
integrations:
- name: "integration-name"
purpose: "[Why this integration is needed]"
required: true # true | false
- name: "integration-name"
purpose: "[Why this integration is needed]"
required: false
data_models:
- name: "ModelName"
fields: ["field1", "field2", "field3"]
- name: "ModelName"
fields: ["field1", "field2"]
acceptance_criteria:
functional:
- "[Functional requirement 1]"
- "[Functional requirement 2]"
- "[Functional requirement 3]"
non_functional:
- "[Performance requirement]"
- "[Accessibility requirement]"
- "[Security requirement]"
edge_cases:
- "[Edge case 1] → [Expected behavior]"
- "[Edge case 2] → [Expected behavior]"
- "[Edge case 3] → [Expected behavior]"
testing_guidance:
user_testing:
- "[User testing instruction 1]"
- "[User testing instruction 2]"
qa_testing:
- "[QA testing instruction 1]"
- "[QA testing instruction 2]"
- "[QA testing instruction 3]"
estimated_complexity:
size: "medium" # small | medium | large
effort: "2-3 weeks" # Time estimate
risk: "low" # low | medium | high
dependencies: [] # List of DD-XXX IDs needed first
notes: |
[Any special considerations, important context, or
critical details that the development team should know.]

View File

@@ -0,0 +1,227 @@
# Diagnostic Report Template
**Use this template for generating diagnostic reports during page specification validation.**
---
## Step-Specific Diagnostic Report
```markdown
🔍 [Step Name] Audit
**Status:** ✅ PASS / ⚠️ WARNING / ❌ CRITICAL
**Issues Found:**
1. [Issue type] [Description]
- Location: Line X-Y
- Current: [what exists now]
- Should be: [what it should be]
- Why: [explanation of why this matters]
2. [Issue type] [Description]
- Location: Line X-Y
- Current: [what exists now]
- Should be: [what it should be]
- Why: [explanation of why this matters]
**Recommendation:**
[Specific actionable fix with examples]
**Example of Correct Format:**
```[language]
[code example showing correct implementation]
```
Would you like me to fix this?
```
---
## Validation Checklist Format
```yaml
[section_name]_validated:
field_1: [true/false]
field_2: [true/false]
field_3: [true/false]
status: [pass/warning/critical]
```
---
## Issue Severity Levels
### ✅ PASS
- All checks passed
- No issues found
- Specification meets standards
### ⚠️ WARNING
- Non-critical issues found
- Specification functional but could be improved
- Recommended fixes, not required
### ❌ CRITICAL
- Critical issues that must be fixed
- Missing required sections
- Specification incomplete or non-compliant
- Blocks developer handoff
---
## Common Issue Types
### Missing Section
```markdown
❌ Missing required section: [Section Name]
- Location: Should appear after [Previous Section]
- Why: [Explanation of why this section is required]
- Example: [Show what the section should look like]
```
### Incorrect Format
```markdown
⚠️ Incorrect format: [Element Name]
- Location: Line X
- Current: [what's there now]
- Should be: [correct format]
- Why: [Explanation of why format matters]
```
### Missing Object ID
```markdown
❌ Missing Object ID: [Component Name]
- Location: Line X
- Current: Component has no OBJECT ID declaration
- Should be: **OBJECT ID**: `component-name`
- Why: Object IDs enable traceability from spec → code → Figma
```
### Design System Violation
```markdown
❌ Design System violation: CSS details in page spec
- Location: Line X-Y
- Current: Contains hex codes, pixel values, CSS classes
- Should be: Component references with Design System links
- Why: Page specs focus on WHAT/WHY, Design System handles HOW
```
### Incomplete Coverage
```markdown
⚠️ Incomplete Object Registry coverage
- Missing: [list of Object IDs not in registry]
- Orphaned: [list of Object IDs in registry but not in sections]
- Coverage: X% (should be 100%)
- Why: Registry must be single source of truth for all elements
```
---
## Recommendation Format
### Simple Fix
```markdown
**Recommendation:**
Add the missing section after [Previous Section]:
```markdown
## [Section Name]
[Content template]
```
Would you like me to add this section?
```
### Complex Fix
```markdown
**Recommendation:**
1. Extract CSS details to Design System documentation
2. Replace inline styles with component references
3. Add Design System links for colors/typography
4. Keep page-specific layout notes (mobile vs desktop behavior)
**Next Steps:**
- Move color values to `Design-System/Foundation/Colors/`
- Move typography to `Design-System/Foundation/Typography/`
- Update page spec to reference Design System components
Would you like me to help extract these styles to the Design System?
```
---
## Final Validation Report Format
```markdown
# Page Specification Quality Report
**Page:** [Page Number] [Page Name]
**Audit Date:** [Date]
**Overall Status:** ✅ PASS / ⚠️ NEEDS WORK / ❌ CRITICAL ISSUES
## Executive Summary
[Brief overview of specification quality]
## Critical Issues (Must Fix Before Handoff)
[List critical issues from all steps]
## Warnings (Should Fix)
[List warnings from all steps]
## Info (Nice to Have)
[List informational items]
## Coverage Metrics
- Object Registry Coverage: X%
- Sketch Coverage: X%
- Design System References: X%
- Platform Metadata: Complete/Incomplete
## Recommendations
[Prioritized list of fixes]
## Next Steps
[What to do next based on findings]
```
---
## Usage Guidelines
1. **Be Specific:** Always include line numbers and exact examples
2. **Be Helpful:** Explain WHY each issue matters
3. **Be Actionable:** Provide clear recommendations with examples
4. **Be Conversational:** Use friendly, collaborative tone
5. **Be Respectful:** Let designer decide whether to implement fixes
6. **Be Thorough:** Don't skip issues, but group related problems
---
## Example Complete Report
```markdown
🔍 Page Metadata Audit
**Status:** ⚠️ WARNING
**Issues Found:**
1. ⚠️ Missing scenario inheritance reference (Line 17-23)
- Location: Page Metadata section
- Current: All platform fields present but no inheritance link
- Should be: "**Inherits From:** Scenario 03 Platform Strategy"
- Why: Creates explicit traceability from Product Brief → Scenario → Page
**Recommendation:**
Add inheritance reference after Navigation Context:
```markdown
**Navigation Context**: Authenticated - overlays calendar page
**Inherits From**: Scenario 03 Platform Strategy (see scenario overview)
```
This creates explicit traceability chain and ensures platform context is properly inherited.
Would you like me to add this reference?
```

View File

@@ -0,0 +1,166 @@
# Accessibility Audit Workflow
**Purpose:** Agent-led accessibility review with explanations and suggestions
---
## How This Works
1. Agent reads the page specification and/or prototype code
2. Agent evaluates each area against WCAG 2.1 AA
3. Agent explains findings in plain language
4. Agent proposes specific fixes
5. User approves, rejects, or asks for alternatives
---
## Agent Instructions
### Step 1: Analyze Color Contrast
Read the design system colors and check:
```
For each text element:
- Calculate contrast ratio against background
- WCAG AA requires: 4.5:1 for normal text, 3:1 for large text (18px+)
Report:
"The button text (#FFFFFF) on primary background (#2563EB)
has a contrast ratio of 8.6:1 ✓ Passes WCAG AA
The helper text (#9CA3AF) on white (#FFFFFF)
has a contrast ratio of 2.9:1 ✗ Fails WCAG AA
→ Suggestion: Darken to #6B7280 (4.6:1) or #4B5563 (7:1)"
```
**Ask user:** "Should I darken the helper text to #6B7280?"
---
### Step 2: Analyze Keyboard Navigation
Read the page structure and determine logical tab order:
```
Looking at the page layout, the logical keyboard flow should be:
1. Skip to main content link (hidden until focused)
2. Logo (if clickable) → Home
3. Navigation items left to right
4. Main content, top to bottom
5. Form fields in visual order
6. Submit/action buttons
7. Footer links
Current spec has these interactive elements:
- `header-logo` ✓ Has behavior defined
- `nav-home` ✓ Link
- `form-email` ✗ Missing keyboard info
- `submit-btn` ✗ Missing focus state
→ Suggestion: Add to form-email:
| Keyboard | Tab to focus, type to enter |
| Focus | 2px blue ring (#2563EB) |
```
**Ask user:** "Should I add keyboard properties to these elements?"
---
### Step 3: Analyze Screen Reader Experience
Check each element has appropriate labels:
```
Reviewing interactive elements:
`booking-submit` - Button with text "Book"
→ Issue: "Book" alone may be unclear out of context
→ Suggestion: aria-label="Book this walk slot"
`booking-cancel` - Icon button with X
→ Issue: No text, screen reader says nothing
→ Suggestion: aria-label="Cancel booking"
`status-indicator` - Colored dot (green/red/gray)
→ Issue: Color only, no text alternative
→ Suggestion: Add aria-label="Status: Available" and visually hidden text
```
**Ask user:** "Should I add these aria-labels to the spec?"
---
### Step 4: Analyze Dynamic Content
Check state changes and notifications:
```
This page has dynamic content:
State changes (drawer opens/closes):
→ Need: aria-expanded on trigger, focus management
→ Suggestion: When drawer opens, move focus to drawer header
Loading states:
→ Need: aria-busy="true" on container, "Loading..." announcement
→ Suggestion: Add aria-live="polite" region for status updates
Error messages:
→ Need: aria-live="assertive" so errors are announced immediately
→ Suggestion: Link error to field with aria-describedby
```
**Ask user:** "Should I add these dynamic content specifications?"
---
### Step 5: Summary Report
```
## Accessibility Audit Summary
### Passes ✓
- Color contrast on primary buttons (8.6:1)
- Semantic HTML structure (header, main, nav)
- Form labels present
### Needs Attention ⚠
- Helper text contrast (2.9:1 → needs 4.5:1)
- 3 buttons missing aria-labels
- Tab order not documented
- Focus states not specified
### Recommendations
1. Darken helper text to #6B7280
2. Add aria-labels to icon buttons
3. Document keyboard flow
4. Specify focus ring style (2px #2563EB)
Implement these changes? [Yes to all / Review each / Skip]
```
---
## Quick Reference for Agent
| Check | WCAG Rule | Requirement |
|-------|-----------|-------------|
| Text contrast | 1.4.3 | 4.5:1 normal, 3:1 large |
| Focus visible | 2.4.7 | Clear visual indicator |
| Labels | 1.3.1 | All inputs labeled |
| Keyboard | 2.1.1 | All functions keyboard accessible |
| Error ID | 3.3.1 | Errors identified and described |
| Name/Role | 4.1.2 | Interactive elements have accessible names |
---
## Agent Prompts
Use these to guide the conversation:
- "I found {N} contrast issues. Want me to explain each one?"
- "This button has no accessible name. Should I suggest one based on its purpose?"
- "The tab order seems unclear. Can you confirm the intended flow?"
- "Screen readers won't announce this status change. Should I add aria-live?"

View File

@@ -0,0 +1,102 @@
# Accessibility Specification
**Include when:** Specifying interactive elements, forms, or navigation
---
## For Each Interactive Element
When documenting buttons, links, inputs, add:
```markdown
| Property | Value |
|----------|-------|
| aria-label | "{What it does}" |
| Keyboard | {Enter / Space / Arrow keys} |
| Focus style | {ring / outline / highlight} |
```
**Example:**
```markdown
#### Submit Button
**OBJECT ID:** `form-submit`
| Property | Value |
|----------|-------|
| aria-label | "Submit booking request" |
| Keyboard | Enter or Space |
| Focus | 2px blue ring |
| Disabled state | aria-disabled="true", gray, no focus |
```
---
## Tab Order
Document the logical sequence:
```markdown
## Keyboard Flow
1. `header-logo` → Home link
2. `header-nav` → Main navigation
3. `main-content` → Skip to here
4. `form-name` → First input
5. `form-email` → Second input
6. `form-submit` → Submit button
```
---
## Dynamic Content
When content changes without page reload:
```markdown
| Element | Announces |
|---------|-----------|
| `toast-success` | aria-live="polite" — "Booking confirmed" |
| `error-message` | aria-live="assertive" — Error text |
| `loading-spinner` | aria-busy="true" on parent |
```
---
## Color Independence
For status indicators, ensure alternatives:
| Status | Color | Also Has |
|--------|-------|----------|
| Success | Green | Checkmark icon + "Complete" text |
| Error | Red | Warning icon + error message |
| Active | Blue | Bold text + underline |
---
## Form Errors
Link errors to fields:
```markdown
#### Email Error
**OBJECT ID:** `form-email-error`
| Property | Value |
|----------|-------|
| aria-describedby | Links to `form-email` |
| Role | "alert" |
| Content | "Please enter a valid email" |
```
---
## Quick Checks
Before finalizing:
- [ ] Every button has aria-label or visible text
- [ ] Every image has alt (or alt="" if decorative)
- [ ] Every input has associated label
- [ ] Focus visible on all interactive elements
- [ ] Status not conveyed by color alone

View File

@@ -0,0 +1,69 @@
# Data & API Requirements
**Include when:** Page requires data from APIs or external sources
---
## Data Sources
| Data Element | Source | Type | Required | Notes |
|--------------|--------|------|----------|-------|
| `{data-field}` | {API / static / localStorage} | {string / number / array} | {yes/no} | {notes} |
---
## API Endpoints
### {Endpoint Name}
| Property | Value |
|----------|-------|
| Method | {GET / POST / PUT / DELETE} |
| Path | `/api/{path}` |
| Purpose | {What this endpoint does} |
| Auth | {Required / Optional / None} |
**Request:**
```json
{
"field": "value"
}
```
**Response (Success):**
```json
{
"data": {}
}
```
**Response (Error):**
```json
{
"error": "message",
"code": "ERR_XXX"
}
```
**Error Codes:**
| Code | Meaning | User Message |
|------|---------|--------------|
| `{code}` | {technical meaning} | {user-friendly message} |
---
## Loading States
| State | Duration | UI |
|-------|----------|-----|
| Initial load | {expected ms} | {skeleton / spinner / etc.} |
| Refresh | {expected ms} | {indicator type} |
| Background | {expected ms} | {silent / toast} |
---
## Caching Strategy
| Data | Cache Duration | Invalidation |
|------|----------------|--------------|
| {data type} | {duration} | {when to refresh} |

View File

@@ -0,0 +1,54 @@
# Form Validation
**Include when:** Page has forms or input fields
---
## Validation Rules
| Field | Rule | Error Code | Error Message |
|-------|------|------------|---------------|
| `{field-name}` | {validation-rule} | `{ERR_CODE}` | {message} |
---
## Error Messages
| Error Code | Trigger | EN | SE | Recovery |
|------------|---------|-----|-----|----------|
| `ERR_001` | {When occurs} | "{English}" | "{Swedish}" | {How to fix} |
---
## Form States
### Valid State
- All fields pass validation
- Submit button enabled
- No error indicators
### Invalid State
- Error fields highlighted
- Error messages visible
- Submit button disabled until fixed
### Submitting State
- Submit button shows loading
- Fields disabled
- Cancel option available
---
## Field Specifications
### {Field Name}
| Property | Value |
|----------|-------|
| **OBJECT ID** | `{form-field-id}` |
| Type | {text / email / password / select / etc.} |
| Required | {yes / no} |
| Placeholder EN | "{Placeholder text}" |
| Placeholder SE | "{Swedish placeholder}" |
| Validation | {rules} |
| Error Message | {message} |

View File

@@ -0,0 +1,37 @@
# Meta Content & Social Sharing
**Include when:** Page is Public (SEO/social sharing needed)
---
## Page Title
**Limit:** 55-60 characters
`{title}`
---
## Meta Description
**Limit:** 150-160 characters
`{description}`
---
## Social Sharing
| Property | Value |
|----------|-------|
| Title | {60-70 chars, can differ from page title} |
| Description | {120-150 chars} |
| Image | 1200x630px, `/images/social/{page-name}.jpg` |
| Image Alt | {alt text} |
---
## Agent Questions
1. "What should appear in browser tab/search results?" (< 60 chars)
2. "Describe this page to encourage clicks" (150-160 chars)
3. "What title for social shares?"
4. "What image represents this page?" (1200x630px)

View File

@@ -0,0 +1,164 @@
# Open Questions — Auto-Population Guide
**Purpose:** During page specification creation or audit, automatically add relevant questions based on page characteristics.
---
## How to Use
When creating or auditing a page specification:
1. Review the checklist below
2. For each applicable category, check if the page specification addresses it
3. If not addressed, add to the Open Questions section
---
## Responsive Behavior
**Trigger:** Page metadata indicates multiple viewports OR page is responsive
| Condition | Add Question |
|-----------|--------------|
| No responsive sketches | "What are the responsive breakpoint layouts? (Mobile/Tablet/Desktop)" |
| Mobile-first but no desktop spec | "How does the layout adapt for desktop users?" |
| Desktop-first but no mobile spec | "How does the layout adapt for mobile users?" |
| Touch + mouse interaction | "Are there hover states that need touch alternatives?" |
---
## Loading & Error States
**Trigger:** Page fetches data OR has async operations
| Condition | Add Question |
|-----------|--------------|
| API data but no loading state | "What does the user see while data is loading?" |
| No error state documented | "What happens if the data fails to load?" |
| No empty state documented | "What does the user see when there's no data?" |
| Async actions (save, submit) | "What feedback does the user get during async operations?" |
| Network-dependent features | "What happens if the user is offline?" |
---
## SEO & Meta Content
**Trigger:** Page is public (visibility = Public)
| Condition | Add Question |
|-----------|--------------|
| No page title specified | "What is the page title for SEO?" |
| No meta description | "What is the meta description for search results?" |
| No Open Graph tags | "What should the social sharing preview show?" |
| Dynamic content | "How do we handle SEO for dynamic/personalized content?" |
---
## Accessibility
**Trigger:** All pages (accessibility is always relevant)
| Condition | Add Question |
|-----------|--------------|
| Live updating content (timers, feeds) | "Should live updates announce to screen readers (aria-live)?" |
| Modal/drawer interactions | "Where does focus go when modal opens/closes?" |
| Color-coded states | "Is information conveyed by color alone?" |
| Custom components | "Do custom components have proper ARIA roles?" |
| Animations | "Are animations respecting prefers-reduced-motion?" |
| Complex interactions | "What is the keyboard navigation pattern?" |
---
## User Permissions & Roles
**Trigger:** Page has authenticated users OR multiple user types
| Condition | Add Question |
|-----------|--------------|
| Multi-user feature | "What does User B see when User A is performing an action?" |
| Role-based access | "Which elements are visible/hidden per role?" |
| Shared resources | "What happens if two users act simultaneously?" |
| Destructive actions | "Should destructive actions require confirmation?" |
---
## Time-Sensitive Features
**Trigger:** Page has countdowns, timers, or time-based state changes
| Condition | Add Question |
|-----------|--------------|
| Countdown timer | "What happens when the countdown reaches zero?" |
| Time windows | "Can users act before the time window opens?" |
| Time windows | "What happens after the time window closes?" |
| Background behavior | "Does the timer continue when app is backgrounded?" |
| Session timeout | "What happens when the session expires?" |
---
## Form Interactions
**Trigger:** Page has form inputs
| Condition | Add Question |
|-----------|--------------|
| No validation rules | "What are the validation rules for each field?" |
| No error messages | "What error messages are shown for each validation failure?" |
| No success state | "What happens after successful form submission?" |
| Partial completion | "Can users save partial progress?" |
| Sensitive data | "Are there security considerations for this form data?" |
---
## Navigation & Flow
**Trigger:** Page is part of a multi-step flow
| Condition | Add Question |
|-----------|--------------|
| No back navigation | "Can users go back to the previous step?" |
| Browser back button | "What happens when user presses browser back?" |
| Unsaved changes | "Should we warn users about unsaved changes?" |
| Deep linking | "Can this page be accessed via direct URL?" |
---
## Integration Checklist
When creating a page specification, check these categories:
```
[ ] Responsive — Do we have all breakpoint layouts?
[ ] Loading — Is the loading state documented?
[ ] Error — Is the error state documented?
[ ] Empty — Is the empty state documented?
[ ] SEO — Is meta content defined (if public)?
[ ] Accessibility — Are a11y requirements specified?
[ ] Permissions — Are role-based views documented?
[ ] Time — Are time-sensitive behaviors defined?
[ ] Forms — Are validation rules specified?
[ ] Navigation — Is back/forward behavior defined?
```
---
## Example Open Questions Section
For a responsive page with API data and timer:
```markdown
## Open Questions
| # | Question | Context | Status |
|---|----------|---------|--------|
| 1 | What are the tablet/desktop layouts? | Only mobile sketch provided | 🔴 Open |
| 2 | What does user see while loading? | API fetch on page load | 🔴 Open |
| 3 | What happens if API call fails? | Error handling | 🔴 Open |
| 4 | Does timer continue when app backgrounded? | Mobile behavior | 🔴 Open |
| 5 | Should timer announce to screen readers? | Accessibility | 🔴 Open |
**Status Legend:** 🔴 Open | 🟡 In Discussion | 🟢 Resolved
```
---
_Use this guide during specification creation and audits to ensure comprehensive coverage._

View File

@@ -0,0 +1,64 @@
# Responsive Behavior
**Include when:** Page needs different layouts across breakpoints
---
## Breakpoints
| Name | Range | Primary Use |
|------|-------|-------------|
| Mobile | < 768px | Touch, single column |
| Tablet | 768px - 1024px | Touch/mouse, flexible |
| Desktop | > 1024px | Mouse, multi-column |
---
## Mobile (< 768px)
### Layout Changes
- {What changes from desktop}
### Hidden Elements
- {Elements not shown on mobile}
### Mobile-Specific
- {Touch targets, gestures, etc.}
---
## Tablet (768px - 1024px)
### Layout Changes
- {What changes}
### Adaptations
- {Specific tablet behaviors}
---
## Desktop (> 1024px)
### Full Layout
- {Desktop-specific features}
### Enhancements
- {Hover states, keyboard shortcuts}
---
## Component Breakpoint Behavior
| Component | Mobile | Tablet | Desktop |
|-----------|--------|--------|---------|
| `{component}` | {behavior} | {behavior} | {behavior} |
---
## Navigation Changes
| Breakpoint | Navigation Style |
|------------|------------------|
| Mobile | {hamburger / bottom nav / etc.} |
| Tablet | {style} |
| Desktop | {full nav / sidebar / etc.} |

View File

@@ -0,0 +1,163 @@
# SEO Content Instructions
**Condition:** Include when page visibility = "Public"
---
## Purpose
Ensure every public page is optimized for search engines during specification — not as an afterthought during development.
---
## Required: Check Project Brief SEO Strategy
Before specifying this page, check the project brief's **SEO Strategy** section:
1. Find this page in the **Page-Keyword Map**
2. Note the **primary keyword** and **secondary keywords**
3. Note the **URL slug**
4. Note any **structured data** requirements
If the page is missing from the keyword map, flag it as an open question.
---
## SEO Specification Checklist
### 1. URL Slug
```markdown
**URL:** /{slug}
```
- Short, descriptive, keyword-rich
- Lowercase, hyphens between words
- No special characters (å→a, ä→a, ö→o)
- Consistent with URL structure pattern from project brief
### 2. Heading Hierarchy
Verify the page has:
- [ ] **Exactly one H1** — Contains primary keyword
- [ ] **Logical H2 → H3 flow** — No skipped levels
- [ ] **Keywords in headings** — Natural placement, not stuffed
- [ ] **H1 differs from page title tag** if needed (H1 = on-page, title = search results)
Document in page spec:
```markdown
### Heading Hierarchy
| Level | Content | Keyword |
|-------|---------|---------|
| H1 | {Main page heading} | {primary keyword} |
| H2 | {Section heading} | {secondary keyword} |
| H3 | {Subsection heading} | — |
```
### 3. Internal Links
Every public page should link to at least 2 other pages on the site.
- [ ] **Descriptive anchor text** — "Läs mer om vår AC-service" not "Klicka här"
- [ ] **Related content links** — Service ↔ vehicle type, article ↔ service
- [ ] **CTA links** — Contact, phone, booking
Document link targets:
```markdown
### Internal Links
| Anchor Text | Target Page | Context |
|-------------|-------------|---------|
| "Läs mer om service" | /service | About section |
| "Ring oss" | tel:+46485-27070 | CTA section |
```
### 4. Image SEO
For every image on the page:
- [ ] **Alt text in all languages** — Descriptive, keyword where relevant
- [ ] **File name** — Descriptive (`verkstad-ac-service.jpg` not `IMG_001.jpg`)
- [ ] **Dimensions specified** — Width and height attributes (prevents CLS)
- [ ] **Max file size**< 200KB per image (hero images < 400KB)
- [ ] **Format** WebP with JPEG/PNG fallback
- [ ] **Lazy loading** For below-the-fold images
- [ ] **Responsive** srcset for mobile/desktop versions of large images
### 5. Meta Content
Include the meta content section (see [meta-content.instructions.md](meta-content.instructions.md)):
- [ ] **Page title** 60 chars, includes primary keyword + brand
- [ ] **Meta description** 150-160 chars, includes keyword + CTA
- [ ] **Social sharing** Title, description, image
### 6. Structured Data
If the project brief's structured data plan includes this page type:
```markdown
### Structured Data
**Schema Type:** {e.g., Service, Article, FAQPage}
| Property | Value |
|----------|-------|
| name | {service/article name} |
| description | {from meta description} |
| provider | {business name} |
```
---
## SEO Section Template
Add this section to the page specification:
```markdown
## SEO & Search
**Primary Keyword (SE):** {keyword}
**Primary Keyword (EN):** {keyword}
**Primary Keyword (DE):** {keyword}
**URL:** /{slug}
### Page Title (Browser Tab & Search Results)
- SE: "{title} | {brand}" (≤ 60 chars)
- EN: "{title} | {brand}" (≤ 60 chars)
- DE: "{title} | {brand}" (≤ 60 chars)
### Meta Description
- SE: "{description with keyword and CTA}" (150-160 chars)
- EN: "{description with keyword and CTA}" (150-160 chars)
- DE: "{description with keyword and CTA}" (150-160 chars)
### Heading Hierarchy
| Level | SE | EN | DE | Keyword |
|-------|----|----|----|---------|
| H1 | ... | ... | ... | primary |
| H2 | ... | ... | ... | secondary |
### Structured Data
**Type:** {Schema type}
```
---
## Related
- [Meta Content Instructions](meta-content.instructions.md) Detailed meta content specification
- [SEO Strategy Guide](../../../data/agent-guides/saga/seo-strategy-guide.md) Comprehensive SEO reference
- [Specification Quality](../../../data/agent-guides/freya/specification-quality.md) Quality checklist
---
*Every public page is a search result. Specify it accordingly.*

View File

@@ -0,0 +1,314 @@
<!--
NAVIGATION BEST PRACTICE: Navigation links appear in THREE places:
1. Above the sketch (top)
2. Below the sketch (still in header area)
3. At document bottom
This is intentional for long specifications - users should not need to
scroll the entire document to navigate between pages.
-->
### {page-number}-{page-name}
**Previous Step:** ← [{previous-page-name}]({previous-page-path})
**Next Step:** → [{next-page-name}]({next-page-path})
![{Page Name}](Sketches/{page-number}-{page-name}.jpg)
**Previous Step:** ← [{previous-page-name}]({previous-page-path})
**Next Step:** → [{next-page-name}]({next-page-path})
---
# {page-number}-{page-name}
## Page Metadata
| Property | Value |
|----------|-------|
| **Scenario** | {scenario-name} |
| **Page Number** | {page-number} |
| **Platform** | {Mobile web / Desktop / PWA / Native} |
| **Page Type** | {Full Page / Modal / Drawer / Popup} |
| **Viewport** | {Mobile-first / Desktop-first} |
| **Interaction** | {Touch-first / Mouse+keyboard} |
| **Visibility** | {Public / Authenticated / Admin} |
---
## Overview
**Page Purpose:** {What job must this page accomplish?}
**User Situation:** {What brings the user here?}
**Success Criteria:** {How will we know this page succeeded?}
**Entry Points:**
- {How users arrive}
**Exit Points:**
- {Where users go next}
---
## Reference Materials
**Strategic Foundation:**
- [Product Brief]({path}) - {brief description}
- [Trigger Map]({path}) - {brief description}
**Related Pages:**
- [{Related Page}]({path})
**Design System:**
- [{Component}]({path})
---
## Layout Structure
{High-level description of page layout}
```
[ASCII layout diagram]
+------------------+
| Header |
+------------------+
| Main Content |
+------------------+
| Footer |
+------------------+
```
---
## Spacing
<!--
All spacing values MUST use token names from the project's spacing scale.
The scale is defined in D-Design-System/00-design-system.md → Spacing Scale.
This can be the WDS default scale, Tailwind classes, Material tokens, or any system.
Do NOT use arbitrary pixel values. If unsure, check the scale.
-->
**Scale:** [Spacing Scale](../../D-Design-System/00-design-system.md#spacing-scale)
| Property | Token |
|----------|-------|
| Page padding (horizontal) | {e.g., space-md mobile / space-lg desktop} |
| Section gap | {e.g., space-xl} |
| Element gap (default within sections) | {e.g., space-md} |
| Component gap (within groups) | {e.g., space-sm} |
---
## Typography
<!--
Text sizes use token names from the project's type scale.
The scale is defined in D-Design-System/00-design-system.md → Type Scale.
IMPORTANT: Semantic level (H1, H2, p) signals document structure — for accessibility and SEO.
Visual styling (size, weight, typeface) signals visual hierarchy — how it looks.
They are related but NOT locked together. An H2 can be text-sm. A <p> can be text-2xl.
Headings can have different typefaces and styles on different pages — that's fine.
-->
**Scale:** [Type Scale](../../D-Design-System/00-design-system.md#type-scale)
| Element | Semantic | Size | Weight | Typeface |
|---------|----------|------|--------|----------|
| {Page title} | H1 | {e.g., text-2xl} | {e.g., bold} | {e.g., display / default} |
| {Section heading} | H2 | {e.g., text-xl} | {e.g., semibold} | {default} |
| {Body text} | p | text-md | normal | {default} |
| {Caption/helper} | p | {e.g., text-xs} | normal | {default} |
---
## Page Sections
### Section: {Section Name}
**OBJECT ID:** `{page-name}-{section-name}`
| Property | Value |
|----------|-------|
| Purpose | {What this section does} |
| Component | [{Design System Component}]({path}) |
| Padding | {e.g., space-lg space-md} |
| Element gap | {e.g., space-md — or "default" if same as page-level} |
---
#### {Object Name}
**OBJECT ID:** `{page-name}-{object-name}`
| Property | Value |
|----------|-------|
| Component | [{Component}]({path}) |
| Translation Key | `{translation.key}` |
| SE | "{Swedish text}" |
| EN | "{English text}" |
| Behavior | {onClick / onChange / etc.} |
#### ↕ `{page}-{v|h}-{type}-{size}` — {reason}
<!--
Spacing objects sit between content objects. They have IDs and are first-class.
NAMING: {page}-{v|h}-{type}-{size}
- v = vertical, h = horizontal
- type = space, separator, line
- size = the token name (zero, sm, md, lg, xl, 2xl, 3xl, flex)
The ID describes WHAT the spacing IS, not which objects it sits between.
RULES:
- Default element spacing (from the Spacing section above) is implicit — no spacing object needed.
- Non-default spacing MUST be an explicit spacing object with an ID.
- Zero spacing (overlap / flush) MUST be documented: ↕ `id` — space-zero (reason)
- Same spacing shared by all items in a group → define on the group, not between each item.
- Spacing objects flow into D-Design-System/00-design-system.md → Patterns.
FORMAT: #### ↕ `{id}` — {reason}
EXAMPLES:
#### ↕ `hem-v-space-zero` — header and service menu form one continuous nav unit
#### ↕ `hem-v-separator-2xl` — gray line, space-2xl above and below. Separates about from trust cards.
#### ↕ `hem-v-space-3xl` — major section boundary between seasons and footer
-->
---
#### {Object Name 2}
**OBJECT ID:** `{page-name}-{object-name-2}`
| Property | Value |
|----------|-------|
| Component | [{Component}]({path}) |
| Translation Key | `{translation.key}` |
| SE | "{Swedish text}" |
| EN | "{English text}" |
---
#### {Group Name} (Container)
**OBJECT ID:** `{page-name}-{group-name}`
| Property | Value |
|----------|-------|
| Component | [{Container Component}]({path}) |
| Purpose | {Groups related objects} |
| Layout | {Horizontal / Vertical / Grid} |
##### {Object in Group}
**OBJECT ID:** `{page-name}-{group-name}-{object}`
| Property | Value |
|----------|-------|
| Component | [{Component}]({path}) |
| Translation Key | `{translation.key}` |
| SE | "{Swedish text}" |
| EN | "{English text}" |
##### ↕ `{page-name}-{group-name}-{obj1}-{obj2}-gap` — {spacing token}
##### {Object in Group 2}
**OBJECT ID:** `{page-name}-{group-name}-{object-2}`
| Property | Value |
|----------|-------|
| Component | [{Component}]({path}) |
| Translation Key | `{translation.key}` |
| SE | "{Swedish text}" |
| EN | "{English text}" |
---
## Page States
| State | When | Appearance | Actions |
|-------|------|------------|---------|
| Default | {condition} | {description} | {available actions} |
| Loading | {condition} | {description} | {available actions} |
| Empty | {condition} | {description} | {available actions} |
| Error | {condition} | {description} | {recovery actions} |
| Success | {condition} | {description} | {next steps} |
---
## Conditional Sections
Include these micro-instructions when applicable:
| Condition | Include |
|-----------|---------|
| Public page (SEO needed) | → [meta-content.instructions.md](instructions/meta-content.instructions.md) |
| Public page (SEO needed) | → [seo-content.instructions.md](instructions/seo-content.instructions.md) |
| Has forms/inputs | → [form-validation.instructions.md](instructions/form-validation.instructions.md) |
| Needs API data | → [data-api.instructions.md](instructions/data-api.instructions.md) |
| Multiple breakpoints | → [responsive.instructions.md](instructions/responsive.instructions.md) |
| Final review | → [accessibility.instructions.md](instructions/accessibility.instructions.md) |
| Multiple sketches | → [storyboard-specification.template.md](storyboard-specification.template.md) |
| **Always (spec creation/audit)** | → [open-questions.instructions.md](instructions/open-questions.instructions.md) |
---
## Technical Notes
{Any constraints, performance requirements, or implementation notes}
---
## Open Questions
<!--
This section captures decisions needed before development.
During spec creation or audits, auto-populate questions based on:
→ instructions/open-questions.instructions.md
Categories to check:
- Responsive breakpoints (if multiple viewports)
- Loading/Error/Empty states (if API data)
- SEO meta content (if public page)
- Accessibility requirements
- User permissions/roles
- Time-sensitive behaviors
- Form validation rules
- Navigation/back behavior
-->
_No open questions at this time._
<!-- When questions exist, use this format:
| # | Question | Context | Status |
|---|----------|---------|--------|
| 1 | {What needs to be decided?} | {Why it matters} | 🔴 Open |
| 2 | {Question} | {Context} | 🟢 Resolved: {answer} |
**Status Legend:** 🔴 Open | 🟡 In Discussion | 🟢 Resolved
-->
---
## Checklist
- [ ] Page purpose clear
- [ ] All Object IDs assigned
- [ ] Components reference design system
- [ ] Translations complete (SE/EN)
- [ ] States documented
- [ ] Conditional sections included where needed
---
**Previous Step:** ← [{previous-page-name}]({previous-page-path})
**Next Step:** → [{next-page-name}]({next-page-path})
---
_Created using Whiteport Design Studio (WDS) methodology_

View File

@@ -0,0 +1,159 @@
# {scenario-number}-{scenario-name}
**Project:** {project-name}
**Created:** {date}
**Method:** Whiteport Design Studio (WDS)
---
## Scenario Overview
**User Journey:** {High-level description of what users accomplish in this scenario}
**Entry Point:** {Where users begin this scenario}
**Success Exit:** {Where users end after successful completion}
**Alternative Exits:** {Other possible endpoints - errors, cancellations, etc.}
**Target Personas:** {Which personas from Trigger Map use this scenario}
---
## Pages in This Scenario
| Page # | Page Name | Status | Purpose |
| ------ | ----------- | ---------------- | --------------- |
| {n}.1 | {page-name} | {draft/complete} | {Brief purpose} |
| {n}.2 | {page-name} | {draft/complete} | {Brief purpose} |
| {n}.3 | {page-name} | {draft/complete} | {Brief purpose} |
---
## User Flow
```mermaid
flowchart TD
A[{Entry Point}] --> B[{Page n.1}]
B --> C[{Page n.2}]
C --> D{{Decision Point?}}
D -->|Yes| E[{Page n.3}]
D -->|No| F[{Alternative Path}]
E --> G[{Success Exit}]
F --> G
```
---
## Scenario Steps
### Step 1: {Step Name}
**Page:** {n.1-Page-Name}
**User Action:** {What the user does}
**System Response:** {How the system responds}
**Success Criteria:** {What defines success for this step}
### Step 2: {Step Name}
**Page:** {n.2-Page-Name}
**User Action:** {What the user does}
**System Response:** {How the system responds}
**Success Criteria:** {What defines success for this step}
{Repeat for all steps}
---
## Trigger Map Connections
### Positive Drivers Addressed
From Trigger Map analysis, this scenario serves these user goals:
- ✅ {Positive goal from Trigger Map}
- ✅ {Positive goal from Trigger Map}
### Negative Drivers Avoided
This scenario helps users avoid:
- ❌ {Negative outcome from Trigger Map}
- ❌ {Negative outcome from Trigger Map}
---
## Success Metrics
**Primary Metric:** {Main measure of scenario success}
**Secondary Metrics:**
- {Metric 1}
- {Metric 2}
**User Satisfaction Indicators:**
- {What indicates good user experience}
---
## Edge Cases & Error Handling
| Edge Case | How Handled | Page(s) Affected |
| ----------------------- | ------------------- | ----------------- |
| {edge-case-description} | {handling-approach} | {page-references} |
---
## Technical Requirements
### Data Flow
```
{Entry} → [Fetch Data] → {Display} → [User Action] → [Validate] → [API Call] → {Success}
```
### API Endpoints Used
| Endpoint | Page(s) | Purpose |
| --------------- | ----------- | -------------- |
| {endpoint-path} | {page-refs} | {what-it-does} |
### State Management
{How state is managed across pages in this scenario}
---
## Design Assets
**Scenario Folder:** `C-UX-Scenarios/{scenario-number}-{scenario-name}/`
**Page Specifications:**
- {n}.1-{page-name}/{page-name}.md
- {n}.2-{page-name}/{page-name}.md
- {n}.3-{page-name}/{page-name}.md
**Prototypes:**
- {n}.1-{page-name}/Prototype/
- {n}.2-{page-name}/Prototype/
- {n}.3-{page-name}/Prototype/
---
## Development Notes
{Any scenario-level technical considerations, performance requirements, security notes, etc.}
---
## Revision History
| Date | Changes | Author |
| ------ | ------------------------ | -------- |
| {date} | Initial scenario created | {author} |
---
_Created using Whiteport Design Studio (WDS) methodology_

View File

@@ -0,0 +1,94 @@
# Storyboard Extension
**Use when:** Page has multiple sketches (multi-step flows, state changes, transitions)
**Base:** Start with [page-specification.template.md](page-specification.template.md)
---
## What Changes
### 1. Add State Flow Overview (before Page Sections)
After Reference Materials, add:
```markdown
## State Flow Overview
{Brief description of states}
![Overview](Sketches/{page-number}-{page-name}-Overview.jpg)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ STATE 1 │───▶│ STATE 2 │───▶│ STATE 3 │
└─────────────┘ └─────────────┘ └─────────────┘
| State | Name | Visual | Entry | Actions |
|-------|------|--------|-------|---------|
| **1** | {name} | {color/icon} | {trigger} | {actions} |
| **2** | {name} | {color/icon} | {trigger} | {actions} |
```
---
### 2. State 1 = Normal Page Specification
Document State 1 using the standard page spec structure:
- Page Sections
- Objects with OBJECT IDs
- Groups with nested objects
This is the **baseline** that other states reference.
---
### 3. States 2+ = Differences Only
After State 1, add for each additional state:
```markdown
# State 2: {State Name} — Differences from State 1
![State 2](Sketches/{page-number}-{page-name}-2-{state-name}.jpg)
> **The Story:** {User experience narrative}
| Property | Value |
|----------|-------|
| Purpose | {what this state does} |
| Entry | {trigger from previous state} |
| Previous | State 1 |
| Next | State 3 / {options} |
### Changes from State 1
| OBJECT ID | Change | Details |
|-----------|--------|---------|
| `{existing-id}` | Modified | {what changed} |
| `{existing-id}` | Hidden | {why hidden} |
| `{new-id}` | Added | {new element} |
### State 2 Elements
{Only document NEW objects not in State 1}
#### {New Object}
**OBJECT ID:** `{page-name}-{new-object}`
| Property | Value |
|----------|-------|
| Component | [{Component}]({path}) |
| Translation Key | `{key}` |
| SE | "{text}" |
| EN | "{text}" |
```
---
## Key Principles
1. **State 1 is baseline** — fully documented
2. **States 2+ show only changes** — reuse OBJECT IDs
3. **Same IDs across states**`booking-detail-header` stays the same, just describe what changed
4. **New elements get new IDs** — only in the state they first appear

View File

@@ -0,0 +1,192 @@
# WDS Test Scenario Template
# Save to: test-scenarios/TS-XXX-name.yaml
test_scenario:
id: "TS-XXX" # Format: TS-001, TS-002, etc.
name: "Feature Testing" # Human-readable name
delivery_id: "DD-XXX" # Related Design Delivery
type: "user_acceptance" # user_acceptance | integration | e2e
status: "ready" # ready | in_progress | blocked
tester: "designer" # designer | qa | developer
created_at: "YYYY-MM-DDTHH:MM:SSZ"
test_objectives:
- "Validate implementation matches design specifications"
- "Verify user flow is intuitive and smooth"
- "Confirm all edge cases are handled"
- "Ensure design system components are used correctly"
- "Test accessibility and usability"
test_environment:
devices:
- "Device 1 (OS version)"
- "Device 2 (OS version)"
test_data:
- field: "value"
- field: "value"
# Happy Path Tests
happy_path:
- id: "HP-001"
name: "Main User Flow"
priority: "critical" # critical | high | medium | low
steps:
- action: "[User action]"
expected: "[Expected result]"
design_ref: "[Path to specification]#[section]"
- action: "[User action]"
expected: "[Expected result]"
design_ref: "[Path to specification]#[section]"
success_criteria:
- "[Success criterion 1]"
- "[Success criterion 2]"
- "[Success criterion 3]"
# Error State Tests
error_states:
- id: "ES-001"
name: "Error Scenario"
priority: "high"
steps:
- action: "[Action that triggers error]"
- expected: "[Expected error message]"
- expected: "[Expected recovery option]"
- design_ref: "[Path to specification]#[error-section]"
success_criteria:
- "[Error handling criterion 1]"
- "[Error handling criterion 2]"
# Edge Case Tests
edge_cases:
- id: "EC-001"
name: "Edge Case Scenario"
priority: "medium"
steps:
- action: "[Unusual action]"
- expected: "[Expected handling]"
- design_ref: "[Path to specification]#[edge-case-section]"
success_criteria:
- "[Edge case criterion 1]"
# Design System Validation
design_system_checks:
- id: "DS-001"
name: "Component Validation"
checks:
- component: "Component Name"
instances: ["Location 1", "Location 2"]
verify:
- "[Visual property 1]"
- "[Visual property 2]"
- "[State behavior 1]"
design_ref: "D-Design-System/path/to/component.md"
# Accessibility Tests
accessibility:
- id: "A11Y-001"
name: "Screen Reader Navigation"
priority: "high"
setup: "Enable screen reader (VoiceOver/TalkBack)"
steps:
- action: "[Navigate with screen reader]"
- verify:
- "[Accessibility check 1]"
- "[Accessibility check 2]"
success_criteria:
- "[Accessibility criterion 1]"
- "[Accessibility criterion 2]"
# Usability Tests
usability:
- id: "UX-001"
name: "First Impression"
type: "observational"
instructions: |
[Instructions for conducting usability test]
success_criteria:
- "[Usability criterion 1]"
- "[Usability criterion 2]"
# Performance Tests
performance:
- id: "PERF-001"
name: "Performance Check"
verify:
- "[Performance metric 1]"
- "[Performance metric 2]"
success_criteria:
- "[Performance target 1]"
- "[Performance target 2]"
# Test Report Template
report_template:
sections:
- name: "Test Summary"
fields:
- "Date tested"
- "Tester name"
- "Device tested"
- "Build version"
- "Overall result (Pass/Fail/Partial)"
- name: "Happy Path Results"
fields:
- "Test ID"
- "Result (Pass/Fail)"
- "Notes"
- "Screenshots"
- name: "Issues Found"
fields:
- "Issue ID"
- "Severity (Critical/High/Medium/Low)"
- "Description"
- "Steps to reproduce"
- "Expected vs Actual"
- "Screenshot/Video"
- "Design reference violated"
- name: "Design System Compliance"
fields:
- "Component"
- "Compliant (Yes/No)"
- "Deviations noted"
- name: "Recommendations"
fields:
- "What worked well"
- "What needs improvement"
- "Suggested changes"
# Sign-off Criteria
sign_off:
required_for_approval:
- "All critical tests pass"
- "No critical or high severity issues"
- "Design system compliance > 95%"
- "Accessibility tests pass"
- "Usability metrics meet targets"
designer_approval:
statement: |
I confirm that the implemented feature matches the design
specifications and meets the quality standards defined in
this test scenario.
signature: "________________"
date: "________________"