@monoes/monomindcli 1.8.0 → 1.9.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/.claude/agents/design/design-monodesign.md +121 -0
- package/.claude/agents/github/issue-tracker.md +12 -12
- package/.claude/agents/github/pr-manager.md +10 -10
- package/.claude/agents/github/release-manager.md +49 -105
- package/.claude/agents/github/repo-architect.md +73 -92
- package/.claude/agents/github/sync-coordinator.md +55 -123
- package/.claude/agents/marketing/marketing-competitive-content.md +155 -0
- package/.claude/agents/marketing/marketing-content-creator.md +13 -0
- package/.claude/agents/marketing/marketing-cro-specialist.md +147 -0
- package/.claude/agents/marketing/marketing-email-specialist.md +90 -0
- package/.claude/agents/marketing/marketing-launch-strategist.md +129 -0
- package/.claude/agents/marketing/marketing-pricing-strategist.md +127 -0
- package/.claude/agents/specialists/integration-architect.md +94 -0
- package/.claude/commands/agents/README.md +4 -0
- package/.claude/commands/agents/agent-capabilities.md +6 -2
- package/.claude/commands/agents/agent-coordination.md +4 -0
- package/.claude/commands/agents/agent-spawning.md +4 -0
- package/.claude/commands/agents/agent-types.md +6 -2
- package/.claude/commands/analysis/README.md +14 -5
- package/.claude/commands/analysis/bottleneck-detect.md +30 -123
- package/.claude/commands/analysis/performance-bottlenecks.md +14 -14
- package/.claude/commands/analysis/performance-report.md +38 -11
- package/.claude/commands/analysis/token-efficiency.md +13 -16
- package/.claude/commands/analysis/token-usage.md +34 -12
- package/.claude/commands/automation/README.md +15 -5
- package/.claude/commands/automation/auto-agent.md +49 -85
- package/.claude/commands/automation/self-healing.md +20 -18
- package/.claude/commands/automation/session-memory.md +28 -29
- package/.claude/commands/automation/smart-agents.md +17 -9
- package/.claude/commands/automation/smart-spawn.md +52 -11
- package/.claude/commands/automation/workflow-select.md +46 -11
- package/.claude/commands/browse.md +5 -0
- package/.claude/commands/coordination/README.md +9 -5
- package/.claude/commands/coordination/agent-spawn.md +53 -9
- package/.claude/commands/coordination/swarm-init.md +39 -42
- package/.claude/commands/coordination/task-orchestrate.md +65 -11
- package/.claude/commands/github/README.md +21 -8
- package/.claude/commands/github/github-modes.md +9 -5
- package/.claude/commands/github/issue-tracker.md +34 -33
- package/.claude/commands/github/pr-manager.md +20 -17
- package/.claude/commands/github/release-manager.md +37 -49
- package/.claude/commands/github/repo-architect.md +39 -41
- package/.claude/commands/github/sync-coordinator.md +45 -49
- package/.claude/commands/hive-mind/README.md +42 -17
- package/.claude/commands/hive-mind/hive-mind-consensus.md +68 -4
- package/.claude/commands/hive-mind/hive-mind-init.md +55 -5
- package/.claude/commands/hive-mind/hive-mind-memory.md +69 -4
- package/.claude/commands/hive-mind/hive-mind-spawn.md +71 -10
- package/.claude/commands/hive-mind/hive-mind-status.md +52 -4
- package/.claude/commands/hive-mind/hive-mind-stop.md +51 -4
- package/.claude/commands/hive-mind/hive-mind.md +74 -14
- package/.claude/commands/hooks/README.md +62 -7
- package/.claude/commands/hooks/overview.md +94 -35
- package/.claude/commands/hooks/post-edit.md +48 -87
- package/.claude/commands/hooks/post-task.md +37 -87
- package/.claude/commands/hooks/pre-edit.md +52 -84
- package/.claude/commands/hooks/pre-task.md +46 -81
- package/.claude/commands/hooks/session-end.md +49 -85
- package/.claude/commands/hooks/setup.md +87 -58
- package/.claude/commands/mastermind/_repeat.md +308 -0
- package/.claude/commands/mastermind/architect.md +49 -0
- package/.claude/commands/mastermind/brain.md +98 -0
- package/.claude/commands/mastermind/build.md +22 -0
- package/.claude/commands/mastermind/content.md +22 -0
- package/.claude/commands/mastermind/createorg.md +94 -0
- package/.claude/commands/mastermind/finance.md +22 -0
- package/.claude/commands/mastermind/idea.md +22 -0
- package/.claude/commands/mastermind/marketing.md +22 -0
- package/.claude/commands/mastermind/master.md +379 -0
- package/.claude/commands/mastermind/ops.md +22 -0
- package/.claude/commands/mastermind/release.md +22 -0
- package/.claude/commands/mastermind/research.md +22 -0
- package/.claude/commands/mastermind/review.md +22 -0
- package/.claude/commands/mastermind/runorg.md +106 -0
- package/.claude/commands/mastermind/sales.md +22 -0
- package/.claude/commands/mastermind/techport.md +17 -0
- package/.claude/commands/memory/README.md +75 -5
- package/.claude/commands/memory/memory-search.md +63 -11
- package/.claude/commands/monitoring/README.md +64 -4
- package/.claude/commands/monitoring/agent-metrics.md +50 -10
- package/.claude/commands/monitoring/agents.md +59 -32
- package/.claude/commands/monitoring/status.md +96 -34
- package/.claude/commands/monograph/README.md +102 -0
- package/.claude/commands/monograph/monograph-build.md +79 -0
- package/.claude/commands/monograph/monograph-search.md +96 -0
- package/.claude/commands/monograph/monograph-stats.md +53 -0
- package/.claude/commands/monograph/monograph-watch.md +63 -0
- package/.claude/commands/monograph/monograph-wiki.md +91 -0
- package/.claude/commands/monomind/createtask.md +277 -0
- package/.claude/commands/{monomind-do.md → monomind/do.md} +21 -8
- package/.claude/commands/monomind/help.md +118 -0
- package/.claude/commands/{monomind-idea.md → monomind/idea.md} +22 -28
- package/.claude/commands/{monomind-improve.md → monomind/improve.md} +21 -27
- package/.claude/commands/monomind/memory.md +230 -0
- package/.claude/commands/monomind/repeat.md +201 -0
- package/.claude/commands/monomind/review.md +313 -0
- package/.claude/commands/monomind/specialagents.md +125 -0
- package/.claude/commands/monomind/swarm.md +161 -0
- package/.claude/commands/monomind/understand.md +148 -0
- package/.claude/commands/optimization/README.md +69 -5
- package/.claude/commands/optimization/auto-topology.md +66 -43
- package/.claude/commands/optimization/parallel-execution.md +65 -39
- package/.claude/commands/optimization/performance-optimize.md +79 -0
- package/.claude/commands/pair/README.md +48 -230
- package/.claude/commands/pair/examples.md +85 -441
- package/.claude/commands/pair/modes.md +77 -303
- package/.claude/commands/pair/session.md +76 -359
- package/.claude/commands/sparc/analyzer.md +9 -26
- package/.claude/commands/sparc/architect.md +8 -25
- package/.claude/commands/sparc/ask.md +27 -68
- package/.claude/commands/sparc/batch-executor.md +8 -25
- package/.claude/commands/sparc/code.md +12 -53
- package/.claude/commands/sparc/coder.md +8 -25
- package/.claude/commands/sparc/debug.md +12 -53
- package/.claude/commands/sparc/debugger.md +8 -25
- package/.claude/commands/sparc/designer.md +8 -25
- package/.claude/commands/sparc/devops.md +16 -57
- package/.claude/commands/sparc/docs-writer.md +12 -53
- package/.claude/commands/sparc/documenter.md +8 -25
- package/.claude/commands/sparc/innovator.md +8 -25
- package/.claude/commands/sparc/integration.md +12 -53
- package/.claude/commands/sparc/mcp.md +12 -53
- package/.claude/commands/sparc/memory-manager.md +28 -25
- package/.claude/commands/sparc/optimizer.md +8 -25
- package/.claude/commands/sparc/orchestrator.md +35 -97
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +13 -54
- package/.claude/commands/sparc/refinement-optimization-mode.md +13 -54
- package/.claude/commands/sparc/researcher.md +8 -25
- package/.claude/commands/sparc/reviewer.md +8 -25
- package/.claude/commands/sparc/security-review.md +13 -54
- package/.claude/commands/sparc/sparc-modes.md +97 -151
- package/.claude/commands/sparc/sparc.md +16 -56
- package/.claude/commands/sparc/spec-pseudocode.md +13 -54
- package/.claude/commands/sparc/supabase-admin.md +19 -66
- package/.claude/commands/sparc/swarm-coordinator.md +21 -25
- package/.claude/commands/sparc/tdd.md +8 -25
- package/.claude/commands/sparc/tester.md +8 -25
- package/.claude/commands/sparc/tutorial.md +12 -53
- package/.claude/commands/sparc/workflow-manager.md +8 -25
- package/.claude/commands/sparc.md +76 -130
- package/.claude/commands/stream-chain/pipeline.md +72 -77
- package/.claude/commands/stream-chain/run.md +133 -47
- package/.claude/commands/swarm/README.md +37 -12
- package/.claude/commands/swarm/analysis.md +47 -69
- package/.claude/commands/swarm/development.md +45 -69
- package/.claude/commands/swarm/examples.md +77 -142
- package/.claude/commands/swarm/maintenance.md +47 -74
- package/.claude/commands/swarm/optimization.md +54 -87
- package/.claude/commands/swarm/research.md +47 -107
- package/.claude/commands/swarm/swarm-analysis.md +58 -4
- package/.claude/commands/swarm/swarm-background.md +61 -4
- package/.claude/commands/swarm/swarm-modes.md +63 -4
- package/.claude/commands/swarm/swarm-monitor.md +50 -4
- package/.claude/commands/swarm/swarm-status.md +40 -4
- package/.claude/commands/swarm/swarm-strategies.md +73 -5
- package/.claude/commands/swarm/swarm.md +70 -18
- package/.claude/commands/swarm/testing.md +51 -102
- package/.claude/commands/tokens.md +6 -1
- package/.claude/commands/training/README.md +36 -6
- package/.claude/commands/training/model-update.md +68 -15
- package/.claude/commands/training/neural-patterns.md +54 -55
- package/.claude/commands/training/neural-train.md +70 -16
- package/.claude/commands/training/pattern-learn.md +60 -16
- package/.claude/commands/training/specialization.md +78 -49
- package/.claude/commands/truth/start.md +87 -109
- package/.claude/commands/ts.md +7 -2
- package/.claude/commands/verify/check.md +90 -34
- package/.claude/commands/verify/start.md +71 -94
- package/.claude/commands/workflows/README.md +62 -6
- package/.claude/commands/workflows/development.md +69 -61
- package/.claude/commands/workflows/research.md +73 -47
- package/.claude/commands/workflows/workflow-create.md +75 -16
- package/.claude/commands/workflows/workflow-execute.md +94 -16
- package/.claude/commands/workflows/workflow-export.md +81 -16
- package/.claude/helpers/control-start.cjs +91 -0
- package/.claude/helpers/extras-registry.json +4104 -1991
- package/.claude/helpers/graphify-freshen.cjs +44 -13
- package/.claude/helpers/hook-handler.cjs +256 -1
- package/.claude/helpers/learning-service.mjs +0 -0
- package/.claude/helpers/loop-tracker.cjs +107 -0
- package/.claude/helpers/metrics-db.mjs +0 -0
- package/.claude/helpers/router.cjs +48 -68
- package/.claude/helpers/skill-registry.json +89 -104
- package/.claude/helpers/statusline.cjs +33 -2
- package/.claude/helpers/swarm-hooks.sh +0 -0
- package/.claude/skills/.monomind/data/ranked-context.json +5 -0
- package/.claude/skills/.monomind/sessions/current.json +13 -0
- package/.claude/skills/.monomind/sessions/session-1777829336455.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777831614725.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777832095857.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777839814183.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777841847131.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777843309463.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777880867159.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777881884593.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777884090471.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777884808221.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777885672155.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777886852818.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777896532690.json +15 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +11 -12
- package/.claude/skills/agentdb-learning/SKILL.md +20 -21
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +28 -30
- package/.claude/skills/agentdb-optimization/SKILL.md +11 -12
- package/.claude/skills/agentdb-vector-search/SKILL.md +37 -41
- package/.claude/skills/{v3-integration-deep → agentic-integration}/SKILL.md +20 -13
- package/.claude/skills/agentic-jujutsu/SKILL.md +22 -22
- package/.claude/skills/{v3-cli-modernization → cli-modernization}/SKILL.md +17 -8
- package/.claude/skills/{v3-core-implementation → core-implementation}/SKILL.md +33 -8
- package/.claude/skills/{v3-ddd-architecture → ddd-architecture}/SKILL.md +18 -25
- package/.claude/skills/github-code-review/SKILL.md +82 -83
- package/.claude/skills/github-multi-repo/SKILL.md +42 -46
- package/.claude/skills/github-project-management/SKILL.md +83 -88
- package/.claude/skills/github-release-management/SKILL.md +12 -18
- package/.claude/skills/github-workflow-automation/SKILL.md +70 -74
- package/.claude/skills/hooks-automation/SKILL.md +9 -13
- package/.claude/skills/mastermind/_intake.md +83 -0
- package/.claude/skills/mastermind/_protocol.md +275 -0
- package/.claude/skills/mastermind/architect.md +847 -0
- package/.claude/skills/mastermind/build.md +158 -0
- package/.claude/skills/mastermind/content.md +185 -0
- package/.claude/skills/mastermind/createorg.md +318 -0
- package/.claude/skills/mastermind/finance.md +154 -0
- package/.claude/skills/mastermind/idea.md +158 -0
- package/.claude/skills/mastermind/marketing.md +216 -0
- package/.claude/skills/mastermind/monotask.md +350 -0
- package/.claude/skills/mastermind/ops.md +156 -0
- package/.claude/skills/mastermind/references/copywriting-frameworks.md +181 -0
- package/.claude/skills/mastermind/references/persuasion-psychology.md +158 -0
- package/.claude/skills/mastermind/release.md +156 -0
- package/.claude/skills/mastermind/research.md +156 -0
- package/.claude/skills/mastermind/review.md +157 -0
- package/.claude/skills/mastermind/runorg.md +308 -0
- package/.claude/skills/mastermind/sales.md +158 -0
- package/.claude/skills/mastermind/techport.md +743 -0
- package/.claude/skills/{v3-mcp-optimization → mcp-optimization}/SKILL.md +35 -14
- package/.claude/skills/{v3-memory-unification → memory-unification}/SKILL.md +20 -4
- package/.claude/skills/monodesign/SKILL.md +302 -0
- package/.claude/skills/monodesign/reference/adapt.md +190 -0
- package/.claude/skills/monodesign/reference/animate.md +175 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +187 -0
- package/.claude/skills/monodesign/reference/audit.md +133 -0
- package/.claude/skills/monodesign/reference/bolder.md +113 -0
- package/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
- package/.claude/skills/monodesign/reference/brand.md +114 -0
- package/.claude/skills/monodesign/reference/clarify.md +174 -0
- package/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
- package/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
- package/.claude/skills/monodesign/reference/colorize.md +154 -0
- package/.claude/skills/monodesign/reference/component-specs.md +260 -0
- package/.claude/skills/monodesign/reference/component-states.md +274 -0
- package/.claude/skills/monodesign/reference/component-system.md +358 -0
- package/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
- package/.claude/skills/monodesign/reference/craft.md +193 -0
- package/.claude/skills/monodesign/reference/critique.md +213 -0
- package/.claude/skills/monodesign/reference/delight.md +302 -0
- package/.claude/skills/monodesign/reference/design-principles.md +246 -0
- package/.claude/skills/monodesign/reference/distill.md +111 -0
- package/.claude/skills/monodesign/reference/document.md +427 -0
- package/.claude/skills/monodesign/reference/extract.md +69 -0
- package/.claude/skills/monodesign/reference/harden.md +347 -0
- package/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +118 -0
- package/.claude/skills/monodesign/reference/interaction-design.md +195 -0
- package/.claude/skills/monodesign/reference/layout.md +141 -0
- package/.claude/skills/monodesign/reference/live.md +622 -0
- package/.claude/skills/monodesign/reference/motion-design.md +109 -0
- package/.claude/skills/monodesign/reference/onboard.md +234 -0
- package/.claude/skills/monodesign/reference/optimize.md +258 -0
- package/.claude/skills/monodesign/reference/overdrive.md +130 -0
- package/.claude/skills/monodesign/reference/personas.md +179 -0
- package/.claude/skills/monodesign/reference/polish.md +233 -0
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
- package/.claude/skills/monodesign/reference/product.md +62 -0
- package/.claude/skills/monodesign/reference/quieter.md +99 -0
- package/.claude/skills/monodesign/reference/responsive-design.md +114 -0
- package/.claude/skills/monodesign/reference/shape.md +151 -0
- package/.claude/skills/monodesign/reference/spatial-design.md +100 -0
- package/.claude/skills/monodesign/reference/teach.md +156 -0
- package/.claude/skills/monodesign/reference/token-architecture.md +222 -0
- package/.claude/skills/monodesign/reference/typeset.md +124 -0
- package/.claude/skills/monodesign/reference/typography.md +159 -0
- package/.claude/skills/monodesign/reference/ux-research.md +143 -0
- package/.claude/skills/monodesign/reference/ux-rules.md +211 -0
- package/.claude/skills/monodesign/reference/ux-writing.md +107 -0
- package/.claude/skills/monomotion/SKILL.md +145 -0
- package/.claude/skills/monomotion/rules/api-control.md +139 -0
- package/.claude/skills/monomotion/rules/effects.md +109 -0
- package/.claude/skills/monomotion/rules/integration.md +140 -0
- package/.claude/skills/monomotion/rules/scroll.md +131 -0
- package/.claude/skills/monomotion/rules/sequencing.md +105 -0
- package/.claude/skills/monomotion/rules/svg.md +101 -0
- package/.claude/skills/monomotion/rules/text.md +119 -0
- package/.claude/skills/pair-programming/SKILL.md +1 -1
- package/.claude/skills/performance-analysis/SKILL.md +3 -3
- package/.claude/skills/{v3-performance-optimization → performance-optimization}/SKILL.md +16 -8
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +17 -19
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +4 -6
- package/.claude/skills/{v3-security-overhaul → security-hardening}/SKILL.md +13 -3
- package/.claude/skills/skill-builder/SKILL.md +19 -19
- package/.claude/skills/sparc-methodology/SKILL.md +55 -211
- package/.claude/skills/stop-slop/SKILL.md +67 -0
- package/.claude/skills/stop-slop/references/examples.md +61 -0
- package/.claude/skills/stop-slop/references/phrases.md +130 -0
- package/.claude/skills/stop-slop/references/structures.md +136 -0
- package/.claude/skills/swarm-advanced/SKILL.md +13 -43
- package/.claude/skills/{v3-swarm-coordination → swarm-coordination}/SKILL.md +39 -21
- package/.claude/skills/swarm-orchestration/SKILL.md +12 -12
- package/.claude/skills/verification-quality/SKILL.md +5 -5
- package/README.md +5 -5
- package/bin/cli.js +78 -13
- package/dist/src/agents/halt-signal.d.ts.map +1 -1
- package/dist/src/agents/halt-signal.js +33 -7
- package/dist/src/agents/halt-signal.js.map +1 -1
- package/dist/src/agents/managed-agent.d.ts.map +1 -1
- package/dist/src/agents/managed-agent.js +5 -2
- package/dist/src/agents/managed-agent.js.map +1 -1
- package/dist/src/agents/prompt-experiment.d.ts +3 -2
- package/dist/src/agents/prompt-experiment.d.ts.map +1 -1
- package/dist/src/agents/prompt-experiment.js +1 -1
- package/dist/src/agents/prompt-experiment.js.map +1 -1
- package/dist/src/agents/prompt-version-manager.d.ts +5 -2
- package/dist/src/agents/prompt-version-manager.d.ts.map +1 -1
- package/dist/src/agents/prompt-version-manager.js +26 -4
- package/dist/src/agents/prompt-version-manager.js.map +1 -1
- package/dist/src/agents/specialization-scorer.d.ts.map +1 -1
- package/dist/src/agents/specialization-scorer.js +17 -9
- package/dist/src/agents/specialization-scorer.js.map +1 -1
- package/dist/src/agents/trigger-scanner.d.ts +5 -3
- package/dist/src/agents/trigger-scanner.d.ts.map +1 -1
- package/dist/src/agents/trigger-scanner.js +58 -10
- package/dist/src/agents/trigger-scanner.js.map +1 -1
- package/dist/src/agents/version-store.d.ts +0 -1
- package/dist/src/agents/version-store.d.ts.map +1 -1
- package/dist/src/agents/version-store.js +44 -21
- package/dist/src/agents/version-store.js.map +1 -1
- package/dist/src/autopilot-state.d.ts.map +1 -1
- package/dist/src/autopilot-state.js +79 -28
- package/dist/src/autopilot-state.js.map +1 -1
- package/dist/src/benchmarks/benchmark-runner.d.ts +7 -2
- package/dist/src/benchmarks/benchmark-runner.d.ts.map +1 -1
- package/dist/src/benchmarks/benchmark-runner.js +20 -8
- package/dist/src/benchmarks/benchmark-runner.js.map +1 -1
- package/dist/src/benchmarks/metric-evaluators.d.ts +2 -1
- package/dist/src/benchmarks/metric-evaluators.d.ts.map +1 -1
- package/dist/src/benchmarks/metric-evaluators.js +25 -2
- package/dist/src/benchmarks/metric-evaluators.js.map +1 -1
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +6 -4
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/appliance-advanced.d.ts.map +1 -1
- package/dist/src/commands/appliance-advanced.js +23 -0
- package/dist/src/commands/appliance-advanced.js.map +1 -1
- package/dist/src/commands/autopilot.d.ts.map +1 -1
- package/dist/src/commands/autopilot.js +3 -3
- package/dist/src/commands/autopilot.js.map +1 -1
- package/dist/src/commands/benchmark.d.ts.map +1 -1
- package/dist/src/commands/benchmark.js +119 -8
- package/dist/src/commands/benchmark.js.map +1 -1
- package/dist/src/commands/claims.d.ts.map +1 -1
- package/dist/src/commands/claims.js +22 -14
- package/dist/src/commands/claims.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +32 -0
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/daemon.d.ts.map +1 -1
- package/dist/src/commands/daemon.js +13 -11
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/commands/deployment.d.ts.map +1 -1
- package/dist/src/commands/deployment.js +21 -2
- package/dist/src/commands/deployment.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +5 -4
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.d.ts.map +1 -1
- package/dist/src/commands/embeddings.js +124 -48
- package/dist/src/commands/embeddings.js.map +1 -1
- package/dist/src/commands/hive-mind.d.ts.map +1 -1
- package/dist/src/commands/hive-mind.js +15 -14
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +45 -41
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +2 -0
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +20 -7
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +53 -19
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +31 -44
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +47 -15
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/migrate.d.ts.map +1 -1
- package/dist/src/commands/migrate.js +156 -108
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/monograph.d.ts +8 -0
- package/dist/src/commands/monograph.d.ts.map +1 -0
- package/dist/src/commands/monograph.js +526 -0
- package/dist/src/commands/monograph.js.map +1 -0
- package/dist/src/commands/neural.d.ts.map +1 -1
- package/dist/src/commands/neural.js +96 -56
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/commands/performance.d.ts.map +1 -1
- package/dist/src/commands/performance.js +30 -8
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/plugins.d.ts.map +1 -1
- package/dist/src/commands/plugins.js +13 -37
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/process.d.ts.map +1 -1
- package/dist/src/commands/process.js +25 -2
- package/dist/src/commands/process.js.map +1 -1
- package/dist/src/commands/providers.d.ts.map +1 -1
- package/dist/src/commands/providers.js +37 -5
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/replay.js +4 -4
- package/dist/src/commands/replay.js.map +1 -1
- package/dist/src/commands/route.d.ts.map +1 -1
- package/dist/src/commands/route.js +37 -5
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/ruvector/import.d.ts.map +1 -1
- package/dist/src/commands/ruvector/import.js +12 -2
- package/dist/src/commands/ruvector/import.js.map +1 -1
- package/dist/src/commands/ruvector/init.d.ts.map +1 -1
- package/dist/src/commands/ruvector/init.js +15 -0
- package/dist/src/commands/ruvector/init.js.map +1 -1
- package/dist/src/commands/ruvector/status.d.ts.map +1 -1
- package/dist/src/commands/ruvector/status.js +16 -3
- package/dist/src/commands/ruvector/status.js.map +1 -1
- package/dist/src/commands/security.d.ts.map +1 -1
- package/dist/src/commands/security.js +342 -193
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.d.ts.map +1 -1
- package/dist/src/commands/session.js +51 -8
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +18 -4
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/swarm.d.ts.map +1 -1
- package/dist/src/commands/swarm.js +47 -36
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/tokens.js +11 -11
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/transfer-store.js +1 -1
- package/dist/src/commands/transfer-store.js.map +1 -1
- package/dist/src/commands/workflow.d.ts.map +1 -1
- package/dist/src/commands/workflow.js +31 -4
- package/dist/src/commands/workflow.js.map +1 -1
- package/dist/src/config-adapter.d.ts +2 -1
- package/dist/src/config-adapter.d.ts.map +1 -1
- package/dist/src/config-adapter.js.map +1 -1
- package/dist/src/consensus/audit-writer.d.ts.map +1 -1
- package/dist/src/consensus/audit-writer.js +46 -13
- package/dist/src/consensus/audit-writer.js.map +1 -1
- package/dist/src/consensus/vote-signer.d.ts +0 -3
- package/dist/src/consensus/vote-signer.d.ts.map +1 -1
- package/dist/src/consensus/vote-signer.js +9 -1
- package/dist/src/consensus/vote-signer.js.map +1 -1
- package/dist/src/dlq/dlq-reader.d.ts +4 -2
- package/dist/src/dlq/dlq-reader.d.ts.map +1 -1
- package/dist/src/dlq/dlq-reader.js +25 -8
- package/dist/src/dlq/dlq-reader.js.map +1 -1
- package/dist/src/dlq/dlq-replayer.d.ts +10 -3
- package/dist/src/dlq/dlq-replayer.d.ts.map +1 -1
- package/dist/src/dlq/dlq-replayer.js +50 -16
- package/dist/src/dlq/dlq-replayer.js.map +1 -1
- package/dist/src/dlq/dlq-writer.d.ts.map +1 -1
- package/dist/src/dlq/dlq-writer.js +27 -5
- package/dist/src/dlq/dlq-writer.js.map +1 -1
- package/dist/src/eval/dataset-manager.d.ts +2 -2
- package/dist/src/eval/dataset-manager.d.ts.map +1 -1
- package/dist/src/eval/dataset-manager.js +26 -16
- package/dist/src/eval/dataset-manager.js.map +1 -1
- package/dist/src/eval/trace-collector.d.ts.map +1 -1
- package/dist/src/eval/trace-collector.js +23 -3
- package/dist/src/eval/trace-collector.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.js +8 -8
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +212 -102
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +35 -22
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/mcp-generator.js +3 -3
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +10 -3
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared-instructions-generator.d.ts.map +1 -1
- package/dist/src/init/shared-instructions-generator.js +18 -3
- package/dist/src/init/shared-instructions-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +3 -1
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +35 -11
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +5 -9
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/interactive/interrupt.d.ts.map +1 -1
- package/dist/src/interactive/interrupt.js +8 -3
- package/dist/src/interactive/interrupt.js.map +1 -1
- package/dist/src/mcp/tool-registry.d.ts.map +1 -1
- package/dist/src/mcp/tool-registry.js +38 -4
- package/dist/src/mcp/tool-registry.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +10 -4
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts +9 -2
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +182 -35
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +66 -34
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.js +34 -7
- package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +25 -16
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
- package/dist/src/mcp-tools/auto-install.js +4 -6
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.js +12 -2
- package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +199 -20
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +68 -18
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +33 -5
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.js +59 -4
- package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
- package/dist/src/mcp-tools/daa-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/daa-tools.js +46 -10
- package/dist/src/mcp-tools/daa-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +46 -5
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +29 -16
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.js +38 -10
- package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +96 -33
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +70 -37
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +29 -13
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +5867 -56
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +121 -37
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +21 -8
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/progress-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/progress-tools.js +10 -8
- package/dist/src/mcp-tools/progress-tools.js.map +1 -1
- package/dist/src/mcp-tools/request-tracker.d.ts.map +1 -1
- package/dist/src/mcp-tools/request-tracker.js +4 -1
- package/dist/src/mcp-tools/request-tracker.js.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.js +19 -8
- package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +57 -17
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +35 -17
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +4 -3
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +53 -13
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +63 -14
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +21 -16
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +92 -23
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +41 -10
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +2 -2
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +39 -13
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +1 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +149 -56
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +107 -45
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +8 -1
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +25 -8
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/observability/replay-reader.d.ts +40 -0
- package/dist/src/observability/replay-reader.d.ts.map +1 -0
- package/dist/src/observability/replay-reader.js +138 -0
- package/dist/src/observability/replay-reader.js.map +1 -0
- package/dist/src/orchestration/routing-modes.d.ts.map +1 -1
- package/dist/src/orchestration/routing-modes.js +35 -5
- package/dist/src/orchestration/routing-modes.js.map +1 -1
- package/dist/src/parser.d.ts +8 -0
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +48 -14
- package/dist/src/parser.js.map +1 -1
- package/dist/src/plugins/manager.d.ts.map +1 -1
- package/dist/src/plugins/manager.js +112 -19
- package/dist/src/plugins/manager.js.map +1 -1
- package/dist/src/plugins/store/discovery.d.ts +1 -1
- package/dist/src/plugins/store/discovery.d.ts.map +1 -1
- package/dist/src/plugins/store/discovery.js +80 -62
- package/dist/src/plugins/store/discovery.js.map +1 -1
- package/dist/src/production/circuit-breaker.d.ts.map +1 -1
- package/dist/src/production/circuit-breaker.js +8 -1
- package/dist/src/production/circuit-breaker.js.map +1 -1
- package/dist/src/production/error-handler.d.ts +4 -2
- package/dist/src/production/error-handler.d.ts.map +1 -1
- package/dist/src/production/error-handler.js +27 -5
- package/dist/src/production/error-handler.js.map +1 -1
- package/dist/src/production/monitoring.d.ts.map +1 -1
- package/dist/src/production/monitoring.js +8 -4
- package/dist/src/production/monitoring.js.map +1 -1
- package/dist/src/production/rate-limiter.d.ts.map +1 -1
- package/dist/src/production/rate-limiter.js +30 -22
- package/dist/src/production/rate-limiter.js.map +1 -1
- package/dist/src/ruvector/agent-wasm.js +2 -2
- package/dist/src/ruvector/agent-wasm.js.map +1 -1
- package/dist/src/ruvector/coverage-router.d.ts.map +1 -1
- package/dist/src/ruvector/coverage-router.js +19 -9
- package/dist/src/ruvector/coverage-router.js.map +1 -1
- package/dist/src/ruvector/diff-classifier.d.ts +1 -0
- package/dist/src/ruvector/diff-classifier.d.ts.map +1 -1
- package/dist/src/ruvector/diff-classifier.js +26 -6
- package/dist/src/ruvector/diff-classifier.js.map +1 -1
- package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -1
- package/dist/src/ruvector/enhanced-model-router.js +24 -2
- package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
- package/dist/src/ruvector/index.d.ts +1 -2
- package/dist/src/ruvector/index.d.ts.map +1 -1
- package/dist/src/ruvector/index.js +2 -2
- package/dist/src/ruvector/index.js.map +1 -1
- package/dist/src/ruvector/model-router.d.ts +4 -2
- package/dist/src/ruvector/model-router.d.ts.map +1 -1
- package/dist/src/ruvector/model-router.js +30 -6
- package/dist/src/ruvector/model-router.js.map +1 -1
- package/dist/src/ruvector/moe-router.d.ts +7 -0
- package/dist/src/ruvector/moe-router.d.ts.map +1 -1
- package/dist/src/ruvector/moe-router.js +35 -12
- package/dist/src/ruvector/moe-router.js.map +1 -1
- package/dist/src/ruvector/q-learning-router.d.ts +7 -1
- package/dist/src/ruvector/q-learning-router.d.ts.map +1 -1
- package/dist/src/ruvector/q-learning-router.js +40 -9
- package/dist/src/ruvector/q-learning-router.js.map +1 -1
- package/dist/src/services/claim-service.d.ts +3 -1
- package/dist/src/services/claim-service.d.ts.map +1 -1
- package/dist/src/services/claim-service.js +33 -2
- package/dist/src/services/claim-service.js.map +1 -1
- package/dist/src/services/config-file-manager.d.ts +16 -2
- package/dist/src/services/config-file-manager.d.ts.map +1 -1
- package/dist/src/services/config-file-manager.js +105 -17
- package/dist/src/services/config-file-manager.js.map +1 -1
- package/dist/src/services/container-worker-pool.d.ts.map +1 -1
- package/dist/src/services/container-worker-pool.js +51 -11
- package/dist/src/services/container-worker-pool.js.map +1 -1
- package/dist/src/services/headless-worker-executor.d.ts +7 -0
- package/dist/src/services/headless-worker-executor.d.ts.map +1 -1
- package/dist/src/services/headless-worker-executor.js +188 -45
- package/dist/src/services/headless-worker-executor.js.map +1 -1
- package/dist/src/services/registry-api.d.ts.map +1 -1
- package/dist/src/services/registry-api.js +62 -9
- package/dist/src/services/registry-api.js.map +1 -1
- package/dist/src/services/ruvector-training.d.ts.map +1 -1
- package/dist/src/services/ruvector-training.js +8 -0
- package/dist/src/services/ruvector-training.js.map +1 -1
- package/dist/src/services/worker-daemon.d.ts +4 -1
- package/dist/src/services/worker-daemon.d.ts.map +1 -1
- package/dist/src/services/worker-daemon.js +112 -28
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/src/services/worker-queue.d.ts +9 -2
- package/dist/src/services/worker-queue.d.ts.map +1 -1
- package/dist/src/services/worker-queue.js +86 -5
- package/dist/src/services/worker-queue.js.map +1 -1
- package/dist/src/suggest.d.ts.map +1 -1
- package/dist/src/suggest.js +9 -0
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/swarm/flow-enforcer.d.ts +5 -3
- package/dist/src/swarm/flow-enforcer.d.ts.map +1 -1
- package/dist/src/swarm/flow-enforcer.js +17 -5
- package/dist/src/swarm/flow-enforcer.js.map +1 -1
- package/dist/src/swarm/flow-visualizer.d.ts +3 -0
- package/dist/src/swarm/flow-visualizer.d.ts.map +1 -1
- package/dist/src/swarm/flow-visualizer.js +30 -6
- package/dist/src/swarm/flow-visualizer.js.map +1 -1
- package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
- package/dist/src/transfer/anonymization/index.js +5 -3
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/transfer/export.d.ts.map +1 -1
- package/dist/src/transfer/export.js +5 -3
- package/dist/src/transfer/export.js.map +1 -1
- package/dist/src/transfer/ipfs/client.d.ts.map +1 -1
- package/dist/src/transfer/ipfs/client.js +84 -7
- package/dist/src/transfer/ipfs/client.js.map +1 -1
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -1
- package/dist/src/transfer/ipfs/upload.js +13 -4
- package/dist/src/transfer/ipfs/upload.js.map +1 -1
- package/dist/src/transfer/storage/gcs.d.ts.map +1 -1
- package/dist/src/transfer/storage/gcs.js +19 -10
- package/dist/src/transfer/storage/gcs.js.map +1 -1
- package/dist/src/transfer/store/discovery.d.ts +9 -2
- package/dist/src/transfer/store/discovery.d.ts.map +1 -1
- package/dist/src/transfer/store/discovery.js +68 -13
- package/dist/src/transfer/store/discovery.js.map +1 -1
- package/dist/src/transfer/store/download.d.ts +15 -6
- package/dist/src/transfer/store/download.d.ts.map +1 -1
- package/dist/src/transfer/store/download.js +113 -24
- package/dist/src/transfer/store/download.js.map +1 -1
- package/dist/src/transfer/store/publish.d.ts +1 -1
- package/dist/src/transfer/store/publish.d.ts.map +1 -1
- package/dist/src/transfer/store/publish.js +13 -14
- package/dist/src/transfer/store/publish.js.map +1 -1
- package/dist/src/transfer/store/registry.d.ts +3 -3
- package/dist/src/transfer/store/registry.d.ts.map +1 -1
- package/dist/src/transfer/store/registry.js +32 -16
- package/dist/src/transfer/store/registry.js.map +1 -1
- package/dist/src/ui/.monomind/sessions/current.json +2 -2
- package/dist/src/ui/dashboard.html +2507 -187
- package/dist/src/ui/server.mjs +1338 -149
- package/dist/src/update/checker.d.ts.map +1 -1
- package/dist/src/update/checker.js +17 -4
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts.map +1 -1
- package/dist/src/update/executor.js +25 -20
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/rate-limiter.d.ts +11 -0
- package/dist/src/update/rate-limiter.d.ts.map +1 -1
- package/dist/src/update/rate-limiter.js +23 -3
- package/dist/src/update/rate-limiter.js.map +1 -1
- package/dist/src/utils/parse-jsonl.d.ts +6 -0
- package/dist/src/utils/parse-jsonl.d.ts.map +1 -0
- package/dist/src/utils/parse-jsonl.js +22 -0
- package/dist/src/utils/parse-jsonl.js.map +1 -0
- package/dist/src/workflow/condition-evaluator.d.ts.map +1 -1
- package/dist/src/workflow/condition-evaluator.js +37 -3
- package/dist/src/workflow/condition-evaluator.js.map +1 -1
- package/dist/src/workflow/dag-builder.d.ts.map +1 -1
- package/dist/src/workflow/dag-builder.js +27 -11
- package/dist/src/workflow/dag-builder.js.map +1 -1
- package/dist/src/workflow/dag-executor.d.ts.map +1 -1
- package/dist/src/workflow/dag-executor.js +51 -13
- package/dist/src/workflow/dag-executor.js.map +1 -1
- package/dist/src/workflow/dsl-schema.d.ts +3 -0
- package/dist/src/workflow/dsl-schema.d.ts.map +1 -1
- package/dist/src/workflow/dsl-schema.js +6 -2
- package/dist/src/workflow/dsl-schema.js.map +1 -1
- package/dist/src/workflow/template-engine.js +7 -0
- package/dist/src/workflow/template-engine.js.map +1 -1
- package/dist/src/workflow/workflow-executor.d.ts.map +1 -1
- package/dist/src/workflow/workflow-executor.js +95 -14
- package/dist/src/workflow/workflow-executor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -12
- package/.claude/agents/design/design-brand-guardian.md +0 -323
- package/.claude/agents/design/design-image-prompt-engineer.md +0 -237
- package/.claude/agents/design/design-inclusive-visuals-specialist.md +0 -72
- package/.claude/agents/design/design-ui-designer.md +0 -384
- package/.claude/agents/design/design-ux-architect.md +0 -470
- package/.claude/agents/design/design-ux-researcher.md +0 -330
- package/.claude/agents/design/design-visual-storyteller.md +0 -150
- package/.claude/agents/design/design-whimsy-injector.md +0 -439
- package/.claude/agents/v3/integration-architect.md +0 -338
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/coordination/init.md +0 -44
- package/.claude/commands/coordination/orchestrate.md +0 -43
- package/.claude/commands/coordination/spawn.md +0 -45
- package/.claude/commands/github/code-review-swarm.md +0 -550
- package/.claude/commands/github/code-review.md +0 -25
- package/.claude/commands/github/github-swarm.md +0 -121
- package/.claude/commands/github/issue-triage.md +0 -25
- package/.claude/commands/github/multi-repo-swarm.md +0 -519
- package/.claude/commands/github/pr-enhance.md +0 -26
- package/.claude/commands/github/project-board-sync.md +0 -471
- package/.claude/commands/github/release-swarm.md +0 -590
- package/.claude/commands/github/repo-analyze.md +0 -25
- package/.claude/commands/github/swarm-issue.md +0 -482
- package/.claude/commands/github/swarm-pr.md +0 -310
- package/.claude/commands/github/workflow-automation.md +0 -468
- package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
- package/.claude/commands/list-agents.md +0 -17
- package/.claude/commands/memory/memory-persist.md +0 -25
- package/.claude/commands/memory/memory-usage.md +0 -25
- package/.claude/commands/memory/neural.md +0 -47
- package/.claude/commands/metrics.md +0 -11
- package/.claude/commands/monitoring/real-time-view.md +0 -25
- package/.claude/commands/monitoring/swarm-monitor.md +0 -25
- package/.claude/commands/monomind-createtask.md +0 -302
- package/.claude/commands/monomind-help.md +0 -103
- package/.claude/commands/monomind-memory.md +0 -107
- package/.claude/commands/monomind-repeat.md +0 -149
- package/.claude/commands/monomind-swarm.md +0 -205
- package/.claude/commands/optimization/cache-manage.md +0 -25
- package/.claude/commands/optimization/topology-optimize.md +0 -25
- package/.claude/commands/pair/commands.md +0 -546
- package/.claude/commands/pair/config.md +0 -510
- package/.claude/commands/pair/start.md +0 -209
- package/.claude/commands/use-agent.md +0 -67
- package/.claude/skills/monomind-createtask/SKILL.md +0 -269
- package/.claude/skills/monomind-task-engine/SKILL.md +0 -358
- package/LICENSE +0 -21
- /package/.claude/agents/{v3 → specialists}/memory-specialist.md +0 -0
- /package/.claude/agents/{v3 → specialists}/performance-engineer.md +0 -0
- /package/.claude/agents/{v3 → specialists}/queen-coordinator.md +0 -0
- /package/.claude/agents/{v3 → specialists}/security-architect.md +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Teach Flow
|
|
2
|
+
|
|
3
|
+
Gathers design context for a project and writes two complementary files at the project root:
|
|
4
|
+
|
|
5
|
+
- **PRODUCT.md** (strategic): root project file for register, target users, product purpose, brand personality, anti-references, strategic design principles. Answers "who/what/why".
|
|
6
|
+
- **DESIGN.md** (visual): root project file for visual theme, color palette, typography, components, layout. Follows the [Google Stitch DESIGN.md format](https://stitch.withgoogle.com/docs/design-md/format/). Answers "how it looks".
|
|
7
|
+
|
|
8
|
+
Every other impeccable command reads these files before doing any work.
|
|
9
|
+
|
|
10
|
+
## Step 1: Load current state
|
|
11
|
+
|
|
12
|
+
Run the shared loader first so you know what already exists:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
Read PRODUCT.md and DESIGN.md directly (check project root, then docs/, then .agents/context/)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The output tells you whether PRODUCT.md and/or DESIGN.md already exist. If `migrated: true`, legacy `.impeccable.md` was auto-renamed to `PRODUCT.md`. Mention this once to the user.
|
|
19
|
+
|
|
20
|
+
Decision tree:
|
|
21
|
+
- **Neither file exists (empty project or no context yet)**: do Steps 2-4 (write PRODUCT.md), then decide on DESIGN.md based on whether there's code to analyze.
|
|
22
|
+
- **PRODUCT.md exists, DESIGN.md missing**: skip to Step 5 and offer to run `/impeccable document` for DESIGN.md.
|
|
23
|
+
- **PRODUCT.md exists but has no `## Register` section (legacy)**: add it. Infer a hypothesis from the codebase (see Step 2), confirm with the user, write the field.
|
|
24
|
+
- **Both exist**: Ask the user for clarification before proceeding. Ask which file to refresh. Skip the one the user doesn't want changed.
|
|
25
|
+
- **Just DESIGN.md exists (unusual)**: do Steps 2-4 to produce PRODUCT.md.
|
|
26
|
+
|
|
27
|
+
Never silently overwrite an existing file. Always confirm first.
|
|
28
|
+
|
|
29
|
+
If teach was invoked as a setup blocker by another command, such as `/monodesign craft landing page`, pause that command here. Complete teach, re-run the loader, then resume the original command with the freshly loaded context. For craft, resume into shape next; teach creates project context, but it is not a substitute for the task-specific shape interview and confirmed design brief.
|
|
30
|
+
|
|
31
|
+
## Step 2: Explore the codebase
|
|
32
|
+
|
|
33
|
+
Before asking questions, thoroughly scan the project to discover what you can:
|
|
34
|
+
|
|
35
|
+
- **README and docs**: Project purpose, target audience, any stated goals
|
|
36
|
+
- **Package.json / config files**: Tech stack, dependencies, existing design libraries
|
|
37
|
+
- **Existing components**: Current design patterns, spacing, typography in use
|
|
38
|
+
- **Brand assets**: Logos, favicons, color values already defined
|
|
39
|
+
- **Design tokens / CSS variables**: Existing color palettes, font stacks, spacing scales
|
|
40
|
+
- **Any style guides or brand documentation**
|
|
41
|
+
|
|
42
|
+
Also form a **register hypothesis** from what you find:
|
|
43
|
+
|
|
44
|
+
- Brand signals: `/`, `/about`, `/pricing`, `/blog/*`, `/docs/*`, hero sections, big typography, scroll-driven sections, landing-page-shaped content.
|
|
45
|
+
- Product signals: `/app/*`, `/dashboard`, `/settings`, `/(auth)`, forms, data tables, side/top nav, app-shell components.
|
|
46
|
+
|
|
47
|
+
Register is a hypothesis at this point, not a decision; Step 3 confirms it.
|
|
48
|
+
|
|
49
|
+
Note what you've learned and what remains unclear. This exploration feeds both PRODUCT.md and DESIGN.md.
|
|
50
|
+
|
|
51
|
+
## Step 3: Ask strategic questions (for PRODUCT.md)
|
|
52
|
+
|
|
53
|
+
Ask the user for clarification before proceeding. Ask only about what you couldn't infer from the codebase.
|
|
54
|
+
|
|
55
|
+
### Interview mode, not confirmation mode
|
|
56
|
+
|
|
57
|
+
If the repo is empty or the user's brief is sparse, run a short interview before proposing PRODUCT.md. Do **not** turn a one-sentence request into a complete inferred PRODUCT.md and ask for blanket confirmation.
|
|
58
|
+
|
|
59
|
+
- Use the harness's structured question tool when one exists. Otherwise, ask directly in chat and stop.
|
|
60
|
+
- Ask **2-3 questions per round**, then wait for answers.
|
|
61
|
+
- Use inferred answers as hypotheses or options, not as finished facts.
|
|
62
|
+
- Complete at least one real user-answer round before drafting PRODUCT.md, unless every required answer is directly discoverable from repo docs.
|
|
63
|
+
- Round 1 should establish register, users/purpose, and desired outcome.
|
|
64
|
+
- Round 2 should establish brand personality or references, anti-references, and accessibility needs.
|
|
65
|
+
|
|
66
|
+
### Minimum viable interview
|
|
67
|
+
|
|
68
|
+
Ask enough to complete PRODUCT.md. At minimum, cover register confirmation, users and purpose, brand personality, anti-references, and accessibility needs unless each answer is directly discoverable from repo context. After at least one interview round, you may propose inferred answers, but the user must confirm them before you write PRODUCT.md. Never synthesize PRODUCT.md from the original task prompt alone.
|
|
69
|
+
|
|
70
|
+
### Register (ask first; it shapes everything below)
|
|
71
|
+
|
|
72
|
+
Every design task is either **brand** (marketing, landing, campaign, long-form content, portfolio: design IS the product) or **product** (app UI, admin, dashboards, tools: design SERVES the product).
|
|
73
|
+
|
|
74
|
+
If Step 2 produced a clear hypothesis, lead with it: *"From the codebase, this looks like a [brand / product] surface. Does that match your intent, or should we treat it differently?"*
|
|
75
|
+
|
|
76
|
+
If the signal is genuinely split (e.g. a product with a big marketing landing), Ask the user for clarification before proceeding. Ask which register describes the **primary** surface. The register can be overridden per task later, but PRODUCT.md carries one default.
|
|
77
|
+
|
|
78
|
+
### Users & Purpose
|
|
79
|
+
- Who uses this? What's their context when using it?
|
|
80
|
+
- What job are they trying to get done?
|
|
81
|
+
- For brand: what emotions should the interface evoke? (confidence, delight, calm, urgency)
|
|
82
|
+
- For product: what workflow are they in? What's the primary task on any given screen?
|
|
83
|
+
|
|
84
|
+
### Brand & Personality
|
|
85
|
+
- How would you describe the brand personality in 3 words?
|
|
86
|
+
- Reference sites or apps that capture the right feel? What specifically about them?
|
|
87
|
+
- For brand, push for real-world references in the right lane (tech-minimal, editorial-magazine, consumer-warm, brutalist-grid, etc.), not generic "modern" adjectives.
|
|
88
|
+
- For product, push for category best-tool references (Linear, Figma, Notion, Raycast, Stripe).
|
|
89
|
+
- What should this explicitly NOT look like? Any anti-references?
|
|
90
|
+
|
|
91
|
+
### Accessibility & Inclusion
|
|
92
|
+
- Specific accessibility requirements? (WCAG level, known user needs)
|
|
93
|
+
- Considerations for reduced motion, color blindness, or other accommodations?
|
|
94
|
+
|
|
95
|
+
Skip questions where the answer is already clear. **Do NOT ask about colors, fonts, radii, or visual styling here.** Those belong in DESIGN.md, not PRODUCT.md.
|
|
96
|
+
|
|
97
|
+
## Step 4: Write PRODUCT.md
|
|
98
|
+
|
|
99
|
+
Write PRODUCT.md only after the user has confirmed the strategic answers from Step 3. If an inferred answer is uncertain or unconfirmed, ask before writing.
|
|
100
|
+
|
|
101
|
+
Synthesize into a strategic document:
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
# Product
|
|
105
|
+
|
|
106
|
+
## Register
|
|
107
|
+
|
|
108
|
+
product
|
|
109
|
+
|
|
110
|
+
## Users
|
|
111
|
+
[Who they are, their context, the job to be done]
|
|
112
|
+
|
|
113
|
+
## Product Purpose
|
|
114
|
+
[What this product does, why it exists, what success looks like]
|
|
115
|
+
|
|
116
|
+
## Brand Personality
|
|
117
|
+
[Voice, tone, 3-word personality, emotional goals]
|
|
118
|
+
|
|
119
|
+
## Anti-references
|
|
120
|
+
[What this should NOT look like. Specific bad-example sites or patterns to avoid.]
|
|
121
|
+
|
|
122
|
+
## Design Principles
|
|
123
|
+
[3-5 strategic principles derived from the conversation. Principles like "practice what you preach", "show, don't tell", "expert confidence". NOT visual rules like "use OKLCH" or "magenta accent".]
|
|
124
|
+
|
|
125
|
+
## Accessibility & Inclusion
|
|
126
|
+
[WCAG level, known user needs, considerations]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Register is either `brand` or `product` as a bare value. No prose, no commentary.
|
|
130
|
+
|
|
131
|
+
Write to `PROJECT_ROOT/PRODUCT.md`. If `.impeccable.md` existed, the loader already renamed it; merge into that content rather than starting from scratch.
|
|
132
|
+
|
|
133
|
+
## Step 5: Decide on DESIGN.md
|
|
134
|
+
|
|
135
|
+
Offer `/impeccable document` either way. Two paths:
|
|
136
|
+
|
|
137
|
+
- **Code exists** (CSS tokens, components, a running site): "I can generate a DESIGN.md that captures your visual system (colors, typography, components) so variants stay on-brand. Want to do that now?"
|
|
138
|
+
- **Pre-implementation** (empty project): "I can seed a starter DESIGN.md from five quick questions about color strategy, type direction, motion energy, and references. You can re-run once there's code, to capture the real tokens. Want to do that now?"
|
|
139
|
+
|
|
140
|
+
If the user agrees, delegate to `/impeccable document` (it auto-detects scan vs seed). Load its reference and follow that flow.
|
|
141
|
+
|
|
142
|
+
If the user prefers to skip, mention they can run `/impeccable document` any time later.
|
|
143
|
+
|
|
144
|
+
## Step 6: Confirm and wrap up
|
|
145
|
+
|
|
146
|
+
Summarize:
|
|
147
|
+
- Register captured (brand / product)
|
|
148
|
+
- What was written (PRODUCT.md, DESIGN.md, or both)
|
|
149
|
+
- The 3-5 strategic principles from PRODUCT.md that will guide future work
|
|
150
|
+
- If DESIGN.md is pending, remind the user how to generate it later
|
|
151
|
+
|
|
152
|
+
**Critical: re-run the loader to refresh session context.** After writing PRODUCT.md, run `Read PRODUCT.md and DESIGN.md directly (check project root, then docs/, then .agents/context/)` one final time and let its full JSON output land in conversation. This ensures subsequent commands in this session use the freshly-written PRODUCT.md, not a stale earlier version.
|
|
153
|
+
|
|
154
|
+
If teach was invoked as a blocker by another impeccable command (e.g. the user ran `/impeccable polish` with no PRODUCT.md), resume that original task now with the fresh context.
|
|
155
|
+
|
|
156
|
+
Optionally Ask the user for clarification before proceeding. Ask whether they'd like a brief summary of PRODUCT.md appended to PRODUCT.md and DESIGN.md for easier agent reference. If yes, append a short **Design Context** pointer section there.
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Token Architecture
|
|
2
|
+
|
|
3
|
+
Three-layer token system for scalable, themeable design systems. Use during `extract` and `document` workflows when building or auditing a project's design token structure.
|
|
4
|
+
|
|
5
|
+
## The Three Layers
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌─────────────────────────────────────────┐
|
|
9
|
+
│ Component Tokens │ Per-component overrides
|
|
10
|
+
│ --button-bg, --card-padding │
|
|
11
|
+
├─────────────────────────────────────────┤
|
|
12
|
+
│ Semantic Tokens │ Purpose-based aliases
|
|
13
|
+
│ --color-primary, --spacing-section │
|
|
14
|
+
├─────────────────────────────────────────┤
|
|
15
|
+
│ Primitive Tokens │ Raw design values
|
|
16
|
+
│ --color-ink, --space-4 │
|
|
17
|
+
└─────────────────────────────────────────┘
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
| Layer | Purpose | When to change |
|
|
21
|
+
|-------|---------|----------------|
|
|
22
|
+
| Primitive | Raw values — colors, sizes, radii | Rarely; these are foundational |
|
|
23
|
+
| Semantic | Meaning assignment | When switching themes or rebrand |
|
|
24
|
+
| Component | Component customization | Per-component deviations from semantic defaults |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Layer 1: Primitive Tokens
|
|
29
|
+
|
|
30
|
+
Raw values with no semantic meaning. For the Editorial Sanctuary, these are the OKLCH palette values.
|
|
31
|
+
|
|
32
|
+
```css
|
|
33
|
+
:root {
|
|
34
|
+
/* Colors — OKLCH only (see design-principles.md for full palette) */
|
|
35
|
+
--color-ink-raw: oklch(10% 0 0); /* Deep Graphite */
|
|
36
|
+
--color-charcoal-raw: oklch(25% 0 0); /* Soft Charcoal */
|
|
37
|
+
--color-ash-raw: oklch(55% 0 0); /* Mid Ash */
|
|
38
|
+
--color-mist-raw: oklch(92% 0 0); /* Paper Mist */
|
|
39
|
+
--color-paper-raw: oklch(96% 0.005 350); /* Warm Ash Cream */
|
|
40
|
+
--color-white-raw: oklch(98% 0 0); /* Crisp Paper White */
|
|
41
|
+
--color-accent-raw: oklch(60% 0.25 350); /* Editorial Magenta */
|
|
42
|
+
--color-accent-deep-raw:oklch(52% 0.25 350); /* Editorial Magenta Deep */
|
|
43
|
+
|
|
44
|
+
/* Spacing (8-base scale) */
|
|
45
|
+
--space-1: 0.5rem; /* 8px */
|
|
46
|
+
--space-2: 1rem; /* 16px */
|
|
47
|
+
--space-3: 1.5rem; /* 24px */
|
|
48
|
+
--space-4: 2rem; /* 32px */
|
|
49
|
+
--space-6: 3rem; /* 48px */
|
|
50
|
+
--space-10: 5rem; /* 80px */
|
|
51
|
+
--space-15: 7.5rem; /* 120px */
|
|
52
|
+
|
|
53
|
+
/* Typography */
|
|
54
|
+
--font-size-xs: 0.8125rem; /* 13px — captions minimum */
|
|
55
|
+
--font-size-sm: 0.875rem; /* 14px */
|
|
56
|
+
--font-size-base: 1rem; /* 16px — body minimum */
|
|
57
|
+
--font-size-lg: 1.125rem;
|
|
58
|
+
--font-size-xl: 1.25rem;
|
|
59
|
+
--font-size-2xl: 1.5rem;
|
|
60
|
+
--font-size-3xl: 1.875rem;
|
|
61
|
+
--font-size-4xl: 2.25rem;
|
|
62
|
+
|
|
63
|
+
/* Radius */
|
|
64
|
+
--radius-none: 0; /* Editorial Sanctuary: sharp by default */
|
|
65
|
+
--radius-sm: 0.25rem;
|
|
66
|
+
--radius-md: 0.5rem;
|
|
67
|
+
--radius-lg: 0.75rem;
|
|
68
|
+
|
|
69
|
+
/* Shadows — max 0.15 alpha (Low-Alpha Rule) */
|
|
70
|
+
--shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
|
|
71
|
+
--shadow-md: 0 4px 24px -4px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.06);
|
|
72
|
+
--shadow-lg: 0 8px 40px -8px rgba(0,0,0,0.14), 0 2px 6px rgba(0,0,0,0.08);
|
|
73
|
+
|
|
74
|
+
/* Duration */
|
|
75
|
+
--duration-fast: 150ms;
|
|
76
|
+
--duration-base: 250ms;
|
|
77
|
+
--duration-slow: 400ms;
|
|
78
|
+
|
|
79
|
+
/* Easing */
|
|
80
|
+
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Layer 2: Semantic Tokens
|
|
87
|
+
|
|
88
|
+
Purpose-based aliases. These are what components consume — never primitives directly.
|
|
89
|
+
|
|
90
|
+
```css
|
|
91
|
+
:root {
|
|
92
|
+
/* Surface */
|
|
93
|
+
--color-bg: var(--color-paper-raw); /* Page background */
|
|
94
|
+
--color-surface: var(--color-white-raw); /* Card surfaces */
|
|
95
|
+
--color-border: var(--color-mist-raw); /* Hairline borders */
|
|
96
|
+
|
|
97
|
+
/* Text */
|
|
98
|
+
--color-ink: var(--color-ink-raw); /* Primary text */
|
|
99
|
+
--color-secondary: var(--color-charcoal-raw); /* Secondary text */
|
|
100
|
+
--color-tertiary: var(--color-ash-raw); /* Meta, captions */
|
|
101
|
+
|
|
102
|
+
/* Accent */
|
|
103
|
+
--color-accent: var(--color-accent-raw);
|
|
104
|
+
--color-accent-hover:var(--color-accent-deep-raw);
|
|
105
|
+
--color-accent-dim: oklch(60% 0.25 350 / 0.15); /* Magenta Whisper */
|
|
106
|
+
--color-accent-veil: oklch(60% 0.25 350 / 0.25); /* Magenta Veil */
|
|
107
|
+
|
|
108
|
+
/* Feedback */
|
|
109
|
+
--color-error: oklch(55% 0.22 27);
|
|
110
|
+
--color-success: oklch(55% 0.18 145);
|
|
111
|
+
--color-warning: oklch(72% 0.17 60);
|
|
112
|
+
|
|
113
|
+
/* Spacing semantics */
|
|
114
|
+
--spacing-component: var(--space-2); /* 16px — within components */
|
|
115
|
+
--spacing-section: var(--space-6); /* 48px — between sections */
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Layer 3: Component Tokens
|
|
122
|
+
|
|
123
|
+
Component-specific overrides referencing the semantic layer. Add only when a component genuinely deviates from the semantic defaults.
|
|
124
|
+
|
|
125
|
+
```css
|
|
126
|
+
:root {
|
|
127
|
+
/* Primary CTA — see design-principles.md for full spec */
|
|
128
|
+
--btn-primary-bg: var(--color-ink);
|
|
129
|
+
--btn-primary-fg: var(--color-surface);
|
|
130
|
+
--btn-primary-hover-bg: var(--color-accent);
|
|
131
|
+
--btn-radius: 0; /* Sharp — editorial */
|
|
132
|
+
|
|
133
|
+
/* Input */
|
|
134
|
+
--input-border: var(--color-border);
|
|
135
|
+
--input-border-focus: var(--color-accent);
|
|
136
|
+
--input-focus-ring: var(--color-accent-dim);
|
|
137
|
+
--input-bg: var(--color-surface);
|
|
138
|
+
--input-radius: 0;
|
|
139
|
+
|
|
140
|
+
/* Card */
|
|
141
|
+
--card-border: var(--color-border);
|
|
142
|
+
--card-bg: var(--color-surface);
|
|
143
|
+
--card-padding: var(--space-2);
|
|
144
|
+
--card-shadow-hover: var(--shadow-md);
|
|
145
|
+
--card-radius: 0; /* Or --radius-sm for product register */
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Dark Mode
|
|
152
|
+
|
|
153
|
+
Override semantic tokens only — primitives stay unchanged.
|
|
154
|
+
|
|
155
|
+
```css
|
|
156
|
+
.dark {
|
|
157
|
+
--color-bg: var(--color-ink-raw);
|
|
158
|
+
--color-surface: oklch(15% 0.005 350); /* Slightly warmer than pure black */
|
|
159
|
+
--color-ink: var(--color-white-raw);
|
|
160
|
+
--color-secondary: var(--color-mist-raw);
|
|
161
|
+
--color-tertiary: var(--color-ash-raw);
|
|
162
|
+
--color-border: oklch(22% 0 0);
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Naming Convention
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
--{category}-{item}-{variant}-{state}
|
|
172
|
+
|
|
173
|
+
Examples:
|
|
174
|
+
--color-accent # category-item
|
|
175
|
+
--color-accent-hover # category-item-state
|
|
176
|
+
--btn-primary-hover-bg # component-variant-state-property
|
|
177
|
+
--spacing-section # category-semantic
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Antipattern: Flat Tokens
|
|
181
|
+
|
|
182
|
+
Before (flat — wrong):
|
|
183
|
+
```css
|
|
184
|
+
--button-primary-bg: oklch(10% 0 0); /* Hard to theme */
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
After (three-layer — correct):
|
|
188
|
+
```css
|
|
189
|
+
/* Primitive */ --color-ink-raw: oklch(10% 0 0);
|
|
190
|
+
/* Semantic */ --color-ink: var(--color-ink-raw);
|
|
191
|
+
/* Component */ --btn-primary-bg: var(--color-ink);
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
The three-layer structure means a rebrand only touches primitives. A theme switch (dark mode) only touches semantics. A component redesign only touches component tokens.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## File Organization
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
tokens/
|
|
202
|
+
├── primitives.css # --color-X-raw, --space-N, --font-size-X
|
|
203
|
+
├── semantic.css # --color-bg, --color-ink, --spacing-section
|
|
204
|
+
├── components.css # --btn-*, --input-*, --card-*
|
|
205
|
+
└── index.css # @import all three
|
|
206
|
+
|
|
207
|
+
/* Or single file with layer comments */
|
|
208
|
+
/* === PRIMITIVES === */
|
|
209
|
+
/* === SEMANTIC === */
|
|
210
|
+
/* === COMPONENTS === */
|
|
211
|
+
/* === DARK MODE === */
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Token Validation Rules
|
|
217
|
+
|
|
218
|
+
During `extract` and `document` workflows, flag:
|
|
219
|
+
- Raw hex or rgb() in component CSS — should be a token reference
|
|
220
|
+
- Repeated identical raw values — extract to primitive
|
|
221
|
+
- Semantic names that embed color names (`--color-blue-button`) — semantic names should describe role, not value
|
|
222
|
+
- Component tokens bypassing the semantic layer — breaks theming
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
Typography carries most of the information on the page. Replace generic defaults (Inter, Roboto, system fallback at flat scale) with type that reflects the brand and scales with intentional contrast.
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Register
|
|
6
|
+
|
|
7
|
+
Brand: run the font selection procedure in [brand.md](brand.md). Pairing follows the brand's lane (display serif + sans body for editorial/luxury, one committed sans for tech, etc.). Fluid `clamp()` scale, ≥1.25 ratio between steps.
|
|
8
|
+
|
|
9
|
+
Product: system fonts and familiar sans stacks are legitimate here. One well-tuned family typically carries the whole UI. Fixed `rem` scale, 1.125–1.2 ratio between more closely-spaced steps.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Assess Current Typography
|
|
14
|
+
|
|
15
|
+
Analyze what's weak or generic about the current type:
|
|
16
|
+
|
|
17
|
+
1. **Font choices**:
|
|
18
|
+
- Are we using invisible defaults? (Inter, Roboto, Arial, Open Sans, system defaults)
|
|
19
|
+
- Does the font match the brand personality? (A playful brand shouldn't use a corporate typeface)
|
|
20
|
+
- Are there too many font families? (More than 2-3 is almost always a mess)
|
|
21
|
+
|
|
22
|
+
2. **Hierarchy**:
|
|
23
|
+
- Can you tell headings from body from captions at a glance?
|
|
24
|
+
- Are font sizes too close together? (14px, 15px, 16px = muddy hierarchy)
|
|
25
|
+
- Are weight contrasts strong enough? (Medium vs Regular is barely visible)
|
|
26
|
+
|
|
27
|
+
3. **Sizing & scale**:
|
|
28
|
+
- Is there a consistent type scale, or are sizes arbitrary?
|
|
29
|
+
- Does body text meet minimum readability? (16px+)
|
|
30
|
+
- Is the sizing strategy appropriate for the context? (Fixed `rem` scales for app UIs; fluid `clamp()` for marketing/content page headings)
|
|
31
|
+
|
|
32
|
+
4. **Readability**:
|
|
33
|
+
- Are line lengths comfortable? (45-75 characters ideal)
|
|
34
|
+
- Is line-height appropriate for the font and context?
|
|
35
|
+
- Is there enough contrast between text and background?
|
|
36
|
+
|
|
37
|
+
5. **Consistency**:
|
|
38
|
+
- Are the same elements styled the same way throughout?
|
|
39
|
+
- Are font weights used consistently? (Not bold in one section, semibold in another for the same role)
|
|
40
|
+
- Is letter-spacing intentional or default everywhere?
|
|
41
|
+
|
|
42
|
+
**CRITICAL**: The goal isn't to make text "fancier." It's to make it clearer, more readable, and more intentional. Good typography is invisible; bad typography is distracting.
|
|
43
|
+
|
|
44
|
+
## Plan Typography Improvements
|
|
45
|
+
|
|
46
|
+
Consult the [typography reference](typography.md) for detailed guidance on scales, pairing, and loading strategies.
|
|
47
|
+
|
|
48
|
+
Create a systematic plan:
|
|
49
|
+
|
|
50
|
+
- **Font selection**: Do fonts need replacing? What fits the brand/context?
|
|
51
|
+
- **Type scale**: Establish a modular scale (e.g., 1.25 ratio) with clear hierarchy
|
|
52
|
+
- **Weight strategy**: Which weights serve which roles? (Regular for body, Semibold for labels, Bold for headings, or whatever fits)
|
|
53
|
+
- **Spacing**: Line-heights, letter-spacing, and margins between typographic elements
|
|
54
|
+
|
|
55
|
+
## Improve Typography Systematically
|
|
56
|
+
|
|
57
|
+
### Font Selection
|
|
58
|
+
|
|
59
|
+
If fonts need replacing:
|
|
60
|
+
- Choose fonts that reflect the brand personality
|
|
61
|
+
- Pair with genuine contrast (serif + sans, geometric + humanist), or use a single family in multiple weights
|
|
62
|
+
- Ensure web font loading doesn't cause layout shift (`font-display: swap`, metric-matched fallbacks)
|
|
63
|
+
|
|
64
|
+
### Establish Hierarchy
|
|
65
|
+
|
|
66
|
+
Build a clear type scale:
|
|
67
|
+
- **5 sizes cover most needs**: caption, secondary, body, subheading, heading
|
|
68
|
+
- **Use a consistent ratio** between levels (1.25, 1.333, or 1.5)
|
|
69
|
+
- **Combine dimensions**: Size + weight + color + space for strong hierarchy. Don't rely on size alone
|
|
70
|
+
- **App UIs**: Use a fixed `rem`-based type scale, optionally adjusted at 1-2 breakpoints. Fluid sizing undermines the spatial predictability that dense, container-based layouts need
|
|
71
|
+
- **Marketing / content pages**: Use fluid sizing via `clamp(min, preferred, max)` for headings and display text. Keep body text fixed
|
|
72
|
+
|
|
73
|
+
### Fix Readability
|
|
74
|
+
|
|
75
|
+
- Set `max-width` on text containers using `ch` units (`max-width: 65ch`)
|
|
76
|
+
- Adjust line-height per context: tighter for headings (1.1-1.2), looser for body (1.5-1.7)
|
|
77
|
+
- Increase line-height slightly for light-on-dark text
|
|
78
|
+
- Ensure body text is at least 16px / 1rem
|
|
79
|
+
|
|
80
|
+
### Refine Details
|
|
81
|
+
|
|
82
|
+
- Use `tabular-nums` for data tables and numbers that should align
|
|
83
|
+
- Apply proper `letter-spacing`: slightly open for small caps and uppercase, default or tight for large display text
|
|
84
|
+
- Use semantic token names (`--text-body`, `--text-heading`), not value names (`--font-16`)
|
|
85
|
+
- Set `font-kerning: normal` and consider OpenType features where appropriate
|
|
86
|
+
|
|
87
|
+
### Weight Consistency
|
|
88
|
+
|
|
89
|
+
- Define clear roles for each weight and stick to them
|
|
90
|
+
- Don't use more than 3-4 weights (Regular, Medium, Semibold, Bold is plenty)
|
|
91
|
+
- Load only the weights you actually use (each weight adds to page load)
|
|
92
|
+
|
|
93
|
+
**NEVER**:
|
|
94
|
+
- Use more than 2-3 font families
|
|
95
|
+
- Pick sizes arbitrarily; commit to a scale
|
|
96
|
+
- Set body text below 16px
|
|
97
|
+
- Use decorative/display fonts for body text
|
|
98
|
+
- Disable browser zoom (`user-scalable=no`)
|
|
99
|
+
- Use `px` for font sizes; use `rem` to respect user settings
|
|
100
|
+
- Default to Inter/Roboto/Open Sans when personality matters
|
|
101
|
+
- Pair fonts that are similar but not identical (two geometric sans-serifs)
|
|
102
|
+
|
|
103
|
+
## Verify Typography Improvements
|
|
104
|
+
|
|
105
|
+
- **Hierarchy**: Can you identify heading vs body vs caption instantly?
|
|
106
|
+
- **Readability**: Is body text comfortable to read in long passages?
|
|
107
|
+
- **Consistency**: Are same-role elements styled identically throughout?
|
|
108
|
+
- **Personality**: Does the typography reflect the brand?
|
|
109
|
+
- **Performance**: Are web fonts loading efficiently without layout shift?
|
|
110
|
+
- **Accessibility**: Does text meet WCAG contrast ratios? Is it zoomable to 200%?
|
|
111
|
+
|
|
112
|
+
When the type carries the hierarchy on its own, hand off to `/monodesign polish` for the final pass.
|
|
113
|
+
|
|
114
|
+
## Live-mode signature params
|
|
115
|
+
|
|
116
|
+
Each variant MUST declare a `scale` param controlling the hierarchy ratio. Express all font sizes in the variant's scoped CSS through `calc(var(--p-scale, 1) * <base>)` or, better, scale the type ramp via `clamp(min, calc(var(--p-scale, 1) * Npx), max)`. Users slide from subdued to commanding.
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{"id":"scale","kind":"range","min":0.85,"max":1.3,"step":0.05,"default":1,"label":"Scale"}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Where the variant riffs on a specific pairing, expose the pairing choice as a `steps` param (e.g. "serif display + sans body" vs. "mono display + sans body" vs. "all-sans"). Each branch routes through `:scope[data-p-pairing="X"]` selectors in scoped CSS.
|
|
123
|
+
|
|
124
|
+
See `reference/live.md` for the full params contract.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Typography
|
|
2
|
+
|
|
3
|
+
## Classic Typography Principles
|
|
4
|
+
|
|
5
|
+
### Vertical Rhythm
|
|
6
|
+
|
|
7
|
+
Your line-height should be the base unit for ALL vertical spacing. If body text has `line-height: 1.5` on `16px` type (= 24px), spacing values should be multiples of 24px. This creates subconscious harmony; text and space share a mathematical foundation.
|
|
8
|
+
|
|
9
|
+
### Modular Scale & Hierarchy
|
|
10
|
+
|
|
11
|
+
The common mistake: too many font sizes that are too close together (14px, 15px, 16px, 18px...). This creates muddy hierarchy.
|
|
12
|
+
|
|
13
|
+
**Use fewer sizes with more contrast.** A 5-size system covers most needs:
|
|
14
|
+
|
|
15
|
+
| Role | Typical Ratio | Use Case |
|
|
16
|
+
|------|---------------|----------|
|
|
17
|
+
| xs | 0.75rem | Captions, legal |
|
|
18
|
+
| sm | 0.875rem | Secondary UI, metadata |
|
|
19
|
+
| base | 1rem | Body text |
|
|
20
|
+
| lg | 1.25-1.5rem | Subheadings, lead text |
|
|
21
|
+
| xl+ | 2-4rem | Headlines, hero text |
|
|
22
|
+
|
|
23
|
+
Popular ratios: 1.25 (major third), 1.333 (perfect fourth), 1.5 (perfect fifth). Pick one and commit.
|
|
24
|
+
|
|
25
|
+
### Readability & Measure
|
|
26
|
+
|
|
27
|
+
Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scales inversely with line length: narrow columns need tighter leading, wide columns need more.
|
|
28
|
+
|
|
29
|
+
**Non-obvious**: Light text on dark backgrounds needs compensation on three axes, not just one. Bump line-height by 0.05–0.1, add a touch of letter-spacing (0.01–0.02em), and optionally step the body weight up one notch (regular → medium). The perceived weight drops across all three; fix all three.
|
|
30
|
+
|
|
31
|
+
**Paragraph rhythm**: Pick either space between paragraphs OR first-line indentation. Never both. Digital usually wants space; editorial/long-form can justify indent-only.
|
|
32
|
+
|
|
33
|
+
## Font Selection & Pairing
|
|
34
|
+
|
|
35
|
+
The tactical selection procedure and the reflex-reject list live in [reference/brand.md](brand.md) under **Font selection procedure** and **Reflex-reject list** (loaded for brand-register tasks). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules.
|
|
36
|
+
|
|
37
|
+
### Anti-reflexes worth defending against
|
|
38
|
+
|
|
39
|
+
- A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools.
|
|
40
|
+
- An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans.
|
|
41
|
+
- A children's product does NOT need a rounded display font. Kids' books use real type.
|
|
42
|
+
- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using.
|
|
43
|
+
|
|
44
|
+
**System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality.
|
|
45
|
+
|
|
46
|
+
### Pairing Principles
|
|
47
|
+
|
|
48
|
+
**The non-obvious truth**: You often don't need a second font. One well-chosen font family in multiple weights creates cleaner hierarchy than two competing typefaces. Only add a second font when you need genuine contrast (e.g., display headlines + body serif).
|
|
49
|
+
|
|
50
|
+
When pairing, contrast on multiple axes:
|
|
51
|
+
- Serif + Sans (structure contrast)
|
|
52
|
+
- Geometric + Humanist (personality contrast)
|
|
53
|
+
- Condensed display + Wide body (proportion contrast)
|
|
54
|
+
|
|
55
|
+
**Never pair fonts that are similar but not identical** (e.g., two geometric sans-serifs). They create visual tension without clear hierarchy.
|
|
56
|
+
|
|
57
|
+
### Web Font Loading
|
|
58
|
+
|
|
59
|
+
The layout shift problem: fonts load late, text reflows, and users see content jump. Here's the fix:
|
|
60
|
+
|
|
61
|
+
```css
|
|
62
|
+
/* 1. Use font-display: swap for visibility */
|
|
63
|
+
@font-face {
|
|
64
|
+
font-family: 'CustomFont';
|
|
65
|
+
src: url('font.woff2') format('woff2');
|
|
66
|
+
font-display: swap;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* 2. Match fallback metrics to minimize shift */
|
|
70
|
+
@font-face {
|
|
71
|
+
font-family: 'CustomFont-Fallback';
|
|
72
|
+
src: local('Arial');
|
|
73
|
+
size-adjust: 105%; /* Scale to match x-height */
|
|
74
|
+
ascent-override: 90%; /* Match ascender height */
|
|
75
|
+
descent-override: 20%; /* Match descender depth */
|
|
76
|
+
line-gap-override: 10%; /* Match line spacing */
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
body {
|
|
80
|
+
font-family: 'CustomFont', 'CustomFont-Fallback', sans-serif;
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Tools like [Fontaine](https://github.com/unjs/fontaine) calculate these overrides automatically.
|
|
85
|
+
|
|
86
|
+
**`swap` vs `optional`**: `swap` shows fallback text immediately and FOUT-swaps when the web font arrives. `optional` uses the fallback if the web font misses a small load budget (~100ms) and avoids the shift entirely. Pick `optional` when zero layout shift matters more than seeing the branded font on slow networks.
|
|
87
|
+
|
|
88
|
+
**Preload the critical weight only**: typically the regular-weight body font used above the fold. Preloading every weight costs more bandwidth than it saves.
|
|
89
|
+
|
|
90
|
+
**Variable fonts for 3+ weights or styles**: a single variable font file is usually smaller than three static weight files, gives fractional weight control, and pairs well with `font-optical-sizing: auto`. For 1–2 weights, static is fine.
|
|
91
|
+
|
|
92
|
+
## Modern Web Typography
|
|
93
|
+
|
|
94
|
+
### Fluid Type
|
|
95
|
+
|
|
96
|
+
Fluid typography via `clamp(min, preferred, max)` scales text smoothly with the viewport. The middle value (e.g., `5vw + 1rem`) controls scaling rate (higher vw = faster scaling). Add a rem offset so it doesn't collapse to 0 on small screens.
|
|
97
|
+
|
|
98
|
+
**Use fluid type for**: Headings and display text on marketing/content pages where text dominates the layout and needs to breathe across viewport sizes.
|
|
99
|
+
|
|
100
|
+
**Use fixed `rem` scales for**: App UIs, dashboards, and data-dense interfaces. No major app design system (Material, Polaris, Primer, Carbon) uses fluid type in product UI; fixed scales with optional breakpoint adjustments give the spatial predictability that container-based layouts need. Body text should also be fixed even on marketing pages, since the size difference across viewports is too small to warrant it.
|
|
101
|
+
|
|
102
|
+
**Bound your clamp()**: keep `max-size ≤ ~2.5 × min-size`. Wider ratios break the browser's zoom and reflow behaviour and make large viewports feel like the page is shouting.
|
|
103
|
+
|
|
104
|
+
**Scale container width and font-size together** so effective character measure stays in the 45–75ch band at every viewport. A heading that widens faster than its container drifts out of the comfortable measure at the top end.
|
|
105
|
+
|
|
106
|
+
### OpenType Features
|
|
107
|
+
|
|
108
|
+
Most developers don't know these exist. Use them for polish:
|
|
109
|
+
|
|
110
|
+
```css
|
|
111
|
+
/* Tabular numbers for data alignment */
|
|
112
|
+
.data-table { font-variant-numeric: tabular-nums; }
|
|
113
|
+
|
|
114
|
+
/* Proper fractions */
|
|
115
|
+
.recipe-amount { font-variant-numeric: diagonal-fractions; }
|
|
116
|
+
|
|
117
|
+
/* Small caps for abbreviations */
|
|
118
|
+
abbr { font-variant-caps: all-small-caps; }
|
|
119
|
+
|
|
120
|
+
/* Disable ligatures in code */
|
|
121
|
+
code { font-variant-ligatures: none; }
|
|
122
|
+
|
|
123
|
+
/* Enable kerning (usually on by default, but be explicit) */
|
|
124
|
+
body { font-kerning: normal; }
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Check what features your font supports at [Wakamai Fondue](https://wakamaifondue.com/).
|
|
128
|
+
|
|
129
|
+
### Rendering polish
|
|
130
|
+
|
|
131
|
+
```css
|
|
132
|
+
/* Even out heading line lengths (browser picks better break points) */
|
|
133
|
+
h1, h2, h3 { text-wrap: balance; }
|
|
134
|
+
|
|
135
|
+
/* Reduce orphans and ragged endings in long prose */
|
|
136
|
+
article p { text-wrap: pretty; }
|
|
137
|
+
|
|
138
|
+
/* Variable fonts: pick the right optical-size master automatically */
|
|
139
|
+
body { font-optical-sizing: auto; }
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**ALL-CAPS tracking**: capitals sit too close at default spacing. Add 5–12% letter-spacing (`letter-spacing: 0.05em` to `0.12em`) to short all-caps labels, eyebrows, and small headings. Real small caps (via `font-variant-caps`) need the same treatment, slightly gentler.
|
|
143
|
+
|
|
144
|
+
## Typography System Architecture
|
|
145
|
+
|
|
146
|
+
Name tokens semantically (`--text-body`, `--text-heading`), not by value (`--font-size-16`). Include font stacks, size scale, weights, line-heights, and letter-spacing in your token system.
|
|
147
|
+
|
|
148
|
+
## Accessibility Considerations
|
|
149
|
+
|
|
150
|
+
Beyond contrast ratios (which are well-documented), consider:
|
|
151
|
+
|
|
152
|
+
- **Never disable zoom**: `user-scalable=no` breaks accessibility. If your layout breaks at 200% zoom, fix the layout.
|
|
153
|
+
- **Use rem/em for font sizes**: This respects user browser settings. Never `px` for body text.
|
|
154
|
+
- **Minimum 16px body text**: Smaller than this strains eyes and fails WCAG on mobile.
|
|
155
|
+
- **Adequate touch targets**: Text links need padding or line-height that creates 44px+ tap targets.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
**Avoid**: More than 2-3 font families per project. Skipping fallback font definitions. Ignoring font loading performance (FOUT/FOIT). Using decorative fonts for body text.
|