siesa-agents 2.1.89 → 2.1.91
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/claude/skills/sa-init-devops/SKILL.md +35 -36
- package/claude/skills/sa-wds-visual-proposals/SKILL.md +6 -0
- package/package.json +1 -1
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/data/component-mapping.csv +47 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-01-init.md +148 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-01b-continue.md +79 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-02-bridge.md +114 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-02b-kit-warmup.md +96 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-03-scenarios.md +102 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-04-specs.md +97 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-05-prototype.md +102 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-06-handoff.md +96 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/product-brief-bridge.md +68 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/proposal-index.md +46 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/trigger-map-bridge.md +54 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/workflow.md +82 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/workflow_ext.md +195 -0
- package/siesa-agents/sa/sa-init-devops/scripts/sa-init-devops.js +46 -50
- package/siesa-agents/wds/config.yaml +20 -0
- package/siesa-agents/wds/data/agent-contracts.md +72 -0
- package/siesa-agents/wds/data/agent-guides/freya/agentic-development.md +223 -0
- package/siesa-agents/wds/data/agent-guides/freya/content-creation.md +270 -0
- package/siesa-agents/wds/data/agent-guides/freya/design-system.md +333 -0
- package/siesa-agents/wds/data/agent-guides/freya/meta-content-guide.md +495 -0
- package/siesa-agents/wds/data/agent-guides/freya/specification-quality.md +262 -0
- package/siesa-agents/wds/data/agent-guides/freya/strategic-design.md +116 -0
- package/siesa-agents/wds/data/agent-guides/saga/content-structure-principles.md +190 -0
- package/siesa-agents/wds/data/agent-guides/saga/conversational-followups.md +372 -0
- package/siesa-agents/wds/data/agent-guides/saga/discovery-conversation.md +265 -0
- package/siesa-agents/wds/data/agent-guides/saga/dream-up-approach.md +1034 -0
- package/siesa-agents/wds/data/agent-guides/saga/inspiration-analysis.md +215 -0
- package/siesa-agents/wds/data/agent-guides/saga/resources/project-brief.template.md +187 -0
- package/siesa-agents/wds/data/agent-guides/saga/seo-strategy-guide.md +391 -0
- package/siesa-agents/wds/data/agent-guides/saga/strategic-documentation.md +454 -0
- package/siesa-agents/wds/data/agent-guides/saga/trigger-mapping.md +653 -0
- package/siesa-agents/wds/data/agent-guides/saga/working-with-existing-materials.md +172 -0
- package/siesa-agents/wds/data/design-system/component-boundaries.md +318 -0
- package/siesa-agents/wds/data/design-system/figma-component-structure.md +697 -0
- package/siesa-agents/wds/data/design-system/naming-conventions.md +200 -0
- package/siesa-agents/wds/data/design-system/state-management.md +93 -0
- package/siesa-agents/wds/data/design-system/token-architecture.md +474 -0
- package/siesa-agents/wds/data/design-system/validation-patterns.md +74 -0
- package/siesa-agents/wds/data/presentations/freya-how-i-help.md +63 -0
- package/siesa-agents/wds/data/presentations/freya-intro.md +269 -0
- package/siesa-agents/wds/data/presentations/freya-presentation.md +77 -0
- package/siesa-agents/wds/data/presentations/freya-workflows-guide.md +51 -0
- package/siesa-agents/wds/data/presentations/mimir-agents-overview.md +66 -0
- package/siesa-agents/wds/data/presentations/mimir-tone-setting.md +48 -0
- package/siesa-agents/wds/data/presentations/saga-how-i-help.md +62 -0
- package/siesa-agents/wds/data/presentations/saga-intro.md +285 -0
- package/siesa-agents/wds/data/presentations/saga-presentation.md +74 -0
- package/siesa-agents/wds/data/presentations/saga-workflows-guide.md +48 -0
- package/siesa-agents/wds/data/shared-activation.md +49 -0
- package/siesa-agents/wds/data/wds-glossary.md +98 -0
- package/siesa-agents/wds/module-help.csv +19 -0
- package/siesa-agents/wds/scripts/README.md +155 -0
- package/siesa-agents/wds/scripts/wds-add-object.js +207 -0
- package/siesa-agents/wds/scripts/wds-add-spacing.js +158 -0
- package/siesa-agents/wds/scripts/wds-init-page.js +234 -0
- package/siesa-agents/wds/scripts/wds-init-scenario.js +125 -0
- package/siesa-agents/wds/scripts/wds-nav.js +206 -0
- package/siesa-agents/wds/scripts/wds-validate.js +306 -0
- package/siesa-agents/wds/skills/freya.activation.md +204 -0
- package/siesa-agents/wds/skills/handoff.md +91 -0
- package/siesa-agents/wds/skills/saga.activation.md +169 -0
- package/siesa-agents/wds/skills/shared/git.md +55 -0
- package/siesa-agents/wds/skills/start.md +99 -0
- package/siesa-agents/wds/skills/wrap.md +198 -0
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
# Design Token Architecture
|
|
2
|
+
|
|
3
|
+
**Purpose:** Core principles for separating semantic structure from visual style.
|
|
4
|
+
|
|
5
|
+
**Referenced by:** All component-type instructions
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Core Principle
|
|
10
|
+
|
|
11
|
+
**Separate semantic structure from visual style.**
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
HTML/Structure = Meaning (what it is)
|
|
15
|
+
Design Tokens = Appearance (how it looks)
|
|
16
|
+
|
|
17
|
+
They should be independent!
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## The Problem
|
|
23
|
+
|
|
24
|
+
**Bad Practice:**
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<h2 class="text-4xl font-bold text-blue-600">Heading</h2>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Issues:**
|
|
31
|
+
|
|
32
|
+
- Visual styling mixed with semantic HTML
|
|
33
|
+
- Can't change h2 appearance without changing all h2s
|
|
34
|
+
- h2 means "second-level heading" but looks like "display large"
|
|
35
|
+
- Breaks separation of concerns
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## The Solution
|
|
40
|
+
|
|
41
|
+
**Good Practice:**
|
|
42
|
+
|
|
43
|
+
**HTML (Semantic):**
|
|
44
|
+
|
|
45
|
+
```html
|
|
46
|
+
<h2 class="heading-section">Heading</h2>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Design Tokens (Visual):**
|
|
50
|
+
|
|
51
|
+
```css
|
|
52
|
+
.heading-section {
|
|
53
|
+
font-size: var(--text-4xl);
|
|
54
|
+
font-weight: var(--font-bold);
|
|
55
|
+
color: var(--color-primary-600);
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Benefits:**
|
|
60
|
+
|
|
61
|
+
- Semantic HTML stays semantic
|
|
62
|
+
- Visual style is centralized
|
|
63
|
+
- Can change appearance without touching HTML
|
|
64
|
+
- Clear separation of concerns
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Token Hierarchy
|
|
69
|
+
|
|
70
|
+
### Level 1: Raw Values
|
|
71
|
+
|
|
72
|
+
```css
|
|
73
|
+
--spacing-4: 1rem;
|
|
74
|
+
--color-blue-600: #2563eb;
|
|
75
|
+
--font-size-4xl: 2.25rem;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Level 2: Semantic Tokens
|
|
79
|
+
|
|
80
|
+
```css
|
|
81
|
+
--text-heading-large: var(--font-size-4xl);
|
|
82
|
+
--color-primary: var(--color-blue-600);
|
|
83
|
+
--spacing-section: var(--spacing-4);
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Level 3: Component Tokens
|
|
87
|
+
|
|
88
|
+
```css
|
|
89
|
+
--button-padding-x: var(--spacing-section);
|
|
90
|
+
--button-color-primary: var(--color-primary);
|
|
91
|
+
--heading-size-section: var(--text-heading-large);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Use Level 2 or 3 in components, never Level 1 directly.**
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Application to WDS
|
|
99
|
+
|
|
100
|
+
### In Page Specifications
|
|
101
|
+
|
|
102
|
+
**Specify semantic structure:**
|
|
103
|
+
|
|
104
|
+
```yaml
|
|
105
|
+
Page Structure:
|
|
106
|
+
- Section Heading (h2)
|
|
107
|
+
- Body text (p)
|
|
108
|
+
- Primary button (button)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**NOT visual styling:**
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
# ❌ Don't do this
|
|
115
|
+
Page Structure:
|
|
116
|
+
- Large blue bold text
|
|
117
|
+
- 16px gray text
|
|
118
|
+
- Blue rounded button
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### In Design System
|
|
122
|
+
|
|
123
|
+
**Specify visual styling:**
|
|
124
|
+
|
|
125
|
+
```yaml
|
|
126
|
+
Section Heading:
|
|
127
|
+
html_element: h2
|
|
128
|
+
design_token: heading-section
|
|
129
|
+
|
|
130
|
+
Design Token Definition:
|
|
131
|
+
heading-section:
|
|
132
|
+
font-size: text-4xl
|
|
133
|
+
font-weight: bold
|
|
134
|
+
color: primary-600
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Component-Type Instructions
|
|
140
|
+
|
|
141
|
+
### Text Heading Example
|
|
142
|
+
|
|
143
|
+
**When specifying a heading:**
|
|
144
|
+
|
|
145
|
+
1. **Identify semantic level** (h1-h6)
|
|
146
|
+
- h1 = Page title
|
|
147
|
+
- h2 = Section heading
|
|
148
|
+
- h3 = Subsection heading
|
|
149
|
+
- etc.
|
|
150
|
+
|
|
151
|
+
2. **Map to design token**
|
|
152
|
+
- h1 → display-large
|
|
153
|
+
- h2 → heading-section
|
|
154
|
+
- h3 → heading-subsection
|
|
155
|
+
|
|
156
|
+
3. **Store separately**
|
|
157
|
+
- Page spec: `<h2>` (semantic)
|
|
158
|
+
- Design system: `heading-section` token (visual)
|
|
159
|
+
|
|
160
|
+
**Example Output:**
|
|
161
|
+
|
|
162
|
+
**Page Spec:**
|
|
163
|
+
|
|
164
|
+
```yaml
|
|
165
|
+
Hero Section:
|
|
166
|
+
heading:
|
|
167
|
+
element: h2
|
|
168
|
+
token: heading-section
|
|
169
|
+
content: 'Welcome to Our Product'
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Design System:**
|
|
173
|
+
|
|
174
|
+
```yaml
|
|
175
|
+
Tokens:
|
|
176
|
+
heading-section:
|
|
177
|
+
font-size: 2.25rem
|
|
178
|
+
font-weight: 700
|
|
179
|
+
line-height: 1.2
|
|
180
|
+
color: gray-900
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Button Example
|
|
186
|
+
|
|
187
|
+
**When specifying a button:**
|
|
188
|
+
|
|
189
|
+
1. **Identify semantic element**
|
|
190
|
+
- `<button>` for actions
|
|
191
|
+
- `<a>` for navigation (even if styled as button)
|
|
192
|
+
|
|
193
|
+
2. **Map to component**
|
|
194
|
+
- Action → Button component
|
|
195
|
+
- Navigation → Link component (button variant)
|
|
196
|
+
|
|
197
|
+
3. **Store separately**
|
|
198
|
+
- Page spec: `<button>` + purpose
|
|
199
|
+
- Design system: Button component styling
|
|
200
|
+
|
|
201
|
+
**Example Output:**
|
|
202
|
+
|
|
203
|
+
**Page Spec:**
|
|
204
|
+
|
|
205
|
+
```yaml
|
|
206
|
+
Login Form:
|
|
207
|
+
submit_button:
|
|
208
|
+
element: button
|
|
209
|
+
type: submit
|
|
210
|
+
component: Button.primary
|
|
211
|
+
label: 'Log in'
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Design System:**
|
|
215
|
+
|
|
216
|
+
```yaml
|
|
217
|
+
Button Component:
|
|
218
|
+
variants:
|
|
219
|
+
primary:
|
|
220
|
+
background: primary-600
|
|
221
|
+
color: white
|
|
222
|
+
padding: spacing-2 spacing-4
|
|
223
|
+
border-radius: radius-md
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Input Field Example
|
|
229
|
+
|
|
230
|
+
**When specifying an input:**
|
|
231
|
+
|
|
232
|
+
1. **Identify semantic type**
|
|
233
|
+
- `<input type="text">` for text
|
|
234
|
+
- `<input type="email">` for email
|
|
235
|
+
- `<input type="password">` for password
|
|
236
|
+
|
|
237
|
+
2. **Map to component**
|
|
238
|
+
- Text input → Input Field component
|
|
239
|
+
- Email input → Input Field.email variant
|
|
240
|
+
|
|
241
|
+
3. **Store separately**
|
|
242
|
+
- Page spec: Input type + validation + labels
|
|
243
|
+
- Design system: Input Field styling
|
|
244
|
+
|
|
245
|
+
**Example Output:**
|
|
246
|
+
|
|
247
|
+
**Page Spec:**
|
|
248
|
+
|
|
249
|
+
```yaml
|
|
250
|
+
Login Form:
|
|
251
|
+
email_field:
|
|
252
|
+
element: input
|
|
253
|
+
type: email
|
|
254
|
+
component: InputField.email
|
|
255
|
+
label: 'Email address'
|
|
256
|
+
placeholder: 'you@example.com'
|
|
257
|
+
required: true
|
|
258
|
+
validation: email_format
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Design System:**
|
|
262
|
+
|
|
263
|
+
```yaml
|
|
264
|
+
Input Field Component:
|
|
265
|
+
base_styling:
|
|
266
|
+
height: 2.5rem
|
|
267
|
+
padding: spacing-2 spacing-3
|
|
268
|
+
border: 1px solid gray-300
|
|
269
|
+
border-radius: radius-md
|
|
270
|
+
font-size: text-base
|
|
271
|
+
|
|
272
|
+
variants:
|
|
273
|
+
email:
|
|
274
|
+
icon: envelope
|
|
275
|
+
autocomplete: email
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Why This Matters
|
|
281
|
+
|
|
282
|
+
### For Designers
|
|
283
|
+
|
|
284
|
+
✅ **Consistency:** All h2s can look the same without manual styling
|
|
285
|
+
✅ **Flexibility:** Change all section headings by updating one token
|
|
286
|
+
✅ **Clarity:** Semantic meaning preserved
|
|
287
|
+
✅ **Scalability:** Easy to maintain as design system grows
|
|
288
|
+
|
|
289
|
+
### For Developers
|
|
290
|
+
|
|
291
|
+
✅ **Semantic HTML:** Proper HTML structure
|
|
292
|
+
✅ **Accessibility:** Screen readers understand structure
|
|
293
|
+
✅ **Maintainability:** Styling centralized
|
|
294
|
+
✅ **Performance:** Reusable styles
|
|
295
|
+
|
|
296
|
+
### For Design Systems
|
|
297
|
+
|
|
298
|
+
✅ **Single Source of Truth:** Tokens define appearance
|
|
299
|
+
✅ **Easy Updates:** Change tokens, not components
|
|
300
|
+
✅ **Consistency:** Automatic consistency across pages
|
|
301
|
+
✅ **Documentation:** Clear token → component mapping
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Common Mistakes
|
|
306
|
+
|
|
307
|
+
### Mistake 1: Mixing Structure and Style
|
|
308
|
+
|
|
309
|
+
**❌ Bad:**
|
|
310
|
+
|
|
311
|
+
```yaml
|
|
312
|
+
Page:
|
|
313
|
+
- "Large blue heading" (h2)
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**✅ Good:**
|
|
317
|
+
|
|
318
|
+
```yaml
|
|
319
|
+
Page:
|
|
320
|
+
- Section heading (h2 → heading-section token)
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Mistake 2: Hardcoding Visual Values
|
|
324
|
+
|
|
325
|
+
**❌ Bad:**
|
|
326
|
+
|
|
327
|
+
```yaml
|
|
328
|
+
Button:
|
|
329
|
+
background: #2563eb
|
|
330
|
+
padding: 16px
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**✅ Good:**
|
|
334
|
+
|
|
335
|
+
```yaml
|
|
336
|
+
Button:
|
|
337
|
+
background: primary-600
|
|
338
|
+
padding: spacing-4
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Mistake 3: Using Visual Names for Semantic Elements
|
|
342
|
+
|
|
343
|
+
**❌ Bad:**
|
|
344
|
+
|
|
345
|
+
```yaml
|
|
346
|
+
<h2 class="big-blue-text">
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**✅ Good:**
|
|
350
|
+
|
|
351
|
+
```yaml
|
|
352
|
+
<h2 class="section-heading">
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Token Naming Conventions
|
|
358
|
+
|
|
359
|
+
### Colors
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
--color-{category}-{shade}
|
|
363
|
+
--color-primary-600
|
|
364
|
+
--color-gray-900
|
|
365
|
+
--color-success-500
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Typography
|
|
369
|
+
|
|
370
|
+
```
|
|
371
|
+
--text-{size}
|
|
372
|
+
--text-base
|
|
373
|
+
--text-lg
|
|
374
|
+
--text-4xl
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### Spacing
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
--spacing-{scale}
|
|
381
|
+
--spacing-2
|
|
382
|
+
--spacing-4
|
|
383
|
+
--spacing-8
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Component-Specific
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
--{component}-{property}-{variant}
|
|
390
|
+
--button-padding-primary
|
|
391
|
+
--input-border-error
|
|
392
|
+
--card-shadow-elevated
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Implementation in WDS
|
|
398
|
+
|
|
399
|
+
### Phase 4: Page Specification
|
|
400
|
+
|
|
401
|
+
**Agent specifies:**
|
|
402
|
+
|
|
403
|
+
- Semantic HTML elements
|
|
404
|
+
- Component references
|
|
405
|
+
- Content and labels
|
|
406
|
+
|
|
407
|
+
**Agent does NOT specify:**
|
|
408
|
+
|
|
409
|
+
- Exact colors
|
|
410
|
+
- Exact sizes
|
|
411
|
+
- Exact spacing
|
|
412
|
+
|
|
413
|
+
### Phase 5: Design System
|
|
414
|
+
|
|
415
|
+
**Agent specifies:**
|
|
416
|
+
|
|
417
|
+
- Design tokens
|
|
418
|
+
- Component styling
|
|
419
|
+
- Visual properties
|
|
420
|
+
|
|
421
|
+
**Agent does NOT specify:**
|
|
422
|
+
|
|
423
|
+
- Page-specific content
|
|
424
|
+
- Semantic structure
|
|
425
|
+
|
|
426
|
+
### Integration
|
|
427
|
+
|
|
428
|
+
**Page spec references design system:**
|
|
429
|
+
|
|
430
|
+
```yaml
|
|
431
|
+
Hero:
|
|
432
|
+
heading:
|
|
433
|
+
element: h2
|
|
434
|
+
token: heading-hero ← Reference to design system
|
|
435
|
+
content: 'Welcome'
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**Design system defines token:**
|
|
439
|
+
|
|
440
|
+
```yaml
|
|
441
|
+
Tokens:
|
|
442
|
+
heading-hero:
|
|
443
|
+
font-size: 3rem
|
|
444
|
+
font-weight: 800
|
|
445
|
+
color: gray-900
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## Company Customization
|
|
451
|
+
|
|
452
|
+
**Companies can fork WDS and customize tokens:**
|
|
453
|
+
|
|
454
|
+
```
|
|
455
|
+
Company Fork:
|
|
456
|
+
├── data/design-system/
|
|
457
|
+
│ ├── token-architecture.md (this file - keep principles)
|
|
458
|
+
│ ├── company-tokens.md (company-specific token values)
|
|
459
|
+
│ └── token-mappings.md (h2 → company-heading-large)
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
**Result:** Every project uses company's design tokens automatically.
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## Further Reading
|
|
467
|
+
|
|
468
|
+
- **Naming Conventions:** `naming-conventions.md`
|
|
469
|
+
- **Component Boundaries:** `component-boundaries.md`
|
|
470
|
+
- **State Management:** `state-management.md`
|
|
471
|
+
|
|
472
|
+
---
|
|
473
|
+
|
|
474
|
+
**This is a core principle. Reference this document from all component-type instructions.**
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Form Validation Patterns
|
|
2
|
+
|
|
3
|
+
**Purpose:** Standard patterns for form validation and error handling.
|
|
4
|
+
|
|
5
|
+
**Referenced by:** Input Field, Form component-type instructions
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Validation Types
|
|
10
|
+
|
|
11
|
+
### Client-Side Validation
|
|
12
|
+
|
|
13
|
+
**Required Fields:**
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
validation:
|
|
17
|
+
required: true
|
|
18
|
+
message: 'This field is required'
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Format Validation:**
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
validation:
|
|
25
|
+
type: email
|
|
26
|
+
pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/
|
|
27
|
+
message: 'Please enter a valid email address'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Length Validation:**
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
validation:
|
|
34
|
+
minLength: 8
|
|
35
|
+
maxLength: 100
|
|
36
|
+
message: 'Password must be 8-100 characters'
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Error States
|
|
42
|
+
|
|
43
|
+
**Visual Indicators:**
|
|
44
|
+
|
|
45
|
+
- Red border
|
|
46
|
+
- Error icon
|
|
47
|
+
- Error message below field
|
|
48
|
+
- Error color for label
|
|
49
|
+
|
|
50
|
+
**Timing:**
|
|
51
|
+
|
|
52
|
+
- Show on blur (after user leaves field)
|
|
53
|
+
- Show on submit attempt
|
|
54
|
+
- Clear on valid input
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Success States
|
|
59
|
+
|
|
60
|
+
**Visual Indicators:**
|
|
61
|
+
|
|
62
|
+
- Green border (optional)
|
|
63
|
+
- Success icon (optional)
|
|
64
|
+
- Success message (optional)
|
|
65
|
+
|
|
66
|
+
**When to Show:**
|
|
67
|
+
|
|
68
|
+
- After successful validation
|
|
69
|
+
- For critical fields (password strength)
|
|
70
|
+
- For async validation (username availability)
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
**Reference this when specifying form components.**
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# How Freya Helps You Succeed with UX and Prototyping
|
|
2
|
+
|
|
3
|
+
**Instructions:** Present each step one at a time. After each step, ask if the user
|
|
4
|
+
wants to continue to the next step or is ready to get started working.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Step 1: What I Do
|
|
9
|
+
|
|
10
|
+
I turn strategy into experiences users can see and interact with. I create detailed
|
|
11
|
+
specifications, interactive prototypes, and design systems — artifacts that developers
|
|
12
|
+
can build from with confidence.
|
|
13
|
+
|
|
14
|
+
**My core outputs:**
|
|
15
|
+
- **Scenarios** — complete user journeys with page-by-page specs
|
|
16
|
+
- **Prototypes** — interactive HTML that lets you experience the design
|
|
17
|
+
- **Design systems** — reusable tokens and components (when needed)
|
|
18
|
+
- **Validation** — checking that what was built matches the design
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Step 2: How I Work
|
|
23
|
+
|
|
24
|
+
I start with WHY before WHAT. Before designing anything, I read the strategic
|
|
25
|
+
context (Product Brief, Trigger Map) to understand what drives users and what
|
|
26
|
+
the business needs.
|
|
27
|
+
|
|
28
|
+
**My pattern:**
|
|
29
|
+
1. Load strategic context (silently — I don't ask you for it)
|
|
30
|
+
2. Discuss the scenario or feature with you
|
|
31
|
+
3. Create specifications with logical explanations
|
|
32
|
+
4. Build prototypes you can interact with
|
|
33
|
+
5. Iterate based on your feedback
|
|
34
|
+
|
|
35
|
+
Design without strategy is decoration. I make sure every choice connects back to a reason.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Step 3: What I Need from You
|
|
40
|
+
|
|
41
|
+
- **Strategic foundation** — Product Brief and Trigger Map (from Saga). I can work
|
|
42
|
+
without them, but the design will be stronger with them.
|
|
43
|
+
- **Your vision** — what should users experience? What matters most?
|
|
44
|
+
- **Feedback** — I'll show you specs and prototypes, tell me what works and what doesn't
|
|
45
|
+
- **Decisions** — I'll present options with trade-offs, you pick the direction
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Step 4: What You Get
|
|
50
|
+
|
|
51
|
+
After working with me, you'll have:
|
|
52
|
+
|
|
53
|
+
- **Scenario specs** — complete page-by-page specifications with object IDs
|
|
54
|
+
- **Interactive prototypes** — HTML files you can click through
|
|
55
|
+
- **Sketches** — visual concepts for layout and interaction
|
|
56
|
+
- **Design system** (optional) — tokens, components, and a brand book
|
|
57
|
+
- **Test results** — validation that implementation matches design
|
|
58
|
+
|
|
59
|
+
These specs are detailed enough for developers to build from without guessing.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
**Ready to get started? Tell me what you want to design, or pick a workflow from my menu.**
|