@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,231 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-patterns
|
|
3
|
+
description: Page-level layout patterns for the Cognitive Core design system — dashboard shell, settings page, auth page, list-detail, command center, landing page, frontpage, and institutional page layouts. Load foundations and components first. Use when you need to compose a full page or screen layout.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Patterns — Page-Level Layouts
|
|
7
|
+
|
|
8
|
+
Requires: `foundations/SKILL.md` + `components/SKILL.md` loaded first.
|
|
9
|
+
|
|
10
|
+
These patterns define how to compose components into full page layouts. Each pattern includes a structure diagram, which components to use, and spacing rules.
|
|
11
|
+
|
|
12
|
+
## 1. Dashboard Shell
|
|
13
|
+
|
|
14
|
+
The base layout for any admin/dashboard interface.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
┌────────────────────────────────────────────────────────┐
|
|
18
|
+
│ TOP BAR (sticky, bg-void, z-sticky) │
|
|
19
|
+
├────────────────────────────────────────────────────────┤
|
|
20
|
+
│ STATS ROW: [StatCard] [StatCard] [StatCard] [StatCard]│
|
|
21
|
+
├────────────────────────────────────────────────────────┤
|
|
22
|
+
│ TAB BAR (border-bottom) │
|
|
23
|
+
├───────────┬────────────────────────────────────────────┤
|
|
24
|
+
│ SIDEBAR │ CONTENT │
|
|
25
|
+
│ 200-220px │ ┌─ Section Header ──────────────────┐ │
|
|
26
|
+
│ │ │ Grid: [Card] [Card] [Card] [Card] │ │
|
|
27
|
+
│ │ └───────────────────────────────────┘ │
|
|
28
|
+
│ │ ┌─ Section Header ──────────────────┐ │
|
|
29
|
+
│ │ │ Grid: [Card] [Card] [Card] │ │
|
|
30
|
+
│ │ └───────────────────────────────────┘ │
|
|
31
|
+
└───────────┴────────────────────────────────────────────┘
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**CSS skeleton:**
|
|
35
|
+
```css
|
|
36
|
+
.shell { min-height: 100vh; background: var(--bg-base); }
|
|
37
|
+
.stats-row { display: flex; gap: var(--space-3); padding: var(--space-5) var(--space-5) 0; flex-wrap: wrap; }
|
|
38
|
+
.main-layout { display: flex; min-height: calc(100vh - 230px); }
|
|
39
|
+
.sidebar { width: 200px; flex-shrink: 0; border-right: 1px solid var(--border-subtle); padding: var(--space-4); }
|
|
40
|
+
.content { flex: 1; padding: var(--space-4) var(--space-5); overflow-y: auto; }
|
|
41
|
+
.card-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Variant — with feature panels:**
|
|
45
|
+
Below stats and above card grid, add a two-column row: `grid-template-columns: 1fr 280px`. Left = DNA Panel. Right = Mode Panel.
|
|
46
|
+
|
|
47
|
+
## 2. Detail Page (Entity Profile)
|
|
48
|
+
|
|
49
|
+
For viewing a single entity (product, user, project, contact).
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
┌────────────────────────────────────────────────────────┐
|
|
53
|
+
│ TOP BAR │
|
|
54
|
+
├────────────────────────────────────────────────────────┤
|
|
55
|
+
│ Breadcrumbs: Gallery → Entity Name │
|
|
56
|
+
│ PROFILE HEADER (avatar, name, badges, stat cards) │
|
|
57
|
+
├────────────────────────────────────────────────────────┤
|
|
58
|
+
│ TAB BAR (Geral | DNA | Comunicação | Histórico) │
|
|
59
|
+
├───────────┬────────────────────────────────────────────┤
|
|
60
|
+
│ SIDEBAR │ TAB CONTENT │
|
|
61
|
+
│ │ (varies per tab — DNA panel, card grid, │
|
|
62
|
+
│ │ table, etc.) │
|
|
63
|
+
└───────────┴────────────────────────────────────────────┘
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Breadcrumbs:** `font-size: var(--text-sm)`, `color: var(--text-muted)`, active item in `--text-primary`.
|
|
67
|
+
|
|
68
|
+
## 3. Settings Page
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
┌────────────────────────────────────────────────────────┐
|
|
72
|
+
│ TOP BAR │
|
|
73
|
+
├───────────┬────────────────────────────────────────────┤
|
|
74
|
+
│ SIDEBAR │ SETTINGS TITLE │
|
|
75
|
+
│ │ ┌─ Card ─────────────────────────────┐ │
|
|
76
|
+
│ General │ │ SECTION LABEL │ │
|
|
77
|
+
│ Security │ │ [Label] [Input] │ │
|
|
78
|
+
│ Billing │ │ [Label] [Input] │ │
|
|
79
|
+
│ Team │ │ [Label] [Select] │ │
|
|
80
|
+
│ API │ │ [Save Button] │ │
|
|
81
|
+
│ │ └─────────────────────────────────────┘ │
|
|
82
|
+
│ │ ┌─ Card ─────────────────────────────┐ │
|
|
83
|
+
│ │ │ DANGER ZONE (red border accent) │ │
|
|
84
|
+
│ │ └─────────────────────────────────────┘ │
|
|
85
|
+
└───────────┴────────────────────────────────────────────┘
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
- Sidebar items map to form card sections
|
|
89
|
+
- Each section is a card with mono label header + form fields
|
|
90
|
+
- Danger zone card: `border-color: var(--semantic-red-dim)` with red-tinted actions
|
|
91
|
+
|
|
92
|
+
## 4. Auth Page (Login / Register)
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
┌────────────────────────────────────────────────────────┐
|
|
96
|
+
│ bg-void (full screen) │
|
|
97
|
+
│ │
|
|
98
|
+
│ ┌─ Card (max-w 420px) ──────────┐ │
|
|
99
|
+
│ │ [Logo] AppName │ │
|
|
100
|
+
│ │ SUBTITLE │ │
|
|
101
|
+
│ │ │ │
|
|
102
|
+
│ │ MONO LABEL: email │ │
|
|
103
|
+
│ │ [Input] │ │
|
|
104
|
+
│ │ MONO LABEL: password │ │
|
|
105
|
+
│ │ [Input] │ │
|
|
106
|
+
│ │ [Primary Button: full width] │ │
|
|
107
|
+
│ │ │ │
|
|
108
|
+
│ │ or ─── divider ─── or │ │
|
|
109
|
+
│ │ [Secondary Button: Google] │ │
|
|
110
|
+
│ │ Link: forgot / register │ │
|
|
111
|
+
│ └────────────────────────────────┘ │
|
|
112
|
+
│ │
|
|
113
|
+
│ radial glow behind card │
|
|
114
|
+
└────────────────────────────────────────────────────────┘
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
- Full viewport, centered flex, `background: var(--bg-void)`
|
|
118
|
+
- Card with `var(--bg-surface)`, `max-width: 420px`, `border-radius: var(--radius-xl)`
|
|
119
|
+
- Optional: radial glow effect behind card (like Mode Panel)
|
|
120
|
+
|
|
121
|
+
## 5. List-Detail (Split View)
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
┌────────────────────────────────────────────────────────┐
|
|
125
|
+
│ TOP BAR │
|
|
126
|
+
├────────────────────────────────────────────────────────┤
|
|
127
|
+
│ TAB BAR + Filter badges │
|
|
128
|
+
├──────────────────────┬─────────────────────────────────┤
|
|
129
|
+
│ LIST (scrollable) │ DETAIL PANEL │
|
|
130
|
+
│ ┌──────────────┐ │ Profile Header (compact) │
|
|
131
|
+
│ │ Item (active) │ │ Stat Cards row │
|
|
132
|
+
│ ├──────────────┤ │ Tab sub-navigation │
|
|
133
|
+
│ │ Item │ │ Content (DNA Panel, table, │
|
|
134
|
+
│ ├──────────────┤ │ etc.) │
|
|
135
|
+
│ │ Item │ │ │
|
|
136
|
+
│ └──────────────┘ │ │
|
|
137
|
+
└──────────────────────┴─────────────────────────────────┘
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
- List panel: `width: 340px`, `border-right: 1px solid var(--border-subtle)`
|
|
141
|
+
- Active item: `background: var(--bg-elevated)`, `border-left: 3px solid var(--accent)`
|
|
142
|
+
- Detail panel: flex: 1, scrollable independently
|
|
143
|
+
|
|
144
|
+
## 6. Landing Page / Frontpage
|
|
145
|
+
|
|
146
|
+
Default theme: **light**. Uses generous spacing and hero typography.
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
┌────────────────────────────────────────────────────────┐
|
|
150
|
+
│ TOP BAR (transparent → bg-void on scroll) │
|
|
151
|
+
├────────────────────────────────────────────────────────┤
|
|
152
|
+
│ │
|
|
153
|
+
│ HERO SECTION (padding: space-24) │
|
|
154
|
+
│ ┌──────────────────────────────────────────────┐ │
|
|
155
|
+
│ │ MONO LABEL: tagline │ │
|
|
156
|
+
│ │ DISPLAY HEADING (text-5xl, weight-black) │ │
|
|
157
|
+
│ │ Subtitle paragraph (text-lg, text-secondary) │ │
|
|
158
|
+
│ │ [CTA Button] [Secondary Button] │ │
|
|
159
|
+
│ └──────────────────────────────────────────────┘ │
|
|
160
|
+
│ │
|
|
161
|
+
├────────────────────────────────────────────────────────┤
|
|
162
|
+
│ FEATURES SECTION (bg-surface, padding: space-20) │
|
|
163
|
+
│ Section Header (centered) │
|
|
164
|
+
│ [InfoCard] [InfoCard] [InfoCard] (3-col grid) │
|
|
165
|
+
│ │
|
|
166
|
+
├────────────────────────────────────────────────────────┤
|
|
167
|
+
│ STATS SECTION (bg-base, padding: space-16) │
|
|
168
|
+
│ [StatCard] [StatCard] [StatCard] [StatCard] │
|
|
169
|
+
│ │
|
|
170
|
+
├────────────────────────────────────────────────────────┤
|
|
171
|
+
│ SOCIAL PROOF / TESTIMONIALS (bg-surface) │
|
|
172
|
+
│ Quote cards in 2-col grid │
|
|
173
|
+
│ │
|
|
174
|
+
├────────────────────────────────────────────────────────┤
|
|
175
|
+
│ CTA SECTION (accent glow background) │
|
|
176
|
+
│ Display heading + CTA button (centered) │
|
|
177
|
+
│ │
|
|
178
|
+
├────────────────────────────────────────────────────────┤
|
|
179
|
+
│ FOOTER (bg-void) │
|
|
180
|
+
│ Columns: Brand | Links | Links | Newsletter │
|
|
181
|
+
└────────────────────────────────────────────────────────┘
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Key differences from dashboard:**
|
|
185
|
+
- Sections are full-width with alternating `bg-base` / `bg-surface`
|
|
186
|
+
- Spacing between sections: `padding: var(--space-20) var(--space-6)`
|
|
187
|
+
- Hero heading: `--text-5xl` on desktop, `--text-3xl` on mobile
|
|
188
|
+
- Content max-width: `1200px`, centered with `margin: 0 auto`
|
|
189
|
+
- Section headers centered: `text-align: center`
|
|
190
|
+
- CTA section: `background: var(--bg-surface)` with `radial-gradient` glow
|
|
191
|
+
|
|
192
|
+
## 7. Institutional / Corporate
|
|
193
|
+
|
|
194
|
+
Same as Landing Page but with these pages:
|
|
195
|
+
|
|
196
|
+
- **About page**: Hero + text blocks + team card grid (avatar cards with name, role, social)
|
|
197
|
+
- **Services page**: Hero + service info cards (icon + title + desc) in 3-col grid
|
|
198
|
+
- **Contact page**: Two columns — left: text + info cards, right: form card
|
|
199
|
+
|
|
200
|
+
Team card variant:
|
|
201
|
+
```
|
|
202
|
+
┌───────────────────┐
|
|
203
|
+
│ [Avatar] │
|
|
204
|
+
│ Team Member │ ← text-heading, weight-bold
|
|
205
|
+
│ CEO │ ← text-accent, italic
|
|
206
|
+
│ Short bio text │ ← text-secondary, text-sm
|
|
207
|
+
│ [Social icons] │
|
|
208
|
+
└───────────────────┘
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Responsive Breakpoints
|
|
212
|
+
|
|
213
|
+
Apply to all patterns:
|
|
214
|
+
```css
|
|
215
|
+
/* Mobile: single column, sidebar collapses, stats stack */
|
|
216
|
+
@media (max-width: 768px) {
|
|
217
|
+
.main-layout { flex-direction: column; }
|
|
218
|
+
.sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--border-subtle); }
|
|
219
|
+
.card-grid { grid-template-columns: 1fr; }
|
|
220
|
+
.stats-row { flex-direction: column; }
|
|
221
|
+
.hero-heading { font-size: var(--text-3xl); }
|
|
222
|
+
}
|
|
223
|
+
/* Tablet: 2-col grid */
|
|
224
|
+
@media (min-width: 768px) and (max-width: 1024px) {
|
|
225
|
+
.card-grid { grid-template-columns: repeat(2, 1fr); }
|
|
226
|
+
}
|
|
227
|
+
/* Desktop: 3-4 col grid */
|
|
228
|
+
@media (min-width: 1024px) {
|
|
229
|
+
.card-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
|
|
230
|
+
}
|
|
231
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: premium-visual-design
|
|
3
|
+
version: 2.1.0
|
|
4
|
+
description: Premium Visual Design System v2.1 — Dark-first design language for AIOSON Squad Dashboard. Provides tokens, patterns, and components for inter-squad UI: agent threads, dependency graphs, review workflows, notification center, team switcher. Use when building or reviewing any Squad Dashboard UI, inter-squad communication interface, or task/review workflow screens. Triggers on: "squad dashboard UI", "agent message thread", "task dependency", "hunk review", "notification center", "team switcher", "@mention", "review workflow".
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Premium Visual Design System v2.1
|
|
8
|
+
|
|
9
|
+
Design system for AIOSON Squad Dashboard v3 and inter-squad UI. Dark-first, density-optimized, terminal-adjacent aesthetic.
|
|
10
|
+
|
|
11
|
+
## What's in v2.1
|
|
12
|
+
|
|
13
|
+
### Additions in v2.1.0
|
|
14
|
+
- `tokens/status-extended.md` — blocked/ready/solo/auto/human/review state tokens
|
|
15
|
+
- `patterns/agent-message-thread.md` — inter-squad feed with @mentions and reactions
|
|
16
|
+
- `patterns/task-dependency-graph.md` — SVG-based DAG with zero external deps
|
|
17
|
+
- `patterns/review-workflow-ui.md` — hunk-level code review with approve/reject flow
|
|
18
|
+
- `patterns/notification-panel.md` — notification center with filters and grouping
|
|
19
|
+
- `components/team-switcher.md` — sidebar squad navigation component
|
|
20
|
+
- `components/mention-autocomplete.md` — @agent, @squad, #task autocomplete
|
|
21
|
+
- `components/notification-center.md` — bell icon + badge + dropdown panel
|
|
22
|
+
- `components/dependency-node.md` — individual DAG node component
|
|
23
|
+
- `components/review-action-bar.md` — approve/reject/comment action bar
|
|
24
|
+
- `components/agent-badge.md` — auto/human/solo agent type indicator
|
|
25
|
+
|
|
26
|
+
## Architecture
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
skills/premium-visual-design/
|
|
30
|
+
├── SKILL.md ← Router (this file)
|
|
31
|
+
├── tokens/
|
|
32
|
+
│ └── status-extended.md ← State & status color tokens
|
|
33
|
+
├── patterns/
|
|
34
|
+
│ ├── agent-message-thread.md ← Inter-squad message feed
|
|
35
|
+
│ ├── task-dependency-graph.md ← DAG visualization
|
|
36
|
+
│ ├── review-workflow-ui.md ← Review + diff + hunks
|
|
37
|
+
│ └── notification-panel.md ← Notification list with filters
|
|
38
|
+
└── components/
|
|
39
|
+
├── agent-badge.md ← Agent type badge
|
|
40
|
+
├── team-switcher.md ← Squad sidebar nav
|
|
41
|
+
├── mention-autocomplete.md ← @mention dropdown
|
|
42
|
+
├── notification-center.md ← Bell + badge + panel
|
|
43
|
+
├── dependency-node.md ← DAG node
|
|
44
|
+
└── review-action-bar.md ← Approve/reject bar
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Design Language
|
|
48
|
+
|
|
49
|
+
**Aesthetic**: Dark terminal-adjacent. Dense but not cluttered. Monospace accents.
|
|
50
|
+
|
|
51
|
+
**Color foundation** (CSS variables, dark theme):
|
|
52
|
+
```css
|
|
53
|
+
--bg: #0f1117; /* deep background */
|
|
54
|
+
--bg-card: #1a1d27; /* card surface */
|
|
55
|
+
--bg-hover: #222632; /* hover/elevated */
|
|
56
|
+
--border: #2a2e3a; /* subtle borders */
|
|
57
|
+
--text: #e1e4eb; /* primary text */
|
|
58
|
+
--text-muted: #8b8fa3; /* secondary text */
|
|
59
|
+
--accent: #6c8aff; /* primary accent (indigo) */
|
|
60
|
+
--accent-dim: rgba(108,138,255,0.15);
|
|
61
|
+
--success: #4ade80; /* green */
|
|
62
|
+
--warning: #fbbf24; /* amber */
|
|
63
|
+
--danger: #f87171; /* red */
|
|
64
|
+
--cyan: #22d3ee; /* cyan accent */
|
|
65
|
+
--purple: #c084fc; /* purple accent */
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Loading guide for agents
|
|
69
|
+
|
|
70
|
+
| Task | Load |
|
|
71
|
+
|------|------|
|
|
72
|
+
| Agent message feed | tokens/status-extended → components/agent-badge → components/mention-autocomplete → patterns/agent-message-thread |
|
|
73
|
+
| Task dependencies | tokens/status-extended → components/dependency-node → patterns/task-dependency-graph |
|
|
74
|
+
| Code review | tokens/status-extended → components/review-action-bar → patterns/review-workflow-ui |
|
|
75
|
+
| Notifications | tokens/status-extended → components/notification-center → patterns/notification-panel |
|
|
76
|
+
| Squad nav | tokens/status-extended → components/team-switcher |
|
|
77
|
+
| Full dashboard | Load all in order: tokens → components → patterns |
|
|
78
|
+
|
|
79
|
+
## Changelog
|
|
80
|
+
|
|
81
|
+
### v2.1.0 (2026-03-24)
|
|
82
|
+
- Added 11 new artefacts: 1 token file, 4 patterns, 6 components
|
|
83
|
+
- All artefacts target Squad Dashboard v3 (PRD 19.2) and inter-squad communication UI
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Agent Badge Component
|
|
2
|
+
|
|
3
|
+
Visual badge identifying the execution type of an agent: `auto`, `human`, or `solo`.
|
|
4
|
+
|
|
5
|
+
## Anatomy
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
9
|
+
│ ⚡ auto │ │ 👤 human │ │ ◆ solo │
|
|
10
|
+
└──────────┘ └──────────┘ └──────────┘
|
|
11
|
+
cyan amber muted
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Types
|
|
15
|
+
|
|
16
|
+
| Type | Icon | Color token | Meaning |
|
|
17
|
+
|------|------|------------|---------|
|
|
18
|
+
| `auto` | ⚡ | `--state-auto` (#22d3ee) | Fully autonomous — no human gates |
|
|
19
|
+
| `human` | 👤 | `--state-human` (#fbbf24) | Human-in-the-loop agent |
|
|
20
|
+
| `solo` | ◆ | `--state-solo` (#8b8fa3) | Single agent, no squad context |
|
|
21
|
+
|
|
22
|
+
## Sizes
|
|
23
|
+
|
|
24
|
+
| Size class | Height | Font |
|
|
25
|
+
|-----------|--------|------|
|
|
26
|
+
| `sm` | 18px | 10px |
|
|
27
|
+
| (default) | 24px | 12px |
|
|
28
|
+
| `lg` | 32px | 14px |
|
|
29
|
+
|
|
30
|
+
## CSS
|
|
31
|
+
|
|
32
|
+
```css
|
|
33
|
+
.agent-badge {
|
|
34
|
+
display: inline-flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
gap: 4px;
|
|
37
|
+
padding: 2px 8px;
|
|
38
|
+
border-radius: 4px;
|
|
39
|
+
font-size: 12px;
|
|
40
|
+
font-weight: 500;
|
|
41
|
+
border: 1px solid transparent;
|
|
42
|
+
white-space: nowrap;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.agent-badge-auto {
|
|
46
|
+
background: rgba(34, 211, 238, 0.12);
|
|
47
|
+
color: var(--state-auto, #22d3ee);
|
|
48
|
+
border-color: rgba(34, 211, 238, 0.25);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.agent-badge-human {
|
|
52
|
+
background: rgba(251, 191, 36, 0.12);
|
|
53
|
+
color: var(--state-human, #fbbf24);
|
|
54
|
+
border-color: rgba(251, 191, 36, 0.25);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.agent-badge-solo {
|
|
58
|
+
background: rgba(139, 143, 163, 0.12);
|
|
59
|
+
color: var(--state-solo, #8b8fa3);
|
|
60
|
+
border-color: rgba(139, 143, 163, 0.25);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Sizes */
|
|
64
|
+
.agent-badge.sm { padding: 1px 6px; font-size: 10px; }
|
|
65
|
+
.agent-badge.lg { padding: 4px 12px; font-size: 14px; }
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## HTML Examples
|
|
69
|
+
|
|
70
|
+
```html
|
|
71
|
+
<!-- Default sizes -->
|
|
72
|
+
<span class="agent-badge agent-badge-auto">⚡ auto</span>
|
|
73
|
+
<span class="agent-badge agent-badge-human">👤 human</span>
|
|
74
|
+
<span class="agent-badge agent-badge-solo">◆ solo</span>
|
|
75
|
+
|
|
76
|
+
<!-- Small (in team-switcher or compact lists) -->
|
|
77
|
+
<span class="agent-badge agent-badge-auto sm">⚡</span>
|
|
78
|
+
|
|
79
|
+
<!-- Large (agent profile header) -->
|
|
80
|
+
<span class="agent-badge agent-badge-human lg">👤 human-gate</span>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Usage in context
|
|
84
|
+
|
|
85
|
+
**In agent card header**: place badge after agent name, same line.
|
|
86
|
+
```html
|
|
87
|
+
<h4>planner <span class="agent-badge agent-badge-auto sm">⚡ auto</span></h4>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**In team-switcher**: use `sm` to avoid crowding the sidebar item.
|
|
91
|
+
|
|
92
|
+
**In process list**: show alongside agent slug in the Processes tab.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Dependency Node Component
|
|
2
|
+
|
|
3
|
+
Individual node in the task dependency graph. Rendered as an SVG `<g>` element.
|
|
4
|
+
|
|
5
|
+
## Dimensions
|
|
6
|
+
|
|
7
|
+
- Width: `120px`
|
|
8
|
+
- Height: `44px`
|
|
9
|
+
- Corner radius: `6px`
|
|
10
|
+
- Status bar: left `4px` wide, full height
|
|
11
|
+
|
|
12
|
+
## Anatomy
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
┌─┬────────────────────────┐
|
|
16
|
+
│█│ write-prd [▶] │ ← task slug + status icon (right)
|
|
17
|
+
│█│ planner │ ← agent slug (muted, smaller)
|
|
18
|
+
└─┴────────────────────────┘
|
|
19
|
+
↑ 4px status bar (color by state)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## SVG Structure
|
|
23
|
+
|
|
24
|
+
```svg
|
|
25
|
+
<g class="dep-node" data-status="running" data-task="write-prd">
|
|
26
|
+
<!-- Background rect -->
|
|
27
|
+
<rect width="120" height="44" rx="6"
|
|
28
|
+
fill="#1a1d27" stroke="#2a2e3a" stroke-width="1"/>
|
|
29
|
+
|
|
30
|
+
<!-- Status bar (left edge) -->
|
|
31
|
+
<rect width="4" height="44" rx="2"
|
|
32
|
+
fill="#6c8aff"/> <!-- color changes by status -->
|
|
33
|
+
|
|
34
|
+
<!-- Task slug -->
|
|
35
|
+
<text x="16" y="18"
|
|
36
|
+
font-size="12" font-weight="600" fill="#e1e4eb"
|
|
37
|
+
font-family="monospace">write-prd</text>
|
|
38
|
+
|
|
39
|
+
<!-- Agent label -->
|
|
40
|
+
<text x="16" y="32"
|
|
41
|
+
font-size="10" fill="#8b8fa3"
|
|
42
|
+
font-family="monospace">planner</text>
|
|
43
|
+
|
|
44
|
+
<!-- Status label (right side) -->
|
|
45
|
+
<text x="112" y="18"
|
|
46
|
+
font-size="9" fill="#6c8aff"
|
|
47
|
+
text-anchor="end">running</text>
|
|
48
|
+
|
|
49
|
+
<!-- Connector port — left (incoming edges) -->
|
|
50
|
+
<circle cx="0" cy="22" r="3" fill="#2a2e3a" stroke="#6c8aff" stroke-width="1"/>
|
|
51
|
+
|
|
52
|
+
<!-- Connector port — right (outgoing edges) -->
|
|
53
|
+
<circle cx="120" cy="22" r="3" fill="#2a2e3a" stroke="#6c8aff" stroke-width="1"/>
|
|
54
|
+
</g>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Status Bar Colors
|
|
58
|
+
|
|
59
|
+
Map from `status-extended.md` tokens:
|
|
60
|
+
|
|
61
|
+
| Status | Color | Hex |
|
|
62
|
+
|--------|-------|-----|
|
|
63
|
+
| `pending` | `--state-idle` | `#8b8fa3` |
|
|
64
|
+
| `ready` | `--state-ready` | `#4ade80` |
|
|
65
|
+
| `running` | `--state-running` | `#6c8aff` |
|
|
66
|
+
| `blocked` | `--state-blocked` | `#f87171` |
|
|
67
|
+
| `done` | `--state-done` | `#4ade80` |
|
|
68
|
+
| `error` | `--state-error` | `#f87171` |
|
|
69
|
+
| `review` | `--state-review` | `#c084fc` |
|
|
70
|
+
|
|
71
|
+
## CSS (applied to SVG via class)
|
|
72
|
+
|
|
73
|
+
```css
|
|
74
|
+
.dep-node rect:first-of-type {
|
|
75
|
+
transition: stroke 0.15s, stroke-width 0.15s;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.dep-node:hover rect:first-of-type {
|
|
79
|
+
stroke: var(--accent);
|
|
80
|
+
stroke-width: 1.5;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.dep-node.selected rect:first-of-type {
|
|
84
|
+
stroke: var(--accent);
|
|
85
|
+
stroke-width: 2;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.dep-node { cursor: pointer; }
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Connector Ports
|
|
92
|
+
|
|
93
|
+
Ports are small circles at `(0, 22)` (left, for incoming) and `(120, 22)` (right, outgoing). Show on hover using CSS opacity:
|
|
94
|
+
|
|
95
|
+
```css
|
|
96
|
+
.dep-node circle { opacity: 0; transition: opacity 0.15s; }
|
|
97
|
+
.dep-node:hover circle { opacity: 1; }
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Usage
|
|
101
|
+
|
|
102
|
+
Used inside the task dependency graph pattern (`task-dependency-graph.md`). Each node is a `<g>` positioned by the layout algorithm at `transform="translate(x, y)"`.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Mention Autocomplete Component
|
|
2
|
+
|
|
3
|
+
Dropdown that appears when typing `@` (agents/squads) or `#` (tasks) in any text input.
|
|
4
|
+
|
|
5
|
+
## Anatomy
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌─ @write ──────────────────────────┐
|
|
9
|
+
│ Agents │
|
|
10
|
+
│ ● writer alpha-squad │ ← highlighted (keyboard/hover)
|
|
11
|
+
│ planner alpha-squad │
|
|
12
|
+
│ Squads │
|
|
13
|
+
│ bravo-squad │
|
|
14
|
+
└────────────────────────────────────┘
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Trigger rules
|
|
18
|
+
|
|
19
|
+
| Character | Shows | Groups |
|
|
20
|
+
|-----------|-------|--------|
|
|
21
|
+
| `@` | Agents, then Squads | "Agents" / "Squads" |
|
|
22
|
+
| `#` | Tasks | "Tasks" |
|
|
23
|
+
|
|
24
|
+
Filter list in real-time as user types after the trigger character.
|
|
25
|
+
|
|
26
|
+
## HTML Structure
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<div class="mention-dropdown" id="mention-dropdown" hidden>
|
|
30
|
+
<!-- Agents group -->
|
|
31
|
+
<div class="mention-group-label">Agents</div>
|
|
32
|
+
<div class="mention-item selected" data-value="@writer" tabindex="-1">
|
|
33
|
+
<span class="mention-item-icon">🤖</span>
|
|
34
|
+
<span class="mention-item-name">writer</span>
|
|
35
|
+
<span class="mention-item-sub">alpha-squad</span>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="mention-item" data-value="@planner" tabindex="-1">
|
|
38
|
+
<span class="mention-item-icon">🤖</span>
|
|
39
|
+
<span class="mention-item-name">planner</span>
|
|
40
|
+
<span class="mention-item-sub">alpha-squad</span>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<!-- Squads group -->
|
|
44
|
+
<div class="mention-group-label">Squads</div>
|
|
45
|
+
<div class="mention-item" data-value="@bravo-squad" tabindex="-1">
|
|
46
|
+
<span class="mention-item-icon">👥</span>
|
|
47
|
+
<span class="mention-item-name">bravo-squad</span>
|
|
48
|
+
<span class="mention-item-sub">squad</span>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## CSS
|
|
54
|
+
|
|
55
|
+
```css
|
|
56
|
+
.mention-dropdown {
|
|
57
|
+
position: absolute;
|
|
58
|
+
background: var(--bg-card);
|
|
59
|
+
border: 1px solid var(--border);
|
|
60
|
+
border-radius: 6px;
|
|
61
|
+
width: 260px;
|
|
62
|
+
max-height: 240px;
|
|
63
|
+
overflow-y: auto;
|
|
64
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
|
|
65
|
+
z-index: 1000;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.mention-group-label {
|
|
69
|
+
font-size: 10px;
|
|
70
|
+
text-transform: uppercase;
|
|
71
|
+
color: var(--text-muted);
|
|
72
|
+
padding: 6px 12px 2px;
|
|
73
|
+
letter-spacing: 0.4px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.mention-item {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: 8px;
|
|
80
|
+
padding: 7px 12px;
|
|
81
|
+
cursor: pointer;
|
|
82
|
+
font-size: 13px;
|
|
83
|
+
transition: background 0.1s;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.mention-item:hover,
|
|
87
|
+
.mention-item.selected {
|
|
88
|
+
background: var(--accent-dim);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.mention-item-icon {
|
|
92
|
+
font-size: 14px;
|
|
93
|
+
flex-shrink: 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.mention-item-name {
|
|
97
|
+
font-weight: 500;
|
|
98
|
+
flex: 1;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.mention-item-sub {
|
|
102
|
+
font-size: 11px;
|
|
103
|
+
color: var(--text-muted);
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Keyboard navigation (JS spec)
|
|
108
|
+
|
|
109
|
+
1. `@` or `#` typed in the input → show dropdown, filter to matching items
|
|
110
|
+
2. `ArrowDown` / `ArrowUp` → move `.selected` class between `.mention-item` rows
|
|
111
|
+
3. `Enter` → insert selected item's `data-value` + trailing space into the input, close dropdown
|
|
112
|
+
4. `Escape` → close dropdown without inserting
|
|
113
|
+
5. Click on `.mention-item` → same as Enter
|
|
114
|
+
6. Any non-matching char → re-filter, hide if no results
|
|
115
|
+
|
|
116
|
+
## Resulting inline markup
|
|
117
|
+
|
|
118
|
+
After insertion, wrap the mention in a `<span>`:
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<!-- Agent mention -->
|
|
122
|
+
<span class="mention mention-agent" data-slug="writer">@writer</span>
|
|
123
|
+
|
|
124
|
+
<!-- Squad mention -->
|
|
125
|
+
<span class="mention mention-squad" data-slug="bravo-squad">@bravo-squad</span>
|
|
126
|
+
|
|
127
|
+
<!-- Task mention -->
|
|
128
|
+
<span class="mention mention-task" data-slug="write-prd">#write-prd</span>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```css
|
|
132
|
+
.mention { padding: 1px 4px; border-radius: 3px; font-weight: 500; }
|
|
133
|
+
.mention-agent { background: var(--accent-dim); color: var(--accent); }
|
|
134
|
+
.mention-squad { background: rgba(34,211,238,0.10); color: var(--cyan, #22d3ee); }
|
|
135
|
+
.mention-task { background: rgba(192,132,252,0.10); color: var(--purple, #c084fc); }
|
|
136
|
+
```
|