@jaimevalasek/aioson 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/README.md +19 -2
  2. package/docs/pt/README.md +62 -2
  3. package/docs/pt/advisor-spec.md +5 -5
  4. package/docs/pt/agentes-customizados.md +670 -0
  5. package/docs/pt/agentes.md +111 -13
  6. package/docs/pt/automacao-squads.md +407 -0
  7. package/docs/pt/cenarios.md +3 -3
  8. package/docs/pt/clientes-ai.md +62 -0
  9. package/docs/pt/comandos-cli.md +167 -17
  10. package/docs/pt/deyvin.md +115 -0
  11. package/docs/pt/genome-3.0-spec.md +11 -11
  12. package/docs/pt/inicio-rapido.md +45 -0
  13. package/docs/pt/memoria-contexto.md +255 -0
  14. package/docs/pt/output-strategy-delivery.md +655 -0
  15. package/docs/pt/profiler-system.md +17 -17
  16. package/docs/pt/runtime-observability.md +5 -1
  17. package/docs/pt/skills.md +175 -0
  18. package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
  19. package/docs/testing/genome-2.0-rollout.md +1 -1
  20. package/package.json +3 -3
  21. package/src/agents.js +21 -5
  22. package/src/backup-provider.js +303 -0
  23. package/src/cli.js +178 -2
  24. package/src/commands/agents.js +22 -4
  25. package/src/commands/backup.js +533 -0
  26. package/src/commands/cloud.js +17 -17
  27. package/src/commands/context-pack.js +45 -0
  28. package/src/commands/implementation-plan.js +340 -0
  29. package/src/commands/learning.js +134 -0
  30. package/src/commands/live.js +1583 -0
  31. package/src/commands/runtime.js +833 -2
  32. package/src/commands/scan-project.js +288 -24
  33. package/src/commands/setup-context.js +23 -0
  34. package/src/commands/skill.js +558 -0
  35. package/src/commands/squad-agent-create.js +788 -0
  36. package/src/commands/squad-doctor.js +51 -1
  37. package/src/commands/squad-investigate.js +261 -0
  38. package/src/commands/squad-learning.js +209 -0
  39. package/src/commands/squad-pipeline.js +247 -1
  40. package/src/commands/squad-plan.js +329 -0
  41. package/src/commands/squad-status.js +1 -1
  42. package/src/commands/squad-validate.js +57 -1
  43. package/src/commands/test-agents.js +6 -1
  44. package/src/commands/workflow-next.js +8 -1
  45. package/src/commands/workflow-status.js +250 -0
  46. package/src/constants.js +80 -16
  47. package/src/context-memory.js +837 -0
  48. package/src/context-writer.js +2 -0
  49. package/src/delivery-runner.js +319 -0
  50. package/src/genome-files.js +1 -1
  51. package/src/genome-format.js +1 -1
  52. package/src/i18n/messages/en.js +206 -7
  53. package/src/i18n/messages/es.js +123 -6
  54. package/src/i18n/messages/fr.js +122 -5
  55. package/src/i18n/messages/pt-BR.js +205 -12
  56. package/src/installer.js +30 -2
  57. package/src/lib/genomes/compat.js +1 -1
  58. package/src/runtime-store.js +780 -42
  59. package/src/session-handoff.js +77 -0
  60. package/template/.aioson/agents/analyst.md +36 -9
  61. package/template/.aioson/agents/architect.md +20 -5
  62. package/template/.aioson/agents/dev.md +135 -15
  63. package/template/.aioson/agents/deyvin.md +166 -0
  64. package/template/.aioson/agents/discovery-design-doc.md +25 -1
  65. package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
  66. package/template/.aioson/agents/orache.md +371 -0
  67. package/template/.aioson/agents/orchestrator.md +37 -2
  68. package/template/.aioson/agents/pair.md +5 -0
  69. package/template/.aioson/agents/pm.md +17 -5
  70. package/template/.aioson/agents/product.md +58 -22
  71. package/template/.aioson/agents/profiler-enricher.md +1 -1
  72. package/template/.aioson/agents/profiler-forge.md +9 -9
  73. package/template/.aioson/agents/profiler-researcher.md +1 -1
  74. package/template/.aioson/agents/qa.md +17 -5
  75. package/template/.aioson/agents/setup.md +81 -5
  76. package/template/.aioson/agents/squad.md +675 -28
  77. package/template/.aioson/agents/ux-ui.md +277 -34
  78. package/template/.aioson/config.md +175 -0
  79. package/template/.aioson/context/spec.md.template +17 -0
  80. package/template/.aioson/genomes/.gitkeep +0 -0
  81. package/template/.aioson/installed-skills/.gitkeep +0 -0
  82. package/template/.aioson/locales/en/agents/analyst.md +26 -4
  83. package/template/.aioson/locales/en/agents/architect.md +10 -0
  84. package/template/.aioson/locales/en/agents/dev.md +89 -4
  85. package/template/.aioson/locales/en/agents/deyvin.md +129 -0
  86. package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
  87. package/template/.aioson/locales/en/agents/orchestrator.md +36 -2
  88. package/template/.aioson/locales/en/agents/pair.md +5 -0
  89. package/template/.aioson/locales/en/agents/pm.md +7 -0
  90. package/template/.aioson/locales/en/agents/product.md +35 -17
  91. package/template/.aioson/locales/en/agents/qa.md +7 -0
  92. package/template/.aioson/locales/en/agents/setup.md +51 -5
  93. package/template/.aioson/locales/en/agents/squad.md +203 -15
  94. package/template/.aioson/locales/en/agents/ux-ui.md +375 -35
  95. package/template/.aioson/locales/es/agents/analyst.md +16 -4
  96. package/template/.aioson/locales/es/agents/architect.md +10 -0
  97. package/template/.aioson/locales/es/agents/dev.md +70 -2
  98. package/template/.aioson/locales/es/agents/deyvin.md +89 -0
  99. package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
  100. package/template/.aioson/locales/es/agents/orache.md +103 -0
  101. package/template/.aioson/locales/es/agents/orchestrator.md +36 -2
  102. package/template/.aioson/locales/es/agents/pair.md +5 -0
  103. package/template/.aioson/locales/es/agents/pm.md +7 -0
  104. package/template/.aioson/locales/es/agents/product.md +13 -3
  105. package/template/.aioson/locales/es/agents/qa.md +7 -0
  106. package/template/.aioson/locales/es/agents/setup.md +28 -5
  107. package/template/.aioson/locales/es/agents/squad.md +221 -15
  108. package/template/.aioson/locales/es/agents/ux-ui.md +26 -25
  109. package/template/.aioson/locales/fr/agents/analyst.md +16 -4
  110. package/template/.aioson/locales/fr/agents/architect.md +10 -0
  111. package/template/.aioson/locales/fr/agents/dev.md +70 -2
  112. package/template/.aioson/locales/fr/agents/deyvin.md +89 -0
  113. package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
  114. package/template/.aioson/locales/fr/agents/orache.md +104 -0
  115. package/template/.aioson/locales/fr/agents/orchestrator.md +36 -2
  116. package/template/.aioson/locales/fr/agents/pair.md +5 -0
  117. package/template/.aioson/locales/fr/agents/pm.md +7 -0
  118. package/template/.aioson/locales/fr/agents/product.md +13 -3
  119. package/template/.aioson/locales/fr/agents/qa.md +7 -0
  120. package/template/.aioson/locales/fr/agents/setup.md +28 -5
  121. package/template/.aioson/locales/fr/agents/squad.md +216 -10
  122. package/template/.aioson/locales/fr/agents/ux-ui.md +26 -25
  123. package/template/.aioson/locales/pt-BR/agents/analyst.md +26 -4
  124. package/template/.aioson/locales/pt-BR/agents/architect.md +10 -0
  125. package/template/.aioson/locales/pt-BR/agents/dev.md +93 -4
  126. package/template/.aioson/locales/pt-BR/agents/deyvin.md +129 -0
  127. package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
  128. package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
  129. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +36 -2
  130. package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
  131. package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
  132. package/template/.aioson/locales/pt-BR/agents/product.md +35 -17
  133. package/template/.aioson/locales/pt-BR/agents/qa.md +7 -0
  134. package/template/.aioson/locales/pt-BR/agents/setup.md +51 -5
  135. package/template/.aioson/locales/pt-BR/agents/squad.md +486 -47
  136. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +361 -22
  137. package/template/.aioson/my-agents/.gitkeep +0 -0
  138. package/template/.aioson/rules/.gitkeep +0 -0
  139. package/template/.aioson/rules/squad/.gitkeep +0 -0
  140. package/template/.aioson/rules/squad/README.md +50 -0
  141. package/template/.aioson/schemas/genome-meta.schema.json +1 -1
  142. package/template/.aioson/schemas/genome.schema.json +1 -1
  143. package/template/.aioson/schemas/squad-blueprint.schema.json +11 -0
  144. package/template/.aioson/schemas/squad-manifest.schema.json +257 -1
  145. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +157 -0
  146. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
  147. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +172 -0
  148. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +490 -0
  149. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +237 -0
  150. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
  151. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +350 -0
  152. package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
  153. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
  154. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
  155. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
  156. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
  157. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
  158. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
  159. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
  160. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
  161. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
  162. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
  163. package/template/.aioson/skills/design-system/SKILL.md +92 -0
  164. package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
  165. package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
  166. package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
  167. package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
  168. package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
  169. package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
  170. package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
  171. package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
  172. package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
  173. package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
  174. package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
  175. package/template/.aioson/skills/squad/SKILL.md +58 -0
  176. package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
  177. package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
  178. package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
  179. package/template/.aioson/skills/squad/references/.gitkeep +0 -0
  180. package/template/.aioson/tasks/implementation-plan.md +288 -0
  181. package/template/.aioson/tasks/squad-create.md +1 -1
  182. package/template/.aioson/tasks/squad-execution-plan.md +279 -0
  183. package/template/.aioson/tasks/squad-export.md +1 -1
  184. package/template/.aioson/tasks/squad-investigate.md +44 -0
  185. package/template/.aioson/tasks/squad-learning-review.md +44 -0
  186. package/template/.aioson/tasks/squad-output-config.md +177 -0
  187. package/template/.aioson/tasks/squad-validate.md +1 -1
  188. package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
  189. package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
  190. package/template/.claude/commands/aioson/agent/genome.md +5 -0
  191. package/template/.claude/commands/aioson/agent/product.md +5 -0
  192. package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
  193. package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
  194. package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
  195. package/template/.claude/commands/aioson/agent/squad.md +5 -0
  196. package/template/.gemini/GEMINI.md +2 -0
  197. package/template/.gemini/commands/aios-deyvin.toml +6 -0
  198. package/template/.gemini/commands/aios-pair.toml +6 -0
  199. package/template/AGENTS.md +34 -6
  200. package/template/CLAUDE.md +31 -4
  201. package/template/OPENCODE.md +6 -2
  202. package/template/squad-searches/.gitkeep +0 -0
  203. package/template/.aioson/skills/static/interface-design.md +0 -372
  204. package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
  205. /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
  206. /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
  207. /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
  208. /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
  209. /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
  210. /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
  211. /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
  212. /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
  213. /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
@@ -0,0 +1,490 @@
1
+ # Design Tokens — Cognitive Core UI
2
+
3
+ All components and patterns depend on these tokens. Load this file first before any other reference.
4
+
5
+ ---
6
+
7
+ ## Typography strategy
8
+
9
+ Default to **system fonts** first. Add Google Fonts only when the agent decides the stack, product context, and delivery constraints justify them.
10
+
11
+ **System font stack (default — works everywhere, no CDN needed):**
12
+ ```css
13
+ --font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
14
+ --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
15
+ --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
16
+ ```
17
+
18
+ **Google Fonts (optional — use when building the Mentes Sintéticas aesthetic explicitly):**
19
+ ```css
20
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
21
+
22
+ --font-display: 'Inter', system-ui, sans-serif;
23
+ --font-body: 'Inter', system-ui, sans-serif;
24
+ --font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Complete CSS Variables
30
+
31
+ Include this full block in every project.
32
+
33
+ ```css
34
+ /* ═══════════════════════════════════════════
35
+ SHARED TOKENS — in :root (see Token Scope Guardrails)
36
+ ═══════════════════════════════════════════ */
37
+ :root {
38
+ /* Typography (set defaults here; override with Google Fonts if needed) */
39
+ --font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
40
+ --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
41
+ --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
42
+
43
+ /* Font Sizes */
44
+ --text-xs: 0.72rem; /* 11.5px — micro labels, mono uppercase */
45
+ --text-sm: 0.82rem; /* 13px */
46
+ --text-base: 0.95rem; /* 15px — default body */
47
+ --text-lg: 1rem; /* 16px */
48
+ --text-xl: 1.25rem; /* 20px */
49
+ --text-2xl: 1.6rem; /* 25.6px */
50
+ --text-3xl: 2.2rem; /* 35px */
51
+ --text-4xl: 3rem; /* 48px — stat numbers */
52
+ --text-5xl: 4rem; /* 64px — hero headings */
53
+
54
+ /* Font Weights */
55
+ --weight-light: 300;
56
+ --weight-normal: 400;
57
+ --weight-medium: 500;
58
+ --weight-semibold: 600;
59
+ --weight-bold: 700;
60
+ --weight-black: 800;
61
+
62
+ /* Letter Spacing */
63
+ --tracking-tight: -0.025em;
64
+ --tracking-normal: 0;
65
+ --tracking-wide: 0.04em;
66
+ --tracking-wider: 0.08em;
67
+ --tracking-widest: 0.12em;
68
+
69
+ /* Line Height */
70
+ --leading-none: 1;
71
+ --leading-tight: 1.08;
72
+ --leading-snug: 1.24;
73
+ --leading-normal: 1.5;
74
+ --leading-relaxed: 1.68;
75
+
76
+ /* Spacing */
77
+ --space-0: 0;
78
+ --space-1: 0.25rem;
79
+ --space-2: 0.5rem;
80
+ --space-3: 0.75rem;
81
+ --space-4: 1rem;
82
+ --space-5: 1.25rem;
83
+ --space-6: 1.5rem;
84
+ --space-8: 2rem;
85
+ --space-10: 2.5rem;
86
+ --space-12: 3rem;
87
+ --space-16: 4rem;
88
+ --space-20: 5rem;
89
+ --space-24: 6rem;
90
+
91
+ /* Border Radius */
92
+ --radius-sm: 0.375rem;
93
+ --radius-md: 0.625rem;
94
+ --radius-lg: 0.875rem;
95
+ --radius-xl: 1.125rem;
96
+ --radius-2xl: 1.5rem;
97
+ --radius-full: 9999px;
98
+
99
+ /* Interactive element heights */
100
+ --control-xs: 1.75rem;
101
+ --control-sm: 2rem;
102
+ --control-md: 2.5rem;
103
+ --control-lg: 3rem;
104
+
105
+ /* Transitions */
106
+ --transition-fast: 140ms ease;
107
+ --transition-base: 200ms ease;
108
+ --transition-slow: 300ms ease;
109
+ --transition-theme: background 240ms ease, color 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
110
+
111
+ /* Z-index */
112
+ --z-base: 0;
113
+ --z-elevated: 10;
114
+ --z-dropdown: 20;
115
+ --z-sticky: 30;
116
+ --z-modal: 50;
117
+ --z-toast: 60;
118
+ }
119
+
120
+ /* ═══════════════════════════════════════════
121
+ DARK THEME
122
+ ═══════════════════════════════════════════ */
123
+ [data-theme="dark"] {
124
+ /* Backgrounds — layered navy depth */
125
+ --bg-void: #060910;
126
+ --bg-base: #0b0f15;
127
+ --bg-surface: #111827;
128
+ --bg-elevated: #172133;
129
+ --bg-overlay: #223148;
130
+
131
+ /* Borders */
132
+ --border-subtle: rgba(255, 255, 255, 0.06);
133
+ --border-medium: rgba(255, 255, 255, 0.10);
134
+ --border-strong: rgba(255, 255, 255, 0.16);
135
+ --border-accent: rgba(34, 211, 238, 0.26);
136
+ --border-accent-strong: rgba(34, 211, 238, 0.50);
137
+
138
+ /* Text */
139
+ --text-heading: #f7fafc;
140
+ --text-primary: #dbe4ee;
141
+ --text-secondary: #95a3b8;
142
+ --text-muted: #6b778c;
143
+ --text-accent: #34d8ff;
144
+ --text-inverse: #081018;
145
+
146
+ /* Accent — teal/cyan */
147
+ --accent: #22d3ee;
148
+ --accent-strong: #09bfe0;
149
+ --accent-dim: rgba(34, 211, 238, 0.16);
150
+ --accent-glow: rgba(34, 211, 238, 0.12);
151
+ --accent-subtle: rgba(34, 211, 238, 0.08);
152
+ --accent-hover: #06b6d4;
153
+
154
+ /* Semantic */
155
+ --semantic-green: #16c784;
156
+ --semantic-green-dim: rgba(22, 199, 132, 0.18);
157
+ --semantic-amber: #f4a91d;
158
+ --semantic-amber-dim: rgba(244, 169, 29, 0.18);
159
+ --semantic-red: #ff5a67;
160
+ --semantic-red-dim: rgba(255, 90, 103, 0.18);
161
+ --semantic-blue: #59a7ff;
162
+ --semantic-blue-dim: rgba(89, 167, 255, 0.18);
163
+ --semantic-purple: #a78bfa;
164
+ --semantic-purple-dim: rgba(167, 139, 250, 0.18);
165
+
166
+ /* Shadows */
167
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.22);
168
+ --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.32);
169
+ --shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.44);
170
+ --shadow-glow: 0 0 0 1px rgba(34, 211, 238, 0.05), 0 10px 28px rgba(3, 12, 22, 0.42);
171
+ --shadow-glow-strong: 0 0 30px rgba(34, 211, 238, 0.20), 0 0 10px rgba(34, 211, 238, 0.10);
172
+
173
+ /* Scrollbar */
174
+ --scrollbar-track: #0b0f15;
175
+ --scrollbar-thumb: #172133;
176
+ }
177
+
178
+ /* ═══════════════════════════════════════════
179
+ LIGHT THEME
180
+ ═══════════════════════════════════════════ */
181
+ [data-theme="light"] {
182
+ /* Backgrounds — layered white/gray */
183
+ --bg-void: #edf3f9;
184
+ --bg-base: #f5f8fc;
185
+ --bg-surface: #ffffff;
186
+ --bg-elevated: #eaf0f6;
187
+ --bg-overlay: #dde8f1;
188
+
189
+ /* Borders */
190
+ --border-subtle: rgba(12, 23, 40, 0.07);
191
+ --border-medium: rgba(12, 23, 40, 0.12);
192
+ --border-strong: rgba(12, 23, 40, 0.18);
193
+ --border-accent: rgba(14, 165, 233, 0.22);
194
+ --border-accent-strong: rgba(14, 165, 233, 0.42);
195
+
196
+ /* Text */
197
+ --text-heading: #0f172a;
198
+ --text-primary: #334155;
199
+ --text-secondary: #61748a;
200
+ --text-muted: #8b9aae;
201
+ --text-accent: #0f8cc7;
202
+ --text-inverse: #f8fbff;
203
+
204
+ /* Accent — sky blue (legible on white) */
205
+ --accent: #0ea5e9;
206
+ --accent-strong: #0284c7;
207
+ --accent-dim: rgba(14, 165, 233, 0.10);
208
+ --accent-glow: rgba(14, 165, 233, 0.08);
209
+ --accent-subtle: rgba(14, 165, 233, 0.05);
210
+ --accent-hover: #0284c7;
211
+
212
+ /* Semantic */
213
+ --semantic-green: #059669;
214
+ --semantic-green-dim: rgba(5, 150, 105, 0.10);
215
+ --semantic-amber: #d97706;
216
+ --semantic-amber-dim: rgba(217, 119, 6, 0.10);
217
+ --semantic-red: #dc2626;
218
+ --semantic-red-dim: rgba(220, 38, 38, 0.10);
219
+ --semantic-blue: #2563eb;
220
+ --semantic-blue-dim: rgba(37, 99, 235, 0.10);
221
+ --semantic-purple: #7c3aed;
222
+ --semantic-purple-dim: rgba(124, 58, 237, 0.10);
223
+
224
+ /* Shadows */
225
+ --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04);
226
+ --shadow-md: 0 12px 30px rgba(15, 23, 42, 0.08);
227
+ --shadow-lg: 0 20px 48px rgba(15, 23, 42, 0.12);
228
+ --shadow-glow: 0 0 0 1px rgba(14, 165, 233, 0.04), 0 14px 28px rgba(15, 23, 42, 0.06);
229
+ --shadow-glow-strong: 0 4px 16px rgba(14, 165, 233, 0.12);
230
+
231
+ /* Scrollbar */
232
+ --scrollbar-track: #f5f8fc;
233
+ --scrollbar-thumb: #cbd5e1;
234
+ }
235
+
236
+ /* ═══════════════════════════════════════════
237
+ BASE STYLES
238
+ ═══════════════════════════════════════════ */
239
+ body {
240
+ font-family: var(--font-body);
241
+ margin: 0;
242
+ -webkit-font-smoothing: antialiased;
243
+ }
244
+
245
+ [data-theme] {
246
+ color: var(--text-primary);
247
+ background: var(--bg-base);
248
+ transition: var(--transition-theme);
249
+ }
250
+
251
+ *, *::before, *::after { box-sizing: border-box; }
252
+
253
+ /* Custom scrollbar */
254
+ ::-webkit-scrollbar { width: 6px; height: 6px; }
255
+ ::-webkit-scrollbar-track { background: var(--scrollbar-track); }
256
+ ::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--radius-full); }
257
+ ::-webkit-scrollbar-thumb:hover { background: var(--border-medium); }
258
+ ```
259
+
260
+ ---
261
+
262
+ ## Token Scope Guardrails
263
+
264
+ **This is the most critical implementation rule.** Font and typography bugs almost always come from scope violations.
265
+
266
+ **Rule 1:** Put typography, spacing, radius, and transition tokens in `:root` — not in `[data-theme]`.
267
+
268
+ **Rule 2:** Put theme-specific colors and surface values on the theme owner (`[data-theme]`).
269
+
270
+ **Rule 3:** If `body` consumes `var(--font-body)`, that variable must exist in `:root` or in a scope `body` inherits.
271
+
272
+ **Rule 4:** If the theme lives on a shell container instead of `body`, either keep typography in `:root`, or apply `font-family` directly on that shell.
273
+
274
+ **Safe — typography in :root:**
275
+ ```css
276
+ :root { --font-body: system-ui, sans-serif; }
277
+ body { font-family: var(--font-body); }
278
+ .shell[data-theme="dark"] { --bg-base: #0b0f15; }
279
+ ```
280
+
281
+ **Safe — theme on shell, font applied there:**
282
+ ```css
283
+ :root { --font-body: system-ui, sans-serif; }
284
+ .shell[data-theme="dark"] { --bg-base: #0b0f15; font-family: var(--font-body); }
285
+ ```
286
+
287
+ **Unsafe (font breaks silently):**
288
+ ```css
289
+ /* WRONG */
290
+ .shell[data-theme="dark"] { --font-body: 'Inter', sans-serif; } /* defined on child */
291
+ body { font-family: var(--font-body); } /* body can't inherit from .shell */
292
+ ```
293
+
294
+ ---
295
+
296
+ ## Typography Patterns
297
+
298
+ ### Mono Label — the system's most distinctive element
299
+
300
+ ```css
301
+ font-family: var(--font-mono);
302
+ font-size: var(--text-xs);
303
+ font-weight: var(--weight-semibold);
304
+ letter-spacing: var(--tracking-widest);
305
+ text-transform: uppercase;
306
+ color: var(--text-secondary);
307
+ ```
308
+
309
+ Use for: section headers, stat labels, nav labels, badge text, timestamps, IDs.
310
+ **Do not overuse** — if everything is uppercase mono, nothing has emphasis.
311
+
312
+ ### Display Heading
313
+
314
+ ```css
315
+ font-family: var(--font-display);
316
+ font-weight: var(--weight-bold);
317
+ letter-spacing: var(--tracking-tight);
318
+ line-height: var(--leading-tight);
319
+ color: var(--text-heading);
320
+ ```
321
+
322
+ Sizes: `--text-5xl` (hero) · `--text-3xl` (page title) · `--text-2xl` (section) · `--text-xl` (card title).
323
+
324
+ ### Stat Number
325
+
326
+ ```css
327
+ font-family: var(--font-display);
328
+ font-size: var(--text-4xl);
329
+ font-weight: var(--weight-bold);
330
+ line-height: var(--leading-none);
331
+ color: var(--text-heading);
332
+ font-variant-numeric: tabular-nums;
333
+ ```
334
+
335
+ Pair with suffix: `font-size: var(--text-lg); color: var(--text-muted)`.
336
+
337
+ ### Body Text
338
+
339
+ ```css
340
+ font-family: var(--font-body);
341
+ font-size: var(--text-base);
342
+ font-weight: var(--weight-normal);
343
+ line-height: var(--leading-relaxed);
344
+ color: var(--text-primary);
345
+ ```
346
+
347
+ ### Numbers in tables and lists
348
+
349
+ ```css
350
+ font-variant-numeric: tabular-nums;
351
+ font-feature-settings: "tnum" 1;
352
+ ```
353
+
354
+ ---
355
+
356
+ ## Alignment Rules
357
+
358
+ 1. Keep text on a shared rhythm — headings, helpers, and numbers should align to the same left edge inside a card.
359
+ 2. Avoid micro-copy smaller than `--text-xs` unless it is true metadata.
360
+ 3. In dashboards: one card = one dominant metric or one dominant action. Do not stack equal-priority text blocks.
361
+ 4. Above the fold: prefer 1 primary content block + 1 support block + 1 contextual rail — not a wall of equal cards.
362
+ 5. Mono labels are separators, not decoration. If everything is uppercase mono, nothing is important.
363
+ 6. In brownfield: fix cascade and token-scope errors before changing colors, layout, or density.
364
+
365
+ ---
366
+
367
+ ## Mode Guidance
368
+
369
+ ### Dashboard / Admin
370
+ - Dark theme is often the best default.
371
+ - Dense, compact spacing — tighter headings, shorter line-height, less breathing room than marketing.
372
+ - Use mono labels selectively for status, timestamps, identifiers, section rails.
373
+ - Favor grouped blocks over large card matrices above the fold.
374
+
375
+ ### Landing Page / Website
376
+ - Much more vertical breathing room (use `--space-16` to `--space-24` between sections).
377
+ - Prefer display + body pairings over mono-heavy layouts.
378
+ - Accent glow sparingly — trust typography and section rhythm.
379
+ - One message per section. No dashboard chrome (sidebars, status feeds, dense badges).
380
+
381
+ ---
382
+
383
+ ## Admin / Operational Compact Density
384
+
385
+ Use these values whenever building settings pages, admin panels, config screens, entity lists, or any dense operational UI. These replace the more generous defaults in those contexts.
386
+
387
+ ### Card container scale
388
+
389
+ | Level | Use | Padding | Border Radius |
390
+ |---|---|---|---|
391
+ | L1 — page card | top-level section card | `var(--space-4)` (16px) | `22px` |
392
+ | L2 — nested card | card inside a card | `var(--space-3)` (12px) | `18px` |
393
+ | L3 — inset block | info block, disclosure body | `10px` | `14px` |
394
+
395
+ Between L1 cards: `gap: var(--space-3)` — not `--space-4` or `--space-6`.
396
+
397
+ ### Card heading inside a panel
398
+
399
+ ```
400
+ Eyebrow : text-[0.68rem] uppercase tracking-[0.28em] color: var(--text-muted)
401
+ Title : text-base (15px) font-semibold ← never text-xl or text-2xl inside a card
402
+ Meta : font-mono text-[0.62rem] color: var(--text-muted) truncate ← path, ID, single-line
403
+ ```
404
+
405
+ **Do not write verbose description paragraphs inside admin cards.** Replace with: mono path text, status badges, or a single collapsed `<details>` block.
406
+
407
+ ### Form controls — admin context
408
+
409
+ ```
410
+ Input : px-3 py-2 text-xs border-radius: var(--radius-md) (height ~32px)
411
+ Select : px-3 py-2 text-xs border-radius: var(--radius-md)
412
+ Label : text-[0.65rem] mb: 2px (mb-0.5)
413
+ Button : px-3 py-2 text-xs border-radius: var(--radius-md)
414
+ ```
415
+
416
+ These override the default `px-4 py-3 text-sm rounded-2xl` — that scale is for consumer/marketing UI, not admin density.
417
+
418
+ ### List / row items
419
+
420
+ ```
421
+ Row padding : py-2 (8px top/bottom) — not py-3 or py-4
422
+ Row gap : gap-2.5 (10px)
423
+ Provider dot : h-2 w-2 — not h-2.5 w-2.5
424
+ Name column : w-24 text-xs font-medium — not w-28 text-sm
425
+ ```
426
+
427
+ ### Badges / chips — compact
428
+
429
+ ```
430
+ Status badge : px-2 py-0.5 text-[0.6rem] rounded-full
431
+ Tag badge : px-2 py-0.5 text-[0.58rem] rounded-full
432
+ ```
433
+
434
+ Never use `px-3 py-1 text-xs` for inline status chips — that scale is for navigation and page-level badges.
435
+
436
+ ### Entity grid (projects, providers, squads)
437
+
438
+ Never full-width stack same-type entities. Use:
439
+
440
+ ```css
441
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
442
+ /* or explicit: sm:grid-cols-2 lg:grid-cols-3 */
443
+ gap: var(--space-3);
444
+ ```
445
+
446
+ ### Modal pattern for add / edit forms
447
+
448
+ Entity add/edit forms belong in a modal, not inline expansion (accordion/RevealPanel):
449
+
450
+ ```
451
+ Modal max-width : 448px (28rem)
452
+ Modal padding : var(--space-5)
453
+ Overlay : bg-black/50 backdrop-blur-sm
454
+ Border radius : var(--radius-xl) — 22px
455
+ Max height : 90vh overflow-y: auto
456
+ ```
457
+
458
+ ### Disclosure / collapse pattern
459
+
460
+ Secondary tools (sync assistant, cloud connect, advanced config) go behind `<details>`:
461
+
462
+ ```
463
+ Summary row : flex items-center justify-between px-3 py-2.5
464
+ label (text-xs) + status badge (left) + action button (right)
465
+ Body : border-t px-3 pb-3 pt-2
466
+ ```
467
+
468
+ Never keep secondary tools always visible — they crowd the primary content.
469
+
470
+ ### Anti-patterns in admin/operational UI
471
+
472
+ - `p-6 rounded-[28px]` on inner section cards — too large, use L1/L2/L3 scale above
473
+ - `text-xl` or `text-2xl` headings inside settings/admin cards
474
+ - Verbose description paragraphs (`text-sm leading-7`) in every card — remove them
475
+ - Full-width stacked cards for entity lists (projects, providers) — use the grid
476
+ - Inline accordion/RevealPanel for add/edit forms — use a modal
477
+ - `px-4 py-3 text-sm` for inputs and buttons in dense admin context
478
+
479
+ ---
480
+
481
+ ## Non-Negotiable Rules
482
+
483
+ 1. Use the token system — never freestyle random hex values.
484
+ 2. Keep at most **three surface levels** visible in the same viewport.
485
+ 3. Teal/cyan is the **only accent** — never change it.
486
+ 4. Do not default to Google Fonts when system stacks deliver the right tone.
487
+ 5. Do not use mono labels as the main reading experience.
488
+ 6. Keep **one obvious focal block** per viewport.
489
+ 7. Fix token scope and cascade bugs before redesigning colors or layout.
490
+ 8. In admin/operational UI, apply the **Compact Density** scale — never carry consumer/marketing spacing into dense panels.