@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
@@ -0,0 +1,289 @@
1
+ # Website Layouts — Warm Craft UI
2
+
3
+ Composition guides for landing pages, product pages, and institutional websites. Uses tokens from `design-tokens.md` and components from `components.md`.
4
+
5
+ ---
6
+
7
+ ## General Website Rules
8
+
9
+ 1. **Hero is the first impression.** It must feel crafted, not templated. Never a centered headline + two buttons + stock image.
10
+ 2. **Editorial pacing.** Alternate between high-impact sections and breathing room. Never repeat the same card grid four times.
11
+ 3. **Serif drives the narrative.** Headlines, pull quotes, and hero text use `var(--font-display)`. This is what makes it feel warm, not the colors.
12
+ 4. **Warm backgrounds, not white.** Use `var(--bg-void)` for section alternation, never pure white sections.
13
+ 5. **One accent, used sparingly.** Terracotta for CTAs and key highlights only. Never accent borders, accent backgrounds on sections, or accent everything.
14
+ 6. **Illustrations over icons.** Where possible, use warm, hand-drawn-style illustrations. Cold geometric SVG icons are for apps, not marketing pages.
15
+ 7. **Real copy only.** No Lorem ipsum. Write real headlines, descriptions, and CTAs that sound like a human wrote them.
16
+
17
+ ---
18
+
19
+ ## Hero Patterns
20
+
21
+ ### Pattern A: Split Hero
22
+
23
+ ```
24
+ +---------------------------+---------------------------+
25
+ | | |
26
+ | OVERLINE | PRODUCT SHOT or |
27
+ | (text-sm, accent, | ILLUSTRATION |
28
+ | tracking-wide) | (warm tones, soft |
29
+ | | shadow, slight tilt) |
30
+ | HEADLINE | |
31
+ | (font-display, text-5xl, | |
32
+ | weight-bold, heading) | |
33
+ | | |
34
+ | SUBTITLE | |
35
+ | (text-lg, secondary, | |
36
+ | max-width 480px) | |
37
+ | | |
38
+ | [CTA Primary] [CTA Sec] | |
39
+ | | |
40
+ +---------------------------+---------------------------+
41
+ ```
42
+
43
+ Use when: product has a strong visual to show. Most common warm hero.
44
+
45
+ ### Pattern B: Editorial Hero
46
+
47
+ ```
48
+ +-----------------------------------------------------------+
49
+ | centered, max-width: 720px |
50
+ | |
51
+ | OVERLINE (accent badge or small label) |
52
+ | |
53
+ | HEADLINE |
54
+ | (font-display, text-5xl, weight-bold, text-align: center)|
55
+ | letter-spacing: var(--tracking-tight) |
56
+ | |
57
+ | SUBTITLE |
58
+ | (text-xl, secondary, text-align: center, max-width 560px)|
59
+ | |
60
+ | [CTA Primary] |
61
+ | |
62
+ | SOCIAL PROOF LINE |
63
+ | (avatar cluster + "Trusted by 2,000+ teams") |
64
+ | |
65
+ +-----------------------------------------------------------+
66
+ ```
67
+
68
+ Use when: message is the product. No visual needed above the fold.
69
+
70
+ ### Pattern C: Immersive Hero
71
+
72
+ ```
73
+ +-----------------------------------------------------------+
74
+ | full-width background: warm gradient or warm photography |
75
+ | (subtle warm overlay if image is cold) |
76
+ | |
77
+ | centered content, max-width: 640px |
78
+ | |
79
+ | HEADLINE (white or light text if on dark background) |
80
+ | SUBTITLE |
81
+ | [CTA on warm background] |
82
+ | |
83
+ +-----------------------------------------------------------+
84
+ ```
85
+
86
+ Use when: brand-heavy, emotional product, premium feel.
87
+
88
+ ---
89
+
90
+ ## Section Patterns
91
+
92
+ ### Feature Grid
93
+
94
+ ```
95
+ SECTION HEADER
96
+ overline: var(--text-sm), var(--accent), var(--tracking-wider), uppercase
97
+ title: var(--font-display), var(--text-3xl), var(--weight-bold)
98
+ subtitle: var(--text-lg), var(--text-secondary), max-width 600px
99
+ text-align: center or left
100
+ margin-bottom: var(--space-12)
101
+
102
+ GRID
103
+ display: grid
104
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))
105
+ gap: var(--space-6)
106
+ uses: Feature Card component
107
+ ```
108
+
109
+ Rules:
110
+ - Max 6 features in a grid. If more, group into categories.
111
+ - Each feature card should have a warm icon area (not just an icon floating in space).
112
+
113
+ ### Alternating Feature Sections
114
+
115
+ ```
116
+ SECTION 1 (image left, text right)
117
+ +---------------------------+---------------------------+
118
+ | [Product screenshot | OVERLINE |
119
+ | or illustration, | TITLE (serif, 2xl) |
120
+ | rounded-2xl, | DESCRIPTION |
121
+ | warm shadow] | BULLET POINTS |
122
+ | | [CTA link →] |
123
+ +---------------------------+---------------------------+
124
+
125
+ SECTION 2 (text left, image right)
126
+ +---------------------------+---------------------------+
127
+ | OVERLINE | [Product screenshot |
128
+ | TITLE | different angle] |
129
+ | DESCRIPTION | |
130
+ +---------------------------+---------------------------+
131
+ ```
132
+
133
+ Rules:
134
+ - Always alternate sides.
135
+ - Images should be real product screenshots with warm treatment (rounded corners, soft shadow, slight warm tint).
136
+ - Vertical padding between sections: `var(--space-20)` or `var(--space-24)`.
137
+
138
+ ### Testimonials
139
+
140
+ ```
141
+ Option A — Pull Quote:
142
+ font: var(--font-display), var(--text-2xl), italic
143
+ color: var(--text-heading)
144
+ max-width: 640px
145
+ text-align: center
146
+ warm accent bar on left or oversized opening quote mark
147
+
148
+ attribution:
149
+ avatar (48px) + name + title + company
150
+ font: var(--font-body), var(--text-sm)
151
+ margin-top: var(--space-6)
152
+
153
+ Option B — Card Grid:
154
+ 3 columns of testimonial cards
155
+ Each: quote + avatar + name + role
156
+ background: var(--bg-surface)
157
+ border: 1px solid var(--border-subtle)
158
+ border-radius: var(--radius-2xl)
159
+ padding: var(--space-6)
160
+ ```
161
+
162
+ Rules:
163
+ - Pull quote is preferred for warm aesthetic. Card grid is acceptable for volume.
164
+ - Never more than one testimonial section per page.
165
+
166
+ ### Social Proof Strip
167
+
168
+ ```
169
+ horizontal row of logos or metrics
170
+ "Trusted by teams at [Logo] [Logo] [Logo] [Logo]"
171
+ logos: grayscale, opacity 0.5, warm-tinted
172
+ hover: opacity 1
173
+
174
+ or metrics:
175
+ "10K+ users | 4.9/5 rating | 50+ countries"
176
+ font: var(--font-body), var(--text-lg), var(--weight-semibold)
177
+ ```
178
+
179
+ ### Pricing Section
180
+
181
+ ```
182
+ SECTION HEADER (centered)
183
+ title: "Simple, transparent pricing"
184
+ subtitle: "No hidden fees. Cancel anytime."
185
+
186
+ PRICING CARDS (2-3 columns, centered)
187
+ each card:
188
+ background: var(--bg-surface)
189
+ border: 1px solid var(--border-subtle)
190
+ border-radius: var(--radius-2xl)
191
+ padding: var(--space-8)
192
+
193
+ plan name: var(--text-lg), var(--weight-semibold)
194
+ price: var(--font-display), var(--text-4xl), var(--weight-bold)
195
+ per period: var(--text-sm), var(--text-secondary)
196
+ feature list: checkmarks with var(--semantic-green)
197
+ CTA: Primary or Secondary Button (full width)
198
+
199
+ recommended card:
200
+ border: 2px solid var(--accent)
201
+ shadow: var(--shadow-lg)
202
+ "Most Popular" badge above card
203
+ ```
204
+
205
+ ### CTA Section (before footer)
206
+
207
+ ```
208
+ background: var(--bg-void)
209
+ border-radius: var(--radius-3xl)
210
+ padding: var(--space-16) var(--space-8)
211
+ text-align: center
212
+ margin: var(--space-16) auto
213
+ max-width: var(--content-lg)
214
+
215
+ title: var(--font-display), var(--text-3xl), var(--weight-bold)
216
+ subtitle: var(--text-lg), var(--text-secondary)
217
+ [CTA Primary — Large variant] + [CTA Secondary]
218
+ ```
219
+
220
+ ---
221
+
222
+ ## Footer
223
+
224
+ ```
225
+ background: var(--bg-void)
226
+ border-top: 1px solid var(--border-subtle)
227
+ padding: var(--space-16) var(--space-8) var(--space-8)
228
+
229
+ LAYOUT (4 columns on desktop, stacked on mobile)
230
+ Column 1: Logo + tagline + social icons
231
+ Columns 2-4: Link groups (Product, Company, Resources)
232
+
233
+ link group title:
234
+ font: var(--font-body), var(--text-sm), var(--weight-semibold)
235
+ color: var(--text-heading)
236
+ margin-bottom: var(--space-4)
237
+
238
+ links:
239
+ font: var(--text-sm), var(--text-secondary)
240
+ hover: var(--text-heading)
241
+ line-height: 2
242
+
243
+ BOTTOM BAR
244
+ border-top: 1px solid var(--border-subtle)
245
+ margin-top: var(--space-8)
246
+ padding-top: var(--space-6)
247
+ display: flex; justify-content: space-between
248
+ copyright: var(--text-xs), var(--text-muted)
249
+ legal links: var(--text-xs), var(--text-secondary)
250
+ ```
251
+
252
+ ---
253
+
254
+ ## Navigation (Websites)
255
+
256
+ ```
257
+ STICKY HEADER
258
+ height: 72px
259
+ background: rgba(253, 252, 250, 0.85) /* bg-base with blur */
260
+ backdrop-filter: blur(12px)
261
+ border-bottom: 1px solid var(--border-subtle)
262
+ position: sticky; top: 0
263
+ z-index: var(--z-sticky)
264
+
265
+ logo (left): max-height 32px
266
+ nav links (center): var(--text-sm), var(--weight-medium), var(--text-secondary)
267
+ hover: var(--text-heading)
268
+ active: var(--text-heading) + subtle underline
269
+ CTA (right): Primary Button (compact variant)
270
+
271
+ MOBILE (< 768px)
272
+ hamburger icon → slide-in drawer from right
273
+ full-height, var(--bg-surface)
274
+ nav items stacked vertically
275
+ CTA at bottom of drawer
276
+ ```
277
+
278
+ ---
279
+
280
+ ## Anti-Patterns (Never Do This)
281
+
282
+ 1. **Generic hero:** Centered headline, two buttons, abstract gradient background. This is every AI-generated landing page.
283
+ 2. **Icon grid features:** 6 features as icon + title + one-line description in a 3x2 grid. Lazy and undifferentiated.
284
+ 3. **Blue accent on warm page:** Blue CTAs or links break the warm system. Use terracotta or sage.
285
+ 4. **Stock photography without warm treatment:** Raw stock photos feel cold. Apply rounded corners, soft shadow, warm tint overlay if needed.
286
+ 5. **Testimonials as afterthought:** Generic quote in a gray box at the bottom. Either make it editorial (serif, large) or skip it.
287
+ 6. **Dense footer:** Footer should breathe like the rest of the page. Generous padding, warm background.
288
+ 7. **Multiple CTAs competing:** One primary CTA per viewport. Secondary CTAs use Ghost or Secondary button style.
289
+ 8. **Repeating the same layout:** If sections 2, 3, and 4 all use the same card grid, the page feels generated. Vary the composition.
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: premium-visual-design
3
+ version: 2.1.0
4
+ description: Premium Visual Design System v2.1 — Dark-first design language for AIOSON Squad Dashboard. Provides tokens, patterns, and components for inter-squad UI: agent threads, dependency graphs, review workflows, notification center, team switcher. Use when building or reviewing any Squad Dashboard UI, inter-squad communication interface, or task/review workflow screens. Triggers on: "squad dashboard UI", "agent message thread", "task dependency", "hunk review", "notification center", "team switcher", "@mention", "review workflow".
5
+ ---
6
+
7
+ # Premium Visual Design System v2.1
8
+
9
+ Design system for AIOSON Squad Dashboard v3 and inter-squad UI. Dark-first, density-optimized, terminal-adjacent aesthetic.
10
+
11
+ ## What's in v2.1
12
+
13
+ ### Additions in v2.1.0
14
+ - `tokens/status-extended.md` — blocked/ready/solo/auto/human/review state tokens
15
+ - `patterns/agent-message-thread.md` — inter-squad feed with @mentions and reactions
16
+ - `patterns/task-dependency-graph.md` — SVG-based DAG with zero external deps
17
+ - `patterns/review-workflow-ui.md` — hunk-level code review with approve/reject flow
18
+ - `patterns/notification-panel.md` — notification center with filters and grouping
19
+ - `components/team-switcher.md` — sidebar squad navigation component
20
+ - `components/mention-autocomplete.md` — @agent, @squad, #task autocomplete
21
+ - `components/notification-center.md` — bell icon + badge + dropdown panel
22
+ - `components/dependency-node.md` — individual DAG node component
23
+ - `components/review-action-bar.md` — approve/reject/comment action bar
24
+ - `components/agent-badge.md` — auto/human/solo agent type indicator
25
+
26
+ ## Architecture
27
+
28
+ ```
29
+ skills/premium-visual-design/
30
+ ├── SKILL.md ← Router (this file)
31
+ ├── tokens/
32
+ │ └── status-extended.md ← State & status color tokens
33
+ ├── patterns/
34
+ │ ├── agent-message-thread.md ← Inter-squad message feed
35
+ │ ├── task-dependency-graph.md ← DAG visualization
36
+ │ ├── review-workflow-ui.md ← Review + diff + hunks
37
+ │ └── notification-panel.md ← Notification list with filters
38
+ └── components/
39
+ ├── agent-badge.md ← Agent type badge
40
+ ├── team-switcher.md ← Squad sidebar nav
41
+ ├── mention-autocomplete.md ← @mention dropdown
42
+ ├── notification-center.md ← Bell + badge + panel
43
+ ├── dependency-node.md ← DAG node
44
+ └── review-action-bar.md ← Approve/reject bar
45
+ ```
46
+
47
+ ## Design Language
48
+
49
+ **Aesthetic**: Dark terminal-adjacent. Dense but not cluttered. Monospace accents.
50
+
51
+ **Color foundation** (CSS variables, dark theme):
52
+ ```css
53
+ --bg: #0f1117; /* deep background */
54
+ --bg-card: #1a1d27; /* card surface */
55
+ --bg-hover: #222632; /* hover/elevated */
56
+ --border: #2a2e3a; /* subtle borders */
57
+ --text: #e1e4eb; /* primary text */
58
+ --text-muted: #8b8fa3; /* secondary text */
59
+ --accent: #6c8aff; /* primary accent (indigo) */
60
+ --accent-dim: rgba(108,138,255,0.15);
61
+ --success: #4ade80; /* green */
62
+ --warning: #fbbf24; /* amber */
63
+ --danger: #f87171; /* red */
64
+ --cyan: #22d3ee; /* cyan accent */
65
+ --purple: #c084fc; /* purple accent */
66
+ ```
67
+
68
+ ## Loading guide for agents
69
+
70
+ | Task | Load |
71
+ |------|------|
72
+ | Agent message feed | tokens/status-extended → components/agent-badge → components/mention-autocomplete → patterns/agent-message-thread |
73
+ | Task dependencies | tokens/status-extended → components/dependency-node → patterns/task-dependency-graph |
74
+ | Code review | tokens/status-extended → components/review-action-bar → patterns/review-workflow-ui |
75
+ | Notifications | tokens/status-extended → components/notification-center → patterns/notification-panel |
76
+ | Squad nav | tokens/status-extended → components/team-switcher |
77
+ | Full dashboard | Load all in order: tokens → components → patterns |
78
+
79
+ ## Changelog
80
+
81
+ ### v2.1.0 (2026-03-24)
82
+ - Added 11 new artefacts: 1 token file, 4 patterns, 6 components
83
+ - All artefacts target Squad Dashboard v3 (PRD 19.2) and inter-squad communication UI
@@ -0,0 +1,92 @@
1
+ # Agent Badge Component
2
+
3
+ Visual badge identifying the execution type of an agent: `auto`, `human`, or `solo`.
4
+
5
+ ## Anatomy
6
+
7
+ ```
8
+ ┌──────────┐ ┌──────────┐ ┌──────────┐
9
+ │ ⚡ auto │ │ 👤 human │ │ ◆ solo │
10
+ └──────────┘ └──────────┘ └──────────┘
11
+ cyan amber muted
12
+ ```
13
+
14
+ ## Types
15
+
16
+ | Type | Icon | Color token | Meaning |
17
+ |------|------|------------|---------|
18
+ | `auto` | ⚡ | `--state-auto` (#22d3ee) | Fully autonomous — no human gates |
19
+ | `human` | 👤 | `--state-human` (#fbbf24) | Human-in-the-loop agent |
20
+ | `solo` | ◆ | `--state-solo` (#8b8fa3) | Single agent, no squad context |
21
+
22
+ ## Sizes
23
+
24
+ | Size class | Height | Font |
25
+ |-----------|--------|------|
26
+ | `sm` | 18px | 10px |
27
+ | (default) | 24px | 12px |
28
+ | `lg` | 32px | 14px |
29
+
30
+ ## CSS
31
+
32
+ ```css
33
+ .agent-badge {
34
+ display: inline-flex;
35
+ align-items: center;
36
+ gap: 4px;
37
+ padding: 2px 8px;
38
+ border-radius: 4px;
39
+ font-size: 12px;
40
+ font-weight: 500;
41
+ border: 1px solid transparent;
42
+ white-space: nowrap;
43
+ }
44
+
45
+ .agent-badge-auto {
46
+ background: rgba(34, 211, 238, 0.12);
47
+ color: var(--state-auto, #22d3ee);
48
+ border-color: rgba(34, 211, 238, 0.25);
49
+ }
50
+
51
+ .agent-badge-human {
52
+ background: rgba(251, 191, 36, 0.12);
53
+ color: var(--state-human, #fbbf24);
54
+ border-color: rgba(251, 191, 36, 0.25);
55
+ }
56
+
57
+ .agent-badge-solo {
58
+ background: rgba(139, 143, 163, 0.12);
59
+ color: var(--state-solo, #8b8fa3);
60
+ border-color: rgba(139, 143, 163, 0.25);
61
+ }
62
+
63
+ /* Sizes */
64
+ .agent-badge.sm { padding: 1px 6px; font-size: 10px; }
65
+ .agent-badge.lg { padding: 4px 12px; font-size: 14px; }
66
+ ```
67
+
68
+ ## HTML Examples
69
+
70
+ ```html
71
+ <!-- Default sizes -->
72
+ <span class="agent-badge agent-badge-auto">⚡ auto</span>
73
+ <span class="agent-badge agent-badge-human">👤 human</span>
74
+ <span class="agent-badge agent-badge-solo">◆ solo</span>
75
+
76
+ <!-- Small (in team-switcher or compact lists) -->
77
+ <span class="agent-badge agent-badge-auto sm">⚡</span>
78
+
79
+ <!-- Large (agent profile header) -->
80
+ <span class="agent-badge agent-badge-human lg">👤 human-gate</span>
81
+ ```
82
+
83
+ ## Usage in context
84
+
85
+ **In agent card header**: place badge after agent name, same line.
86
+ ```html
87
+ <h4>planner <span class="agent-badge agent-badge-auto sm">⚡ auto</span></h4>
88
+ ```
89
+
90
+ **In team-switcher**: use `sm` to avoid crowding the sidebar item.
91
+
92
+ **In process list**: show alongside agent slug in the Processes tab.
@@ -0,0 +1,102 @@
1
+ # Dependency Node Component
2
+
3
+ Individual node in the task dependency graph. Rendered as an SVG `<g>` element.
4
+
5
+ ## Dimensions
6
+
7
+ - Width: `120px`
8
+ - Height: `44px`
9
+ - Corner radius: `6px`
10
+ - Status bar: left `4px` wide, full height
11
+
12
+ ## Anatomy
13
+
14
+ ```
15
+ ┌─┬────────────────────────┐
16
+ │█│ write-prd [▶] │ ← task slug + status icon (right)
17
+ │█│ planner │ ← agent slug (muted, smaller)
18
+ └─┴────────────────────────┘
19
+ ↑ 4px status bar (color by state)
20
+ ```
21
+
22
+ ## SVG Structure
23
+
24
+ ```svg
25
+ <g class="dep-node" data-status="running" data-task="write-prd">
26
+ <!-- Background rect -->
27
+ <rect width="120" height="44" rx="6"
28
+ fill="#1a1d27" stroke="#2a2e3a" stroke-width="1"/>
29
+
30
+ <!-- Status bar (left edge) -->
31
+ <rect width="4" height="44" rx="2"
32
+ fill="#6c8aff"/> <!-- color changes by status -->
33
+
34
+ <!-- Task slug -->
35
+ <text x="16" y="18"
36
+ font-size="12" font-weight="600" fill="#e1e4eb"
37
+ font-family="monospace">write-prd</text>
38
+
39
+ <!-- Agent label -->
40
+ <text x="16" y="32"
41
+ font-size="10" fill="#8b8fa3"
42
+ font-family="monospace">planner</text>
43
+
44
+ <!-- Status label (right side) -->
45
+ <text x="112" y="18"
46
+ font-size="9" fill="#6c8aff"
47
+ text-anchor="end">running</text>
48
+
49
+ <!-- Connector port — left (incoming edges) -->
50
+ <circle cx="0" cy="22" r="3" fill="#2a2e3a" stroke="#6c8aff" stroke-width="1"/>
51
+
52
+ <!-- Connector port — right (outgoing edges) -->
53
+ <circle cx="120" cy="22" r="3" fill="#2a2e3a" stroke="#6c8aff" stroke-width="1"/>
54
+ </g>
55
+ ```
56
+
57
+ ## Status Bar Colors
58
+
59
+ Map from `status-extended.md` tokens:
60
+
61
+ | Status | Color | Hex |
62
+ |--------|-------|-----|
63
+ | `pending` | `--state-idle` | `#8b8fa3` |
64
+ | `ready` | `--state-ready` | `#4ade80` |
65
+ | `running` | `--state-running` | `#6c8aff` |
66
+ | `blocked` | `--state-blocked` | `#f87171` |
67
+ | `done` | `--state-done` | `#4ade80` |
68
+ | `error` | `--state-error` | `#f87171` |
69
+ | `review` | `--state-review` | `#c084fc` |
70
+
71
+ ## CSS (applied to SVG via class)
72
+
73
+ ```css
74
+ .dep-node rect:first-of-type {
75
+ transition: stroke 0.15s, stroke-width 0.15s;
76
+ }
77
+
78
+ .dep-node:hover rect:first-of-type {
79
+ stroke: var(--accent);
80
+ stroke-width: 1.5;
81
+ }
82
+
83
+ .dep-node.selected rect:first-of-type {
84
+ stroke: var(--accent);
85
+ stroke-width: 2;
86
+ }
87
+
88
+ .dep-node { cursor: pointer; }
89
+ ```
90
+
91
+ ## Connector Ports
92
+
93
+ Ports are small circles at `(0, 22)` (left, for incoming) and `(120, 22)` (right, outgoing). Show on hover using CSS opacity:
94
+
95
+ ```css
96
+ .dep-node circle { opacity: 0; transition: opacity 0.15s; }
97
+ .dep-node:hover circle { opacity: 1; }
98
+ ```
99
+
100
+ ## Usage
101
+
102
+ Used inside the task dependency graph pattern (`task-dependency-graph.md`). Each node is a `<g>` positioned by the layout algorithm at `transform="translate(x, y)"`.
@@ -0,0 +1,136 @@
1
+ # Mention Autocomplete Component
2
+
3
+ Dropdown that appears when typing `@` (agents/squads) or `#` (tasks) in any text input.
4
+
5
+ ## Anatomy
6
+
7
+ ```
8
+ ┌─ @write ──────────────────────────┐
9
+ │ Agents │
10
+ │ ● writer alpha-squad │ ← highlighted (keyboard/hover)
11
+ │ planner alpha-squad │
12
+ │ Squads │
13
+ │ bravo-squad │
14
+ └────────────────────────────────────┘
15
+ ```
16
+
17
+ ## Trigger rules
18
+
19
+ | Character | Shows | Groups |
20
+ |-----------|-------|--------|
21
+ | `@` | Agents, then Squads | "Agents" / "Squads" |
22
+ | `#` | Tasks | "Tasks" |
23
+
24
+ Filter list in real-time as user types after the trigger character.
25
+
26
+ ## HTML Structure
27
+
28
+ ```html
29
+ <div class="mention-dropdown" id="mention-dropdown" hidden>
30
+ <!-- Agents group -->
31
+ <div class="mention-group-label">Agents</div>
32
+ <div class="mention-item selected" data-value="@writer" tabindex="-1">
33
+ <span class="mention-item-icon">🤖</span>
34
+ <span class="mention-item-name">writer</span>
35
+ <span class="mention-item-sub">alpha-squad</span>
36
+ </div>
37
+ <div class="mention-item" data-value="@planner" tabindex="-1">
38
+ <span class="mention-item-icon">🤖</span>
39
+ <span class="mention-item-name">planner</span>
40
+ <span class="mention-item-sub">alpha-squad</span>
41
+ </div>
42
+
43
+ <!-- Squads group -->
44
+ <div class="mention-group-label">Squads</div>
45
+ <div class="mention-item" data-value="@bravo-squad" tabindex="-1">
46
+ <span class="mention-item-icon">👥</span>
47
+ <span class="mention-item-name">bravo-squad</span>
48
+ <span class="mention-item-sub">squad</span>
49
+ </div>
50
+ </div>
51
+ ```
52
+
53
+ ## CSS
54
+
55
+ ```css
56
+ .mention-dropdown {
57
+ position: absolute;
58
+ background: var(--bg-card);
59
+ border: 1px solid var(--border);
60
+ border-radius: 6px;
61
+ width: 260px;
62
+ max-height: 240px;
63
+ overflow-y: auto;
64
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
65
+ z-index: 1000;
66
+ }
67
+
68
+ .mention-group-label {
69
+ font-size: 10px;
70
+ text-transform: uppercase;
71
+ color: var(--text-muted);
72
+ padding: 6px 12px 2px;
73
+ letter-spacing: 0.4px;
74
+ }
75
+
76
+ .mention-item {
77
+ display: flex;
78
+ align-items: center;
79
+ gap: 8px;
80
+ padding: 7px 12px;
81
+ cursor: pointer;
82
+ font-size: 13px;
83
+ transition: background 0.1s;
84
+ }
85
+
86
+ .mention-item:hover,
87
+ .mention-item.selected {
88
+ background: var(--accent-dim);
89
+ }
90
+
91
+ .mention-item-icon {
92
+ font-size: 14px;
93
+ flex-shrink: 0;
94
+ }
95
+
96
+ .mention-item-name {
97
+ font-weight: 500;
98
+ flex: 1;
99
+ }
100
+
101
+ .mention-item-sub {
102
+ font-size: 11px;
103
+ color: var(--text-muted);
104
+ }
105
+ ```
106
+
107
+ ## Keyboard navigation (JS spec)
108
+
109
+ 1. `@` or `#` typed in the input → show dropdown, filter to matching items
110
+ 2. `ArrowDown` / `ArrowUp` → move `.selected` class between `.mention-item` rows
111
+ 3. `Enter` → insert selected item's `data-value` + trailing space into the input, close dropdown
112
+ 4. `Escape` → close dropdown without inserting
113
+ 5. Click on `.mention-item` → same as Enter
114
+ 6. Any non-matching char → re-filter, hide if no results
115
+
116
+ ## Resulting inline markup
117
+
118
+ After insertion, wrap the mention in a `<span>`:
119
+
120
+ ```html
121
+ <!-- Agent mention -->
122
+ <span class="mention mention-agent" data-slug="writer">@writer</span>
123
+
124
+ <!-- Squad mention -->
125
+ <span class="mention mention-squad" data-slug="bravo-squad">@bravo-squad</span>
126
+
127
+ <!-- Task mention -->
128
+ <span class="mention mention-task" data-slug="write-prd">#write-prd</span>
129
+ ```
130
+
131
+ ```css
132
+ .mention { padding: 1px 4px; border-radius: 3px; font-weight: 500; }
133
+ .mention-agent { background: var(--accent-dim); color: var(--accent); }
134
+ .mention-squad { background: rgba(34,211,238,0.10); color: var(--cyan, #22d3ee); }
135
+ .mention-task { background: rgba(192,132,252,0.10); color: var(--purple, #c084fc); }
136
+ ```