monomind 2.5.1 → 2.5.3
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/README.md +1 -1
- package/package.json +2 -1
- package/packages/@monomind/cli/.claude/agents/design/design-monodesign.md +6 -6
- package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +3 -3
- package/packages/@monomind/cli/.claude/agents/github/sync-coordinator.md +2 -2
- package/packages/@monomind/cli/.claude/agents/specialists/integration-architect.md +4 -4
- package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +4 -4
- package/packages/@monomind/cli/.claude/commands/github/sync-coordinator.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/_repeat.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/approvev1.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/architect.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/autodev.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/brain.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/build.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/code-review.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/content.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/createorg.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/createtask.md +3 -3
- package/packages/@monomind/cli/.claude/commands/mastermind/debug.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/design.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/do.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/execute.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/finance.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/finish.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/idea.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/ideate.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/improve.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/marketing.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/master.md +54 -54
- package/packages/@monomind/cli/.claude/commands/mastermind/ops.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/orgs.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/orgstatus.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/plan.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/receive-review.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/release.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/research.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/review.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/runorg.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/runorgv1.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/sales.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/skill-builder.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/stoporg.md +3 -3
- package/packages/@monomind/cli/.claude/commands/mastermind/taskdev.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/tdd.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/techport.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/verify.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/worktree.md +5 -5
- package/packages/@monomind/cli/.claude/helpers/control-start.cjs +30 -0
- package/packages/@monomind/cli/.claude/helpers/event-logger.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/extras-registry.json +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +11 -11
- package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +8 -8
- package/packages/@monomind/cli/.claude/helpers/utils/monograph.cjs +44 -12
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/access.md → mastermind-access/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/activity.md → mastermind-activity/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapter-manager.md → mastermind-adapter-manager/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapters.md → mastermind-adapters/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agent-detail.md → mastermind-agent-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agents.md → mastermind-agents/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approval-detail.md → mastermind-approval-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approvev1.md → mastermind-approvev1/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/architect.md → mastermind-architect/SKILL.md} +7 -7
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/autodev.md → mastermind-autodev/SKILL.md} +10 -10
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/backup.md → mastermind-backup/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/bootstrap.md → mastermind-bootstrap/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/budgets.md → mastermind-budgets/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/build.md → mastermind-build/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/companies.md → mastermind-companies/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/content.md → mastermind-content/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/costs.md → mastermind-costs/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/createorg.md → mastermind-createorg/SKILL.md} +3 -3
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/debug.md → mastermind-debug/SKILL.md} +4 -4
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_delegation.md → mastermind-delegation/SKILL.md} +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/design.md → mastermind-design/SKILL.md} +9 -9
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/diagnose.md → mastermind-diagnose/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/env.md → mastermind-env/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/environments.md → mastermind-environments/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/execute.md → mastermind-execute/SKILL.md} +10 -10
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/export.md → mastermind-export/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finance.md → mastermind-finance/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goal-detail.md → mastermind-goal-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goals.md → mastermind-goals/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/heartbeatv1.md → mastermind-heartbeatv1/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/idea.md → mastermind-idea/SKILL.md} +7 -7
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/import.md → mastermind-import/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/inbox.md → mastermind-inbox/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance.md → mastermind-instance/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance-settings.md → mastermind-instance-settings/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invite-landing.md → mastermind-invite-landing/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invites.md → mastermind-invites/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issue-detail.md → mastermind-issue-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issues.md → mastermind-issues/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/join-queue.md → mastermind-join-queue/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/liveness.md → mastermind-liveness/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/marketing.md → mastermind-marketing/SKILL.md} +8 -8
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/memory.md → mastermind-memory/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monitor.md → mastermind-monitor/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/my-issues.md → mastermind-my-issues/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/new-agent.md → mastermind-new-agent/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/ops.md → mastermind-ops/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-chart.md → mastermind-org-chart/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-settings.md → mastermind-org-settings/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgs.md → mastermind-orgs/SKILL.md} +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgstatus.md → mastermind-orgstatus/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan.md → mastermind-plan/SKILL.md} +7 -7
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan-to-tasks.md → mastermind-plan-to-tasks/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-manager.md → mastermind-plugin-manager/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-settings.md → mastermind-plugin-settings/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugins.md → mastermind-plugins/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/profile.md → mastermind-profile/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-detail.md → mastermind-project-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-workspace.md → mastermind-project-workspace/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/projects.md → mastermind-projects/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_protocol.md → mastermind-protocol/SKILL.md} +3 -3
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/release.md → mastermind-release/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_repeat.md → mastermind-repeat/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/research.md → mastermind-research/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/review.md → mastermind-review/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routine-detail.md → mastermind-routine-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routines.md → mastermind-routines/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorgv1.md → mastermind-runorgv1/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/sales.md → mastermind-sales/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/search.md → mastermind-search/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/secrets.md → mastermind-secrets/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/skill-builder.md → mastermind-skill-builder/SKILL.md} +16 -14
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/{skills.md → SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/stoporg.md → mastermind-stoporg/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/taskdev.md → mastermind-taskdev/SKILL.md} +6 -6
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/implementer-prompt.md +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tasks.md → mastermind-tasks/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tdd.md → mastermind-tdd/SKILL.md} +4 -4
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/techport.md → mastermind-techport/SKILL.md} +6 -6
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/threads.md → mastermind-threads/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tree-control.md → mastermind-tree-control/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/verify.md → mastermind-verify/SKILL.md} +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/wiki.md → mastermind-wiki/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspace-detail.md → mastermind-workspace-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspaces.md → mastermind-workspaces/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/monodesign/SKILL.md +114 -190
- package/packages/@monomind/cli/.claude/skills/monodesign/adapt.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-asset-producer.md +4 -4
- package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/audit.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/craft.md +2 -2
- package/packages/@monomind/cli/.claude/skills/monodesign/critique.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/init.md +30 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/layout.md +36 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/live.md +19 -44
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.md +122 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.native.md +58 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/android.md +40 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/animate.md +39 -11
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/antipatterns-catalog.md +67 -16
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.md +5 -3
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.native.md +139 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/bolder.md +71 -64
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand.md +12 -18
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/clarify.md +114 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/codex.md +4 -6
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/colorize.md +108 -5
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/craft.md +70 -143
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/critique.md +635 -68
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/delight.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/distill.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/document.md +24 -22
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/extract.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/hooks.md +22 -29
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/init.md +221 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/interaction-design.md +0 -6
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/ios.md +45 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/layout.md +57 -13
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/live.md +159 -71
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/overdrive.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/personas.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/polish.md +16 -8
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/pre-delivery-checklist.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/product.md +1 -3
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/quieter.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/shape.md +27 -13
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/teach.md +6 -152
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/typeset.md +180 -3
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context.mjs +1061 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect-csp.mjs +198 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect.mjs +33 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1962 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5601 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +258 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1015 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +2995 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-admin.mjs +661 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-lib.mjs +1776 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook.mjs +61 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/design-parser.mjs +842 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +274 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-dom.js +146 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-session.js +123 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser.js +11240 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-inject.mjs +583 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-server.mjs +1137 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-wrap.mjs +894 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live.mjs +297 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/palette.mjs +633 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/pin.mjs +221 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/teach.md +7 -58
- package/packages/@monomind/cli/README.md +1 -1
- package/packages/@monomind/cli/dist/src/commands/design-detect.d.ts +7 -1
- package/packages/@monomind/cli/dist/src/commands/design-detect.js +131 -38
- package/packages/@monomind/cli/dist/src/commands/design-palette.d.ts +0 -1
- package/packages/@monomind/cli/dist/src/commands/design-palette.js +2 -3
- package/packages/@monomind/cli/dist/src/commands/doc.js +72 -15
- package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +5 -1
- package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +24 -1
- package/packages/@monomind/cli/dist/src/commands/doctor.js +3 -3
- package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +8 -8
- package/packages/@monomind/cli/dist/src/commands/init.js +2 -2
- package/packages/@monomind/cli/dist/src/commands/org.js +109 -9
- package/packages/@monomind/cli/dist/src/index.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/index.js +3 -3
- package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +5 -5
- package/packages/@monomind/cli/dist/src/init/executor.js +17 -6
- package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.d.ts +2 -0
- package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +4 -1
- package/packages/@monomind/cli/dist/src/mcp-server.js +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/knowledge-tools.js +38 -7
- package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +8 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +193 -31
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +33 -0
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +166 -17
- package/packages/@monomind/cli/dist/src/memory/memory-kg.d.ts +186 -0
- package/packages/@monomind/cli/dist/src/memory/memory-kg.js +450 -0
- package/packages/@monomind/cli/dist/src/memory/query-router.d.ts +44 -0
- package/packages/@monomind/cli/dist/src/memory/query-router.js +113 -0
- package/packages/@monomind/cli/dist/src/orgrt/daemon.d.ts +18 -0
- package/packages/@monomind/cli/dist/src/orgrt/daemon.js +249 -12
- package/packages/@monomind/cli/dist/src/orgrt/migrate.js +7 -0
- package/packages/@monomind/cli/dist/src/orgrt/policy.js +7 -0
- package/packages/@monomind/cli/dist/src/orgrt/session.d.ts +24 -1
- package/packages/@monomind/cli/dist/src/orgrt/session.js +18 -3
- package/packages/@monomind/cli/dist/src/orgrt/templates.d.ts +1 -0
- package/packages/@monomind/cli/dist/src/orgrt/templates.js +9 -4
- package/packages/@monomind/cli/dist/src/orgrt/types.d.ts +15 -0
- package/packages/@monomind/cli/dist/src/orgrt/types.js +2 -0
- package/packages/@monomind/cli/dist/src/routing/embed-worker.js +1 -1
- package/packages/@monomind/cli/dist/src/routing/llm-caller.js +1 -1
- package/packages/@monomind/cli/dist/src/routing/route-layer-factory.js +1 -1
- package/packages/@monomind/cli/dist/src/ui/dashboard.html +176 -26
- package/packages/@monomind/cli/dist/src/ui/orgs.html +24 -0
- package/packages/@monomind/cli/dist/src/ui/server.mjs +162 -12
- package/packages/@monomind/cli/dist/src/update/checker.js +3 -3
- package/packages/@monomind/cli/package.json +8 -6
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_agent-select.md → mastermind-agent-select/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finish.md → mastermind-finish/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_intake.md → mastermind-intake/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/copywriting-frameworks.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/persuasion-psychology.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monotask.md → mastermind-monotask/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/receive-review.md → mastermind-receive-review/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorg.md → mastermind-runorg/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/code-quality-reviewer-prompt.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/final-reviewer-prompt.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/spec-reviewer-prompt.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/worktree.md → mastermind-worktree/SKILL.md} +0 -0
|
@@ -12,6 +12,8 @@ Brand isn't a neutral register. AI-generated landing pages have flooded the inte
|
|
|
12
12
|
|
|
13
13
|
**The second slop test: aesthetic lane.** Before committing to moves, name the reference. A Klim-style specimen page is one lane; Stripe-minimal is another; Liquid-Death-acid-maximalism is another. Don't drift into editorial-magazine aesthetics on a brief that isn't editorial. A hiking brand with Cormorant italic drop caps has the wrong register within the register.
|
|
14
14
|
|
|
15
|
+
Then the inverse test: in one sentence, describe what you're about to build the way a competitor would describe theirs. If that sentence fits the modal landing page in the category, restart.
|
|
16
|
+
|
|
15
17
|
## Typography
|
|
16
18
|
|
|
17
19
|
### Font selection procedure
|
|
@@ -41,17 +43,10 @@ The reflex-reject lists apply to **new design choices**. When the existing brand
|
|
|
41
43
|
|
|
42
44
|
### Pairing and voice
|
|
43
45
|
|
|
44
|
-
Distinctive + refined is the goal. The specific shape depends on the brand
|
|
45
|
-
|
|
46
|
-
- **Editorial / long-form / luxury**: display serif + sans body (a magazine shape).
|
|
47
|
-
- **Tech / dev tools / fintech**: one committed sans, usually; custom-tight tracking, strong weight contrast inside a single family.
|
|
48
|
-
- **Consumer / food / travel**: warmer pairings, often a humanist sans plus a script or display serif.
|
|
49
|
-
- **Creative studios / agencies**: rule-breaking welcome. Mono-only, or display-only, or custom-drawn type as voice.
|
|
46
|
+
Distinctive + refined is the goal. The specific shape depends on the brand, not on the brand's category. A category ("restaurant", "dev tool", "magazine", "fintech") is not a recipe; treating it as one is the first-order reflex SKILL.md warns against.
|
|
50
47
|
|
|
51
48
|
Two families minimum is the rule *only* when the voice needs it. A single well-chosen family with committed weight/size contrast is stronger than a timid display+body pair.
|
|
52
49
|
|
|
53
|
-
Vary across projects. If the last brief was a serif-display landing page, this one isn't.
|
|
54
|
-
|
|
55
50
|
### Scale
|
|
56
51
|
|
|
57
52
|
Modular scale, fluid `clamp()` for headings, ≥1.25 ratio between steps. Flat scales (1.1× apart) read as uncommitted.
|
|
@@ -65,33 +60,32 @@ Brand surfaces have permission for Committed, Full palette, and Drenched strateg
|
|
|
65
60
|
- Name a real reference before picking a strategy. "Klim Type Foundry #ff4500 orange drench", "Stripe purple-on-white restraint", "Liquid Death acid-green full palette", "Mailchimp yellow full palette", "Condé Nast Traveler muted navy restraint", "Vercel pure black monochrome". Unnamed ambition becomes beige.
|
|
66
61
|
- Palette IS voice. A calm brand and a restless brand should not share palette mechanics.
|
|
67
62
|
- When the strategy is Committed or Drenched, color carries the brand. Don't hedge with neutrals around the edges. Commit.
|
|
68
|
-
- Don't converge across projects.
|
|
63
|
+
- Don't converge across projects. Each brand surface differentiates from the last.
|
|
64
|
+
- When a cultural-symbol palette is the obvious pull, reach past it. Let the cultural reading come from typography, imagery, and copy, not the palette.
|
|
69
65
|
|
|
70
66
|
## Layout
|
|
71
67
|
|
|
72
68
|
- Asymmetric compositions are one option. Break the grid intentionally for emphasis.
|
|
73
69
|
- Fluid spacing with `clamp()` that breathes on larger viewports. Vary for rhythm: generous separations, tight groupings.
|
|
74
|
-
-
|
|
75
|
-
- Don't default to centering everything. Left-aligned with asymmetric layouts feels more designed; a strict grid reads as confident structure. A centered-stack hero with icon-title-subtitle cards reads as template.
|
|
70
|
+
- For image-led briefs (hotels, restaurants, magazines, photography), full-bleed hero imagery with overlaid menu and centered headline is a canonical move; let the photograph be the design.
|
|
76
71
|
- When cards ARE the right affordance, use `grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))` for breakpoint-free responsiveness.
|
|
77
72
|
|
|
78
73
|
## Imagery
|
|
79
74
|
|
|
80
75
|
Brand surfaces lean on imagery. A restaurant, hotel, magazine, or product landing page without any imagery reads as incomplete, not as restrained. A solid-color rectangle where a hero image should go is worse than a representative stock photo.
|
|
81
76
|
|
|
82
|
-
**When the brief implies imagery
|
|
77
|
+
**When the brief implies imagery, you must ship imagery.** Zero images is a bug, not a design choice. "Restraint" is not an excuse. If the approved comp or brief is image-led, ship real project assets, generated raster assets, or a credible canvas/SVG/WebGL scene. Do not replace photographic, architectural, product, or place imagery with generic CSS panels, decorative diagrams, cards, bullets, or copy.
|
|
83
78
|
|
|
84
|
-
- **For greenfield work without local assets, use stock imagery.** Unsplash is the default. The URL shape is `https://images.unsplash.com/photo-{id}?auto=format&fit=crop&w=1600&q=80`.
|
|
79
|
+
- **For greenfield work without local assets, use stock imagery.** Unsplash is the default. The URL shape is `https://images.unsplash.com/photo-{id}?auto=format&fit=crop&w=1600&q=80`. **Verify the URLs before referencing them.** If you have an image-search MCP, web-fetch tool, or browser access, use it to find real photo IDs and confirm they resolve. Guessed IDs (even ones that look real) often 404 and ship as broken-image placeholders. Without a verification path, pick fewer photos you're confident exist over more that you guessed; never substitute colored `<div>` placeholders.
|
|
85
80
|
- **Search for the brand's physical object**, not the generic category: "handmade pasta on a scratched wooden table" beats "Italian food"; "cypress trees above a limestone hotel facade at dusk" beats "luxury hotel".
|
|
86
81
|
- **One decisive photo beats five mediocre ones.** Hero imagery should commit to a mood; padding with more stock doesn't rescue an indecisive one.
|
|
87
82
|
- **Alt text is part of the voice.** "Coastal fettuccine, hand-cut, served on the terrace" beats "pasta dish".
|
|
88
83
|
|
|
89
|
-
|
|
84
|
+
"Imagery" here is broader than stock photography: product screenshots, custom data visualizations, generated SVG, and canvas/WebGL scenes are all imagery. Text-only pages where typography alone carries the entire visual weight are the failure mode.
|
|
90
85
|
|
|
91
86
|
## Motion
|
|
92
87
|
|
|
93
|
-
- One well-orchestrated page-load
|
|
94
|
-
- For collapsing/expanding sections, transition `grid-template-rows` rather than `height`.
|
|
88
|
+
- One well-orchestrated page-load beats scattered micro-interactions, when the brand invites it. Some brands skip entrance motion entirely; the restraint is the voice.
|
|
95
89
|
|
|
96
90
|
## Brand bans (on top of the shared absolute bans)
|
|
97
91
|
|
|
@@ -102,13 +96,13 @@ Tech / dev-tool brands are the exception where zero imagery can be correct; a de
|
|
|
102
96
|
- Timid palettes and average layouts. Safe = invisible.
|
|
103
97
|
- Zero imagery on a brief that implies imagery (restaurant, hotel, food, travel, fashion, photography, hobbyist). Colored blocks where a hero photo belongs.
|
|
104
98
|
- Defaulting to editorial-magazine aesthetics (display serif + italic + drop caps + broadsheet grid) on briefs that aren't magazine-shaped. Editorial is ONE aesthetic lane, not the default brand aesthetic.
|
|
99
|
+
- Repeated tiny uppercase tracked labels above every section heading. A single strong kicker can be voice; repeating it as section grammar is AI scaffolding unless it's a deliberate, named brand system.
|
|
105
100
|
|
|
106
101
|
## Brand permissions
|
|
107
102
|
|
|
108
103
|
Brand can afford things product can't. Take them.
|
|
109
104
|
|
|
110
|
-
- Ambitious first-load motion. Reveals
|
|
105
|
+
- Ambitious first-load motion. Reveals and typographic choreography that earn their place; not fade-on-scroll for every section.
|
|
111
106
|
- Single-purpose viewports. One dominant idea per fold, long scroll, deliberate pacing.
|
|
112
|
-
- Typographic risk. Enormous display type, unexpected italic cuts, mixed cases, hand-drawn headlines, a single oversize word as a hero.
|
|
113
107
|
- Unexpected color strategies. Palette IS voice; a calm brand and a restless brand should not share palette mechanics.
|
|
114
108
|
- Art direction per section. Different sections can have different visual worlds if the narrative demands it. Consistency of voice beats consistency of treatment.
|
|
@@ -172,3 +172,117 @@ Test that copy improvements work:
|
|
|
172
172
|
- **Tone**: Is it appropriate for the situation?
|
|
173
173
|
|
|
174
174
|
When the copy reads cleanly, hand off to `/monodesign polish` for the final pass.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Reference Material
|
|
179
|
+
|
|
180
|
+
The sections below were previously `ux-writing.md` and live inline now so the clarify flow has its deep UX-writing reference in one place.
|
|
181
|
+
|
|
182
|
+
### UX Writing
|
|
183
|
+
|
|
184
|
+
#### The Button Label Problem
|
|
185
|
+
|
|
186
|
+
**Never use "OK", "Submit", or "Yes/No".** These are lazy and ambiguous. Use specific verb + object patterns:
|
|
187
|
+
|
|
188
|
+
| Bad | Good | Why |
|
|
189
|
+
|-----|------|-----|
|
|
190
|
+
| OK | Save changes | Says what will happen |
|
|
191
|
+
| Submit | Create account | Outcome-focused |
|
|
192
|
+
| Yes | Delete message | Confirms the action |
|
|
193
|
+
| Cancel | Keep editing | Clarifies what "cancel" means |
|
|
194
|
+
| Click here | Download PDF | Describes the destination |
|
|
195
|
+
|
|
196
|
+
**For destructive actions**, name the destruction:
|
|
197
|
+
- "Delete" not "Remove" (delete is permanent, remove implies recoverable)
|
|
198
|
+
- "Delete 5 items" not "Delete selected" (show the count)
|
|
199
|
+
|
|
200
|
+
#### Error Messages: The Formula
|
|
201
|
+
|
|
202
|
+
Every error message should answer: (1) What happened? (2) Why? (3) How to fix it? Example: "Email address isn't valid. Please include an @ symbol." not "Invalid input".
|
|
203
|
+
|
|
204
|
+
##### Error Message Templates
|
|
205
|
+
|
|
206
|
+
| Situation | Template |
|
|
207
|
+
|-----------|----------|
|
|
208
|
+
| **Format error** | "[Field] needs to be [format]. Example: [example]" |
|
|
209
|
+
| **Missing required** | "Please enter [what's missing]" |
|
|
210
|
+
| **Permission denied** | "You don't have access to [thing]. [What to do instead]" |
|
|
211
|
+
| **Network error** | "We couldn't reach [thing]. Check your connection and [action]." |
|
|
212
|
+
| **Server error** | "Something went wrong on our end. We're looking into it. [Alternative action]" |
|
|
213
|
+
|
|
214
|
+
##### Don't Blame the User
|
|
215
|
+
|
|
216
|
+
Reframe errors: "Please enter a date in MM/DD/YYYY format" not "You entered an invalid date".
|
|
217
|
+
|
|
218
|
+
#### Empty States Are Opportunities
|
|
219
|
+
|
|
220
|
+
Empty states are onboarding moments: (1) Acknowledge briefly, (2) Explain the value of filling it, (3) Provide a clear action. "No projects yet. Create your first one to get started." not just "No items".
|
|
221
|
+
|
|
222
|
+
#### Voice vs Tone
|
|
223
|
+
|
|
224
|
+
**Voice** is your brand's personality, consistent everywhere.
|
|
225
|
+
**Tone** adapts to the moment.
|
|
226
|
+
|
|
227
|
+
| Moment | Tone Shift |
|
|
228
|
+
|--------|------------|
|
|
229
|
+
| Success | Celebratory, brief: "Done! Your changes are live." |
|
|
230
|
+
| Error | Empathetic, helpful: "That didn't work. Here's what to try..." |
|
|
231
|
+
| Loading | Reassuring: "Saving your work..." |
|
|
232
|
+
| Destructive confirm | Serious, clear: "Delete this project? This can't be undone." |
|
|
233
|
+
|
|
234
|
+
**Never use humor for errors.** Users are already frustrated. Be helpful, not cute.
|
|
235
|
+
|
|
236
|
+
#### Writing for Accessibility
|
|
237
|
+
|
|
238
|
+
**Link text** must have standalone meaning: "View pricing plans" not "Click here". **Alt text** describes information, not the image: "Revenue increased 40% in Q4" not "Chart". Use `alt=""` for decorative images. **Icon buttons** need `aria-label` for screen reader context.
|
|
239
|
+
|
|
240
|
+
#### Writing for Translation
|
|
241
|
+
|
|
242
|
+
##### Plan for Expansion
|
|
243
|
+
|
|
244
|
+
German text is ~30% longer than English. Allocate space:
|
|
245
|
+
|
|
246
|
+
| Language | Expansion |
|
|
247
|
+
|----------|-----------|
|
|
248
|
+
| German | +30% |
|
|
249
|
+
| French | +20% |
|
|
250
|
+
| Finnish | +30-40% |
|
|
251
|
+
| Chinese | -30% (fewer chars, but same width) |
|
|
252
|
+
|
|
253
|
+
##### Translation-Friendly Patterns
|
|
254
|
+
|
|
255
|
+
Keep numbers separate ("New messages: 3" not "You have 3 new messages"). Use full sentences as single strings (word order varies by language). Avoid abbreviations ("5 minutes ago" not "5 mins ago"). Give translators context about where strings appear.
|
|
256
|
+
|
|
257
|
+
#### Consistency: The Terminology Problem
|
|
258
|
+
|
|
259
|
+
Pick one term and stick with it:
|
|
260
|
+
|
|
261
|
+
| Inconsistent | Consistent |
|
|
262
|
+
|--------------|------------|
|
|
263
|
+
| Delete / Remove / Trash | Delete |
|
|
264
|
+
| Settings / Preferences / Options | Settings |
|
|
265
|
+
| Sign in / Log in / Enter | Sign in |
|
|
266
|
+
| Create / Add / New | Create |
|
|
267
|
+
|
|
268
|
+
Build a terminology glossary and enforce it. Variety creates confusion.
|
|
269
|
+
|
|
270
|
+
#### Avoid Redundant Copy
|
|
271
|
+
|
|
272
|
+
If the heading explains it, the intro is redundant. If the button is clear, don't explain it again. Say it once, say it well.
|
|
273
|
+
|
|
274
|
+
#### Loading States
|
|
275
|
+
|
|
276
|
+
Be specific: "Saving your draft..." not "Loading...". For long waits, set expectations ("This usually takes 30 seconds") or show progress.
|
|
277
|
+
|
|
278
|
+
#### Confirmation Dialogs: Use Sparingly
|
|
279
|
+
|
|
280
|
+
Most confirmation dialogs are design failures; consider undo instead. When you must confirm: name the action, explain consequences, use specific button labels ("Delete project" / "Keep project", not "Yes" / "No").
|
|
281
|
+
|
|
282
|
+
#### Form Instructions
|
|
283
|
+
|
|
284
|
+
Show format with placeholders, not instructions. For non-obvious fields, explain why you're asking.
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
**Avoid**: Jargon without explanation. Blaming users ("You made an error" → "This field is required"). Vague errors ("Something went wrong"). Varying terminology for variety. Humor for errors.
|
|
@@ -4,16 +4,14 @@ This file is loaded by `/monodesign craft` when the harness has native image gen
|
|
|
4
4
|
|
|
5
5
|
Read this *before* generating any images. The order matters, and the per-step user pauses are what keep generated imagery from drifting away from the brief.
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### Four stop points before code
|
|
8
8
|
|
|
9
|
-
Steps A through
|
|
9
|
+
Steps A through D each end with the user. Do not advance past any of them on your own read of the situation.
|
|
10
10
|
|
|
11
11
|
1. **STOP after Step A questions.** Wait for answers.
|
|
12
12
|
2. **STOP after Step B palette generation.** Wait for "confirm palette."
|
|
13
13
|
3. **STOP after Step C mocks.** Wait for direction approval or delegation.
|
|
14
|
-
4. **Only after Step D approves a direction** do you
|
|
15
|
-
5. Step E (mock fidelity inventory) and Step F (asset slicing) complete the asset set.
|
|
16
|
-
6. After Step F, return to craft.md Step 4 and write code.
|
|
14
|
+
4. **Only after Step D approves a direction** do you return to craft.md Step 4 and write code.
|
|
17
15
|
|
|
18
16
|
Prior shape approval does **not** satisfy any of these. Shape's "confirm or override" advances you into Step A; it is not a substitute for it.
|
|
19
17
|
|
|
@@ -84,7 +82,7 @@ Raster ingredients identified in Step E need clean production assets. Use the bu
|
|
|
84
82
|
Spawn it as a scoped subagent. If you do not have explicit permission to use agents, stop and ask:
|
|
85
83
|
|
|
86
84
|
```text
|
|
87
|
-
Asset production will work better as a scoped subagent job. Should I spawn the
|
|
85
|
+
Asset production will work better as a scoped subagent job. Should I spawn the Monodesign asset producer subagent for this step?
|
|
88
86
|
```
|
|
89
87
|
|
|
90
88
|
Pass to the agent:
|
|
@@ -30,7 +30,7 @@ Analyze the current state and identify opportunities:
|
|
|
30
30
|
- **Wayfinding**: Helping users navigate and understand structure
|
|
31
31
|
- **Delight**: Moments of visual interest and personality
|
|
32
32
|
|
|
33
|
-
If any of these are unclear from the codebase,
|
|
33
|
+
If any of these are unclear from the codebase, STOP and call the AskUserQuestion tool to clarify.
|
|
34
34
|
|
|
35
35
|
**CRITICAL**: More color ≠ better. Strategic color beats rainbow vomit every time. Every color should have a purpose.
|
|
36
36
|
|
|
@@ -68,10 +68,10 @@ Add color systematically across these dimensions:
|
|
|
68
68
|
- **Hover states**: Introduce color on interaction
|
|
69
69
|
|
|
70
70
|
### Background & Surfaces
|
|
71
|
-
- **Tinted backgrounds**:
|
|
71
|
+
- **Tinted backgrounds**: If you replace pure gray, tint toward the brand hue, not toward a generic-warm-or-cool pair. The default-warm-tint (`oklch(97% 0.01 60)` and its neighbors) is now the AI cream/sand giveaway. Be specific to the brand or stay neutral.
|
|
72
72
|
- **Colored sections**: Use subtle background colors to separate areas
|
|
73
73
|
- **Gradient backgrounds**: Add depth with subtle, intentional gradients (not generic purple-blue)
|
|
74
|
-
- **Cards & surfaces**: Tint cards or surfaces
|
|
74
|
+
- **Cards & surfaces**: Tint cards or surfaces toward the brand, not "for warmth" by reflex
|
|
75
75
|
|
|
76
76
|
**Use OKLCH for color**: It's perceptually uniform, meaning equal steps in lightness *look* equal. Great for generating harmonious scales.
|
|
77
77
|
|
|
@@ -124,8 +124,6 @@ Ensure color addition improves rather than overwhelms:
|
|
|
124
124
|
- Use every color in the rainbow (choose 2-4 colors beyond neutrals)
|
|
125
125
|
- Apply color randomly without semantic meaning
|
|
126
126
|
- Put gray text on colored backgrounds. It looks washed out; use a darker shade of the background color or transparency instead
|
|
127
|
-
- Use pure gray for neutrals. Add subtle color tint (warm or cool) for depth
|
|
128
|
-
- Use pure black (`#000`) or pure white (`#fff`) for large areas
|
|
129
127
|
- Violate WCAG contrast requirements
|
|
130
128
|
- Use color as the only indicator (accessibility issue)
|
|
131
129
|
- Make everything colorful (defeats the purpose)
|
|
@@ -152,3 +150,108 @@ When invoked from live mode, each variant MUST declare a `color-amount` param so
|
|
|
152
150
|
```
|
|
153
151
|
|
|
154
152
|
Layer 1-2 variant-specific params on top: palette selection (`steps` with named options), temperature warmth, or tint vs. true color. See `reference/live.md` for the full params contract.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Reference Material
|
|
157
|
+
|
|
158
|
+
The sections below were previously `color-and-contrast.md` and live inline now so the colorize flow has its deep color reference in one place.
|
|
159
|
+
|
|
160
|
+
### Color & Contrast
|
|
161
|
+
|
|
162
|
+
#### Color Spaces: Use OKLCH
|
|
163
|
+
|
|
164
|
+
**Stop using HSL.** Use OKLCH (or LCH) instead. It's perceptually uniform, meaning equal steps in lightness *look* equal, unlike HSL where 50% lightness in yellow looks bright while 50% in blue looks dark.
|
|
165
|
+
|
|
166
|
+
The OKLCH function takes three components: `oklch(lightness chroma hue)` where lightness is 0-100%, chroma is roughly 0-0.4, and hue is 0-360. To build a primary color and its lighter / darker variants, hold the chroma+hue roughly constant and vary the lightness, but **reduce chroma as you approach white or black**, because high chroma at extreme lightness looks garish.
|
|
167
|
+
|
|
168
|
+
The hue you pick is a brand decision and should not come from a default. Do not reach for blue (hue 250) or warm orange (hue 60) by reflex; those are the dominant AI-design defaults, not the right answer for any specific brand.
|
|
169
|
+
|
|
170
|
+
#### Building Functional Palettes
|
|
171
|
+
|
|
172
|
+
##### Tinted Neutrals
|
|
173
|
+
|
|
174
|
+
**Pure gray is dead.** A neutral with zero chroma feels lifeless next to a colored brand. Add a tiny chroma value (0.005-0.015) to all your neutrals, hued toward whatever your brand color is. The chroma is small enough not to read as "tinted" consciously, but it creates subconscious cohesion between brand color and UI surfaces.
|
|
175
|
+
|
|
176
|
+
The hue you tint toward should come from THIS project's brand, not from a "warm = friendly, cool = tech" formula. If your brand color is teal, your neutrals lean toward teal. If your brand color is amber, they lean toward amber. The point is cohesion with the SPECIFIC brand, not a stock palette.
|
|
177
|
+
|
|
178
|
+
**Avoid** the trap of always tinting toward warm orange or always tinting toward cool blue. Those are the two laziest defaults and they create their own monoculture across projects.
|
|
179
|
+
|
|
180
|
+
##### Palette Structure
|
|
181
|
+
|
|
182
|
+
A complete system needs:
|
|
183
|
+
|
|
184
|
+
| Role | Purpose | Example |
|
|
185
|
+
|------|---------|---------|
|
|
186
|
+
| **Primary** | Brand, CTAs, key actions | 1 color, 3-5 shades |
|
|
187
|
+
| **Neutral** | Text, backgrounds, borders | 9-11 shade scale |
|
|
188
|
+
| **Semantic** | Success, error, warning, info | 4 colors, 2-3 shades each |
|
|
189
|
+
| **Surface** | Cards, modals, overlays | 2-3 elevation levels |
|
|
190
|
+
|
|
191
|
+
**Skip secondary/tertiary unless you need them.** Most apps work fine with one accent color. Adding more creates decision fatigue and visual noise.
|
|
192
|
+
|
|
193
|
+
##### The 60-30-10 Rule (Applied Correctly)
|
|
194
|
+
|
|
195
|
+
This rule is about **visual weight**, not pixel count:
|
|
196
|
+
|
|
197
|
+
- **60%**: Neutral backgrounds, white space, base surfaces
|
|
198
|
+
- **30%**: Secondary colors: text, borders, inactive states
|
|
199
|
+
- **10%**: Accent: CTAs, highlights, focus states
|
|
200
|
+
|
|
201
|
+
The common mistake: using the accent color everywhere because it's "the brand color." Accent colors work *because* they're rare. Overuse kills their power.
|
|
202
|
+
|
|
203
|
+
#### Contrast & Accessibility
|
|
204
|
+
|
|
205
|
+
##### WCAG Requirements
|
|
206
|
+
|
|
207
|
+
| Content Type | AA Minimum | AAA Target |
|
|
208
|
+
|--------------|------------|------------|
|
|
209
|
+
| Body text | 4.5:1 | 7:1 |
|
|
210
|
+
| Large text (18px+ or 14px bold) | 3:1 | 4.5:1 |
|
|
211
|
+
| UI components, icons | 3:1 | 4.5:1 |
|
|
212
|
+
| Non-essential decorations | None | None |
|
|
213
|
+
|
|
214
|
+
##### Dangerous Color Combinations
|
|
215
|
+
|
|
216
|
+
These commonly fail contrast or cause readability issues:
|
|
217
|
+
|
|
218
|
+
- Light gray text on white (the #1 accessibility fail)
|
|
219
|
+
- Red text on green background (or vice versa): 8% of men can't distinguish these
|
|
220
|
+
- Blue text on red background (vibrates visually)
|
|
221
|
+
- Yellow text on white (almost always fails)
|
|
222
|
+
- Thin light text on images (unpredictable contrast)
|
|
223
|
+
|
|
224
|
+
##### Testing
|
|
225
|
+
|
|
226
|
+
Don't trust your eyes. Use tools:
|
|
227
|
+
|
|
228
|
+
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
|
|
229
|
+
- Browser DevTools → Rendering → Emulate vision deficiencies
|
|
230
|
+
- [Polypane](https://polypane.app/) for real-time testing
|
|
231
|
+
|
|
232
|
+
#### Theming: Light & Dark Mode
|
|
233
|
+
|
|
234
|
+
##### Dark Mode Is Not Inverted Light Mode
|
|
235
|
+
|
|
236
|
+
You can't just swap colors. Dark mode requires different design decisions:
|
|
237
|
+
|
|
238
|
+
| Light Mode | Dark Mode |
|
|
239
|
+
|------------|-----------|
|
|
240
|
+
| Shadows for depth | Lighter surfaces for depth (no shadows) |
|
|
241
|
+
| Dark text on light | Light text on dark (reduce font weight) |
|
|
242
|
+
| Vibrant accents | Desaturate accents slightly |
|
|
243
|
+
| White backgrounds | Either pure black or a deep surface that fits the brand (a brand-tinted near-black at oklch 12-18% works too) |
|
|
244
|
+
|
|
245
|
+
In dark mode, depth comes from surface lightness, not shadow. Build a 3-step surface scale where higher elevations are lighter (e.g. 15% / 20% / 25% lightness). Use the SAME hue and chroma as your brand color (whatever it is for THIS project; do not reach for blue) and only vary the lightness. Reduce body text weight slightly (e.g. 350 instead of 400) because light text on dark reads as heavier than dark text on light.
|
|
246
|
+
|
|
247
|
+
##### Token Hierarchy
|
|
248
|
+
|
|
249
|
+
Use two layers: primitive tokens (`--blue-500`) and semantic tokens (`--color-primary: var(--blue-500)`). For dark mode, only redefine the semantic layer; primitives stay the same.
|
|
250
|
+
|
|
251
|
+
#### Alpha Is A Design Smell
|
|
252
|
+
|
|
253
|
+
Heavy use of transparency (rgba, hsla) usually means an incomplete palette. Alpha creates unpredictable contrast, performance overhead, and inconsistency. Define explicit overlay colors for each context instead. Exception: focus rings and interactive states where see-through is needed.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
**Avoid**: Relying on color alone to convey information. Creating palettes without clear roles for each color. Skipping color blindness testing (8% of men affected).
|