@jaimevalasek/aioson 1.3.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 +22 -3
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/README.md +62 -2
- package/docs/pt/advisor-spec.md +5 -5
- package/docs/pt/agentes-customizados.md +670 -0
- package/docs/pt/agentes.md +235 -23
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +49 -5
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +226 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +63 -2
- package/docs/pt/memoria-contexto.md +255 -0
- package/docs/pt/output-strategy-delivery.md +655 -0
- package/docs/pt/profiler-system.md +17 -17
- package/docs/pt/runtime-observability.md +5 -1
- package/docs/pt/skills.md +175 -0
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +10 -10
- package/package.json +4 -4
- package/src/agents.js +21 -5
- package/src/backup-local.js +74 -0
- package/src/backup-provider.js +303 -0
- package/src/cli.js +276 -2
- package/src/commands/agents.js +22 -4
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/backup.js +533 -0
- package/src/commands/cloud.js +17 -17
- package/src/commands/context-pack.js +45 -0
- package/src/commands/implementation-plan.js +340 -0
- package/src/commands/learning.js +134 -0
- package/src/commands/live.js +1583 -0
- package/src/commands/runtime.js +1075 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +30 -2
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- 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 +103 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -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 +38 -2
- package/src/commands/squad-validate.js +118 -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/test-agents.js +6 -1
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +88 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +47 -1
- package/src/delivery-runner.js +319 -0
- package/src/genome-files.js +1 -1
- package/src/genome-format.js +1 -1
- package/src/i18n/messages/en.js +333 -8
- package/src/i18n/messages/es.js +240 -6
- package/src/i18n/messages/fr.js +239 -5
- package/src/i18n/messages/pt-BR.js +330 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/runtime-store.js +1037 -42
- package/src/session-handoff.js +77 -0
- 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 +40 -9
- package/template/.aioson/agents/architect.md +24 -5
- package/template/.aioson/agents/dev.md +254 -25
- package/template/.aioson/agents/deyvin.md +174 -0
- package/template/.aioson/agents/discovery-design-doc.md +25 -1
- package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +388 -0
- package/template/.aioson/agents/orchestrator.md +63 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +113 -29
- package/template/.aioson/agents/profiler-enricher.md +1 -1
- package/template/.aioson/agents/profiler-forge.md +9 -9
- package/template/.aioson/agents/profiler-researcher.md +1 -1
- package/template/.aioson/agents/qa.md +18 -5
- package/template/.aioson/agents/setup.md +138 -18
- package/template/.aioson/agents/sheldon.md +603 -0
- package/template/.aioson/agents/squad.md +866 -28
- package/template/.aioson/agents/tester.md +254 -0
- package/template/.aioson/agents/ux-ui.md +289 -34
- package/template/.aioson/config.md +181 -0
- package/template/.aioson/context/spec.md.template +17 -0
- package/template/.aioson/genomes/.gitkeep +0 -0
- package/template/.aioson/installed-skills/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +34 -4
- package/template/.aioson/locales/en/agents/architect.md +18 -0
- package/template/.aioson/locales/en/agents/dev.md +155 -11
- package/template/.aioson/locales/en/agents/deyvin.md +137 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/en/agents/pair.md +5 -0
- package/template/.aioson/locales/en/agents/pm.md +7 -0
- package/template/.aioson/locales/en/agents/product.md +35 -17
- package/template/.aioson/locales/en/agents/qa.md +56 -0
- package/template/.aioson/locales/en/agents/setup.md +53 -6
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +383 -35
- package/template/.aioson/locales/es/agents/analyst.md +24 -4
- package/template/.aioson/locales/es/agents/architect.md +18 -0
- package/template/.aioson/locales/es/agents/dev.md +136 -9
- package/template/.aioson/locales/es/agents/deyvin.md +97 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/es/agents/pair.md +5 -0
- package/template/.aioson/locales/es/agents/pm.md +7 -0
- package/template/.aioson/locales/es/agents/product.md +13 -3
- package/template/.aioson/locales/es/agents/qa.md +33 -0
- package/template/.aioson/locales/es/agents/setup.md +30 -6
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +284 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/fr/agents/analyst.md +24 -4
- package/template/.aioson/locales/fr/agents/architect.md +18 -0
- package/template/.aioson/locales/fr/agents/dev.md +136 -9
- package/template/.aioson/locales/fr/agents/deyvin.md +97 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/fr/agents/pair.md +5 -0
- package/template/.aioson/locales/fr/agents/pm.md +7 -0
- package/template/.aioson/locales/fr/agents/product.md +13 -3
- package/template/.aioson/locales/fr/agents/qa.md +33 -0
- package/template/.aioson/locales/fr/agents/setup.md +30 -6
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +279 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +45 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +29 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +167 -15
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +43 -20
- package/template/.aioson/locales/pt-BR/agents/qa.md +67 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +53 -6
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +591 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +369 -22
- package/template/.aioson/my-agents/.gitkeep +0 -0
- package/template/.aioson/rules/.gitkeep +0 -0
- package/template/.aioson/rules/squad/.gitkeep +0 -0
- package/template/.aioson/rules/squad/README.md +50 -0
- package/template/.aioson/schemas/genome-meta.schema.json +1 -1
- package/template/.aioson/schemas/genome.schema.json +1 -1
- package/template/.aioson/schemas/squad-blueprint.schema.json +32 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +434 -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 +203 -0
- 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 +407 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +277 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -0
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
- 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/design-system/SKILL.md +92 -0
- package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -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/SKILL.md +58 -0
- package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/.gitkeep +0 -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/.gitkeep +0 -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/.gitkeep +0 -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 +307 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-execution-plan.md +279 -0
- package/template/.aioson/tasks/squad-export.md +1 -1
- package/template/.aioson/tasks/squad-investigate.md +44 -0
- package/template/.aioson/tasks/squad-learning-review.md +44 -0
- package/template/.aioson/tasks/squad-output-config.md +177 -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/.aioson/tasks/squad-validate.md +1 -1
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
- package/template/.claude/commands/aioson/agent/genome.md +5 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/product.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
- package/template/.claude/commands/aioson/agent/squad.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +3 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +37 -6
- package/template/CLAUDE.md +34 -4
- package/template/OPENCODE.md +8 -2
- package/template/squad-searches/.gitkeep +0 -0
- package/template/.aioson/skills/static/interface-design.md +0 -372
- package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
- /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
- /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
- /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
- /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
- /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
- /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
- /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
- /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
- /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Visual System — Premium Command Center UI
|
|
2
|
+
|
|
3
|
+
> Extracted from the real AIOS Dashboard implementation. Preserves the aurora-glass premium command-center language.
|
|
4
|
+
|
|
5
|
+
This is not a generic dark dashboard guide. It captures the concrete moves that produce the premium operational feel:
|
|
6
|
+
|
|
7
|
+
- Tri-rail shell: left navigation, center workspace, right activity rail
|
|
8
|
+
- Aurora-glass surfaces with strong contrast and restrained semantic color
|
|
9
|
+
- Compact density tuned for operational reading, not marketing whitespace
|
|
10
|
+
- Search-first interaction via top search bar + command palette
|
|
11
|
+
- Contextual right rail with status / history / metrics tabs
|
|
12
|
+
- Page archetypes built around runtime priority, not equal-weight card walls
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Foundation — dark graphite
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Background base : #0b1015 (deep graphite)
|
|
20
|
+
Background surface : #10161d (panel, card surfaces)
|
|
21
|
+
Background elevated: #151c24 (modals, dropdowns, hover states)
|
|
22
|
+
Background sunken : #080c11 (inputs, inset areas)
|
|
23
|
+
|
|
24
|
+
Foreground primary : #f3f7fb
|
|
25
|
+
Foreground secondary: #b7c2cf
|
|
26
|
+
Foreground muted : #7f8b99
|
|
27
|
+
Foreground faint : #4a5568 (decorative only)
|
|
28
|
+
|
|
29
|
+
Border default : rgba(255,255,255,0.08)
|
|
30
|
+
Border strong : rgba(255,255,255,0.15)
|
|
31
|
+
Border accent : rgba(99,179,237,0.30)
|
|
32
|
+
|
|
33
|
+
Brand accent : desaturated blue-teal family (never neon)
|
|
34
|
+
Accent light : #63b3ed
|
|
35
|
+
Accent muted : #4a90a4
|
|
36
|
+
|
|
37
|
+
Semantic green : #38a169
|
|
38
|
+
Semantic amber : #d97706
|
|
39
|
+
Semantic red : #e53e3e
|
|
40
|
+
Semantic blue : #4299e1
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Aurora accent — use sparingly, never everywhere:
|
|
44
|
+
```css
|
|
45
|
+
/* Aurora field on page background, not on every card */
|
|
46
|
+
.aurora-field {
|
|
47
|
+
background: radial-gradient(ellipse 1200px 800px at 20% 20%,
|
|
48
|
+
rgba(99,179,237,0.04), transparent 60%);
|
|
49
|
+
pointer-events: none;
|
|
50
|
+
position: fixed; inset: 0; z-index: 0;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Typography
|
|
57
|
+
|
|
58
|
+
- **Heading font**: Clean system grotesk or neutral premium sans (Geist, Manrope, IBM Plex Sans, or system-ui)
|
|
59
|
+
- **Body font**: Same family as heading at regular weight
|
|
60
|
+
- **Mono**: Reserved for operational metadata, IDs, code, timestamps — never prose
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Page title : 20–22px, weight 600, tracking -0.01em
|
|
64
|
+
Section heading: 14–16px, weight 600, tracking -0.01em
|
|
65
|
+
Body : 13–14px, weight 400, line-height 1.5
|
|
66
|
+
Helper / meta : 11–12px, weight 400, muted color
|
|
67
|
+
Mono / data : 11–12px, JetBrains Mono or SF Mono
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Spacing
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Base: 4px
|
|
76
|
+
Scale: 4 / 8 / 12 / 16 / 24 / 32 / 48
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Never use arbitrary values. Every measurement is a multiple of 4.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Admin panel density — settings, config, entity management
|
|
84
|
+
|
|
85
|
+
The premium command center uses **tight operational spacing** for admin and config screens. These values are concrete — apply them directly.
|
|
86
|
+
|
|
87
|
+
### Card scale
|
|
88
|
+
|
|
89
|
+
| Level | Use | Padding | Radius |
|
|
90
|
+
|---|---|---|---|
|
|
91
|
+
| L1 | top-level section card | `16px` | `22px` |
|
|
92
|
+
| L2 | nested card inside L1 | `12px` | `18px` |
|
|
93
|
+
| L3 | inset block, disclosure body, info row | `10px` | `14px` |
|
|
94
|
+
|
|
95
|
+
Section gap between L1 cards: `12px`.
|
|
96
|
+
|
|
97
|
+
### Card headers
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Eyebrow : font-mono 10–11px uppercase letter-spacing: 0.28em color: muted
|
|
101
|
+
Title : 15px font-weight: 600 — max size inside a card
|
|
102
|
+
Meta : font-mono 10px truncate single line — path, ID, workspace name
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**No paragraph descriptions inside admin cards.** One eyebrow + one title + optional single-line meta is sufficient. Everything else belongs in a collapsed disclosure or a tooltip.
|
|
106
|
+
|
|
107
|
+
### Controls in admin context
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
Input / Select : height 32px (py-2 px-3) font-size 12px border-radius 10–12px
|
|
111
|
+
Label : font-size 10–11px margin-bottom 2px
|
|
112
|
+
Button action : py-2 px-3 font-size 12px border-radius 10–12px
|
|
113
|
+
Button micro : py-1 px-2.5 font-size 10–11px border-radius 10px
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Row items (provider lists, agent lists)
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
Row padding : py-2 (8px) divide-y separator
|
|
120
|
+
Name width : 96px (fixed) text-xs font-medium
|
|
121
|
+
Model : flex-1 truncate font-mono font-size 10–11px
|
|
122
|
+
Badges : px-2 py-0.5 font-size 9–10px
|
|
123
|
+
Edit btn : px-2.5 py-1 font-size 10–11px
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Entity grids (projects, agents, squads)
|
|
127
|
+
|
|
128
|
+
Same-type entities go in a grid — never full-width stacked:
|
|
129
|
+
```
|
|
130
|
+
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr))
|
|
131
|
+
gap: 12px
|
|
132
|
+
Card: rounded-18 p-3
|
|
133
|
+
Card header: name (text-sm semibold) + ID (mono 9px truncate)
|
|
134
|
+
Card badges: px-2 py-0.5 text-[9-10px]
|
|
135
|
+
Card actions: compact row, py-1.5, font-size 10–11px
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Add/Edit forms → Modal pattern
|
|
139
|
+
|
|
140
|
+
Entity add/edit always opens a modal — not inline expansion:
|
|
141
|
+
```
|
|
142
|
+
Modal: max-w-448px centered rounded-22px p-20px
|
|
143
|
+
Overlay: bg-black/50 backdrop-blur
|
|
144
|
+
Header: eyebrow + title (text-base) + close button (top right)
|
|
145
|
+
Form: single-column grid gap: 10px
|
|
146
|
+
Submit: full-width py-2 text-xs
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Disclosure — secondary tools
|
|
150
|
+
|
|
151
|
+
Sync, cloud connect, advanced settings behind `<details>`:
|
|
152
|
+
```
|
|
153
|
+
Summary: flex row px-3 py-2.5
|
|
154
|
+
Left: label (text-xs) + status badge (alinhado / N diffs)
|
|
155
|
+
Right: action button (micro size)
|
|
156
|
+
Body: border-t px-3 pb-3 pt-2 compact rows
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Anti-patterns — never do this in admin panels
|
|
160
|
+
|
|
161
|
+
- `padding: 24px` on inner section cards
|
|
162
|
+
- `font-size: 20–24px` headings inside cards
|
|
163
|
+
- Verbose description paragraphs in admin cards
|
|
164
|
+
- Full-width stacked entity cards (projects, providers)
|
|
165
|
+
- Inline accordion for add/edit forms
|
|
166
|
+
- `height: 40px+` inputs/buttons in dense tool contexts
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Depth — borders-first
|
|
171
|
+
|
|
172
|
+
Three surface levels maximum:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Level 0 — base (#0b1015) : page background
|
|
176
|
+
Level 1 — surface (#10161d) : cards, panels, nav rail
|
|
177
|
+
Level 2 — elevated (#151c24) : modals, dropdowns, hover overlays
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Rules:
|
|
181
|
+
- Borders separate before shadows
|
|
182
|
+
- One shadow family only: `0 4px 16px rgba(0,0,0,0.32)` — reserved for modals and floating elements
|
|
183
|
+
- No heavy glow effects on cards
|
|
184
|
+
- Aurora fields go on page background, not on individual components
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Radius
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Sharp : 6px (compact elements, badges, tags)
|
|
192
|
+
Medium : 10px (cards, inputs, buttons)
|
|
193
|
+
Large : 14px (panels, modals, sheets)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Control heights
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
Compact : 28px (toolbar items, inline actions)
|
|
202
|
+
Default : 34px (standard controls)
|
|
203
|
+
Tall : 40px (primary action buttons)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Signature rules
|
|
209
|
+
|
|
210
|
+
- Accent stays cool and controlled — no rainbow, no neon
|
|
211
|
+
- Status colors must remain strictly semantic (never decorative)
|
|
212
|
+
- Compact density: operational readout, not marketing whitespace
|
|
213
|
+
- High contrast without overload: borders quietly separate, they do not shout
|
|
214
|
+
- One focal block per screen region
|
|
215
|
+
- Three surface levels max — no more
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: warm-craft-ui
|
|
3
|
+
description: Warm Craft UI is a design system for approachable, human-centered interfaces with light backgrounds, rounded forms, warm accents, generous whitespace, and humanist typography. Use it when `design_skill: warm-craft-ui` is set in project.context.md OR when the user explicitly asks for "warm", "friendly UI", "clean light", "soft modern", "human-centered", "Notion-like", "Linear-like", "calm interface", or similar. Ideal for productivity apps, SaaS B2C, health, education, personal finance, and any product where trust, clarity, and approachability matter more than density or authority. Supports apps, dashboards, landing pages, and websites — light by default with an optional dark theme. Do NOT use this skill unless explicitly selected.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Warm Craft UI
|
|
7
|
+
|
|
8
|
+
A design system where **clarity is generosity and whitespace is confidence**. Warm Craft sits at the intersection of humanist typography and disciplined spacing — interfaces that feel handcrafted, breathable, and immediately trustworthy.
|
|
9
|
+
|
|
10
|
+
**This is one visual system.** Never combine it with another design skill.
|
|
11
|
+
|
|
12
|
+
## Package structure
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
.aioson/skills/design/warm-craft-ui/
|
|
16
|
+
SKILL.md <- you are here (load this first)
|
|
17
|
+
references/
|
|
18
|
+
art-direction.md <- intent, domain exploration, expression modes, signature moves, anti-generic tests
|
|
19
|
+
design-tokens.md <- CSS variables light + dark, typography, token scope guardrails
|
|
20
|
+
components.md <- All reusable components (nav, cards, forms, tables, badges, modals, etc.)
|
|
21
|
+
patterns.md <- Page layouts: app shell, detail, settings, onboarding, list-detail
|
|
22
|
+
dashboards.md <- Dashboard presets: overview, analytics, activity feed, project board, admin
|
|
23
|
+
websites.md <- Landing page, product page, institutional layouts + anti-patterns
|
|
24
|
+
motion.md <- Animations: entrances, micro-interactions, scroll, loading states
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Activation rules
|
|
28
|
+
|
|
29
|
+
- Apply this package **only** when `project.context.md` contains `design_skill: "warm-craft-ui"` or the user explicitly chooses it.
|
|
30
|
+
- If another design skill is selected, do **not** load this package.
|
|
31
|
+
- Never auto-select this skill — always require explicit confirmation.
|
|
32
|
+
- If no skill is set yet, the active agent must ask or confirm before applying.
|
|
33
|
+
|
|
34
|
+
## Responsibility boundary
|
|
35
|
+
|
|
36
|
+
This skill defines:
|
|
37
|
+
- Visual direction and aesthetic DNA
|
|
38
|
+
- Design tokens (colors, typography, spacing, radius, shadows)
|
|
39
|
+
- Component vocabulary and anatomy
|
|
40
|
+
- Page composition patterns
|
|
41
|
+
- Theme switching behavior (light/dark)
|
|
42
|
+
|
|
43
|
+
This skill does **not** decide:
|
|
44
|
+
- Stack (React, Vue, Blade, HTML, etc.)
|
|
45
|
+
- Output format (single file, multi-file, CSS modules, Tailwind, etc.)
|
|
46
|
+
- Icon library choice
|
|
47
|
+
- Whether a theme toggle exists in the product (the agent decides)
|
|
48
|
+
|
|
49
|
+
## Loading guide
|
|
50
|
+
|
|
51
|
+
Always load only what the current task needs:
|
|
52
|
+
|
|
53
|
+
| Task | Load |
|
|
54
|
+
|---|---|
|
|
55
|
+
| Any UI work | `references/design-tokens.md` |
|
|
56
|
+
| Reusable components | `references/design-tokens.md` + `references/components.md` |
|
|
57
|
+
| Dashboard or admin panel | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/patterns.md` + `references/dashboards.md` |
|
|
58
|
+
| Detail / settings page | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/patterns.md` |
|
|
59
|
+
| Landing page or website | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/websites.md` |
|
|
60
|
+
| Motion / animation | add `references/motion.md` when animation materially improves the result |
|
|
61
|
+
| Full UI build | all seven reference files |
|
|
62
|
+
|
|
63
|
+
## Visual signature — three pillars
|
|
64
|
+
|
|
65
|
+
1. **Approachable warmth** — Light surfaces with subtle warm undertones. Rounded corners on everything. Colors that feel like sunlight through linen, not clinical LED panels. The interface should feel like a well-designed physical notebook, not a control room.
|
|
66
|
+
2. **Typographic humanity** — Humanist sans-serif with visible character. Generous line-heights. Text that breathes. Headings that feel handwritten in their weight and tracking, even though they are perfectly set. Body text that is genuinely pleasant to read for long sessions.
|
|
67
|
+
3. **Disciplined calm** — Generous whitespace that signals confidence, not emptiness. One accent color used sparingly. Subtle depth through soft shadows, not hard borders. Every element has room to exist without competing for attention.
|
|
68
|
+
|
|
69
|
+
## Theme system
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<div data-theme="light"> <!-- or data-theme="dark" -->
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- **Light (default)**: Productivity apps, content platforms, B2C SaaS, health, education, personal tools, most use cases
|
|
76
|
+
- **Dark**: Optional — for users who prefer it, night modes, media-heavy contexts
|
|
77
|
+
- **Both with toggle**: When the user asks, or when the product serves diverse contexts
|
|
78
|
+
|
|
79
|
+
If the user does not specify: default to **light with a theme toggle** available.
|
|
80
|
+
|
|
81
|
+
## Visual DNA
|
|
82
|
+
|
|
83
|
+
### Colors — light theme
|
|
84
|
+
- Background void: `#F8F6F3` (warm off-white, never pure #FFF)
|
|
85
|
+
- Background base: `#FDFCFA` (main app background)
|
|
86
|
+
- Surface: `#FFFFFF` (cards, elevated panels)
|
|
87
|
+
- Elevated: `#F3F1ED` (hover, nested, sidebar backgrounds)
|
|
88
|
+
- Primary accent: `#E07A5F` (terracotta/warm coral) — CTAs, active states, key highlights
|
|
89
|
+
- Text heading: `#2D3436` (warm charcoal, never pure black)
|
|
90
|
+
- Text primary: `#4A5568` (readable warm gray)
|
|
91
|
+
- Text secondary: `#8896A6` (muted)
|
|
92
|
+
- Text muted: `#B0BCC7` (hints, placeholders)
|
|
93
|
+
|
|
94
|
+
### Colors — dark theme
|
|
95
|
+
- Background void: `#1A1814` (warm dark, not navy)
|
|
96
|
+
- Background base: `#211F1B` (main app background)
|
|
97
|
+
- Surface: `#2A2824` (cards)
|
|
98
|
+
- Elevated: `#353330` (hover, nested)
|
|
99
|
+
- Primary accent: `#F0967D` (lighter terracotta for dark backgrounds)
|
|
100
|
+
- Text heading: `#F5F0EB`
|
|
101
|
+
- Text primary: `#D4CBC2`
|
|
102
|
+
- Text secondary: `#9A9088`
|
|
103
|
+
- Text muted: `#6B6460`
|
|
104
|
+
|
|
105
|
+
### Typography
|
|
106
|
+
- Headings: `Source Serif 4`, `weight-semibold (600)` or `weight-bold (700)` for page titles, `letter-spacing: -0.02em`
|
|
107
|
+
- Body: `Inter`, `weight-normal (400)`, `line-height: 1.7`
|
|
108
|
+
- Labels and metadata: `Inter`, `weight-medium (500)`, `font-size: 0.8rem`, `letter-spacing: 0.02em`
|
|
109
|
+
- Stats: `Source Serif 4`, `weight-bold (700)`, `font-size: 2.5rem`
|
|
110
|
+
|
|
111
|
+
### Layout structure (apps)
|
|
112
|
+
```
|
|
113
|
+
+----------------------------------------------------------+
|
|
114
|
+
| TOP BAR: [Logo] [Search (center, rounded)] [Avatar] |
|
|
115
|
+
+----------------------------------------------------------+
|
|
116
|
+
| | |
|
|
117
|
+
| SIDEBAR | CONTENT |
|
|
118
|
+
| 200px | PAGE HEADER (serif title + subtitle) |
|
|
119
|
+
| soft bg | |
|
|
120
|
+
| rounded | CONTENT SECTIONS |
|
|
121
|
+
| items | (generous padding, card groups) |
|
|
122
|
+
| | |
|
|
123
|
+
| [nav | SECTION: title + description |
|
|
124
|
+
| items | CARD GROUP (2-3 col, gap-6) |
|
|
125
|
+
| with | |
|
|
126
|
+
| icons] | SECTION: title + description |
|
|
127
|
+
| | CARD GROUP or TABLE |
|
|
128
|
+
+-----------+-----------------------------------------------+
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Signature details
|
|
132
|
+
- Rounded corners on everything: cards `radius-xl` (16px), buttons `radius-lg` (12px), inputs `radius-md` (8px)
|
|
133
|
+
- Soft shadows: `box-shadow` with warm tones, never harsh black drops
|
|
134
|
+
- Accent used sparingly: primary buttons, active nav, key badges — never borders, never backgrounds of sections
|
|
135
|
+
- Serif headings mixed with sans-serif body — the primary differentiator from every other UI
|
|
136
|
+
- Subtle background patterns: very faint dot grid or warm gradient wash on hero sections
|
|
137
|
+
- Illustrations and empty states: warm, hand-drawn style — never cold geometric
|
|
138
|
+
- Input fields: visible but soft borders, generous padding, rounded
|
|
139
|
+
- Active sidebar item: `background: var(--bg-elevated)` + `border-radius: var(--radius-lg)` + accent text — no hard left border
|
|
140
|
+
- Theme transition: `200ms ease` on background, color, border-color, box-shadow
|
|
141
|
+
|
|
142
|
+
## Application rules
|
|
143
|
+
|
|
144
|
+
- Treat `references/design-tokens.md` as the source of truth for ALL tokens.
|
|
145
|
+
- Treat `references/art-direction.md` as the source of truth for expression, signature moves, and anti-generic decisions.
|
|
146
|
+
- Resolve the page variant before composing: apps use structured navigation rhythm; websites/landing pages use more narrative flow, larger typography, and editorial pacing.
|
|
147
|
+
- Never combine this package with `cognitive-core-ui`, `interface-design`, `premium-command-center-ui`, or any other design skill in the same task.
|
|
148
|
+
- Reuse the project's component library if one exists — map Warm Craft tokens onto it instead of rebuilding primitives.
|
|
149
|
+
- Adapt code examples to the active stack. Reference snippets are design specifications, not copy-paste code.
|
|
150
|
+
- Accessibility, responsiveness, and production semantics are the agent's responsibility (not this skill).
|
|
151
|
+
|
|
152
|
+
## Intent before visuals
|
|
153
|
+
|
|
154
|
+
Before choosing layout, answer all three:
|
|
155
|
+
|
|
156
|
+
1. Who is the human using this page right now?
|
|
157
|
+
2. What is the main action or decision they must complete?
|
|
158
|
+
3. How should this interface feel in concrete words, not generic labels?
|
|
159
|
+
|
|
160
|
+
Bad answers:
|
|
161
|
+
- "for users"
|
|
162
|
+
- "manage content"
|
|
163
|
+
- "clean and modern"
|
|
164
|
+
|
|
165
|
+
Good answers:
|
|
166
|
+
- "freelancer reviewing today's tasks over morning coffee"
|
|
167
|
+
- "parent checking their child's learning progress after dinner"
|
|
168
|
+
- "calm, warm, spacious, like a well-organized desk with natural light"
|
|
169
|
+
|
|
170
|
+
## Workflow discipline
|
|
171
|
+
|
|
172
|
+
1. Audit the current page or existing UI before changing visuals.
|
|
173
|
+
2. Explore the product domain and choose one expression mode from `references/art-direction.md`.
|
|
174
|
+
3. Name one signature move and repeat it intentionally across the page.
|
|
175
|
+
4. Consolidate repeating patterns instead of inventing new card/button/table variants for each screen.
|
|
176
|
+
5. Build from tokens first, then components, then page composition.
|
|
177
|
+
6. Validate state parity before finishing: default, hover, active, focus, disabled.
|
|
178
|
+
7. Validate contrast before shipping: body text must meet WCAG AA, controls must stay legible in all themes and states.
|
|
179
|
+
|
|
180
|
+
## Non-negotiable quality gates
|
|
181
|
+
|
|
182
|
+
- Never use pure white (#FFFFFF) as the app background — always use warm off-whites.
|
|
183
|
+
- Never use pure black (#000000) for text — always warm charcoals.
|
|
184
|
+
- Never crowd elements — when in doubt, add more whitespace, not more content.
|
|
185
|
+
- Serif headings are the signature — never replace them with sans-serif across the board.
|
|
186
|
+
- Accent must feel warm, never clinical or cold (no blues, no purples as primary).
|
|
187
|
+
- Rounded corners are structural, not decorative — everything is rounded, consistently.
|
|
188
|
+
- Soft shadows must use warm-tinted RGBA, not generic `rgba(0,0,0,...)`.
|
|
189
|
+
- Forms must feel inviting: generous padding, visible labels above fields, helpful placeholders — never cramped.
|
|
190
|
+
- Hardcoded colors, arbitrary sharp corners, and one-off font choices are design-system failures.
|
|
191
|
+
- Sameness is failure. If the result could be mistaken for a default Notion clone or a generic SaaS template, iterate before presenting.
|
|
192
|
+
- Every full page must have one memorable structural or visual signature, not just "good spacing and cards".
|
|
193
|
+
- Do not reuse the same hero, card layout, or dashboard grid across unrelated products without a domain reason.
|
|
194
|
+
|
|
195
|
+
## Delivery modes
|
|
196
|
+
|
|
197
|
+
### Greenfield
|
|
198
|
+
1. Choose page variant (app, detail, settings, landing, institutional)
|
|
199
|
+
2. Load relevant references
|
|
200
|
+
3. Apply token scope from `design-tokens.md`
|
|
201
|
+
4. Compose layout from `patterns.md` or `websites.md`
|
|
202
|
+
5. Build components from `components.md`
|
|
203
|
+
|
|
204
|
+
### Brownfield
|
|
205
|
+
1. Audit existing UI before rewriting
|
|
206
|
+
2. Map Warm Craft tokens onto the existing component library
|
|
207
|
+
3. Fix token scope issues (font/color variables must be on the correct container)
|
|
208
|
+
4. Consolidate duplicate variants before introducing new ones
|
|
209
|
+
5. Prefer targeted upgrades over full rewrites unless the user asks for a redesign
|