@jaimevalasek/aioson 1.4.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +661 -21
  3. package/README.md +3 -1
  4. package/docs/en/squad-dashboard.md +372 -0
  5. package/docs/openclaw-bridge.md +308 -0
  6. package/docs/pt/agentes.md +124 -10
  7. package/docs/pt/cenarios.md +46 -2
  8. package/docs/pt/comandos-cli.md +60 -1
  9. package/docs/pt/inicio-rapido.md +18 -2
  10. package/docs/pt/squad-dashboard.md +373 -0
  11. package/docs/testing/genome-2.0-matrix.md +5 -5
  12. package/docs/testing/genome-2.0-rollout.md +9 -9
  13. package/package.json +2 -2
  14. package/src/backup-local.js +74 -0
  15. package/src/cli.js +98 -0
  16. package/src/commands/backup-local-cmd.js +25 -0
  17. package/src/commands/runtime.js +242 -0
  18. package/src/commands/setup-context.js +7 -2
  19. package/src/commands/squad-daemon.js +209 -0
  20. package/src/commands/squad-dashboard.js +39 -0
  21. package/src/commands/squad-deploy.js +64 -0
  22. package/src/commands/squad-doctor.js +52 -0
  23. package/src/commands/squad-mcp.js +270 -0
  24. package/src/commands/squad-processes.js +56 -0
  25. package/src/commands/squad-recovery.js +42 -0
  26. package/src/commands/squad-roi.js +291 -0
  27. package/src/commands/squad-score.js +250 -0
  28. package/src/commands/squad-status.js +37 -1
  29. package/src/commands/squad-validate.js +62 -1
  30. package/src/commands/squad-webhook.js +160 -0
  31. package/src/commands/squad-worker.js +191 -0
  32. package/src/commands/squad-worktrees.js +75 -0
  33. package/src/commands/web-map.js +70 -0
  34. package/src/commands/web-scrape.js +71 -0
  35. package/src/constants.js +8 -0
  36. package/src/context-writer.js +45 -1
  37. package/src/i18n/messages/en.js +127 -1
  38. package/src/i18n/messages/es.js +117 -0
  39. package/src/i18n/messages/fr.js +117 -0
  40. package/src/i18n/messages/pt-BR.js +126 -1
  41. package/src/lib/webhook-server.js +328 -0
  42. package/src/mcp-connectors/registry.js +602 -0
  43. package/src/runtime-store.js +259 -2
  44. package/src/squad/external-session.js +180 -0
  45. package/src/squad/inter-squad.js +74 -0
  46. package/src/squad/recovery-context.js +201 -0
  47. package/src/squad/worktree-manager.js +114 -0
  48. package/src/squad-daemon.js +490 -0
  49. package/src/squad-dashboard/api.js +223 -0
  50. package/src/squad-dashboard/attachment-handler.js +93 -0
  51. package/src/squad-dashboard/context-monitor.js +157 -0
  52. package/src/squad-dashboard/execution-logs.js +115 -0
  53. package/src/squad-dashboard/hunk-review.js +209 -0
  54. package/src/squad-dashboard/metrics.js +133 -0
  55. package/src/squad-dashboard/process-monitor.js +125 -0
  56. package/src/squad-dashboard/renderer.js +858 -0
  57. package/src/squad-dashboard/server.js +232 -0
  58. package/src/squad-dashboard/styles.js +525 -0
  59. package/src/squad-dashboard/token-tracker.js +99 -0
  60. package/src/web.js +284 -0
  61. package/src/worker-runner.js +339 -0
  62. package/template/.aioson/agents/analyst.md +4 -0
  63. package/template/.aioson/agents/architect.md +4 -0
  64. package/template/.aioson/agents/dev.md +120 -11
  65. package/template/.aioson/agents/deyvin.md +8 -0
  66. package/template/.aioson/agents/neo.md +152 -0
  67. package/template/.aioson/agents/orache.md +17 -0
  68. package/template/.aioson/agents/orchestrator.md +26 -0
  69. package/template/.aioson/agents/product.md +60 -12
  70. package/template/.aioson/agents/qa.md +1 -0
  71. package/template/.aioson/agents/setup.md +63 -19
  72. package/template/.aioson/agents/sheldon.md +603 -0
  73. package/template/.aioson/agents/squad.md +191 -0
  74. package/template/.aioson/agents/tester.md +254 -0
  75. package/template/.aioson/agents/ux-ui.md +12 -0
  76. package/template/.aioson/config.md +6 -0
  77. package/template/.aioson/locales/en/agents/analyst.md +8 -0
  78. package/template/.aioson/locales/en/agents/architect.md +8 -0
  79. package/template/.aioson/locales/en/agents/dev.md +66 -7
  80. package/template/.aioson/locales/en/agents/deyvin.md +8 -0
  81. package/template/.aioson/locales/en/agents/neo.md +8 -0
  82. package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
  83. package/template/.aioson/locales/en/agents/qa.md +49 -0
  84. package/template/.aioson/locales/en/agents/setup.md +2 -1
  85. package/template/.aioson/locales/en/agents/sheldon.md +340 -0
  86. package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
  87. package/template/.aioson/locales/es/agents/analyst.md +8 -0
  88. package/template/.aioson/locales/es/agents/architect.md +8 -0
  89. package/template/.aioson/locales/es/agents/dev.md +66 -7
  90. package/template/.aioson/locales/es/agents/deyvin.md +8 -0
  91. package/template/.aioson/locales/es/agents/neo.md +48 -0
  92. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  93. package/template/.aioson/locales/es/agents/qa.md +26 -0
  94. package/template/.aioson/locales/es/agents/setup.md +2 -1
  95. package/template/.aioson/locales/es/agents/sheldon.md +192 -0
  96. package/template/.aioson/locales/es/agents/squad.md +63 -0
  97. package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
  98. package/template/.aioson/locales/fr/agents/analyst.md +8 -0
  99. package/template/.aioson/locales/fr/agents/architect.md +8 -0
  100. package/template/.aioson/locales/fr/agents/dev.md +66 -7
  101. package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
  102. package/template/.aioson/locales/fr/agents/neo.md +48 -0
  103. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  104. package/template/.aioson/locales/fr/agents/qa.md +26 -0
  105. package/template/.aioson/locales/fr/agents/setup.md +2 -1
  106. package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
  107. package/template/.aioson/locales/fr/agents/squad.md +63 -0
  108. package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
  109. package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
  110. package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
  111. package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
  112. package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
  113. package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
  114. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
  115. package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
  116. package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
  117. package/template/.aioson/locales/pt-BR/agents/setup.md +2 -1
  118. package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
  119. package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
  120. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
  121. package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
  122. package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
  123. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
  124. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
  125. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
  126. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
  127. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
  128. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
  129. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
  130. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
  131. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
  132. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
  133. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
  134. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
  135. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
  136. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
  137. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
  138. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
  139. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
  140. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
  141. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
  142. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
  143. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
  144. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
  145. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
  146. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
  147. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
  148. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
  149. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
  150. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
  151. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
  152. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
  153. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
  154. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
  155. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
  156. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
  157. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
  158. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
  159. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
  160. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
  161. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
  162. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
  163. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
  164. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
  165. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
  166. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
  167. package/template/.aioson/skills/squad/formats/catalog.json +15 -0
  168. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
  169. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
  170. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
  171. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
  172. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
  173. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
  174. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
  175. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
  176. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
  177. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
  178. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
  179. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
  180. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
  181. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
  182. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
  183. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
  184. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
  185. package/template/.aioson/skills/static/debugging-protocol.md +42 -0
  186. package/template/.aioson/skills/static/git-worktrees.md +36 -0
  187. package/template/.aioson/tasks/implementation-plan.md +19 -0
  188. package/template/.aioson/tasks/squad-design.md +28 -0
  189. package/template/.aioson/tasks/squad-profile.md +48 -0
  190. package/template/.aioson/tasks/squad-review.md +61 -0
  191. package/template/.aioson/tasks/squad-task-decompose.md +66 -0
  192. package/template/.claude/commands/aioson/agent/neo.md +5 -0
  193. package/template/.claude/commands/aioson/agent/tester.md +5 -0
  194. package/template/.gemini/GEMINI.md +1 -0
  195. package/template/.gemini/commands/aios-neo.toml +4 -0
  196. package/template/.gemini/commands/aios-tester.toml +6 -0
  197. package/template/AGENTS.md +3 -0
  198. package/template/CLAUDE.md +5 -2
  199. package/template/OPENCODE.md +2 -0
@@ -35,6 +35,65 @@ A commercial page using this skill should feel **premium and technical, but stil
35
35
 
36
36
  ---
37
37
 
38
+ ## Website Composition Library
39
+
40
+ Choose one primary composition before building sections. Do not default to the same centered hero every time.
41
+
42
+ ### 1. Split Narrative
43
+
44
+ Use when:
45
+ - the product needs both message and visual proof above the fold
46
+
47
+ Composition:
48
+ - headline and CTA on one side
49
+ - product frame, screenshot, or visual artifact on the other
50
+ - secondary proof rail below
51
+
52
+ ### 2. Editorial Stack
53
+
54
+ Use when:
55
+ - the brand needs intelligence, depth, or cultural weight
56
+
57
+ Composition:
58
+ - offset headline
59
+ - side notes, quote blocks, or pull metrics
60
+ - more asymmetry, more narrative rhythm
61
+
62
+ ### 3. Proof-First
63
+
64
+ Use when:
65
+ - credibility matters more than storytelling flourish
66
+
67
+ Composition:
68
+ - immediate outcomes, metrics, logos, or customer proof near the hero
69
+ - product explanation follows
70
+
71
+ ### 4. Product Theater
72
+
73
+ Use when:
74
+ - the interface itself is the main differentiator
75
+
76
+ Composition:
77
+ - immersive product frame
78
+ - layered caption rails
79
+ - supporting sections explain workflows and advantages
80
+
81
+ ### 5. Institutional Precision
82
+
83
+ Use when:
84
+ - the site must feel trustworthy, executive, and polished
85
+
86
+ Composition:
87
+ - concise hero
88
+ - structured value blocks
89
+ - case study or trust strip
90
+ - elegant CTA instead of hype-heavy spectacle
91
+
92
+ Rule:
93
+ - pick one composition and one signature move from `references/art-direction.md`, then propagate them intentionally
94
+
95
+ ---
96
+
38
97
  ## Default theme for websites
39
98
 
40
99
  - **Light theme**: Institutional sites, corporate, marketing pages, client-facing products
@@ -55,7 +114,7 @@ If the user does not specify, use **dark with a light option toggle** for tech/S
55
114
  │ HERO SECTION (padding: space-24 top, space-20 bottom) │
56
115
  │ ┌──────────────────────────────────────────────────┐ │
57
116
  │ │ MONO LABEL: tagline (centered) │ │
58
- │ │ DISPLAY HEADING text-5xl, weight-black (centered)│ │
117
+ │ │ DISPLAY HEADING text-5xl, weight-bold (centered) │ │
59
118
  │ │ Subtitle: text-lg, text-secondary (centered) │ │
60
119
  │ │ [CTA Primary Button] [Secondary Button] │ │
61
120
  │ └──────────────────────────────────────────────────┘ │
@@ -85,12 +144,15 @@ If the user does not specify, use **dark with a light option toggle** for tech/S
85
144
 
86
145
  ### Hero section (required elements)
87
146
 
88
- 1. **Mono label** above heading — category / tagline in monospace uppercase
89
- 2. **Display heading** — `text-5xl`, `weight-black`, `tracking-tight`, `line-height: 1.1`
147
+ 1. **Mono label** above heading — category / tagline in monospace uppercase, used sparingly
148
+ 2. **Display heading** — `text-5xl`, `weight-bold` or `weight-black` only when the hero truly needs extra emphasis, `tracking-tight`, `line-height: 1.1`
90
149
  3. **Subtitle** — 1–2 sentences, `text-lg`, `text-secondary`
91
150
  4. **Two CTAs** — primary (solid accent) + secondary (outline or ghost)
92
151
  5. **Optional**: hero visual (screenshot, illustration, or abstract mesh)
93
152
 
153
+ Hero rule:
154
+ - If the page would benefit from split, editorial, or proof-first composition, do not force all five elements into a centered stack.
155
+
94
156
  ```css
95
157
  .hero {
96
158
  min-height: 90vh; display: flex; align-items: center; justify-content: center;
@@ -108,7 +170,7 @@ If the user does not specify, use **dark with a light option toggle** for tech/S
108
170
  }
109
171
  .hero-heading {
110
172
  font-family: var(--font-display); font-size: var(--text-5xl);
111
- font-weight: var(--weight-black); color: var(--text-heading);
173
+ font-weight: var(--weight-bold); color: var(--text-heading);
112
174
  letter-spacing: var(--tracking-tight); line-height: 1.05;
113
175
  margin-bottom: var(--space-5);
114
176
  }
@@ -142,7 +204,7 @@ If the user does not specify, use **dark with a light option toggle** for tech/S
142
204
  }
143
205
  .section-heading {
144
206
  font-family: var(--font-display); font-size: var(--text-3xl);
145
- font-weight: var(--weight-black); color: var(--text-heading);
207
+ font-weight: var(--weight-bold); color: var(--text-heading);
146
208
  letter-spacing: var(--tracking-tight); line-height: var(--leading-tight);
147
209
  }
148
210
  ```
@@ -303,12 +365,13 @@ Two columns: [Left: contact info cards] [Right: form card]
303
365
  Primary CTA button:
304
366
  ```css
305
367
  .btn-primary {
306
- background: var(--accent); color: var(--bg-base);
307
- font-family: var(--font-mono); font-size: var(--text-sm);
368
+ background: var(--accent); color: var(--accent-contrast);
369
+ font-family: var(--font-body); font-size: var(--text-sm);
308
370
  font-weight: var(--weight-semibold); letter-spacing: var(--tracking-wide);
309
- text-transform: uppercase; padding: var(--space-3) var(--space-6);
371
+ text-transform: none; padding: var(--space-3) var(--space-6);
372
+ min-height: var(--control-md);
310
373
  border-radius: var(--radius-md); border: none; cursor: pointer;
311
- transition: var(--transition-base);
374
+ transition: var(--transition-base), transform 150ms ease, box-shadow 150ms ease;
312
375
  box-shadow: 0 0 20px var(--accent-glow);
313
376
  }
314
377
  .btn-primary:hover {
@@ -316,6 +379,10 @@ Primary CTA button:
316
379
  box-shadow: 0 0 32px var(--accent-glow), 0 4px 12px rgba(0,0,0,0.2);
317
380
  transform: translateY(-1px);
318
381
  }
382
+ .btn-primary:focus-visible {
383
+ outline: var(--focus-ring-width) solid var(--accent);
384
+ outline-offset: var(--focus-ring-offset);
385
+ }
319
386
  ```
320
387
 
321
388
  Secondary button:
@@ -323,18 +390,29 @@ Secondary button:
323
390
  .btn-secondary {
324
391
  background: transparent; color: var(--text-primary);
325
392
  border: 1px solid var(--border-medium);
326
- font-family: var(--font-mono); font-size: var(--text-sm);
393
+ font-family: var(--font-body); font-size: var(--text-sm);
327
394
  font-weight: var(--weight-semibold); letter-spacing: var(--tracking-wide);
328
- text-transform: uppercase; padding: var(--space-3) var(--space-6);
395
+ text-transform: none; padding: var(--space-3) var(--space-6);
396
+ min-height: var(--control-md);
329
397
  border-radius: var(--radius-md); cursor: pointer;
330
- transition: var(--transition-base);
398
+ transition: var(--transition-base), transform 150ms ease;
331
399
  }
332
400
  .btn-secondary:hover {
401
+ background: var(--accent-subtle);
333
402
  border-color: var(--border-accent);
334
403
  color: var(--accent);
335
404
  }
405
+ .btn-secondary:focus-visible {
406
+ outline: var(--focus-ring-width) solid var(--accent);
407
+ outline-offset: var(--focus-ring-offset);
408
+ }
336
409
  ```
337
410
 
411
+ Guardrails:
412
+ - Do not use `color: var(--bg-base)` for accent buttons in light theme.
413
+ - Default website CTAs should read like polished product buttons, not terminal labels.
414
+ - If uppercase mono is desired for branding reasons, keep the label very short and re-check contrast in hover/focus states.
415
+
338
416
  ---
339
417
 
340
418
  ## Key differences: dashboard vs website
@@ -348,3 +426,12 @@ Secondary button:
348
426
  | Cards | Dense, compact | Spacious, feature-oriented |
349
427
  | Navigation | Tab-heavy, sidebar | Linear anchors, single bar |
350
428
  | Background alternation | Same bg-base | Alternates `bg-base` / `bg-surface` |
429
+
430
+ ---
431
+
432
+ ## Anti-Generic Website Rules
433
+
434
+ - Do not repeat the same section rhythm from top to bottom.
435
+ - Do not rely on centered text alone to create impact.
436
+ - Use at least one memorable section transition, composition break, or proof rail.
437
+ - If the page looks like "SaaS template with nicer colors", it is not finished.
@@ -0,0 +1,209 @@
1
+ ---
2
+ name: warm-craft-ui
3
+ description: Warm Craft UI is a design system for approachable, human-centered interfaces with light backgrounds, rounded forms, warm accents, generous whitespace, and humanist typography. Use it when `design_skill: warm-craft-ui` is set in project.context.md OR when the user explicitly asks for "warm", "friendly UI", "clean light", "soft modern", "human-centered", "Notion-like", "Linear-like", "calm interface", or similar. Ideal for productivity apps, SaaS B2C, health, education, personal finance, and any product where trust, clarity, and approachability matter more than density or authority. Supports apps, dashboards, landing pages, and websites — light by default with an optional dark theme. Do NOT use this skill unless explicitly selected.
4
+ ---
5
+
6
+ # Warm Craft UI
7
+
8
+ A design system where **clarity is generosity and whitespace is confidence**. Warm Craft sits at the intersection of humanist typography and disciplined spacing — interfaces that feel handcrafted, breathable, and immediately trustworthy.
9
+
10
+ **This is one visual system.** Never combine it with another design skill.
11
+
12
+ ## Package structure
13
+
14
+ ```text
15
+ .aioson/skills/design/warm-craft-ui/
16
+ SKILL.md <- you are here (load this first)
17
+ references/
18
+ art-direction.md <- intent, domain exploration, expression modes, signature moves, anti-generic tests
19
+ design-tokens.md <- CSS variables light + dark, typography, token scope guardrails
20
+ components.md <- All reusable components (nav, cards, forms, tables, badges, modals, etc.)
21
+ patterns.md <- Page layouts: app shell, detail, settings, onboarding, list-detail
22
+ dashboards.md <- Dashboard presets: overview, analytics, activity feed, project board, admin
23
+ websites.md <- Landing page, product page, institutional layouts + anti-patterns
24
+ motion.md <- Animations: entrances, micro-interactions, scroll, loading states
25
+ ```
26
+
27
+ ## Activation rules
28
+
29
+ - Apply this package **only** when `project.context.md` contains `design_skill: "warm-craft-ui"` or the user explicitly chooses it.
30
+ - If another design skill is selected, do **not** load this package.
31
+ - Never auto-select this skill — always require explicit confirmation.
32
+ - If no skill is set yet, the active agent must ask or confirm before applying.
33
+
34
+ ## Responsibility boundary
35
+
36
+ This skill defines:
37
+ - Visual direction and aesthetic DNA
38
+ - Design tokens (colors, typography, spacing, radius, shadows)
39
+ - Component vocabulary and anatomy
40
+ - Page composition patterns
41
+ - Theme switching behavior (light/dark)
42
+
43
+ This skill does **not** decide:
44
+ - Stack (React, Vue, Blade, HTML, etc.)
45
+ - Output format (single file, multi-file, CSS modules, Tailwind, etc.)
46
+ - Icon library choice
47
+ - Whether a theme toggle exists in the product (the agent decides)
48
+
49
+ ## Loading guide
50
+
51
+ Always load only what the current task needs:
52
+
53
+ | Task | Load |
54
+ |---|---|
55
+ | Any UI work | `references/design-tokens.md` |
56
+ | Reusable components | `references/design-tokens.md` + `references/components.md` |
57
+ | Dashboard or admin panel | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/patterns.md` + `references/dashboards.md` |
58
+ | Detail / settings page | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/patterns.md` |
59
+ | Landing page or website | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/websites.md` |
60
+ | Motion / animation | add `references/motion.md` when animation materially improves the result |
61
+ | Full UI build | all seven reference files |
62
+
63
+ ## Visual signature — three pillars
64
+
65
+ 1. **Approachable warmth** — Light surfaces with subtle warm undertones. Rounded corners on everything. Colors that feel like sunlight through linen, not clinical LED panels. The interface should feel like a well-designed physical notebook, not a control room.
66
+ 2. **Typographic humanity** — Humanist sans-serif with visible character. Generous line-heights. Text that breathes. Headings that feel handwritten in their weight and tracking, even though they are perfectly set. Body text that is genuinely pleasant to read for long sessions.
67
+ 3. **Disciplined calm** — Generous whitespace that signals confidence, not emptiness. One accent color used sparingly. Subtle depth through soft shadows, not hard borders. Every element has room to exist without competing for attention.
68
+
69
+ ## Theme system
70
+
71
+ ```html
72
+ <div data-theme="light"> <!-- or data-theme="dark" -->
73
+ ```
74
+
75
+ - **Light (default)**: Productivity apps, content platforms, B2C SaaS, health, education, personal tools, most use cases
76
+ - **Dark**: Optional — for users who prefer it, night modes, media-heavy contexts
77
+ - **Both with toggle**: When the user asks, or when the product serves diverse contexts
78
+
79
+ If the user does not specify: default to **light with a theme toggle** available.
80
+
81
+ ## Visual DNA
82
+
83
+ ### Colors — light theme
84
+ - Background void: `#F8F6F3` (warm off-white, never pure #FFF)
85
+ - Background base: `#FDFCFA` (main app background)
86
+ - Surface: `#FFFFFF` (cards, elevated panels)
87
+ - Elevated: `#F3F1ED` (hover, nested, sidebar backgrounds)
88
+ - Primary accent: `#E07A5F` (terracotta/warm coral) — CTAs, active states, key highlights
89
+ - Text heading: `#2D3436` (warm charcoal, never pure black)
90
+ - Text primary: `#4A5568` (readable warm gray)
91
+ - Text secondary: `#8896A6` (muted)
92
+ - Text muted: `#B0BCC7` (hints, placeholders)
93
+
94
+ ### Colors — dark theme
95
+ - Background void: `#1A1814` (warm dark, not navy)
96
+ - Background base: `#211F1B` (main app background)
97
+ - Surface: `#2A2824` (cards)
98
+ - Elevated: `#353330` (hover, nested)
99
+ - Primary accent: `#F0967D` (lighter terracotta for dark backgrounds)
100
+ - Text heading: `#F5F0EB`
101
+ - Text primary: `#D4CBC2`
102
+ - Text secondary: `#9A9088`
103
+ - Text muted: `#6B6460`
104
+
105
+ ### Typography
106
+ - Headings: `Source Serif 4`, `weight-semibold (600)` or `weight-bold (700)` for page titles, `letter-spacing: -0.02em`
107
+ - Body: `Inter`, `weight-normal (400)`, `line-height: 1.7`
108
+ - Labels and metadata: `Inter`, `weight-medium (500)`, `font-size: 0.8rem`, `letter-spacing: 0.02em`
109
+ - Stats: `Source Serif 4`, `weight-bold (700)`, `font-size: 2.5rem`
110
+
111
+ ### Layout structure (apps)
112
+ ```
113
+ +----------------------------------------------------------+
114
+ | TOP BAR: [Logo] [Search (center, rounded)] [Avatar] |
115
+ +----------------------------------------------------------+
116
+ | | |
117
+ | SIDEBAR | CONTENT |
118
+ | 200px | PAGE HEADER (serif title + subtitle) |
119
+ | soft bg | |
120
+ | rounded | CONTENT SECTIONS |
121
+ | items | (generous padding, card groups) |
122
+ | | |
123
+ | [nav | SECTION: title + description |
124
+ | items | CARD GROUP (2-3 col, gap-6) |
125
+ | with | |
126
+ | icons] | SECTION: title + description |
127
+ | | CARD GROUP or TABLE |
128
+ +-----------+-----------------------------------------------+
129
+ ```
130
+
131
+ ### Signature details
132
+ - Rounded corners on everything: cards `radius-xl` (16px), buttons `radius-lg` (12px), inputs `radius-md` (8px)
133
+ - Soft shadows: `box-shadow` with warm tones, never harsh black drops
134
+ - Accent used sparingly: primary buttons, active nav, key badges — never borders, never backgrounds of sections
135
+ - Serif headings mixed with sans-serif body — the primary differentiator from every other UI
136
+ - Subtle background patterns: very faint dot grid or warm gradient wash on hero sections
137
+ - Illustrations and empty states: warm, hand-drawn style — never cold geometric
138
+ - Input fields: visible but soft borders, generous padding, rounded
139
+ - Active sidebar item: `background: var(--bg-elevated)` + `border-radius: var(--radius-lg)` + accent text — no hard left border
140
+ - Theme transition: `200ms ease` on background, color, border-color, box-shadow
141
+
142
+ ## Application rules
143
+
144
+ - Treat `references/design-tokens.md` as the source of truth for ALL tokens.
145
+ - Treat `references/art-direction.md` as the source of truth for expression, signature moves, and anti-generic decisions.
146
+ - Resolve the page variant before composing: apps use structured navigation rhythm; websites/landing pages use more narrative flow, larger typography, and editorial pacing.
147
+ - Never combine this package with `cognitive-core-ui`, `interface-design`, `premium-command-center-ui`, or any other design skill in the same task.
148
+ - Reuse the project's component library if one exists — map Warm Craft tokens onto it instead of rebuilding primitives.
149
+ - Adapt code examples to the active stack. Reference snippets are design specifications, not copy-paste code.
150
+ - Accessibility, responsiveness, and production semantics are the agent's responsibility (not this skill).
151
+
152
+ ## Intent before visuals
153
+
154
+ Before choosing layout, answer all three:
155
+
156
+ 1. Who is the human using this page right now?
157
+ 2. What is the main action or decision they must complete?
158
+ 3. How should this interface feel in concrete words, not generic labels?
159
+
160
+ Bad answers:
161
+ - "for users"
162
+ - "manage content"
163
+ - "clean and modern"
164
+
165
+ Good answers:
166
+ - "freelancer reviewing today's tasks over morning coffee"
167
+ - "parent checking their child's learning progress after dinner"
168
+ - "calm, warm, spacious, like a well-organized desk with natural light"
169
+
170
+ ## Workflow discipline
171
+
172
+ 1. Audit the current page or existing UI before changing visuals.
173
+ 2. Explore the product domain and choose one expression mode from `references/art-direction.md`.
174
+ 3. Name one signature move and repeat it intentionally across the page.
175
+ 4. Consolidate repeating patterns instead of inventing new card/button/table variants for each screen.
176
+ 5. Build from tokens first, then components, then page composition.
177
+ 6. Validate state parity before finishing: default, hover, active, focus, disabled.
178
+ 7. Validate contrast before shipping: body text must meet WCAG AA, controls must stay legible in all themes and states.
179
+
180
+ ## Non-negotiable quality gates
181
+
182
+ - Never use pure white (#FFFFFF) as the app background — always use warm off-whites.
183
+ - Never use pure black (#000000) for text — always warm charcoals.
184
+ - Never crowd elements — when in doubt, add more whitespace, not more content.
185
+ - Serif headings are the signature — never replace them with sans-serif across the board.
186
+ - Accent must feel warm, never clinical or cold (no blues, no purples as primary).
187
+ - Rounded corners are structural, not decorative — everything is rounded, consistently.
188
+ - Soft shadows must use warm-tinted RGBA, not generic `rgba(0,0,0,...)`.
189
+ - Forms must feel inviting: generous padding, visible labels above fields, helpful placeholders — never cramped.
190
+ - Hardcoded colors, arbitrary sharp corners, and one-off font choices are design-system failures.
191
+ - Sameness is failure. If the result could be mistaken for a default Notion clone or a generic SaaS template, iterate before presenting.
192
+ - Every full page must have one memorable structural or visual signature, not just "good spacing and cards".
193
+ - Do not reuse the same hero, card layout, or dashboard grid across unrelated products without a domain reason.
194
+
195
+ ## Delivery modes
196
+
197
+ ### Greenfield
198
+ 1. Choose page variant (app, detail, settings, landing, institutional)
199
+ 2. Load relevant references
200
+ 3. Apply token scope from `design-tokens.md`
201
+ 4. Compose layout from `patterns.md` or `websites.md`
202
+ 5. Build components from `components.md`
203
+
204
+ ### Brownfield
205
+ 1. Audit existing UI before rewriting
206
+ 2. Map Warm Craft tokens onto the existing component library
207
+ 3. Fix token scope issues (font/color variables must be on the correct container)
208
+ 4. Consolidate duplicate variants before introducing new ones
209
+ 5. Prefer targeted upgrades over full rewrites unless the user asks for a redesign