@monoes/monomindcli 1.14.7 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/reengineer-squad/boss.md +113 -0
- package/.claude/agents/reengineer-squad/critic-architect.md +132 -0
- package/.claude/agents/reengineer-squad/git-manager.md +145 -0
- package/.claude/agents/reengineer-squad/idea-generator.md +95 -0
- package/.claude/agents/reengineer-squad/implementer.md +112 -0
- package/.claude/agents/reengineer-squad/integration-planner.md +112 -0
- package/.claude/agents/reengineer-squad/source-analyst.md +103 -0
- package/.claude/agents/reengineer-squad/target-analyst.md +118 -0
- package/.claude/agents/reengineer-squad/tester.md +105 -0
- package/.claude/commands/mastermind/master.md +35 -14
- package/.claude/helpers/handlers/capture-handler.cjs +155 -18
- package/.claude/helpers/monolean-activate.cjs +20 -0
- package/.claude/helpers/monolean-config.cjs +76 -0
- package/.claude/helpers/monolean-instructions.cjs +109 -0
- package/.claude/helpers/monolean-propagate.cjs +9 -0
- package/.claude/helpers/monolean-tracker.cjs +18 -0
- package/.claude/helpers/skill-registry.json +2 -2
- package/.claude/skills/agent-browser-testing/SKILL.md +301 -18
- package/.claude/skills/mastermind/runorg.md +69 -23
- package/.claude/skills/monodesign/SKILL.md +32 -1
- package/.claude/skills/monodesign/adapt.md +53 -0
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +100 -0
- package/.claude/skills/monodesign/animate.md +65 -0
- package/.claude/skills/monodesign/audit.md +89 -0
- package/.claude/skills/monodesign/bolder.md +50 -0
- package/.claude/skills/monodesign/clarify.md +64 -0
- package/.claude/skills/monodesign/colorize.md +68 -0
- package/.claude/skills/monodesign/craft.md +51 -0
- package/.claude/skills/monodesign/critique.md +66 -0
- package/.claude/skills/monodesign/delight.md +47 -0
- package/.claude/skills/monodesign/distill.md +56 -0
- package/.claude/skills/monodesign/document.md +80 -0
- package/.claude/skills/monodesign/extract.md +74 -0
- package/.claude/skills/monodesign/harden.md +65 -0
- package/.claude/skills/monodesign/live.md +59 -0
- package/.claude/skills/monodesign/onboard.md +50 -0
- package/.claude/skills/monodesign/optimize.md +64 -0
- package/.claude/skills/monodesign/overdrive.md +56 -0
- package/.claude/skills/monodesign/polish.md +68 -0
- package/.claude/skills/monodesign/quieter.md +57 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +248 -76
- package/.claude/skills/monodesign/reference/codex.md +107 -0
- package/.claude/skills/monodesign/reference/craft.md +3 -0
- package/.claude/skills/monodesign/reference/hooks.md +99 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +12 -0
- package/.claude/skills/monodesign/shape.md +71 -0
- package/.claude/skills/monodesign/teach.md +69 -0
- package/.claude/skills/monodesign/typeset.md +59 -0
- package/.claude/skills/monolean/SKILL.md +118 -0
- package/.claude/skills/monolean-audit/SKILL.md +41 -0
- package/.claude/skills/monolean-debt/SKILL.md +46 -0
- package/.claude/skills/monolean-help/SKILL.md +60 -0
- package/.claude/skills/monolean-review/SKILL.md +57 -0
- package/bin/cli.js +3 -1
- package/dist/dashboard/server.js +137 -0
- package/dist/src/__tests__/browse-adapters.test.d.ts +2 -0
- package/dist/src/__tests__/browse-adapters.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-adapters.test.js +51 -0
- package/dist/src/__tests__/browse-adapters.test.js.map +1 -0
- package/dist/src/__tests__/browse-analyzer.test.d.ts +2 -0
- package/dist/src/__tests__/browse-analyzer.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-analyzer.test.js +68 -0
- package/dist/src/__tests__/browse-analyzer.test.js.map +1 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.d.ts +2 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.js +139 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.js.map +1 -0
- package/dist/src/__tests__/browse-cdp.test.d.ts +2 -0
- package/dist/src/__tests__/browse-cdp.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-cdp.test.js +169 -0
- package/dist/src/__tests__/browse-cdp.test.js.map +1 -0
- package/dist/src/__tests__/browse-dashboard.test.d.ts +2 -0
- package/dist/src/__tests__/browse-dashboard.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-dashboard.test.js +179 -0
- package/dist/src/__tests__/browse-dashboard.test.js.map +1 -0
- package/dist/src/__tests__/browse-engine.test.d.ts +2 -0
- package/dist/src/__tests__/browse-engine.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-engine.test.js +122 -0
- package/dist/src/__tests__/browse-engine.test.js.map +1 -0
- package/dist/src/__tests__/browse-expression.test.d.ts +2 -0
- package/dist/src/__tests__/browse-expression.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-expression.test.js +54 -0
- package/dist/src/__tests__/browse-expression.test.js.map +1 -0
- package/dist/src/__tests__/browse-store.test.d.ts +2 -0
- package/dist/src/__tests__/browse-store.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-store.test.js +99 -0
- package/dist/src/__tests__/browse-store.test.js.map +1 -0
- package/dist/src/__tests__/browse-workflow-types.test.d.ts +2 -0
- package/dist/src/__tests__/browse-workflow-types.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-workflow-types.test.js +33 -0
- package/dist/src/__tests__/browse-workflow-types.test.js.map +1 -0
- package/dist/src/browser/action-builder/analyzer.d.ts +11 -0
- package/dist/src/browser/action-builder/analyzer.d.ts.map +1 -0
- package/dist/src/browser/action-builder/analyzer.js +71 -0
- package/dist/src/browser/action-builder/analyzer.js.map +1 -0
- package/dist/src/browser/action-builder/types.d.ts +47 -0
- package/dist/src/browser/action-builder/types.d.ts.map +1 -0
- package/dist/src/browser/action-builder/types.js +2 -0
- package/dist/src/browser/action-builder/types.js.map +1 -0
- package/dist/src/browser/adapters/gemini.d.ts +3 -0
- package/dist/src/browser/adapters/gemini.d.ts.map +1 -0
- package/dist/src/browser/adapters/gemini.js +16 -0
- package/dist/src/browser/adapters/gemini.js.map +1 -0
- package/dist/src/browser/adapters/google.d.ts +3 -0
- package/dist/src/browser/adapters/google.d.ts.map +1 -0
- package/dist/src/browser/adapters/google.js +17 -0
- package/dist/src/browser/adapters/google.js.map +1 -0
- package/dist/src/browser/adapters/index.d.ts +19 -0
- package/dist/src/browser/adapters/index.d.ts.map +1 -0
- package/dist/src/browser/adapters/index.js +23 -0
- package/dist/src/browser/adapters/index.js.map +1 -0
- package/dist/src/browser/adapters/instagram.d.ts +3 -0
- package/dist/src/browser/adapters/instagram.d.ts.map +1 -0
- package/dist/src/browser/adapters/instagram.js +17 -0
- package/dist/src/browser/adapters/instagram.js.map +1 -0
- package/dist/src/browser/adapters/linkedin.d.ts +3 -0
- package/dist/src/browser/adapters/linkedin.d.ts.map +1 -0
- package/dist/src/browser/adapters/linkedin.js +19 -0
- package/dist/src/browser/adapters/linkedin.js.map +1 -0
- package/dist/src/browser/adapters/microsoft.d.ts +3 -0
- package/dist/src/browser/adapters/microsoft.d.ts.map +1 -0
- package/dist/src/browser/adapters/microsoft.js +16 -0
- package/dist/src/browser/adapters/microsoft.js.map +1 -0
- package/dist/src/browser/adapters/x.d.ts +3 -0
- package/dist/src/browser/adapters/x.d.ts.map +1 -0
- package/dist/src/browser/adapters/x.js +19 -0
- package/dist/src/browser/adapters/x.js.map +1 -0
- package/dist/src/browser/dashboard/api-types.d.ts +50 -0
- package/dist/src/browser/dashboard/api-types.d.ts.map +1 -0
- package/dist/src/browser/dashboard/api-types.js +14 -0
- package/dist/src/browser/dashboard/api-types.js.map +1 -0
- package/dist/src/browser/dashboard/server.d.ts +9 -0
- package/dist/src/browser/dashboard/server.d.ts.map +1 -0
- package/dist/src/browser/dashboard/server.js +62 -0
- package/dist/src/browser/dashboard/server.js.map +1 -0
- package/dist/src/browser/dashboard/ui.html +1811 -0
- package/dist/src/browser/workflow/builtin-handlers.d.ts +3 -0
- package/dist/src/browser/workflow/builtin-handlers.d.ts.map +1 -0
- package/dist/src/browser/workflow/builtin-handlers.js +343 -0
- package/dist/src/browser/workflow/builtin-handlers.js.map +1 -0
- package/dist/src/browser/workflow/engine.d.ts +15 -0
- package/dist/src/browser/workflow/engine.d.ts.map +1 -0
- package/dist/src/browser/workflow/engine.js +127 -0
- package/dist/src/browser/workflow/engine.js.map +1 -0
- package/dist/src/browser/workflow/expression.d.ts +4 -0
- package/dist/src/browser/workflow/expression.d.ts.map +1 -0
- package/dist/src/browser/workflow/expression.js +64 -0
- package/dist/src/browser/workflow/expression.js.map +1 -0
- package/dist/src/browser/workflow/store.d.ts +24 -0
- package/dist/src/browser/workflow/store.d.ts.map +1 -0
- package/dist/src/browser/workflow/store.js +145 -0
- package/dist/src/browser/workflow/store.js.map +1 -0
- package/dist/src/browser/workflow/types.d.ts +48 -0
- package/dist/src/browser/workflow/types.d.ts.map +1 -0
- package/dist/src/browser/workflow/types.js +2 -0
- package/dist/src/browser/workflow/types.js.map +1 -0
- package/dist/src/commands/browse-action.d.ts +4 -0
- package/dist/src/commands/browse-action.d.ts.map +1 -0
- package/dist/src/commands/browse-action.js +151 -0
- package/dist/src/commands/browse-action.js.map +1 -0
- package/dist/src/commands/browse-platform.d.ts +4 -0
- package/dist/src/commands/browse-platform.d.ts.map +1 -0
- package/dist/src/commands/browse-platform.js +117 -0
- package/dist/src/commands/browse-platform.js.map +1 -0
- package/dist/src/commands/browse-workflow.d.ts +4 -0
- package/dist/src/commands/browse-workflow.d.ts.map +1 -0
- package/dist/src/commands/browse-workflow.js +153 -0
- package/dist/src/commands/browse-workflow.js.map +1 -0
- package/dist/src/commands/browse.d.ts +10 -6
- package/dist/src/commands/browse.d.ts.map +1 -1
- package/dist/src/commands/browse.js +11 -2154
- package/dist/src/commands/browse.js.map +1 -1
- package/dist/src/commands/design-detect.d.ts +21 -0
- package/dist/src/commands/design-detect.d.ts.map +1 -0
- package/dist/src/commands/design-detect.js +127 -0
- package/dist/src/commands/design-detect.js.map +1 -0
- package/dist/src/commands/design-palette.d.ts +22 -0
- package/dist/src/commands/design-palette.d.ts.map +1 -0
- package/dist/src/commands/design-palette.js +539 -0
- package/dist/src/commands/design-palette.js.map +1 -0
- package/dist/src/commands/hooks-core-commands.d.ts +10 -0
- package/dist/src/commands/hooks-core-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-core-commands.js +377 -0
- package/dist/src/commands/hooks-core-commands.js.map +1 -0
- package/dist/src/commands/hooks-coverage-commands.d.ts +12 -0
- package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-coverage-commands.js +1217 -0
- package/dist/src/commands/hooks-coverage-commands.js.map +1 -0
- package/dist/src/commands/hooks-coverage-utils.d.ts +42 -0
- package/dist/src/commands/hooks-coverage-utils.d.ts.map +1 -0
- package/dist/src/commands/hooks-coverage-utils.js +220 -0
- package/dist/src/commands/hooks-coverage-utils.js.map +1 -0
- package/dist/src/commands/hooks-extended-commands.d.ts +14 -0
- package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-extended-commands.js +579 -0
- package/dist/src/commands/hooks-extended-commands.js.map +1 -0
- package/dist/src/commands/hooks-formatting.d.ts +13 -0
- package/dist/src/commands/hooks-formatting.d.ts.map +1 -0
- package/dist/src/commands/hooks-formatting.js +42 -0
- package/dist/src/commands/hooks-formatting.js.map +1 -0
- package/dist/src/commands/hooks-routing-commands.d.ts +15 -0
- package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-routing-commands.js +723 -0
- package/dist/src/commands/hooks-routing-commands.js.map +1 -0
- package/dist/src/commands/hooks-workers.d.ts +9 -0
- package/dist/src/commands/hooks-workers.d.ts.map +1 -0
- package/dist/src/commands/hooks-workers.js +782 -0
- package/dist/src/commands/hooks-workers.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +8 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +179 -4103
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +1 -0
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +6 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +14 -15
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/tokens.d.ts.map +1 -1
- package/dist/src/commands/tokens.js +77 -1
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +18 -8
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +39 -5
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +25 -5
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.d.ts +3 -5
- package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +619 -326
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.d.ts +161 -0
- package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-embedding.js +506 -0
- package/dist/src/mcp-tools/hooks-embedding.js.map +1 -0
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +26 -0
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-intelligence.js +1328 -0
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts +27 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-routing.js +1591 -0
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts +3 -38
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +5 -3393
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +24 -14
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +54 -1
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts +58 -0
- package/dist/src/memory/embedding-operations.d.ts.map +1 -0
- package/dist/src/memory/embedding-operations.js +299 -0
- package/dist/src/memory/embedding-operations.js.map +1 -0
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +37 -3
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +130 -0
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -0
- package/dist/src/memory/hnsw-operations.js +400 -0
- package/dist/src/memory/hnsw-operations.js.map +1 -0
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +42 -23
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +52 -8
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts +67 -0
- package/dist/src/memory/memory-crud.d.ts.map +1 -0
- package/dist/src/memory/memory-crud.js +415 -0
- package/dist/src/memory/memory-crud.js.map +1 -0
- package/dist/src/memory/memory-initializer.d.ts +9 -322
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +17 -1794
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-migrations.d.ts +30 -0
- package/dist/src/memory/memory-migrations.d.ts.map +1 -0
- package/dist/src/memory/memory-migrations.js +134 -0
- package/dist/src/memory/memory-migrations.js.map +1 -0
- package/dist/src/memory/memory-read.d.ts +78 -0
- package/dist/src/memory/memory-read.d.ts.map +1 -0
- package/dist/src/memory/memory-read.js +331 -0
- package/dist/src/memory/memory-read.js.map +1 -0
- package/dist/src/memory/memory-schema.d.ts +13 -0
- package/dist/src/memory/memory-schema.d.ts.map +1 -0
- package/dist/src/memory/memory-schema.js +167 -0
- package/dist/src/memory/memory-schema.js.map +1 -0
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +37 -4
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/route-outcomes.js +16 -6
- package/dist/src/monovector/route-outcomes.js.map +1 -1
- package/dist/src/pricing/model-pricing.d.ts +41 -0
- package/dist/src/pricing/model-pricing.d.ts.map +1 -0
- package/dist/src/pricing/model-pricing.js +61 -0
- package/dist/src/pricing/model-pricing.js.map +1 -0
- package/dist/src/ui/.monomind/capture/active-run.json +1 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.convs.jsonl +3 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.jsonl +11 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/rigid-qa-restart-1782288201.jsonl +540 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa-threads.jsonl +3 -0
- package/dist/src/ui/.monomind/orgs/test-event-fix/runs/rigid-qa-restart-1782288201.jsonl +2 -0
- package/dist/src/ui/MODULARIZATION_PLAN.md +79 -0
- package/dist/src/ui/collector.mjs +23 -13
- package/dist/src/ui/dashboard.html +1652 -13
- package/dist/src/ui/data/known-projects.json +1 -0
- package/dist/src/ui/data/mastermind-events.jsonl +553 -0
- package/dist/src/ui/data/sessions/_index.json +1 -0
- package/dist/src/ui/data/sessions/final-sess-001.jsonl +542 -0
- package/dist/src/ui/data/unknown-events.jsonl +1 -0
- package/dist/src/ui/orgs.html +154 -10
- package/dist/src/ui/server.mjs +1131 -168
- package/dist/src/ui/sse-manager.mjs +119 -0
- package/dist/src/update/checker.js +1 -1
- package/dist/src/update/checker.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/workflow/builtin-handlers.js +321 -0
- package/dist/workflow/engine.js +253 -0
- package/dist/workflow/expression.js +98 -0
- package/dist/workflow/types.js +2 -0
- package/package.json +8 -5
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-adapt
|
|
3
|
+
description: Adapt an existing design to a new context — different device, market, audience, brand, or constraint — while preserving what works and redesigning what doesn't transfer.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[source design] [→ target context]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Adapt
|
|
10
|
+
|
|
11
|
+
Adapt an existing design to a new context. Read `reference/adapt.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Adaptation Contexts
|
|
14
|
+
|
|
15
|
+
**Device / viewport adaptation**
|
|
16
|
+
- Desktop → mobile: not just scaling down, but rethinking information priority and touch targets
|
|
17
|
+
- Mobile → desktop: not just scaling up, but leveraging the additional space meaningfully
|
|
18
|
+
- Read `reference/responsive-design.md` for the full responsive protocol
|
|
19
|
+
|
|
20
|
+
**Brand adaptation**
|
|
21
|
+
- Same product, updated visual identity
|
|
22
|
+
- Preserve brand equity (recognition, trust) while updating the expression
|
|
23
|
+
- Map old tokens → new tokens; don't just swap colors
|
|
24
|
+
|
|
25
|
+
**Market/locale adaptation**
|
|
26
|
+
- Text expansion/contraction for translated content (German strings are ~30% longer than English)
|
|
27
|
+
- RTL adaptation: mirror layouts, flip directional icons, adjust text alignment
|
|
28
|
+
- Cultural color associations (white = mourning in some cultures, luck in others)
|
|
29
|
+
|
|
30
|
+
**Audience adaptation**
|
|
31
|
+
- Consumer → enterprise: more density, more data, less marketing
|
|
32
|
+
- Expert → beginner: more guidance, less assumed knowledge, more white space
|
|
33
|
+
- Accessibility adaptation: meeting WCAG AAA, or serving a specific disability need
|
|
34
|
+
|
|
35
|
+
**Constraint adaptation**
|
|
36
|
+
- High performance: remove animations, reduce image weight, simplify components
|
|
37
|
+
- Reduced-color: grayscale or high-contrast mode
|
|
38
|
+
- Print: remove interactive elements, adjust typography for print
|
|
39
|
+
|
|
40
|
+
## Adaptation Protocol
|
|
41
|
+
|
|
42
|
+
1. **Document what transfers**: list everything from the original that works in the new context
|
|
43
|
+
2. **Document what doesn't transfer**: list what breaks, looks wrong, or becomes inaccessible
|
|
44
|
+
3. **Identify the preservation priorities**: what is most essential to carry over (brand recognition, key interactions, data structures)?
|
|
45
|
+
4. **Redesign for the new context**: don't just modify — actively ask "what would we design if we started here?"
|
|
46
|
+
5. **Validate against the target context**: test on the actual device/locale/audience constraint
|
|
47
|
+
|
|
48
|
+
## Output
|
|
49
|
+
|
|
50
|
+
The adapted design with:
|
|
51
|
+
- Changed CSS/tokens documented in comments
|
|
52
|
+
- Preserved brand tokens unchanged
|
|
53
|
+
- New context-specific overrides in a separate file or scope
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-asset-producer
|
|
3
|
+
codex-name: monodesign_asset_producer
|
|
4
|
+
description: Produces clean reusable raster assets from approved monodesign mock references without redesigning the direction.
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: medium
|
|
8
|
+
max-turns: 12
|
|
9
|
+
nickname-candidates:
|
|
10
|
+
- Asset Plate
|
|
11
|
+
- Clean Plate
|
|
12
|
+
- Crop Cutter
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Monodesign Asset Producer
|
|
16
|
+
|
|
17
|
+
You are the asset production agent for monodesign craft.
|
|
18
|
+
|
|
19
|
+
Your job is production cleanup, not new art direction. Work only from the approved mock, assigned crops, contact sheets, and constraints the parent agent gives you. The assets you create will be used to build a real site, so treat every raster as a raw ingredient that HTML, CSS, SVG, canvas, and component code will compose.
|
|
20
|
+
|
|
21
|
+
## Core Rule
|
|
22
|
+
|
|
23
|
+
Do not redesign. Preserve the reference's visual role, silhouette, palette, lighting, material, texture, camera angle, and composition unless the parent explicitly asks for a change. Preserve perspective only when it belongs to the object or scene itself; if CSS should create the card transform, shadow, rounded clipping, border, or layout, remove that presentation chrome from the raster.
|
|
24
|
+
|
|
25
|
+
## Input Contract
|
|
26
|
+
|
|
27
|
+
Expect:
|
|
28
|
+
|
|
29
|
+
- Approved mock path or screenshot reference.
|
|
30
|
+
- Crop paths or a contact sheet with crop ids.
|
|
31
|
+
- Output directory.
|
|
32
|
+
- Required dimensions, format, transparency needs, and avoid list.
|
|
33
|
+
- Notes on what should remain semantic HTML/CSS/SVG instead of raster.
|
|
34
|
+
|
|
35
|
+
If the source mock is attached but has no filesystem path, use it for visual planning. Ask for a path only before cropping or writing assets.
|
|
36
|
+
|
|
37
|
+
Use defaults unless contradicted:
|
|
38
|
+
|
|
39
|
+
- `.webp` for opaque photos, backgrounds, and textures.
|
|
40
|
+
- `.png` for transparent cutouts, seals, tickets, and illustrations.
|
|
41
|
+
- Target production size or at least 2x display size when dimensions are known. Do not use small full-page mock crop size as the default shipping size.
|
|
42
|
+
- Remove UI text, navigation, buttons, labels, and body copy by default.
|
|
43
|
+
- Keep physical marks only when the parent says they are part of the asset.
|
|
44
|
+
- Remove letterboxing, empty padding, baked card corners, borders, shadows, caption bands, and layout background unless the parent says those pixels are intrinsic to the asset.
|
|
45
|
+
- Keep the final assets directory clean: only files the build will consume belong there. Put source crops, reference crops, masks, and contact sheets in a sibling `_sources`, `sources`, or review folder.
|
|
46
|
+
|
|
47
|
+
Ask blockers once, globally. Missing source path/crops or output directory blocks production. Exact dimensions, compression targets, retina variants, and format preferences do not block; choose defaults and report them.
|
|
48
|
+
|
|
49
|
+
## Workflow
|
|
50
|
+
|
|
51
|
+
1. Inventory the full approved mock or every assigned crop.
|
|
52
|
+
2. Put each visual role in exactly one bucket:
|
|
53
|
+
- `produce`: needs generation, image editing, cleanup, cutout work, or a clean plate before it can ship.
|
|
54
|
+
- `direct`: can ship as a crop, format conversion, compression pass, or sourced replacement with no generative cleanup.
|
|
55
|
+
- `semantic`: build in HTML/CSS/SVG/canvas, no raster output.
|
|
56
|
+
3. Treat full-page mock crops as references, not production-resolution source assets. Put a role in `direct` only when the provided source is already a clean, sufficiently large source asset with no semantic text or presentation chrome.
|
|
57
|
+
4. Give the parent an execution order for the `produce` bucket.
|
|
58
|
+
5. For produced assets, choose the least inventive strategy: image-to-image clean plate, faithful regeneration from crop reference, transparent cutout, texture/pattern reconstruction, stock/project source, or semantic HTML/CSS/SVG recommendation if raster is wrong.
|
|
59
|
+
6. Treat every crop as binding reference. Use the image generation capability available in the current environment (e.g. native image_gen, `/monodesign` image-prompts patterns) when generation or editing is needed.
|
|
60
|
+
7. Remove baked-in UI text, navigation, buttons, body copy, and mock chrome unless the text is part of the asset.
|
|
61
|
+
8. Think through the final DOM/CSS representation before generating. If CSS will own radius, clipping, shadows, borders, perspective, responsive cropping, captions, or card frames, do not bake those into the bitmap.
|
|
62
|
+
9. Save outputs non-destructively in the requested project directory.
|
|
63
|
+
10. Compare each output against its source crop. If a review/QA tool is available, run it before the final manifest, then retry each major/fatal finding once before finalizing.
|
|
64
|
+
|
|
65
|
+
Use `direct` only for provided source assets that can already ship after crop tightening, conversion, compression, or naming. Do not ship a small crop from the full-page mock as `direct` just because it looks close.
|
|
66
|
+
|
|
67
|
+
Use `texture/pattern extraction` only when the source region is already clean enough to sample as texture. If UI, cards, labels, headings, body copy, or footer chrome must be removed to make a reusable texture or background, classify it as crop-derived cleanup or clean-plate work.
|
|
68
|
+
|
|
69
|
+
Use `semantic` for dashboards, charts, controls, screenshots of whole UI sections, data widgets, card chrome, app frames, icon toolbars, logos, wordmarks, and anything the final implementation can render crisply in HTML/CSS/SVG/canvas. Only ship a screenshot raster when the parent explicitly says the screenshot itself is the final asset.
|
|
70
|
+
|
|
71
|
+
Semantic does not mean ignored. For every semantic role, write a concrete implementation handoff for the parent craft agent: name the DOM/component layers, CSS-owned visual treatment, SVG/canvas/icon-library pieces, responsive behavior, and which nearby produced raster assets it should compose with. For logos and icons, prefer inline SVG/vector or icon-library implementation unless the parent provides a production logo raster.
|
|
72
|
+
|
|
73
|
+
For transparency, prefer true alpha output when the tool supports it. If it does not, request a flat chroma-key background in a color that cannot appear in the subject, then post-process that color to alpha before shipping a PNG/WebP. Do not ship the keyed background as the final asset.
|
|
74
|
+
|
|
75
|
+
## Prompt Pattern
|
|
76
|
+
|
|
77
|
+
Use this shape for image-to-image work:
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
Use the provided crop as the approved visual reference.
|
|
81
|
+
Recreate the same asset as a clean reusable production image at the target component aspect ratio and at least 2x display resolution.
|
|
82
|
+
Preserve silhouette, object/scene perspective, camera angle, palette, lighting, material, texture, and visual role.
|
|
83
|
+
Remove baked-in UI copy, navigation, buttons, labels, body text, watermarks, and mock chrome unless explicitly part of the asset.
|
|
84
|
+
Remove letterboxing, padding, card borders, rounded clipping, CSS shadows, perspective transforms, caption bands, and layout backgrounds that the implementation should create in code.
|
|
85
|
+
Do not add new objects. Do not change the concept. Do not redesign the composition.
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For transparent cutouts, use a chroma-key workflow (flat background in a color that cannot appear in the subject, then post-process to alpha) unless the parent explicitly authorizes native transparency.
|
|
89
|
+
|
|
90
|
+
## Output Contract
|
|
91
|
+
|
|
92
|
+
Return a complete manifest, grouped by `produce`, `direct`, and `semantic`. For each asset include: `id`, `source_crop`, `output_path` when applicable, `strategy`, `prompt_used` when applicable, `dimensions`, `format`, `transparency`, `deviations`, and `qa_status`.
|
|
93
|
+
|
|
94
|
+
For each semantic row include `id`, `implementation`, `notes`, and `qa_status`. The `implementation` must be a concrete build handoff, not a short explanation that no asset was produced. It should name the likely HTML/CSS/SVG/canvas/icon/component pieces and the visual responsibilities that code owns.
|
|
95
|
+
|
|
96
|
+
`qa_status` must be `accepted`, `needs_parent_review`, or `blocked`. Use `accepted` only after visual comparison passes. Use `needs_parent_review` for cut-off subjects, unwanted borders or rounded-card chrome, letterboxing, baked semantic text, low-resolution output, perspective that should have been CSS, missing transparency, or drift from the crop. Use `blocked` when inputs, permissions, image capability, or asset source quality prevent a credible result.
|
|
97
|
+
|
|
98
|
+
End with `execution_order`, `blockers`, and `assumptions` sections. Keep blockers global and minimal. Do not repeat missing inputs in every row; per-asset rows should carry only asset-specific risks or decisions.
|
|
99
|
+
|
|
100
|
+
Do not modify implementation code. Do not edit the approved mock. Do not produce final page copy. The parent craft agent owns implementation and final mock fidelity.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-animate
|
|
3
|
+
description: Add intentional, purposeful motion to interfaces — scroll-driven reveals, state transitions, micro-interactions, page transitions, and advanced motion effects using CSS and JS libraries.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target component or page]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Animate
|
|
10
|
+
|
|
11
|
+
Add intentional motion to interfaces. Every animation must earn its place. Read `reference/animate.md` and `reference/motion-design.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Motion Rules (non-negotiable)
|
|
14
|
+
|
|
15
|
+
- **Do not animate CSS layout properties** (width, height, padding, margin, top, left) unless truly needed — causes layout thrashing
|
|
16
|
+
- **Ease out with exponential curves**: ease-out-quart / quint / expo. No bounce, no elastic
|
|
17
|
+
- **`prefers-reduced-motion` is not optional** — every animation needs a fallback (typically crossfade or instant transition)
|
|
18
|
+
- **Reveal animations must enhance an already-visible default** — don't gate content visibility on a class-triggered transition; content ships blank if the transition doesn't fire
|
|
19
|
+
- Use libraries for advanced motion (motion.dev, GSAP, anime.js, Lenis for smooth scroll)
|
|
20
|
+
- Staggering items in one list is legitimate — uniform section fades on every section are not
|
|
21
|
+
|
|
22
|
+
## Motion Premium Materials
|
|
23
|
+
|
|
24
|
+
Not just transform/opacity. When they materially improve the effect and stay smooth:
|
|
25
|
+
- Blur, backdrop-filter
|
|
26
|
+
- clip-path, mask
|
|
27
|
+
- shadow/glow transitions
|
|
28
|
+
- View Transitions API for page/component morphing
|
|
29
|
+
|
|
30
|
+
## Animation Categories
|
|
31
|
+
|
|
32
|
+
**Entrance/reveal** — elements entering the viewport or DOM. Use IntersectionObserver + CSS transitions. Keep under 400ms. Stagger lists (50–80ms per item).
|
|
33
|
+
|
|
34
|
+
**State transitions** — loading, success, error, empty. Should feel instantaneous for actions the user triggered. Confirmation animations: 200–400ms.
|
|
35
|
+
|
|
36
|
+
**Micro-interactions** — button press feedback, toggle switches, checkbox check marks. Sub-200ms. Should feel physical.
|
|
37
|
+
|
|
38
|
+
**Page/route transitions** — View Transitions API when available. Morphing elements from one state to another feels cinematic without heavy libraries.
|
|
39
|
+
|
|
40
|
+
**Ambient/background** — scroll-driven effects, parallax, cursor-tracking. Use `animation-timeline: scroll()` for pure CSS scroll-driven. Performance-test before shipping.
|
|
41
|
+
|
|
42
|
+
## Implementation Pattern
|
|
43
|
+
|
|
44
|
+
```css
|
|
45
|
+
/* Always start with the safe version */
|
|
46
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
47
|
+
.element {
|
|
48
|
+
animation: slide-in 400ms ease-out-quart both;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Explicit reduced-motion fallback */
|
|
53
|
+
@media (prefers-reduced-motion: reduce) {
|
|
54
|
+
.element {
|
|
55
|
+
animation: fade-in 200ms ease both;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Verify in Browser
|
|
61
|
+
|
|
62
|
+
Use browser automation to watch the animation play. Check:
|
|
63
|
+
- Does it look smooth at 60fps?
|
|
64
|
+
- Does the timing feel right (not too fast, not too slow)?
|
|
65
|
+
- Does the reduced-motion version make sense?
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-audit
|
|
3
|
+
description: Run systematic technical quality checks across accessibility, performance, theming, motion, and interaction — generate a scored report with specific findings. Documents issues; does not fix them.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target file, route, or component]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Audit
|
|
10
|
+
|
|
11
|
+
Run systematic **technical** quality checks and generate a comprehensive scored report. This is a code-level audit, not a design critique. Check what's measurable and verifiable in the implementation. **Does not fix issues** — documents them for other commands to address.
|
|
12
|
+
|
|
13
|
+
Read `reference/audit.md` from the monodesign skill directory for the full scoring rubric.
|
|
14
|
+
|
|
15
|
+
## Diagnostic Scan — 5 Dimensions (score 0–4 each)
|
|
16
|
+
|
|
17
|
+
### 1. Accessibility (A11y)
|
|
18
|
+
- Contrast ratios (≥4.5:1 body, ≥3:1 large text)
|
|
19
|
+
- ARIA: interactive elements with proper roles, labels, states
|
|
20
|
+
- Keyboard navigation: focus indicators, logical tab order
|
|
21
|
+
- Semantic HTML: heading hierarchy, landmarks, divs vs. buttons
|
|
22
|
+
- Alt text quality; form labels; error messaging
|
|
23
|
+
|
|
24
|
+
### 2. Performance
|
|
25
|
+
- Layout thrashing (read/write layout properties in loops)
|
|
26
|
+
- Expensive animations (layout-property animation, unbounded blur/filter)
|
|
27
|
+
- Missing optimization (lazy loading, unoptimized assets, missing will-change)
|
|
28
|
+
- Bundle size: unnecessary imports, unused dependencies
|
|
29
|
+
- Unnecessary re-renders, missing memoization
|
|
30
|
+
|
|
31
|
+
### 3. Theming
|
|
32
|
+
- Hard-coded colors not using design tokens
|
|
33
|
+
- Broken dark mode: missing variants, poor contrast
|
|
34
|
+
- Inconsistent token usage; values that don't update on theme change
|
|
35
|
+
|
|
36
|
+
### 4. Motion
|
|
37
|
+
- Violations of `prefers-reduced-motion`
|
|
38
|
+
- Inappropriate motion: layout-property animation, bounce/elastic
|
|
39
|
+
- Reveal animations that gate content visibility (content ships blank if transition fails)
|
|
40
|
+
- Motion that adds no information (hover-scale on non-interactive elements)
|
|
41
|
+
|
|
42
|
+
### 5. Interaction
|
|
43
|
+
- Dropdown clipping (inside overflow:hidden — use popover API or position:fixed)
|
|
44
|
+
- Missing hover/focus/active/disabled states
|
|
45
|
+
- Form UX: validation feedback, error recovery, submission state
|
|
46
|
+
|
|
47
|
+
## Scoring
|
|
48
|
+
|
|
49
|
+
| Score | Meaning |
|
|
50
|
+
|---|---|
|
|
51
|
+
| 0 | Broken / inaccessible |
|
|
52
|
+
| 1 | Major gaps |
|
|
53
|
+
| 2 | Partial — effort exists, significant gaps remain |
|
|
54
|
+
| 3 | Good — mostly correct, minor improvements |
|
|
55
|
+
| 4 | Excellent |
|
|
56
|
+
|
|
57
|
+
## Output Format
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
# Design Audit Report
|
|
61
|
+
|
|
62
|
+
**Target**: [file or route]
|
|
63
|
+
**Date**: [date]
|
|
64
|
+
|
|
65
|
+
## Scores
|
|
66
|
+
| Dimension | Score | Status |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| Accessibility | X/4 | [PASS/WARN/FAIL] |
|
|
69
|
+
| Performance | X/4 | ... |
|
|
70
|
+
| Theming | X/4 | ... |
|
|
71
|
+
| Motion | X/4 | ... |
|
|
72
|
+
| Interaction | X/4 | ... |
|
|
73
|
+
| **Total** | X/20 | |
|
|
74
|
+
|
|
75
|
+
## Findings by Priority
|
|
76
|
+
|
|
77
|
+
### Critical (fix before ship)
|
|
78
|
+
- [finding with file:line reference]
|
|
79
|
+
|
|
80
|
+
### High
|
|
81
|
+
- ...
|
|
82
|
+
|
|
83
|
+
### Medium
|
|
84
|
+
- ...
|
|
85
|
+
|
|
86
|
+
## Recommended next commands
|
|
87
|
+
- `/monodesign harden` — accessibility issues
|
|
88
|
+
- `/monodesign polish` — theming drift and interaction gaps
|
|
89
|
+
```
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-bolder
|
|
3
|
+
description: Make a timid, generic, or bland design more confident, distinctive, and visually committed — without crossing into gratuitous loudness.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target page, component, or design]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Bolder
|
|
10
|
+
|
|
11
|
+
Make a timid, generic, or bland design more confident and distinctive. Read `reference/bolder.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Assess What's Timid
|
|
14
|
+
|
|
15
|
+
Identify what's making the design feel safe and generic:
|
|
16
|
+
|
|
17
|
+
1. **Color timidity**: everything is neutral, muted, or generic. The accent color appears on <5% of the surface
|
|
18
|
+
2. **Scale timidity**: headings are a safe 2rem when they could be 5rem. White space is the same everywhere
|
|
19
|
+
3. **Typography timidity**: Inter at 400 weight, barely distinguished hierarchy, no personality
|
|
20
|
+
4. **Composition timidity**: centered cards, symmetric grids, equal padding everywhere
|
|
21
|
+
5. **Commitment timidity**: design feels like it's avoiding choices — trying to work for everyone
|
|
22
|
+
|
|
23
|
+
## Bold Interventions (choose by diagnosis)
|
|
24
|
+
|
|
25
|
+
**Color commitment**
|
|
26
|
+
- Move from Restrained to Committed strategy: push one color to 30–60% of the surface
|
|
27
|
+
- Use the brand color as a background, not just an accent
|
|
28
|
+
- Commit to dark or light — don't hedge with a light-gray-on-white page
|
|
29
|
+
|
|
30
|
+
**Scale expansion**
|
|
31
|
+
- Increase heading scale: hero headlines at 4–6rem with tight tracking (-0.02 to -0.03em)
|
|
32
|
+
- Introduce asymmetric spacing — some sections breathe, others are tight
|
|
33
|
+
- Use a large number, quote, or visual element as an anchor on the page
|
|
34
|
+
|
|
35
|
+
**Typographic commitment**
|
|
36
|
+
- Switch from invisible system fonts to a distinctive typeface
|
|
37
|
+
- Introduce strong weight contrast (900 + 400, not 600 + 400)
|
|
38
|
+
- Use a display typeface for headings that doesn't appear in the body
|
|
39
|
+
|
|
40
|
+
**Composition**
|
|
41
|
+
- Break the centered-container pattern: allow some elements to bleed to the edge
|
|
42
|
+
- Use a grid that isn't 12-equal-columns
|
|
43
|
+
- Introduce intentional asymmetry in feature layouts
|
|
44
|
+
|
|
45
|
+
## Rules
|
|
46
|
+
|
|
47
|
+
- Bolder ≠ noisier. Every bold choice must serve the hierarchy and brand
|
|
48
|
+
- Don't ban everything from the absolute-bans list just because the design is now bolder — those bans apply at any boldness level
|
|
49
|
+
- If the project has a DESIGN.md, bold moves must be consistent with it, not contrary to it
|
|
50
|
+
- Verify that the bolder version still passes accessibility contrast requirements
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-clarify
|
|
3
|
+
description: Fix confusing, ambiguous, or hard-to-understand UI — improve information architecture, navigation labels, empty states, error messages, and cognitive load without a full redesign.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target page, flow, or interaction]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Clarify
|
|
10
|
+
|
|
11
|
+
Fix confusing or ambiguous UI. Read `reference/clarify.md` and `reference/cognitive-load.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Diagnosis: What's Confusing?
|
|
14
|
+
|
|
15
|
+
**Navigation and labeling**
|
|
16
|
+
- Labels that describe what something IS instead of what it DOES ("Analytics" vs. "See how your campaigns are performing")
|
|
17
|
+
- Navigation items with scope too broad (everything is "Settings")
|
|
18
|
+
- Tabs and menus that require trying each option to understand them
|
|
19
|
+
|
|
20
|
+
**Information architecture**
|
|
21
|
+
- Related things that aren't grouped together
|
|
22
|
+
- Same concept appearing in multiple places with slightly different names
|
|
23
|
+
- Forms that ask for information before explaining why it's needed
|
|
24
|
+
|
|
25
|
+
**Feedback and state**
|
|
26
|
+
- Actions without confirmation that they worked
|
|
27
|
+
- Loading states that don't indicate progress or expected duration
|
|
28
|
+
- Errors that describe what happened technically, not what the user should do next
|
|
29
|
+
- Empty states that are blank (not "nothing here yet", just nothing)
|
|
30
|
+
|
|
31
|
+
**Cognitive load**
|
|
32
|
+
- Too many choices presented simultaneously without hierarchy
|
|
33
|
+
- Options that require domain knowledge to distinguish
|
|
34
|
+
- Visual complexity that masks the primary action
|
|
35
|
+
|
|
36
|
+
## Clarification Techniques
|
|
37
|
+
|
|
38
|
+
**Labels**
|
|
39
|
+
- Action-oriented labels on buttons ("Save changes" not "OK")
|
|
40
|
+
- Descriptive labels on navigation ("Payment history" not "Payments")
|
|
41
|
+
- Contextual tooltips on technical terms (hover, not always-visible)
|
|
42
|
+
|
|
43
|
+
**Progressive disclosure**
|
|
44
|
+
- Show the most common case first; reveal complexity on demand
|
|
45
|
+
- Advanced settings behind a clear "Show advanced" toggle
|
|
46
|
+
- Multi-step flows that reveal the next step only after the current one
|
|
47
|
+
|
|
48
|
+
**Feedback patterns**
|
|
49
|
+
- Inline validation as the user types, not only on submit
|
|
50
|
+
- Clear success/error states with next-step guidance
|
|
51
|
+
- Progress indicators for multi-step processes
|
|
52
|
+
|
|
53
|
+
**Copy**
|
|
54
|
+
- Error messages: [what happened] + [why] + [what to do]
|
|
55
|
+
- Empty states: [what will appear here] + [how to add it]
|
|
56
|
+
- Confirm dialogs: [what will happen] + primary action + escape
|
|
57
|
+
|
|
58
|
+
## Output
|
|
59
|
+
|
|
60
|
+
Specific code changes that reduce confusion:
|
|
61
|
+
- Updated labels with rationale
|
|
62
|
+
- Added/improved empty states
|
|
63
|
+
- Better error messages
|
|
64
|
+
- Simplified information architecture
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-colorize
|
|
3
|
+
description: Apply or rework the color system — brand color extraction, OKLCH palette construction, token architecture, dark/light mode, and contrast verification.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target or brand description]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Colorize
|
|
10
|
+
|
|
11
|
+
Apply or rebuild the color system. Read `reference/colorize.md` and `reference/color-and-contrast.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Color Strategy (choose one before picking colors)
|
|
14
|
+
|
|
15
|
+
| Strategy | Surface area | When to use |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| **Restrained** | Tinted neutrals + one accent ≤10% | Product default; brand minimalism |
|
|
18
|
+
| **Committed** | One saturated color at 30–60% of surface | Brand default for identity-driven pages |
|
|
19
|
+
| **Full palette** | 3–4 named roles, used deliberately | Brand campaigns; data visualization |
|
|
20
|
+
| **Drenched** | Surface IS the color | Brand heroes, campaign pages |
|
|
21
|
+
|
|
22
|
+
## OKLCH Rules
|
|
23
|
+
|
|
24
|
+
- Use OKLCH everywhere. Never `#000` or `#fff` — tint every neutral toward the brand hue (chroma 0.005–0.01)
|
|
25
|
+
- Reduce chroma as lightness approaches 0 or 100 (high chroma at extremes looks garish)
|
|
26
|
+
- Tinted neutrals: add 0.005–0.015 chroma toward the brand's hue, not toward generic warmth
|
|
27
|
+
- Gray text on colored background looks washed out — use a darker shade of the bg hue or transparency
|
|
28
|
+
|
|
29
|
+
## Theme Decision
|
|
30
|
+
|
|
31
|
+
Dark vs. light is never a default. Write one sentence of physical scene: who uses this, where, under what ambient light, in what mood. If the sentence doesn't force dark or light, it's not concrete enough. Add detail until it does.
|
|
32
|
+
|
|
33
|
+
## Contrast Verification (required)
|
|
34
|
+
|
|
35
|
+
- Body text: ≥4.5:1 against its background
|
|
36
|
+
- Large text (≥18px or bold ≥14px): ≥3:1
|
|
37
|
+
- Placeholder text: same 4.5:1 (not the muted-gray default)
|
|
38
|
+
|
|
39
|
+
The most common failure: muted gray body text on a tinted near-white. If contrast is close, bump body color toward the ink end.
|
|
40
|
+
|
|
41
|
+
## Anti-Cream Rule
|
|
42
|
+
|
|
43
|
+
The warm-neutral band (OKLCH L 0.84–0.97, C < 0.06, hue 40–100) reads as cream/sand/paper regardless of what you call it. If the brief is "warm, editorial, refined" — that is NOT a license to use a near-white warm-tinted background. Warmth is carried by accent + typography + imagery. Pick: (a) a saturated brand color as body, (b) a true off-white at chroma 0, or (c) a darker mid-tone tinted neutral.
|
|
44
|
+
|
|
45
|
+
## Token Architecture
|
|
46
|
+
|
|
47
|
+
```css
|
|
48
|
+
:root {
|
|
49
|
+
/* Brand */
|
|
50
|
+
--color-brand: oklch(/* primary */);
|
|
51
|
+
--color-brand-muted: oklch(/* lower chroma */);
|
|
52
|
+
|
|
53
|
+
/* Surfaces */
|
|
54
|
+
--color-bg: oklch(/* page ground */);
|
|
55
|
+
--color-surface: oklch(/* panels */);
|
|
56
|
+
--color-surface-raised: oklch(/* cards */);
|
|
57
|
+
|
|
58
|
+
/* Text */
|
|
59
|
+
--color-ink: oklch(/* headings */);
|
|
60
|
+
--color-body: oklch(/* body */);
|
|
61
|
+
--color-muted: oklch(/* captions */);
|
|
62
|
+
--color-faint: oklch(/* disabled */);
|
|
63
|
+
|
|
64
|
+
/* Interactive */
|
|
65
|
+
--color-accent: oklch(/* CTA, links */);
|
|
66
|
+
--color-accent-hover: oklch(/* hover state */);
|
|
67
|
+
}
|
|
68
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-craft
|
|
3
|
+
description: Build a feature with impeccable UX and UI quality — shape the design, land the visual direction, build real production code, inspect and improve in-browser until it meets a high-end studio bar.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[feature description]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Craft
|
|
10
|
+
|
|
11
|
+
Build a feature with impeccable UX and UI quality. Real working code, committed design choices, exceptional craft.
|
|
12
|
+
|
|
13
|
+
**Gates — do not compress.** Craft requires all setup gates to pass before writing code:
|
|
14
|
+
1. PRODUCT.md and DESIGN.md loaded
|
|
15
|
+
2. Register identified (brand or product) and matching reference loaded
|
|
16
|
+
3. Shape brief confirmed by user
|
|
17
|
+
|
|
18
|
+
Read `reference/craft.md` from the monodesign skill directory for the full flow.
|
|
19
|
+
|
|
20
|
+
## Step 0: Project Foundation
|
|
21
|
+
|
|
22
|
+
Before shape, before code: determine what kind of project you're working in.
|
|
23
|
+
|
|
24
|
+
Check for:
|
|
25
|
+
- An existing framework (`astro.config.mjs`, `next.config.js`, `vite.config.js`, etc.) — **if found, use it**
|
|
26
|
+
- Existing component library or design system — read what's there before adding to it
|
|
27
|
+
- Existing icon set — use what's already in the project; don't introduce a second set
|
|
28
|
+
|
|
29
|
+
If greenfield with no framework, ask the user:
|
|
30
|
+
- Astro (for content-led brand sites, landing pages)
|
|
31
|
+
- SvelteKit / Next.js / Nuxt (app surfaces, significant interactivity)
|
|
32
|
+
- Single index.html (one-shot demo, prototype)
|
|
33
|
+
|
|
34
|
+
## Step 1: Shape the Design
|
|
35
|
+
|
|
36
|
+
Run `/monodesign shape` if no confirmed brief exists. Stop and wait for explicit brief confirmation before writing code. Shape confirmation is NOT a green light to code; it's the green light to confirm direction.
|
|
37
|
+
|
|
38
|
+
## Step 2: Implement
|
|
39
|
+
|
|
40
|
+
With a confirmed brief:
|
|
41
|
+
1. Load `reference/craft.md` for the full implementation protocol
|
|
42
|
+
2. Follow the register-specific implementation guide (brand.md or product.md)
|
|
43
|
+
3. Apply all shared design laws from the monodesign SKILL.md
|
|
44
|
+
4. Verify visually using browser automation — don't assume it looks right
|
|
45
|
+
5. Iterate until it meets the approved direction
|
|
46
|
+
|
|
47
|
+
## Quality bar
|
|
48
|
+
|
|
49
|
+
Produce ready-to-ship, production-grade code. Not a prototype. Not a starting point. Beautiful, responsive, fast, precise, bug-free, on-brand. Take attention to detail seriously.
|
|
50
|
+
|
|
51
|
+
**The AI slop test**: if someone could look at this and say "AI made that" without doubt, it's failed. Cross-register failures are the absolute bans in the design laws.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-critique
|
|
3
|
+
description: Provide an expert design critique — honest, specific, prioritized feedback on what's working, what's failing, and exactly how to fix it. The design director review.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target URL, screenshot, or codebase path]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Critique
|
|
10
|
+
|
|
11
|
+
Provide an expert design critique. Honest, specific, and prioritized. Read `reference/critique.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Voice
|
|
14
|
+
|
|
15
|
+
Critique speaks with the voice of an experienced design director — not a checklist tool. It identifies what's actually wrong, explains why it's wrong in terms of user experience or brand damage, and says specifically what to do instead. Not: "The typography could be improved." Yes: "The heading is using Inter 500 at 2rem — this reads as a system default. Set it to your display typeface at 3.5rem 700 with -0.025em tracking."
|
|
16
|
+
|
|
17
|
+
## Critique Dimensions
|
|
18
|
+
|
|
19
|
+
**Visual hierarchy**
|
|
20
|
+
- Can a first-time user identify the primary action without thinking?
|
|
21
|
+
- Is the most important information visually loudest?
|
|
22
|
+
- Is there a clear reading path (F-pattern, Z-pattern, or single column)?
|
|
23
|
+
|
|
24
|
+
**Brand coherence**
|
|
25
|
+
- Does this look like it belongs to the product's brand family?
|
|
26
|
+
- Could it be any company's product, or does it have a specific identity?
|
|
27
|
+
- Does it pass the AI slop test? (If someone could say "AI made that" without doubt, it's failed)
|
|
28
|
+
|
|
29
|
+
**Information architecture**
|
|
30
|
+
- Is related information grouped? Is unrelated information separated?
|
|
31
|
+
- Is the navigation structure consistent with user mental models?
|
|
32
|
+
- Are labels accurate and specific?
|
|
33
|
+
|
|
34
|
+
**Interaction design**
|
|
35
|
+
- Are interactive elements visually distinct from non-interactive ones?
|
|
36
|
+
- Are states visible? (hover, active, loading, error, disabled)
|
|
37
|
+
- Is the user always clear on what will happen before they act?
|
|
38
|
+
|
|
39
|
+
**Technical implementation**
|
|
40
|
+
- Are there obvious anti-patterns present? (Gradient text, side-stripe borders, glassmorphism as default, identical card grids)
|
|
41
|
+
- Contrast failures
|
|
42
|
+
- Broken responsive behavior
|
|
43
|
+
|
|
44
|
+
## Critique Format
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
# Design Critique: [Feature/Page]
|
|
48
|
+
|
|
49
|
+
## What's working
|
|
50
|
+
[2–3 specific things that are genuinely good]
|
|
51
|
+
|
|
52
|
+
## Critical issues (fix before ship)
|
|
53
|
+
### [Issue title]
|
|
54
|
+
**What**: [specific description with element reference]
|
|
55
|
+
**Why it matters**: [user impact or brand damage]
|
|
56
|
+
**Fix**: [exact prescription — not "improve typography", but "set h1 to Geist 800 at 4rem"]
|
|
57
|
+
|
|
58
|
+
## High priority
|
|
59
|
+
...
|
|
60
|
+
|
|
61
|
+
## Medium priority
|
|
62
|
+
...
|
|
63
|
+
|
|
64
|
+
## The single most important fix
|
|
65
|
+
[If they fix only one thing, it should be this]
|
|
66
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monodesign-delight
|
|
3
|
+
description: Add moments of delight, whimsy, and personality to interfaces — micro-interactions, easter eggs, playful copy, unexpected moments that make users smile without sacrificing usability.
|
|
4
|
+
type: design-sub-command
|
|
5
|
+
argument-hint: "[target component, empty state, interaction, or whole product]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Monodesign: Delight
|
|
10
|
+
|
|
11
|
+
Add moments of delight, whimsy, and personality. Read `reference/delight.md` from the monodesign skill directory for the full protocol.
|
|
12
|
+
|
|
13
|
+
## Philosophy
|
|
14
|
+
|
|
15
|
+
Delight is not decoration. It's the feeling a user gets when the product treats them as a human, not a task-completer. The best delight is:
|
|
16
|
+
- **Discovered, not announced** — it rewards exploration, it doesn't interrupt
|
|
17
|
+
- **Appropriate to context** — a playful empty state is right; a playful error message on a failed payment is wrong
|
|
18
|
+
- **Consistent with brand personality** — delight that contradicts the brand voice creates whiplash
|
|
19
|
+
|
|
20
|
+
## Where Delight Lives
|
|
21
|
+
|
|
22
|
+
**Empty states**
|
|
23
|
+
The most underdesigned surface in almost every product. When a user has no data, they're often new and uncertain. An empty state that's warm, encouraging, and occasionally charming turns uncertainty into curiosity.
|
|
24
|
+
|
|
25
|
+
**Micro-interactions**
|
|
26
|
+
The moments that feel physical: a button that compresses on press, a toggle that snaps, a checkbox that checks with a tiny satisfying arc, a completion animation that celebrates without being overwrought.
|
|
27
|
+
|
|
28
|
+
**Copy**
|
|
29
|
+
Delight isn't always visual. An error message that says "Hmm, that didn't work — here's what we know:" treats the user as a collaborator. Copy that has a voice (specific to this product, not generic SaaS) is delightful in itself.
|
|
30
|
+
|
|
31
|
+
**Easter eggs**
|
|
32
|
+
Hidden interactions that reward the curious. The konami code that does something silly. A hover state that's unexpectedly specific. A tooltip that breaks the fourth wall once.
|
|
33
|
+
|
|
34
|
+
**Loading states**
|
|
35
|
+
Instead of a spinning circle, something that's interesting to watch. A progress animation that tells you something about what the product is doing.
|
|
36
|
+
|
|
37
|
+
## Delight Hierarchy
|
|
38
|
+
|
|
39
|
+
Rate each idea against:
|
|
40
|
+
1. **Does it interrupt the user's task?** If yes, cut it. Delight never gets in the way.
|
|
41
|
+
2. **Is it consistent with the brand personality?** A product that's "expert, decisive, editorial" shouldn't have cartoon characters.
|
|
42
|
+
3. **Does it degrade gracefully?** The primary function must work even if the delightful layer fails.
|
|
43
|
+
4. **Will it get old?** Animations that play every time something happens become annoying. Use sparingly.
|
|
44
|
+
|
|
45
|
+
## Implementation
|
|
46
|
+
|
|
47
|
+
Read `reference/delight.md` for specific delight patterns by component type (empty states, interactions, copy formulas, animation recipes).
|