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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-init
|
|
3
|
+
description: Set up a project for monodesign — one codebase crawl plus a short interview produces PRODUCT.md (strategic context), optionally DESIGN.md (visual system), and pre-configures live mode. The required first step that anchors all other monodesign commands.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[project path or description]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Init
|
|
10
|
+
|
|
11
|
+
Set up a project for monodesign. Read `reference/init.md` from the monodesign skill directory for the full flow — it is the authoritative protocol. (`/monodesign teach` is the historical alias; it behaves identically.)
|
|
12
|
+
|
|
13
|
+
## What init produces
|
|
14
|
+
|
|
15
|
+
- **PRODUCT.md** (strategic): register, target users, product purpose, brand personality, anti-references, strategic design principles. Answers "who/what/why".
|
|
16
|
+
- **DESIGN.md** (visual, offered via `/monodesign document`): visual theme, color palette, typography, components, layout. Answers "how it looks".
|
|
17
|
+
- **`.monodesign/live/config.json`**: pre-configured live mode so `/monodesign live` boots straight into variant mode.
|
|
18
|
+
|
|
19
|
+
## Flow summary (the reference is authoritative)
|
|
20
|
+
|
|
21
|
+
1. **Load current state**: check for existing PRODUCT.md / DESIGN.md (project root, `.agents/context/`, `docs/`). Never silently overwrite — confirm which file to refresh. A legacy `.monodesign.md` is auto-renamed to PRODUCT.md by the loader.
|
|
22
|
+
2. **Explore the codebase**: one thorough crawl — README/docs, package.json and framework detection, existing components, brand assets, design tokens. Form a register hypothesis (brand vs product vs both) and a platform hypothesis (`web` / `ios` / `android` / `adaptive`).
|
|
23
|
+
3. **Interview**: ask strategic questions to fill PRODUCT.md — register and platform confirmation, users, purpose, positioning, brand personality, anti-references, accessibility needs (plus conversion & proof for the brand register). Never synthesize PRODUCT.md from the task prompt alone; the user confirms before you write.
|
|
24
|
+
4. **Write PRODUCT.md** with only what the user confirmed.
|
|
25
|
+
5. **Offer DESIGN.md** via `/monodesign document` — scan mode when code exists, seed mode for empty projects.
|
|
26
|
+
6. **Pre-configure live mode** when the project has HTML entries and a dev server.
|
|
27
|
+
|
|
28
|
+
## Blocker behavior
|
|
29
|
+
|
|
30
|
+
If init was invoked as a setup blocker by another command (e.g. `/monodesign craft` with no PRODUCT.md), complete init, then resume the original command with the fresh context.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-layout
|
|
3
|
+
description: Fix the structure, not the surface — diagnose a layout's actual problem (monotone spacing, weak hierarchy, identical card grids) and restructure spacing, grids, and composition for the project's register.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target file, route, or component]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Layout
|
|
10
|
+
|
|
11
|
+
Space is the most underused design tool. Find the layout's actual problem and fix the structure, not the surface. Read `reference/layout.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Register-aware structure
|
|
14
|
+
|
|
15
|
+
- **Brand**: asymmetric compositions, fluid spacing with `clamp()`, intentional grid-breaking for emphasis. Rhythm through contrast — tight groupings paired with generous separations.
|
|
16
|
+
- **Product**: predictable grids, consistent densities, familiar navigation patterns. Responsive behavior is structural (collapse sidebar, responsive table), not fluid typography. Consistency IS an affordance.
|
|
17
|
+
- **Native** (`ios` / `android` / `adaptive`): follow the Layout section of `reference/ios.md` / `reference/android.md` — platform navigation, insets, and touch targets, never web CSS tooling.
|
|
18
|
+
|
|
19
|
+
## Two isolated assessments (required)
|
|
20
|
+
|
|
21
|
+
Spawn two parallel sub-agents (isolation is the point — neither sees the other's output):
|
|
22
|
+
|
|
23
|
+
1. **Layout assessment**: works through the full "Assess Current Layout" checklist from the reference, returning per-item findings that cite file, selector, or value.
|
|
24
|
+
2. **Mechanical pre-scan**: runs the bundled detector scoped to layout:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
node .claude/skills/monodesign/scripts/detect.mjs --json --scope layout [target files or dirs]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
When the project documents a spacing scale, also grep arbitrary Tailwind spacing (`gap-[`, `p-[`, `m-[`, `z-[`) and judge those hits against it.
|
|
31
|
+
|
|
32
|
+
If no sub-agent tool is available, run both yourself — assessment first, pre-scan second, so deterministic findings can't anchor the visual judgment.
|
|
33
|
+
|
|
34
|
+
## Then
|
|
35
|
+
|
|
36
|
+
Synthesize both assessments, propose the structural fix (spacing rhythm, grid restructure, hierarchy weight), apply it, and re-run the detector to confirm the layout-scope findings are resolved.
|
|
@@ -1,59 +1,34 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: monodesign-live
|
|
3
|
-
description:
|
|
3
|
+
description: Interactive live variant mode — select elements in the browser, pick a design action, and get AI-generated HTML+CSS variants hot-swapped via the dev server's HMR. Iterate until the live result matches the design intent.
|
|
4
4
|
type: design-sub-command
|
|
5
|
-
argument-hint: "[target URL or
|
|
5
|
+
argument-hint: "[target URL, route, or app path]"
|
|
6
6
|
user-invocable: true
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Monodesign: Live
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Interactive live variant mode. This is a fully functional, script-driven flow — not a manual screenshot loop. Read `reference/live.md` from the monodesign skill directory for the full protocol and follow its contract exactly (boot, poll, generate, steer, accept/discard, exit).
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Prerequisites
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
- A running dev server with hot module replacement (Vite, Next.js, Bun, etc.), OR a static HTML file open in the browser.
|
|
16
|
+
- Node available on PATH (the flow runs the bundled live helper scripts).
|
|
17
|
+
- If `.monodesign/live/config.json` exists (written by `/monodesign init`), live boots straight into variant mode with no first-time setup detour.
|
|
16
18
|
|
|
17
|
-
##
|
|
19
|
+
## How it works (summary — the reference is authoritative)
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- Spacing inconsistencies
|
|
28
|
-
- Color contrast issues
|
|
29
|
-
- Typography rendering
|
|
30
|
-
- Interaction state gaps
|
|
31
|
-
- Alignment problems
|
|
32
|
-
|
|
33
|
-
State the issues clearly before touching any code.
|
|
34
|
-
|
|
35
|
-
### 3. Apply targeted fix
|
|
36
|
-
Edit the CSS for the specific issue identified. Keep each fix surgical — change one thing at a time.
|
|
37
|
-
|
|
38
|
-
```css
|
|
39
|
-
/* Targeted fix: heading weight is too light — can't distinguish from body */
|
|
40
|
-
.hero-heading {
|
|
41
|
-
font-weight: 800;
|
|
42
|
-
font-size: clamp(2.5rem, 5vw, 4rem);
|
|
43
|
-
letter-spacing: -0.03em;
|
|
44
|
-
}
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### 4. Screenshot again
|
|
48
|
-
Verify the fix had the intended effect. Check for regressions on neighboring elements.
|
|
49
|
-
|
|
50
|
-
### 5. Confirm or continue
|
|
51
|
-
If the target issue is resolved, state what was fixed and move to the next. If the fix introduced a regression, roll back and try a different approach.
|
|
21
|
+
1. **Boot**: run `live.mjs` (with `--target <path>` when the request names a specific file, route, or monorepo app). It starts the live helper server and injects the in-page toolbar.
|
|
22
|
+
2. **Open the app URL** that serves the page (the app's own dev-server URL — never the helper's `serverPort`).
|
|
23
|
+
3. **Poll loop**: long-poll with `live-poll.mjs` (default long timeout). The user selects elements in the browser and picks a design action from the toolbar.
|
|
24
|
+
4. **On `generate`**: read the screenshot if present, load the action's reference file, plan three distinct directions, write all variants in one edit, reply done, poll again.
|
|
25
|
+
5. **On `steer`**: handle the user's free-text instruction, reply, poll again.
|
|
26
|
+
6. **On `accept` / `discard`**: the accepted variant is committed to source (carbonize accepts have a cleanup step via `live-complete.mjs`); discards roll back.
|
|
27
|
+
7. **If interrupted**: run `live-status.mjs` or `live-resume.mjs` — the durable journal replays unacknowledged work.
|
|
28
|
+
8. **On `exit`**: run the cleanup steps at the bottom of the reference.
|
|
52
29
|
|
|
53
30
|
## Guidelines
|
|
54
31
|
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
- If the same area has been fixed 3+ times without convergence, step back and assess whether the problem is structural (wrong layout approach) vs. cosmetic
|
|
59
|
-
- Deliver final CSS that can be committed, not just live browser overrides
|
|
32
|
+
- Never pass a short poll timeout; restart the poll immediately after every event.
|
|
33
|
+
- Variants are written as real source edits hot-swapped by HMR — deliver code that can be committed, not browser-only overrides.
|
|
34
|
+
- Manual in-browser edits are captured and can be committed or discarded via `live-commit-manual-edits.mjs` / `live-discard-manual-edits.mjs`.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Adapt an existing design to a different context: another screen size, device, platform, or use case. The trap is treating adaptation as scaling. The job is rethinking the experience for the new context.
|
|
4
4
|
|
|
5
|
+
**Web only** (mobile web included). Native platforms (`ios` / `android` / `adaptive`) route to [adapt.native.md](adapt.native.md) instead; if the project is native, switch to it now.
|
|
5
6
|
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -188,3 +189,124 @@ Test thoroughly across contexts:
|
|
|
188
189
|
- **Slow connections**: Test on throttled network
|
|
189
190
|
|
|
190
191
|
When the adaptation feels native to each context, hand off to `/monodesign polish` for the final pass.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Reference Material
|
|
196
|
+
|
|
197
|
+
The sections below were previously `responsive-design.md` and live inline now so the adapt flow has its deep responsive reference in one place.
|
|
198
|
+
|
|
199
|
+
### Responsive Design
|
|
200
|
+
|
|
201
|
+
#### Mobile-First: Write It Right
|
|
202
|
+
|
|
203
|
+
Start with base styles for mobile, use `min-width` queries to layer complexity. Desktop-first (`max-width`) means mobile loads unnecessary styles first.
|
|
204
|
+
|
|
205
|
+
#### Breakpoints: Content-Driven
|
|
206
|
+
|
|
207
|
+
Don't chase device sizes; let content tell you where to break. Start narrow, stretch until design breaks, add breakpoint there. Three breakpoints usually suffice (640, 768, 1024px). Use `clamp()` for fluid values without breakpoints.
|
|
208
|
+
|
|
209
|
+
#### Detect Input Method, Not Just Screen Size
|
|
210
|
+
|
|
211
|
+
**Screen size doesn't tell you input method.** A laptop with touchscreen, a tablet with keyboard. Use pointer and hover queries:
|
|
212
|
+
|
|
213
|
+
```css
|
|
214
|
+
/* Fine pointer (mouse, trackpad) */
|
|
215
|
+
@media (pointer: fine) {
|
|
216
|
+
.button { padding: 8px 16px; }
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* Coarse pointer (touch, stylus) */
|
|
220
|
+
@media (pointer: coarse) {
|
|
221
|
+
.button { padding: 12px 20px; } /* Larger touch target */
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/* Device supports hover */
|
|
225
|
+
@media (hover: hover) {
|
|
226
|
+
.card:hover { transform: translateY(-2px); }
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* Device doesn't support hover (touch) */
|
|
230
|
+
@media (hover: none) {
|
|
231
|
+
.card { /* No hover state - use active instead */ }
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Critical**: Don't rely on hover for functionality. Touch users can't hover.
|
|
236
|
+
|
|
237
|
+
#### Safe Areas: Handle the Notch
|
|
238
|
+
|
|
239
|
+
Modern phones have notches, rounded corners, and home indicators. Use `env()`:
|
|
240
|
+
|
|
241
|
+
```css
|
|
242
|
+
body {
|
|
243
|
+
padding-top: env(safe-area-inset-top);
|
|
244
|
+
padding-bottom: env(safe-area-inset-bottom);
|
|
245
|
+
padding-left: env(safe-area-inset-left);
|
|
246
|
+
padding-right: env(safe-area-inset-right);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/* With fallback */
|
|
250
|
+
.footer {
|
|
251
|
+
padding-bottom: max(1rem, env(safe-area-inset-bottom));
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Enable viewport-fit** in your meta tag:
|
|
256
|
+
```html
|
|
257
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
#### Responsive Images: Get It Right
|
|
261
|
+
|
|
262
|
+
##### srcset with Width Descriptors
|
|
263
|
+
|
|
264
|
+
```html
|
|
265
|
+
<img
|
|
266
|
+
src="hero-800.jpg"
|
|
267
|
+
srcset="
|
|
268
|
+
hero-400.jpg 400w,
|
|
269
|
+
hero-800.jpg 800w,
|
|
270
|
+
hero-1200.jpg 1200w
|
|
271
|
+
"
|
|
272
|
+
sizes="(max-width: 768px) 100vw, 50vw"
|
|
273
|
+
alt="Hero image"
|
|
274
|
+
>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**How it works**:
|
|
278
|
+
- `srcset` lists available images with their actual widths (`w` descriptors)
|
|
279
|
+
- `sizes` tells the browser how wide the image will display
|
|
280
|
+
- Browser picks the best file based on viewport width AND device pixel ratio
|
|
281
|
+
|
|
282
|
+
##### Picture Element for Art Direction
|
|
283
|
+
|
|
284
|
+
When you need different crops/compositions (not just resolutions):
|
|
285
|
+
|
|
286
|
+
```html
|
|
287
|
+
<picture>
|
|
288
|
+
<source media="(min-width: 768px)" srcset="wide.jpg">
|
|
289
|
+
<source media="(max-width: 767px)" srcset="tall.jpg">
|
|
290
|
+
<img src="fallback.jpg" alt="...">
|
|
291
|
+
</picture>
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
#### Layout Adaptation Patterns
|
|
295
|
+
|
|
296
|
+
**Navigation**: Three stages: hamburger + drawer on mobile, horizontal compact on tablet, full with labels on desktop. **Tables**: Transform to cards on mobile using `display: block` and `data-label` attributes. **Progressive disclosure**: Use `<details>/<summary>` for content that can collapse on mobile.
|
|
297
|
+
|
|
298
|
+
#### Testing: Don't Trust DevTools Alone
|
|
299
|
+
|
|
300
|
+
DevTools device emulation is useful for layout but misses:
|
|
301
|
+
|
|
302
|
+
- Actual touch interactions
|
|
303
|
+
- Real CPU/memory constraints
|
|
304
|
+
- Network latency patterns
|
|
305
|
+
- Font rendering differences
|
|
306
|
+
- Browser chrome/keyboard appearances
|
|
307
|
+
|
|
308
|
+
**Test on at least**: One real iPhone, one real Android, a tablet if relevant. Cheap Android phones reveal performance issues you'll never see on simulators.
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
**Avoid**: Desktop-first design. Device detection instead of feature detection. Separate mobile/desktop codebases. Ignoring tablet and landscape. Assuming all mobile devices are powerful.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
> **Additional context needed**: target platforms/devices and usage contexts.
|
|
2
|
+
|
|
3
|
+
Adapt an existing **native** design (`ios` / `android` / `adaptive`) to a different context: another device class, orientation, platform, or origin. The trap is treating adaptation as scaling. The job is rethinking the experience for the new context, inside the platform conventions of [ios.md](ios.md) / [android.md](android.md); read the target platform's reference before planning if Setup hasn't already.
|
|
4
|
+
|
|
5
|
+
## Assess Adaptation Challenge
|
|
6
|
+
|
|
7
|
+
1. **Source context**: what was it designed for, and what assumptions did it make? (Phone-only? Portrait-only? One platform's idioms? A website?)
|
|
8
|
+
2. **Target context**: which device class (phone, tablet, foldable), orientation, platform, and usage posture (one-handed on the go vs two-handed at rest)?
|
|
9
|
+
3. **What breaks**: navigation that doesn't fit the target, layouts that stretch instead of restructure, gestures or controls that don't exist there?
|
|
10
|
+
|
|
11
|
+
## Adaptation Strategies
|
|
12
|
+
|
|
13
|
+
### Phone → Tablet (iPad / large screens)
|
|
14
|
+
|
|
15
|
+
- **Restructure, don't stretch.** A scaled-up phone UI on a tablet is the failure mode. Use size classes (iOS) / window size classes (Android) to switch structure.
|
|
16
|
+
- **Navigation changes shape**: tab bar stays or becomes a sidebar on iPad; Android navigation bar becomes a rail or drawer on expanded width.
|
|
17
|
+
- **Use the width**: split view / master-detail (list + detail side by side), multi-column grids, popovers where phones used sheets.
|
|
18
|
+
- **Multitasking is a size, not an edge case**: iPad Split View and Android multi-window can hand you a phone-width window on a tablet; size-class-driven layout handles both for free.
|
|
19
|
+
|
|
20
|
+
### Orientation & foldables
|
|
21
|
+
|
|
22
|
+
- Landscape restructures (side-by-side panes, repositioned controls); never clip or letterbox. Lock orientation only when the task truly demands it.
|
|
23
|
+
- Foldables (Android): react to posture and hinge via window size classes; test folded, unfolded, and tabletop.
|
|
24
|
+
|
|
25
|
+
### Platform → platform (iOS ↔ Android)
|
|
26
|
+
|
|
27
|
+
Translate idioms; never transplant them:
|
|
28
|
+
|
|
29
|
+
| iOS | Android |
|
|
30
|
+
|---|---|
|
|
31
|
+
| Tab bar | Navigation bar / rail / drawer |
|
|
32
|
+
| Edge-swipe back, back chevron | Predictive Back gesture / button |
|
|
33
|
+
| Switch, segmented control, system pickers | Material switch, chips, Material pickers |
|
|
34
|
+
| Action sheet | Bottom sheet / Material dialog |
|
|
35
|
+
| SF Symbols, SF Pro, Dynamic Type | Material Symbols, Roboto, sp scaling |
|
|
36
|
+
| Semantic system colors, materials | Material color roles, tonal elevation |
|
|
37
|
+
| System push/sheet transitions | Container transform, shared-axis, fade-through |
|
|
38
|
+
|
|
39
|
+
Rebuild navigation and controls in the target's vocabulary; carry over the brand's expressive layer (palette intent, type accent, motion personality) through the target's theming system.
|
|
40
|
+
|
|
41
|
+
### Web → native (porting a website or web app)
|
|
42
|
+
|
|
43
|
+
Reconform, don't reflow. Replace web navigation with the platform's model, HTML-shaped controls with platform controls, hover affordances with touch-first ones, and px-based type with Dynamic Type / sp. Then treat the result to the full platform reference; the slop test there is the acceptance bar.
|
|
44
|
+
|
|
45
|
+
## Implement & Verify
|
|
46
|
+
|
|
47
|
+
- Drive structure from **size classes / window size classes**, never from device-model checks.
|
|
48
|
+
- Respect safe areas and window insets in every new configuration (notch, hinge, status bar, keyboard).
|
|
49
|
+
- Test on simulators for breadth, then real hardware for truth: at least one phone and one tablet per shipped platform, both orientations, split-screen where supported.
|
|
50
|
+
|
|
51
|
+
When the adaptation feels native to each context, hand off to `/monodesign polish` for the final pass.
|
|
52
|
+
|
|
53
|
+
**NEVER**:
|
|
54
|
+
- Ship a stretched phone layout on a tablet
|
|
55
|
+
- Port one platform's controls or navigation onto the other
|
|
56
|
+
- Hide core functionality on smaller devices (if it matters, make it work)
|
|
57
|
+
- Lock orientation to dodge a layout bug
|
|
58
|
+
- Trust simulators alone (posture, gestures, and performance need hardware)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Android platform
|
|
2
|
+
|
|
3
|
+
For native Android apps: Jetpack Compose, Android Views, React Native, Expo, Flutter shipping to Android hardware.
|
|
4
|
+
|
|
5
|
+
On native, register narrows. Material Design 3 governs structure, navigation, and interaction whatever the register; brand expresses through Material's theming (color roles, type scale, shape, motion). A Material-everywhere cross-platform app that also ships to iPhone still owes iOS its OS guarantees on that hardware: safe-area insets, Reduce Motion, edge-swipe back.
|
|
6
|
+
|
|
7
|
+
## The Android slop test
|
|
8
|
+
|
|
9
|
+
Would a fluent Android user trust this app, or trip on off-spec components? The most common tell is an iOS app wearing Android's skin: a bottom-only navigation copied from iPhone, a back arrow that ignores the system Back gesture, Cupertino-shaped switches and dialogs. Material 3 is the rulebook; follow its components and theme the brand through it.
|
|
10
|
+
|
|
11
|
+
## Layout & structure
|
|
12
|
+
|
|
13
|
+
- **Material navigation, matched to size.** Navigation bar (bottom, 3–5 destinations) on compact width; navigation rail or drawer on expanded width. Never ship a phone bottom-bar untouched on a tablet.
|
|
14
|
+
- **System Back always works.** Honor the predictive Back gesture and Back button; never trap the user or hijack the gesture.
|
|
15
|
+
- **Edge-to-edge with window insets.** Apply the status bar, navigation bar, display cutout, and IME insets so content never hides behind system bars or the keyboard.
|
|
16
|
+
- **Top app bar for screen context**; pair with a FAB when the screen has a single primary action.
|
|
17
|
+
|
|
18
|
+
## Touch targets
|
|
19
|
+
|
|
20
|
+
- **48×48 dp minimum** for every touch target, with at least 8 dp between them.
|
|
21
|
+
|
|
22
|
+
## Typography
|
|
23
|
+
|
|
24
|
+
- **Material type scale.** Display, Headline, Title, Body, Label roles (large/medium/small each). Map text to roles; never hand-pick sizes per screen.
|
|
25
|
+
- **Roboto is the system face**; theme a brand face in through the type scale, keeping body, labels, and controls legible and consistent.
|
|
26
|
+
- **sp units, never fixed px**, so type follows the system font-size setting.
|
|
27
|
+
|
|
28
|
+
## Color & theming
|
|
29
|
+
|
|
30
|
+
- **Material color roles** (primary, on-primary, surface, surface-variant, secondary-container, outline, error). Role tokens resolve light/dark and contrast variants automatically; raw hex breaks there.
|
|
31
|
+
- **Dynamic Color (Material You)** where it fits: derive the scheme from the user's wallpaper on Android 12+, with a static fallback.
|
|
32
|
+
- **Dark theme is a first-class scheme.** Design and test it; never a quick invert.
|
|
33
|
+
- **Tonal elevation.** Convey elevation through the standard surface tonal levels (plus shadow where appropriate); no arbitrary drop shadows.
|
|
34
|
+
|
|
35
|
+
## Components & motion
|
|
36
|
+
|
|
37
|
+
- **Material components.** Buttons (filled / tonal / outlined / text), FAB, switches, chips, snackbars, bottom sheets, Material dialogs, navigation bar/rail/drawer. Never port iOS controls or invent equivalents.
|
|
38
|
+
- **One FAB, one primary action.** Never stack FABs or spend one on a secondary task.
|
|
39
|
+
- **Snackbars for transient feedback** (actionable when useful, never a toast for that); dialogs only for decisions that must interrupt.
|
|
40
|
+
- **Material motion patterns.** Container transform, shared-axis, fade-through, with standard easing and durations; honor the system Remove animations setting with a crossfade or instant cut.
|
|
@@ -6,10 +6,12 @@ Add motion that conveys state, gives feedback, and clarifies hierarchy. Cut moti
|
|
|
6
6
|
|
|
7
7
|
## Register
|
|
8
8
|
|
|
9
|
-
Brand:
|
|
9
|
+
Brand: motion is part of the voice; one well-rehearsed entrance beats scattered micro-interactions. The saturated AI default is fade-and-rise reveals on every scrolled section; that's a tell, not a choreography. Reserve scroll-triggered motion for moments that earn it.
|
|
10
10
|
|
|
11
11
|
Product: 150–250 ms on most transitions. Motion conveys state: feedback, reveal, loading, transitions between views. No page-load choreography; users are in a task and won't wait for it.
|
|
12
12
|
|
|
13
|
+
Native (`ios` / `android` / `adaptive`): implementation follows the Motion section of [ios.md](ios.md) / [android.md](android.md) (read it first if Setup hasn't already): system transitions and OS Reduce Motion, never the web tooling below.
|
|
14
|
+
|
|
13
15
|
---
|
|
14
16
|
|
|
15
17
|
## Assess Animation Opportunities
|
|
@@ -29,7 +31,7 @@ Analyze where motion would improve the experience:
|
|
|
29
31
|
- Who's the audience? (Motion-sensitive users? Power users who want speed?)
|
|
30
32
|
- What matters most? (One hero animation vs many micro-interactions?)
|
|
31
33
|
|
|
32
|
-
If any of these are unclear from the codebase,
|
|
34
|
+
If any of these are unclear from the codebase, STOP and call the AskUserQuestion tool to clarify.
|
|
33
35
|
|
|
34
36
|
**CRITICAL**: Respect `prefers-reduced-motion`. Always provide non-animated alternatives for users who need them.
|
|
35
37
|
|
|
@@ -49,10 +51,11 @@ Create a purposeful animation plan:
|
|
|
49
51
|
Add motion systematically across these categories:
|
|
50
52
|
|
|
51
53
|
### Entrance Animations
|
|
52
|
-
- **Page load choreography**: Stagger element reveals (100-150ms delays), fade + slide combinations
|
|
53
54
|
- **Hero section**: Dramatic entrance for primary content (scale, parallax, or creative effects)
|
|
54
|
-
- **Content reveals**: Scroll-triggered animations using intersection observer
|
|
55
55
|
- **Modal/drawer entry**: Smooth slide + fade, backdrop fade, focus management
|
|
56
|
+
- **List rhythm**: Sibling stagger is legitimate for cards-in-a-grid or list-items-appearing. Whole-section fade-on-scroll is not a list and is not legitimate. Cap total stagger time: 10 items at 50ms each = 500ms total. For more items, reduce per-item delay or cap the staggered count.
|
|
57
|
+
|
|
58
|
+
Use CSS custom properties for clean stagger: `animation-delay: calc(var(--i, 0) * 50ms)` with `style="--i: 0"`, `style="--i: 1"`, etc. on each item.
|
|
56
59
|
|
|
57
60
|
### Micro-interactions
|
|
58
61
|
- **Button feedback**:
|
|
@@ -97,11 +100,14 @@ Use appropriate techniques for each animation:
|
|
|
97
100
|
|
|
98
101
|
### Timing & Easing
|
|
99
102
|
|
|
100
|
-
**
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
**Duration: the 100/300/500 rule.** Timing matters more than easing for "feels right":
|
|
104
|
+
|
|
105
|
+
| Duration | Use Case | Examples |
|
|
106
|
+
|----------|----------|----------|
|
|
107
|
+
| **100–150ms** | Instant feedback | Button press, toggle, color change |
|
|
108
|
+
| **200–300ms** | State changes | Menu open, tooltip, hover state |
|
|
109
|
+
| **300–500ms** | Layout changes | Accordion, modal, drawer |
|
|
110
|
+
| **500–800ms** | Entrance animations | Page load, hero reveal |
|
|
105
111
|
|
|
106
112
|
**Easing curves (use these, not CSS defaults):**
|
|
107
113
|
```css
|
|
@@ -134,13 +140,35 @@ Use appropriate techniques for each animation:
|
|
|
134
140
|
- GSAP for complex sequences
|
|
135
141
|
```
|
|
136
142
|
|
|
143
|
+
### Motion Materials
|
|
144
|
+
|
|
145
|
+
Transform and opacity are reliable defaults, not the whole palette. Premium interfaces often need atmospheric properties. Match material to effect:
|
|
146
|
+
|
|
147
|
+
- **Transform / opacity**: movement, press feedback, simple reveals, list choreography
|
|
148
|
+
- **Blur / filter / backdrop-filter**: focus pulls, depth, glass or lens effects, softened entrances
|
|
149
|
+
- **Clip-path / masks**: wipes, reveals, editorial cropping, product-like transitions
|
|
150
|
+
- **Shadow / glow / color filters**: energy, affordance, focus, warmth, active state
|
|
151
|
+
- **Grid-template-rows or FLIP-style transforms**: expanding and reflowing layout without animating `height` directly
|
|
152
|
+
|
|
153
|
+
The hard rule isn't "transform and opacity only." It's: avoid animating layout-driving properties casually (`width`, `height`, `top`, `left`, margins), keep expensive effects bounded to small or isolated areas, and verify smoothness in-browser on target viewports.
|
|
154
|
+
|
|
137
155
|
### Performance
|
|
138
|
-
- **Motion materials**: Use transform/opacity for reliable movement, but use blur, filters, masks, shadows, and color shifts when they materially improve the effect
|
|
139
156
|
- **Layout safety**: Avoid casual animation of layout-driving properties (`width`, `height`, `top`, `left`, margins)
|
|
140
|
-
- **will-change**: Add sparingly for known expensive animations
|
|
157
|
+
- **will-change**: Add sparingly for known expensive animations only (e.g. on `:hover` or an `.animating` class), never preemptively across the whole page
|
|
158
|
+
- **Scroll triggers**: Use Intersection Observer instead of scroll event listeners; unobserve after the animation fires once
|
|
141
159
|
- **Bound expensive effects**: Keep blur/filter/shadow areas small or isolated, use `contain` where appropriate
|
|
142
160
|
- **Monitor FPS**: Ensure 60fps on target devices
|
|
143
161
|
|
|
162
|
+
### Perceived Performance
|
|
163
|
+
|
|
164
|
+
Nobody cares how fast your site *is*, only how fast it feels. The 80ms threshold: anything under ~80ms feels instant because our brains buffer sensory input for that long to synchronize perception. Target this for micro-interactions.
|
|
165
|
+
|
|
166
|
+
- **Preemptive start**: Begin transitions immediately while loading (iOS app zoom, skeleton UI). Users perceive work happening.
|
|
167
|
+
- **Early completion**: Show content progressively, don't wait for everything (progressive images, streaming HTML, skeleton fade-ins).
|
|
168
|
+
- **Optimistic UI**: Update the interface immediately, handle failures gracefully. Use for low-stakes actions (likes, follows). Avoid for payments or destructive operations.
|
|
169
|
+
- **Easing affects perceived duration**: Ease-in (accelerating toward completion) makes tasks feel shorter because the peak-end effect weights final moments heavily. Ease-out feels satisfying for entrances.
|
|
170
|
+
- **Caution**: Too-fast responses can decrease perceived value for complex operations (search, analysis). Sometimes a brief delay signals "real work" is happening.
|
|
171
|
+
|
|
144
172
|
### Accessibility
|
|
145
173
|
```css
|
|
146
174
|
@media (prefers-reduced-motion: reduce) {
|