@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.
- package/CHANGELOG.md +31 -1
- package/LICENSE +661 -21
- package/README.md +3 -1
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/agentes.md +124 -10
- package/docs/pt/cenarios.md +46 -2
- package/docs/pt/comandos-cli.md +60 -1
- package/docs/pt/inicio-rapido.md +18 -2
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +9 -9
- package/package.json +2 -2
- package/src/backup-local.js +74 -0
- package/src/cli.js +98 -0
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/runtime.js +242 -0
- package/src/commands/setup-context.js +7 -2
- package/src/commands/squad-daemon.js +209 -0
- package/src/commands/squad-dashboard.js +39 -0
- package/src/commands/squad-deploy.js +64 -0
- package/src/commands/squad-doctor.js +52 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-processes.js +56 -0
- package/src/commands/squad-recovery.js +42 -0
- package/src/commands/squad-roi.js +291 -0
- package/src/commands/squad-score.js +250 -0
- package/src/commands/squad-status.js +37 -1
- package/src/commands/squad-validate.js +62 -1
- package/src/commands/squad-webhook.js +160 -0
- package/src/commands/squad-worker.js +191 -0
- package/src/commands/squad-worktrees.js +75 -0
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/constants.js +8 -0
- package/src/context-writer.js +45 -1
- package/src/i18n/messages/en.js +127 -1
- package/src/i18n/messages/es.js +117 -0
- package/src/i18n/messages/fr.js +117 -0
- package/src/i18n/messages/pt-BR.js +126 -1
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/runtime-store.js +259 -2
- package/src/squad/external-session.js +180 -0
- package/src/squad/inter-squad.js +74 -0
- package/src/squad/recovery-context.js +201 -0
- package/src/squad/worktree-manager.js +114 -0
- package/src/squad-daemon.js +490 -0
- package/src/squad-dashboard/api.js +223 -0
- package/src/squad-dashboard/attachment-handler.js +93 -0
- package/src/squad-dashboard/context-monitor.js +157 -0
- package/src/squad-dashboard/execution-logs.js +115 -0
- package/src/squad-dashboard/hunk-review.js +209 -0
- package/src/squad-dashboard/metrics.js +133 -0
- package/src/squad-dashboard/process-monitor.js +125 -0
- package/src/squad-dashboard/renderer.js +858 -0
- package/src/squad-dashboard/server.js +232 -0
- package/src/squad-dashboard/styles.js +525 -0
- package/src/squad-dashboard/token-tracker.js +99 -0
- package/src/web.js +284 -0
- package/src/worker-runner.js +339 -0
- package/template/.aioson/agents/analyst.md +4 -0
- package/template/.aioson/agents/architect.md +4 -0
- package/template/.aioson/agents/dev.md +120 -11
- package/template/.aioson/agents/deyvin.md +8 -0
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +17 -0
- package/template/.aioson/agents/orchestrator.md +26 -0
- package/template/.aioson/agents/product.md +60 -12
- package/template/.aioson/agents/qa.md +1 -0
- package/template/.aioson/agents/setup.md +63 -19
- package/template/.aioson/agents/sheldon.md +603 -0
- package/template/.aioson/agents/squad.md +191 -0
- package/template/.aioson/agents/tester.md +254 -0
- package/template/.aioson/agents/ux-ui.md +12 -0
- package/template/.aioson/config.md +6 -0
- package/template/.aioson/locales/en/agents/analyst.md +8 -0
- package/template/.aioson/locales/en/agents/architect.md +8 -0
- package/template/.aioson/locales/en/agents/dev.md +66 -7
- package/template/.aioson/locales/en/agents/deyvin.md +8 -0
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/en/agents/qa.md +49 -0
- package/template/.aioson/locales/en/agents/setup.md +2 -1
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/es/agents/analyst.md +8 -0
- package/template/.aioson/locales/es/agents/architect.md +8 -0
- package/template/.aioson/locales/es/agents/dev.md +66 -7
- package/template/.aioson/locales/es/agents/deyvin.md +8 -0
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/qa.md +26 -0
- package/template/.aioson/locales/es/agents/setup.md +2 -1
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +63 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/fr/agents/analyst.md +8 -0
- package/template/.aioson/locales/fr/agents/architect.md +8 -0
- package/template/.aioson/locales/fr/agents/dev.md +66 -7
- package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/qa.md +26 -0
- package/template/.aioson/locales/fr/agents/setup.md +2 -1
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +63 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
- package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +2 -1
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
- package/template/.aioson/skills/squad/formats/catalog.json +15 -0
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
- package/template/.aioson/skills/static/debugging-protocol.md +42 -0
- package/template/.aioson/skills/static/git-worktrees.md +36 -0
- package/template/.aioson/tasks/implementation-plan.md +19 -0
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-profile.md +48 -0
- package/template/.aioson/tasks/squad-review.md +61 -0
- package/template/.aioson/tasks/squad-task-decompose.md +66 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +1 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +3 -0
- package/template/CLAUDE.md +5 -2
- 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
|