@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
@@ -181,6 +181,33 @@
181
181
  }
182
182
  }
183
183
  },
184
+ "modelTier": {
185
+ "type": "string",
186
+ "enum": ["powerful", "balanced", "fast", "none"],
187
+ "default": "balanced",
188
+ "description": "Model tier for this executor. powerful: best model (Opus/o3). balanced: good model (Sonnet/GPT-4o). fast: cheap model (Haiku/Flash). none: no LLM (workers)."
189
+ },
190
+ "tasks": {
191
+ "type": "array",
192
+ "items": {
193
+ "type": "object",
194
+ "required": ["slug", "title", "order"],
195
+ "properties": {
196
+ "slug": { "type": "string", "pattern": "^[a-z0-9-]+$" },
197
+ "title": { "type": "string" },
198
+ "order": { "type": "integer", "minimum": 1 },
199
+ "file": { "type": "string", "description": "Path to the task .md file" },
200
+ "input": { "type": "string", "description": "What this task receives" },
201
+ "output": { "type": "string", "description": "What this task produces" }
202
+ }
203
+ },
204
+ "description": "Granular tasks within this executor, executed in order"
205
+ },
206
+ "formats": {
207
+ "type": "array",
208
+ "items": { "type": "string" },
209
+ "description": "Format slugs from the format catalog that this executor uses"
210
+ },
184
211
  "skills": { "type": "array", "items": { "type": "string" } },
185
212
  "genomes": {
186
213
  "type": "array",
@@ -389,13 +416,163 @@
389
416
  "reason": { "type": "string" }
390
417
  }
391
418
  },
392
- "checklist": { "type": "string", "description": "Path to quality checklist for this phase" }
419
+ "checklist": { "type": "string", "description": "Path to quality checklist for this phase" },
420
+ "review": {
421
+ "type": "object",
422
+ "properties": {
423
+ "reviewer": {
424
+ "type": "string",
425
+ "description": "Executor slug that reviews this phase's output"
426
+ },
427
+ "criteria": {
428
+ "type": "array",
429
+ "items": { "type": "string" },
430
+ "description": "What the reviewer checks"
431
+ },
432
+ "onReject": {
433
+ "type": "string",
434
+ "description": "Phase ID to return to on rejection"
435
+ },
436
+ "maxRetries": {
437
+ "type": "integer",
438
+ "minimum": 1,
439
+ "maximum": 5,
440
+ "default": 2,
441
+ "description": "Max rejection cycles before escalation"
442
+ },
443
+ "retryStrategy": {
444
+ "type": "string",
445
+ "enum": ["feedback", "fresh", "alternative"],
446
+ "default": "feedback",
447
+ "description": "feedback: send rejection reason back. fresh: restart from scratch. alternative: ask a different executor."
448
+ },
449
+ "escalateOnMaxRetries": {
450
+ "type": "string",
451
+ "enum": ["human", "skip", "fail"],
452
+ "default": "human",
453
+ "description": "What to do when maxRetries exceeded"
454
+ }
455
+ }
456
+ },
457
+ "vetoConditions": {
458
+ "type": "array",
459
+ "items": {
460
+ "type": "object",
461
+ "required": ["condition", "action"],
462
+ "properties": {
463
+ "condition": {
464
+ "type": "string",
465
+ "description": "Natural language condition to check"
466
+ },
467
+ "action": {
468
+ "type": "string",
469
+ "enum": ["reject", "block", "warn"],
470
+ "description": "reject: auto-retry. block: stop pipeline. warn: continue with warning."
471
+ },
472
+ "message": {
473
+ "type": "string",
474
+ "description": "Message to show when condition is triggered"
475
+ }
476
+ }
477
+ }
478
+ }
393
479
  }
394
480
  }
395
481
  }
396
482
  }
397
483
  }
398
484
  },
485
+ "contextMonitor": {
486
+ "type": "object",
487
+ "description": "Context window monitoring configuration (Fase 1 — PRD 19.2 §3.1)",
488
+ "properties": {
489
+ "enabled": {
490
+ "type": "boolean",
491
+ "default": true,
492
+ "description": "Enable context window monitoring for this squad"
493
+ },
494
+ "windowSize": {
495
+ "type": "integer",
496
+ "minimum": 1000,
497
+ "description": "Override context window size in tokens (default: inferred from model tier)"
498
+ },
499
+ "thresholds": {
500
+ "type": "object",
501
+ "description": "Warning level thresholds as ratios (0–1)",
502
+ "properties": {
503
+ "warning": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.85 },
504
+ "critical": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.95 }
505
+ }
506
+ },
507
+ "notify": {
508
+ "type": "object",
509
+ "description": "Which events trigger notifications",
510
+ "properties": {
511
+ "contextWarning": { "type": "boolean", "default": true, "description": "Notify at warning threshold (default 85%)" },
512
+ "contextCritical": { "type": "boolean", "default": true, "description": "Notify at critical threshold (default 95%)" }
513
+ }
514
+ }
515
+ }
516
+ },
517
+ "isolation": {
518
+ "type": "object",
519
+ "description": "Execution isolation strategy for agent branches (Fase 2 — PRD 19.2 §3.5)",
520
+ "properties": {
521
+ "strategy": {
522
+ "type": "string",
523
+ "enum": ["worktree", "branch-only", "shared"],
524
+ "default": "shared",
525
+ "description": "worktree: separate git worktree per agent. branch-only: create branch but no worktree. shared: no isolation."
526
+ },
527
+ "branchPrefix": {
528
+ "type": "string",
529
+ "default": "aioson",
530
+ "description": "Prefix for auto-created branches: {prefix}/{squadSlug}/{agentSlug}"
531
+ },
532
+ "autoMerge": {
533
+ "type": "boolean",
534
+ "default": false,
535
+ "description": "Automatically fast-forward merge when agent task completes"
536
+ },
537
+ "cleanupOnComplete": {
538
+ "type": "boolean",
539
+ "default": true,
540
+ "description": "Remove worktree/branch after successful merge"
541
+ }
542
+ }
543
+ },
544
+ "recovery": {
545
+ "type": "object",
546
+ "description": "Context recovery configuration after a compact event (Fase 3 — PRD 19.2 §3.6)",
547
+ "properties": {
548
+ "enabled": {
549
+ "type": "boolean",
550
+ "default": true,
551
+ "description": "Enable automatic recovery-context.md generation"
552
+ },
553
+ "autoInject": {
554
+ "type": "boolean",
555
+ "default": true,
556
+ "description": "Automatically inject recovery-context.md when a compact is detected (>30% drop in context)"
557
+ },
558
+ "maxTokens": {
559
+ "type": "integer",
560
+ "minimum": 500,
561
+ "maximum": 4000,
562
+ "default": 2000,
563
+ "description": "Maximum token budget for the generated recovery-context.md"
564
+ },
565
+ "refreshOn": {
566
+ "type": "array",
567
+ "items": {
568
+ "type": "string",
569
+ "enum": ["task_completed", "decision_made", "handoff"]
570
+ },
571
+ "default": ["task_completed", "decision_made", "handoff"],
572
+ "description": "Runtime event types that trigger an automatic recovery context refresh"
573
+ }
574
+ }
575
+ },
399
576
  "contentBlueprints": {
400
577
  "type": "array",
401
578
  "items": {
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: bold-editorial-ui
3
+ description: Bold Editorial UI is a design system for high-impact, typographically-driven interfaces inspired by premium editorial design, fashion magazines, and creative agency portfolios. Use it when `design_skill: bold-editorial-ui` is set in project.context.md OR when the user explicitly asks for "bold", "editorial", "dramatic typography", "magazine style", "Stripe-like", "Vercel-like", "premium marketing", "cinematic", "agency portfolio", or similar. Ideal for landing pages, product marketing, creative portfolios, SaaS marketing sites, and any product where visual impact and storytelling matter more than density. Supports websites, landing pages, and apps — dark by default with a light variant. Do NOT use this skill unless explicitly selected.
4
+ ---
5
+
6
+ # Bold Editorial UI
7
+
8
+ A design system where **typography is the architecture and contrast is the material**. Bold Editorial sits at the intersection of premium magazine design and modern digital craft — interfaces that feel authored, cinematic, and unforgettable.
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/bold-editorial-ui/
16
+ SKILL.md <- you are here (load this first)
17
+ references/
18
+ art-direction.md <- intent, expression modes, signature moves, anti-generic tests
19
+ design-tokens.md <- CSS variables dark + light, typography, token guardrails
20
+ components.md <- All reusable components (display headings, buttons, cards, inputs, etc.)
21
+ patterns.md <- Page layouts: app shell, marketing, documentation, dashboard, auth
22
+ dashboards.md <- Dashboard presets: marketing, developer, analytics, content, executive
23
+ websites.md <- Landing page, product page layouts + hero patterns + anti-patterns
24
+ motion.md <- Animations: cinematic entrances, scroll-driven, hover, page transitions
25
+ ```
26
+
27
+ ## Activation rules
28
+
29
+ - Apply this package **only** when `project.context.md` contains `design_skill: "bold-editorial-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 (dark/light)
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. **Typographic drama** — Typography oversized as the primary design element. Display fonts with personality. Lettering as architecture. Headlines that occupy 40–60% of the viewport. The type IS the visual — not decoration supporting a layout, but the layout itself. Sizes go up to 128px. Tracking tight. Weight bold to black.
66
+ 2. **Cinematic contrast** — Extreme contrast between light and dark. Sections that alternate between deep near-black and pure white. Color transitions like film cuts. Nothing in the middle — every surface either commits to dark or light. The drama of film stills, not the comfort of day-to-day.
67
+ 3. **Editorial rhythm** — A grid that breaks intentionally. Asymmetry as principle. Sections with different cadences — dense → breathing → impact → pause. Each scroll should feel like turning the page of a premium magazine. Hierarchy through scale, not color.
68
+
69
+ ## Theme system
70
+
71
+ ```html
72
+ <div data-theme="dark"> <!-- or data-theme="light" -->
73
+ ```
74
+
75
+ - **Dark (default)**: Landing pages, portfolios, product marketing, premium experiences, SaaS marketing sites
76
+ - **Light**: Institutional, documentation, content-heavy editorial, case study pages
77
+ - **Both with toggle**: When the product spans both contexts or user preference is required
78
+
79
+ If the user does not specify: default to **dark with a light variant** available.
80
+
81
+ ## Visual DNA
82
+
83
+ ### Colors — dark theme (default)
84
+ - Background void: `#050505` (near-black, not navy)
85
+ - Background base: `#0A0A0A` (main background)
86
+ - Surface: `#141414` (cards, panels)
87
+ - Elevated: `#1E1E1E` (hover, nested, modals)
88
+ - Primary accent: `#FF4D2A` (energetic red-orange) — CTAs, highlights, key moments
89
+ - Text heading: `#FFFFFF` (pure white — maximum contrast)
90
+ - Text primary: `#B8B8B8`
91
+ - Text secondary: `#787878`
92
+ - Text muted: `#484848`
93
+
94
+ ### Colors — light theme
95
+ - Background void: `#F5F5F0` (off-white, slightly warm)
96
+ - Background base: `#FAFAF7`
97
+ - Surface: `#FFFFFF`
98
+ - Elevated: `#EFEFEA`
99
+ - Primary accent: `#E03A18` (deeper red-orange for light backgrounds)
100
+ - Text heading: `#0A0A0A` (near-black)
101
+ - Text primary: `#3A3A3A`
102
+ - Text secondary: `#7A7A7A`
103
+ - Text muted: `#AAAAAA`
104
+
105
+ ### Typography
106
+ - Display headings: `Clash Display`, `Impact` fallback — weight 700, tracking `-0.04em`, line-height `0.9` at large sizes
107
+ - Body: `Inter`, `weight-regular (400)`, `line-height: 1.65`
108
+ - Metadata/captions: `JetBrains Mono`, `weight-500`, `uppercase`, `tracking-widest`, `font-size: 0.75rem`
109
+ - Stats/numbers: `Clash Display`, `weight-bold (700)`, sizes `text-3xl` and up
110
+
111
+ ### Layout structure (marketing sites)
112
+ ```
113
+ +-----------------------------------------------------------+
114
+ | TOP BAR: [Logo] [Nav — minimal] [CTA] |
115
+ +-----------------------------------------------------------+
116
+ | |
117
+ | HERO — full-viewport or near-full |
118
+ | Headline dominates: 60–80% of hero height |
119
+ | One CTA, one subtitle max |
120
+ | |
121
+ +-----------------------------------------------------------+
122
+ | SECTION — alternating rhythm |
123
+ | Dense feature → white breathing → impact counter |
124
+ | → pause with testimonial → dark CTA |
125
+ | |
126
+ +-----------------------------------------------------------+
127
+ | FOOTER — bg-void, minimal |
128
+ +-----------------------------------------------------------+
129
+ ```
130
+
131
+ ### Signature details
132
+ - **Minimal radius**: cards `radius-lg` (8px), buttons `radius-md` (6px) — sharp and adult, not bubbly
133
+ - **Dramatic shadows**: `0 8px 24px rgba(0,0,0,0.35)` — deep, cinematic drops
134
+ - **Accent glow**: `0 0 60px rgba(255, 77, 42, 0.15)` — used only on featured/hero elements
135
+ - **Mono captions**: Every category, date, overline, and metadata uses JetBrains Mono + uppercase + wide tracking
136
+ - **Display-only font for impact numbers**: stat counters, big headlines, manifesto text
137
+ - **White sections as dramatic counterpoint**: light sections inside dark pages feel like spotlight moments
138
+
139
+ ## Application rules
140
+
141
+ - Treat `references/design-tokens.md` as the source of truth for ALL tokens.
142
+ - Treat `references/art-direction.md` as the source of truth for expression, signature moves, and anti-generic decisions.
143
+ - Resolve the page variant before composing: marketing/landing pages use narrative editorial pacing; apps use structured dark shell with focused hierarchy.
144
+ - Never combine this package with `warm-craft-ui`, `clean-saas-ui`, `glassmorphism-ui`, `neo-brutalist-ui`, or any other design skill in the same task.
145
+ - Reuse the project's component library if one exists — map Bold Editorial tokens onto it instead of rebuilding primitives.
146
+ - Adapt code examples to the active stack. Reference snippets are design specifications, not copy-paste code.
147
+ - Accessibility, responsiveness, and production semantics are the agent's responsibility (not this skill).
148
+
149
+ ## Intent before visuals
150
+
151
+ Before choosing layout, answer all three:
152
+
153
+ 1. Who is the human arriving at this page right now?
154
+ 2. What is the single impression or action that must land?
155
+ 3. How should this interface feel — in concrete, visceral words, not generic labels?
156
+
157
+ Bad answers:
158
+ - "for users"
159
+ - "show features"
160
+ - "bold and modern"
161
+
162
+ Good answers:
163
+ - "developer evaluating a new infrastructure product at 11pm"
164
+ - "creative director deciding whether to shortlist an agency"
165
+ - "cinematic, authoritative, like a product launch trailer"
166
+
167
+ ## Workflow discipline
168
+
169
+ 1. Audit the current page or existing UI before changing visuals.
170
+ 2. Explore the product domain and choose one expression mode from `references/art-direction.md`.
171
+ 3. Name one signature move and repeat it intentionally across the page.
172
+ 4. Consolidate repeating patterns instead of inventing new card/button variants per screen.
173
+ 5. Build from tokens first, then components, then page composition.
174
+ 6. Validate state parity before finishing: default, hover, active, focus, disabled.
175
+ 7. Validate contrast: white text on dark surfaces must exceed WCAG AA. Light sections must re-verify independently.
176
+
177
+ ## Non-negotiable quality gates
178
+
179
+ - Never use a generic dark theme — `#0A0A0A` is near-black, intentionally chosen, not "dark mode gray".
180
+ - Never use blue, teal, or purple as the primary accent — this is red-orange or nothing.
181
+ - Display font is non-negotiable — if Clash Display is unavailable, use Cabinet Grotesk or Syne, not Inter.
182
+ - Typography must carry the hierarchy before color does — if the type scale is wrong, no color fix will help.
183
+ - The grid must break intentionally at least once per page — a fully regular grid is anti-editorial.
184
+ - Mono captions are the connective tissue — overlines, categories, and metadata must use `font-mono`.
185
+ - Never add a warm tint, rounded corners above `radius-xl` (16px), or serif fonts — these belong to Warm Craft.
186
+ - Accent glow (`shadow-glow`) is reserved for one element per viewport — the hero CTA or the featured card.
187
+ - Every section alternation (dark → light → dark) must feel like a deliberate cut, not an accident.
188
+ - Sameness is failure. If the result could be a generic dark SaaS landing page, iterate before presenting.
189
+ - Every full page must have one typographic statement that could stand alone as a poster.
190
+
191
+ ## Delivery modes
192
+
193
+ ### Greenfield
194
+ 1. Choose page variant (marketing, app, dashboard, documentation)
195
+ 2. Load relevant references
196
+ 3. Apply token scope from `design-tokens.md`
197
+ 4. Compose layout from `patterns.md` or `websites.md`
198
+ 5. Build components from `components.md`
199
+
200
+ ### Brownfield
201
+ 1. Audit existing UI before rewriting
202
+ 2. Map Bold Editorial tokens onto the existing component library
203
+ 3. Fix token scope issues (font/color variables must be on the correct container)
204
+ 4. Consolidate duplicate variants before introducing new ones
205
+ 5. Prefer targeted upgrades over full rewrites unless the user asks for a redesign