@monoes/monomindcli 1.14.6 → 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.
Files changed (329) hide show
  1. package/.claude/agents/reengineer-squad/boss.md +113 -0
  2. package/.claude/agents/reengineer-squad/critic-architect.md +132 -0
  3. package/.claude/agents/reengineer-squad/git-manager.md +145 -0
  4. package/.claude/agents/reengineer-squad/idea-generator.md +95 -0
  5. package/.claude/agents/reengineer-squad/implementer.md +112 -0
  6. package/.claude/agents/reengineer-squad/integration-planner.md +112 -0
  7. package/.claude/agents/reengineer-squad/source-analyst.md +103 -0
  8. package/.claude/agents/reengineer-squad/target-analyst.md +118 -0
  9. package/.claude/agents/reengineer-squad/tester.md +105 -0
  10. package/.claude/commands/mastermind/master.md +35 -14
  11. package/.claude/helpers/handlers/capture-handler.cjs +155 -18
  12. package/.claude/helpers/monolean-activate.cjs +20 -0
  13. package/.claude/helpers/monolean-config.cjs +76 -0
  14. package/.claude/helpers/monolean-instructions.cjs +109 -0
  15. package/.claude/helpers/monolean-propagate.cjs +9 -0
  16. package/.claude/helpers/monolean-tracker.cjs +18 -0
  17. package/.claude/helpers/skill-registry.json +2 -2
  18. package/.claude/skills/agent-browser-testing/SKILL.md +301 -18
  19. package/.claude/skills/mastermind/runorg.md +69 -23
  20. package/.claude/skills/monodesign/SKILL.md +32 -1
  21. package/.claude/skills/monodesign/adapt.md +53 -0
  22. package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +100 -0
  23. package/.claude/skills/monodesign/animate.md +65 -0
  24. package/.claude/skills/monodesign/audit.md +89 -0
  25. package/.claude/skills/monodesign/bolder.md +50 -0
  26. package/.claude/skills/monodesign/clarify.md +64 -0
  27. package/.claude/skills/monodesign/colorize.md +68 -0
  28. package/.claude/skills/monodesign/craft.md +51 -0
  29. package/.claude/skills/monodesign/critique.md +66 -0
  30. package/.claude/skills/monodesign/delight.md +47 -0
  31. package/.claude/skills/monodesign/distill.md +56 -0
  32. package/.claude/skills/monodesign/document.md +80 -0
  33. package/.claude/skills/monodesign/extract.md +74 -0
  34. package/.claude/skills/monodesign/harden.md +65 -0
  35. package/.claude/skills/monodesign/live.md +59 -0
  36. package/.claude/skills/monodesign/onboard.md +50 -0
  37. package/.claude/skills/monodesign/optimize.md +64 -0
  38. package/.claude/skills/monodesign/overdrive.md +56 -0
  39. package/.claude/skills/monodesign/polish.md +68 -0
  40. package/.claude/skills/monodesign/quieter.md +57 -0
  41. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +248 -76
  42. package/.claude/skills/monodesign/reference/codex.md +107 -0
  43. package/.claude/skills/monodesign/reference/craft.md +3 -0
  44. package/.claude/skills/monodesign/reference/hooks.md +99 -0
  45. package/.claude/skills/monodesign/reference/image-prompts.md +12 -0
  46. package/.claude/skills/monodesign/shape.md +71 -0
  47. package/.claude/skills/monodesign/teach.md +69 -0
  48. package/.claude/skills/monodesign/typeset.md +59 -0
  49. package/.claude/skills/monolean/SKILL.md +118 -0
  50. package/.claude/skills/monolean-audit/SKILL.md +41 -0
  51. package/.claude/skills/monolean-debt/SKILL.md +46 -0
  52. package/.claude/skills/monolean-help/SKILL.md +60 -0
  53. package/.claude/skills/monolean-review/SKILL.md +57 -0
  54. package/bin/cli.js +3 -1
  55. package/dist/dashboard/server.js +137 -0
  56. package/dist/src/__tests__/browse-adapters.test.d.ts +2 -0
  57. package/dist/src/__tests__/browse-adapters.test.d.ts.map +1 -0
  58. package/dist/src/__tests__/browse-adapters.test.js +51 -0
  59. package/dist/src/__tests__/browse-adapters.test.js.map +1 -0
  60. package/dist/src/__tests__/browse-analyzer.test.d.ts +2 -0
  61. package/dist/src/__tests__/browse-analyzer.test.d.ts.map +1 -0
  62. package/dist/src/__tests__/browse-analyzer.test.js +68 -0
  63. package/dist/src/__tests__/browse-analyzer.test.js.map +1 -0
  64. package/dist/src/__tests__/browse-builtin-handlers.test.d.ts +2 -0
  65. package/dist/src/__tests__/browse-builtin-handlers.test.d.ts.map +1 -0
  66. package/dist/src/__tests__/browse-builtin-handlers.test.js +139 -0
  67. package/dist/src/__tests__/browse-builtin-handlers.test.js.map +1 -0
  68. package/dist/src/__tests__/browse-cdp.test.d.ts +2 -0
  69. package/dist/src/__tests__/browse-cdp.test.d.ts.map +1 -0
  70. package/dist/src/__tests__/browse-cdp.test.js +169 -0
  71. package/dist/src/__tests__/browse-cdp.test.js.map +1 -0
  72. package/dist/src/__tests__/browse-dashboard.test.d.ts +2 -0
  73. package/dist/src/__tests__/browse-dashboard.test.d.ts.map +1 -0
  74. package/dist/src/__tests__/browse-dashboard.test.js +179 -0
  75. package/dist/src/__tests__/browse-dashboard.test.js.map +1 -0
  76. package/dist/src/__tests__/browse-engine.test.d.ts +2 -0
  77. package/dist/src/__tests__/browse-engine.test.d.ts.map +1 -0
  78. package/dist/src/__tests__/browse-engine.test.js +122 -0
  79. package/dist/src/__tests__/browse-engine.test.js.map +1 -0
  80. package/dist/src/__tests__/browse-expression.test.d.ts +2 -0
  81. package/dist/src/__tests__/browse-expression.test.d.ts.map +1 -0
  82. package/dist/src/__tests__/browse-expression.test.js +54 -0
  83. package/dist/src/__tests__/browse-expression.test.js.map +1 -0
  84. package/dist/src/__tests__/browse-store.test.d.ts +2 -0
  85. package/dist/src/__tests__/browse-store.test.d.ts.map +1 -0
  86. package/dist/src/__tests__/browse-store.test.js +99 -0
  87. package/dist/src/__tests__/browse-store.test.js.map +1 -0
  88. package/dist/src/__tests__/browse-workflow-types.test.d.ts +2 -0
  89. package/dist/src/__tests__/browse-workflow-types.test.d.ts.map +1 -0
  90. package/dist/src/__tests__/browse-workflow-types.test.js +33 -0
  91. package/dist/src/__tests__/browse-workflow-types.test.js.map +1 -0
  92. package/dist/src/browser/action-builder/analyzer.d.ts +11 -0
  93. package/dist/src/browser/action-builder/analyzer.d.ts.map +1 -0
  94. package/dist/src/browser/action-builder/analyzer.js +71 -0
  95. package/dist/src/browser/action-builder/analyzer.js.map +1 -0
  96. package/dist/src/browser/action-builder/types.d.ts +47 -0
  97. package/dist/src/browser/action-builder/types.d.ts.map +1 -0
  98. package/dist/src/browser/action-builder/types.js +2 -0
  99. package/dist/src/browser/action-builder/types.js.map +1 -0
  100. package/dist/src/browser/adapters/gemini.d.ts +3 -0
  101. package/dist/src/browser/adapters/gemini.d.ts.map +1 -0
  102. package/dist/src/browser/adapters/gemini.js +16 -0
  103. package/dist/src/browser/adapters/gemini.js.map +1 -0
  104. package/dist/src/browser/adapters/google.d.ts +3 -0
  105. package/dist/src/browser/adapters/google.d.ts.map +1 -0
  106. package/dist/src/browser/adapters/google.js +17 -0
  107. package/dist/src/browser/adapters/google.js.map +1 -0
  108. package/dist/src/browser/adapters/index.d.ts +19 -0
  109. package/dist/src/browser/adapters/index.d.ts.map +1 -0
  110. package/dist/src/browser/adapters/index.js +23 -0
  111. package/dist/src/browser/adapters/index.js.map +1 -0
  112. package/dist/src/browser/adapters/instagram.d.ts +3 -0
  113. package/dist/src/browser/adapters/instagram.d.ts.map +1 -0
  114. package/dist/src/browser/adapters/instagram.js +17 -0
  115. package/dist/src/browser/adapters/instagram.js.map +1 -0
  116. package/dist/src/browser/adapters/linkedin.d.ts +3 -0
  117. package/dist/src/browser/adapters/linkedin.d.ts.map +1 -0
  118. package/dist/src/browser/adapters/linkedin.js +19 -0
  119. package/dist/src/browser/adapters/linkedin.js.map +1 -0
  120. package/dist/src/browser/adapters/microsoft.d.ts +3 -0
  121. package/dist/src/browser/adapters/microsoft.d.ts.map +1 -0
  122. package/dist/src/browser/adapters/microsoft.js +16 -0
  123. package/dist/src/browser/adapters/microsoft.js.map +1 -0
  124. package/dist/src/browser/adapters/x.d.ts +3 -0
  125. package/dist/src/browser/adapters/x.d.ts.map +1 -0
  126. package/dist/src/browser/adapters/x.js +19 -0
  127. package/dist/src/browser/adapters/x.js.map +1 -0
  128. package/dist/src/browser/dashboard/api-types.d.ts +50 -0
  129. package/dist/src/browser/dashboard/api-types.d.ts.map +1 -0
  130. package/dist/src/browser/dashboard/api-types.js +14 -0
  131. package/dist/src/browser/dashboard/api-types.js.map +1 -0
  132. package/dist/src/browser/dashboard/server.d.ts +9 -0
  133. package/dist/src/browser/dashboard/server.d.ts.map +1 -0
  134. package/dist/src/browser/dashboard/server.js +62 -0
  135. package/dist/src/browser/dashboard/server.js.map +1 -0
  136. package/dist/src/browser/dashboard/ui.html +1811 -0
  137. package/dist/src/browser/workflow/builtin-handlers.d.ts +3 -0
  138. package/dist/src/browser/workflow/builtin-handlers.d.ts.map +1 -0
  139. package/dist/src/browser/workflow/builtin-handlers.js +343 -0
  140. package/dist/src/browser/workflow/builtin-handlers.js.map +1 -0
  141. package/dist/src/browser/workflow/engine.d.ts +15 -0
  142. package/dist/src/browser/workflow/engine.d.ts.map +1 -0
  143. package/dist/src/browser/workflow/engine.js +127 -0
  144. package/dist/src/browser/workflow/engine.js.map +1 -0
  145. package/dist/src/browser/workflow/expression.d.ts +4 -0
  146. package/dist/src/browser/workflow/expression.d.ts.map +1 -0
  147. package/dist/src/browser/workflow/expression.js +64 -0
  148. package/dist/src/browser/workflow/expression.js.map +1 -0
  149. package/dist/src/browser/workflow/store.d.ts +24 -0
  150. package/dist/src/browser/workflow/store.d.ts.map +1 -0
  151. package/dist/src/browser/workflow/store.js +145 -0
  152. package/dist/src/browser/workflow/store.js.map +1 -0
  153. package/dist/src/browser/workflow/types.d.ts +48 -0
  154. package/dist/src/browser/workflow/types.d.ts.map +1 -0
  155. package/dist/src/browser/workflow/types.js +2 -0
  156. package/dist/src/browser/workflow/types.js.map +1 -0
  157. package/dist/src/commands/browse-action.d.ts +4 -0
  158. package/dist/src/commands/browse-action.d.ts.map +1 -0
  159. package/dist/src/commands/browse-action.js +151 -0
  160. package/dist/src/commands/browse-action.js.map +1 -0
  161. package/dist/src/commands/browse-platform.d.ts +4 -0
  162. package/dist/src/commands/browse-platform.d.ts.map +1 -0
  163. package/dist/src/commands/browse-platform.js +117 -0
  164. package/dist/src/commands/browse-platform.js.map +1 -0
  165. package/dist/src/commands/browse-workflow.d.ts +4 -0
  166. package/dist/src/commands/browse-workflow.d.ts.map +1 -0
  167. package/dist/src/commands/browse-workflow.js +153 -0
  168. package/dist/src/commands/browse-workflow.js.map +1 -0
  169. package/dist/src/commands/browse.d.ts +10 -6
  170. package/dist/src/commands/browse.d.ts.map +1 -1
  171. package/dist/src/commands/browse.js +11 -2154
  172. package/dist/src/commands/browse.js.map +1 -1
  173. package/dist/src/commands/design-detect.d.ts +21 -0
  174. package/dist/src/commands/design-detect.d.ts.map +1 -0
  175. package/dist/src/commands/design-detect.js +127 -0
  176. package/dist/src/commands/design-detect.js.map +1 -0
  177. package/dist/src/commands/design-palette.d.ts +22 -0
  178. package/dist/src/commands/design-palette.d.ts.map +1 -0
  179. package/dist/src/commands/design-palette.js +539 -0
  180. package/dist/src/commands/design-palette.js.map +1 -0
  181. package/dist/src/commands/hooks-core-commands.d.ts +10 -0
  182. package/dist/src/commands/hooks-core-commands.d.ts.map +1 -0
  183. package/dist/src/commands/hooks-core-commands.js +377 -0
  184. package/dist/src/commands/hooks-core-commands.js.map +1 -0
  185. package/dist/src/commands/hooks-coverage-commands.d.ts +12 -0
  186. package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -0
  187. package/dist/src/commands/hooks-coverage-commands.js +1217 -0
  188. package/dist/src/commands/hooks-coverage-commands.js.map +1 -0
  189. package/dist/src/commands/hooks-coverage-utils.d.ts +42 -0
  190. package/dist/src/commands/hooks-coverage-utils.d.ts.map +1 -0
  191. package/dist/src/commands/hooks-coverage-utils.js +220 -0
  192. package/dist/src/commands/hooks-coverage-utils.js.map +1 -0
  193. package/dist/src/commands/hooks-extended-commands.d.ts +14 -0
  194. package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -0
  195. package/dist/src/commands/hooks-extended-commands.js +579 -0
  196. package/dist/src/commands/hooks-extended-commands.js.map +1 -0
  197. package/dist/src/commands/hooks-formatting.d.ts +13 -0
  198. package/dist/src/commands/hooks-formatting.d.ts.map +1 -0
  199. package/dist/src/commands/hooks-formatting.js +42 -0
  200. package/dist/src/commands/hooks-formatting.js.map +1 -0
  201. package/dist/src/commands/hooks-routing-commands.d.ts +15 -0
  202. package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -0
  203. package/dist/src/commands/hooks-routing-commands.js +723 -0
  204. package/dist/src/commands/hooks-routing-commands.js.map +1 -0
  205. package/dist/src/commands/hooks-workers.d.ts +9 -0
  206. package/dist/src/commands/hooks-workers.d.ts.map +1 -0
  207. package/dist/src/commands/hooks-workers.js +782 -0
  208. package/dist/src/commands/hooks-workers.js.map +1 -0
  209. package/dist/src/commands/hooks.d.ts +8 -0
  210. package/dist/src/commands/hooks.d.ts.map +1 -1
  211. package/dist/src/commands/hooks.js +179 -4103
  212. package/dist/src/commands/hooks.js.map +1 -1
  213. package/dist/src/commands/index.d.ts +1 -0
  214. package/dist/src/commands/index.d.ts.map +1 -1
  215. package/dist/src/commands/index.js +6 -0
  216. package/dist/src/commands/index.js.map +1 -1
  217. package/dist/src/commands/org.d.ts.map +1 -1
  218. package/dist/src/commands/org.js +14 -15
  219. package/dist/src/commands/org.js.map +1 -1
  220. package/dist/src/commands/tokens.d.ts.map +1 -1
  221. package/dist/src/commands/tokens.js +77 -1
  222. package/dist/src/commands/tokens.js.map +1 -1
  223. package/dist/src/init/executor.d.ts.map +1 -1
  224. package/dist/src/init/executor.js +18 -8
  225. package/dist/src/init/executor.js.map +1 -1
  226. package/dist/src/init/settings-generator.d.ts.map +1 -1
  227. package/dist/src/init/settings-generator.js +39 -5
  228. package/dist/src/init/settings-generator.js.map +1 -1
  229. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  230. package/dist/src/init/statusline-generator.js +25 -5
  231. package/dist/src/init/statusline-generator.js.map +1 -1
  232. package/dist/src/mcp-tools/browser-tools.d.ts +3 -5
  233. package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
  234. package/dist/src/mcp-tools/browser-tools.js +619 -326
  235. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  236. package/dist/src/mcp-tools/hooks-embedding.d.ts +161 -0
  237. package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -0
  238. package/dist/src/mcp-tools/hooks-embedding.js +506 -0
  239. package/dist/src/mcp-tools/hooks-embedding.js.map +1 -0
  240. package/dist/src/mcp-tools/hooks-intelligence.d.ts +26 -0
  241. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -0
  242. package/dist/src/mcp-tools/hooks-intelligence.js +1328 -0
  243. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -0
  244. package/dist/src/mcp-tools/hooks-routing.d.ts +27 -0
  245. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -0
  246. package/dist/src/mcp-tools/hooks-routing.js +1591 -0
  247. package/dist/src/mcp-tools/hooks-routing.js.map +1 -0
  248. package/dist/src/mcp-tools/hooks-tools.d.ts +3 -38
  249. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  250. package/dist/src/mcp-tools/hooks-tools.js +5 -3393
  251. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  252. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  253. package/dist/src/mcp-tools/monograph-tools.js +24 -14
  254. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  255. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
  256. package/dist/src/mcp-tools/workflow-tools.js +54 -1
  257. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  258. package/dist/src/memory/embedding-operations.d.ts +58 -0
  259. package/dist/src/memory/embedding-operations.d.ts.map +1 -0
  260. package/dist/src/memory/embedding-operations.js +299 -0
  261. package/dist/src/memory/embedding-operations.js.map +1 -0
  262. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
  263. package/dist/src/memory/ewc-consolidation.js +37 -3
  264. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  265. package/dist/src/memory/hnsw-operations.d.ts +130 -0
  266. package/dist/src/memory/hnsw-operations.d.ts.map +1 -0
  267. package/dist/src/memory/hnsw-operations.js +400 -0
  268. package/dist/src/memory/hnsw-operations.js.map +1 -0
  269. package/dist/src/memory/intelligence.d.ts.map +1 -1
  270. package/dist/src/memory/intelligence.js +42 -23
  271. package/dist/src/memory/intelligence.js.map +1 -1
  272. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  273. package/dist/src/memory/memory-bridge.js +52 -8
  274. package/dist/src/memory/memory-bridge.js.map +1 -1
  275. package/dist/src/memory/memory-crud.d.ts +67 -0
  276. package/dist/src/memory/memory-crud.d.ts.map +1 -0
  277. package/dist/src/memory/memory-crud.js +415 -0
  278. package/dist/src/memory/memory-crud.js.map +1 -0
  279. package/dist/src/memory/memory-initializer.d.ts +9 -322
  280. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  281. package/dist/src/memory/memory-initializer.js +17 -1794
  282. package/dist/src/memory/memory-initializer.js.map +1 -1
  283. package/dist/src/memory/memory-migrations.d.ts +30 -0
  284. package/dist/src/memory/memory-migrations.d.ts.map +1 -0
  285. package/dist/src/memory/memory-migrations.js +134 -0
  286. package/dist/src/memory/memory-migrations.js.map +1 -0
  287. package/dist/src/memory/memory-read.d.ts +78 -0
  288. package/dist/src/memory/memory-read.d.ts.map +1 -0
  289. package/dist/src/memory/memory-read.js +331 -0
  290. package/dist/src/memory/memory-read.js.map +1 -0
  291. package/dist/src/memory/memory-schema.d.ts +13 -0
  292. package/dist/src/memory/memory-schema.d.ts.map +1 -0
  293. package/dist/src/memory/memory-schema.js +167 -0
  294. package/dist/src/memory/memory-schema.js.map +1 -0
  295. package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
  296. package/dist/src/memory/sona-optimizer.js +37 -4
  297. package/dist/src/memory/sona-optimizer.js.map +1 -1
  298. package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
  299. package/dist/src/monovector/route-outcomes.js +16 -6
  300. package/dist/src/monovector/route-outcomes.js.map +1 -1
  301. package/dist/src/pricing/model-pricing.d.ts +41 -0
  302. package/dist/src/pricing/model-pricing.d.ts.map +1 -0
  303. package/dist/src/pricing/model-pricing.js +61 -0
  304. package/dist/src/pricing/model-pricing.js.map +1 -0
  305. package/dist/src/ui/.monomind/capture/active-run.json +1 -0
  306. package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.convs.jsonl +3 -0
  307. package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.jsonl +11 -0
  308. package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/rigid-qa-restart-1782288201.jsonl +540 -0
  309. package/dist/src/ui/.monomind/orgs/system-trial-qa-threads.jsonl +3 -0
  310. package/dist/src/ui/.monomind/orgs/test-event-fix/runs/rigid-qa-restart-1782288201.jsonl +2 -0
  311. package/dist/src/ui/MODULARIZATION_PLAN.md +79 -0
  312. package/dist/src/ui/collector.mjs +23 -13
  313. package/dist/src/ui/dashboard.html +1652 -13
  314. package/dist/src/ui/data/known-projects.json +1 -0
  315. package/dist/src/ui/data/mastermind-events.jsonl +553 -0
  316. package/dist/src/ui/data/sessions/_index.json +1 -0
  317. package/dist/src/ui/data/sessions/final-sess-001.jsonl +542 -0
  318. package/dist/src/ui/data/unknown-events.jsonl +1 -0
  319. package/dist/src/ui/orgs.html +154 -10
  320. package/dist/src/ui/server.mjs +1131 -168
  321. package/dist/src/ui/sse-manager.mjs +119 -0
  322. package/dist/src/update/checker.js +1 -1
  323. package/dist/src/update/checker.js.map +1 -1
  324. package/dist/tsconfig.tsbuildinfo +1 -1
  325. package/dist/workflow/builtin-handlers.js +321 -0
  326. package/dist/workflow/engine.js +253 -0
  327. package/dist/workflow/expression.js +98 -0
  328. package/dist/workflow/types.js +2 -0
  329. package/package.json +8 -5
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: monodesign-distill
3
+ description: Simplify an over-designed, cluttered, or complexity-burdened interface — remove what doesn't earn its place, reveal the essential structure underneath.
4
+ type: design-sub-command
5
+ argument-hint: "[target page, flow, or component]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Distill
10
+
11
+ Simplify an over-designed or cluttered interface. Read `reference/distill.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## Philosophy
14
+
15
+ Every element on a page is a claim on the user's attention. When too many claims compete equally, the user's attention costs rise and comprehension falls. Distill removes the claims that can't justify their cost.
16
+
17
+ ## Assess the Clutter
18
+
19
+ Walk through the interface and identify:
20
+
21
+ **Structural complexity**
22
+ - How many distinct visual layers exist? (More than 3 is usually too many)
23
+ - How many columns? (Sometimes 1 column is the right answer)
24
+ - Are there containers-within-containers? (Nested cards are always wrong)
25
+ - Is the Z-axis used purposefully or as a decoration?
26
+
27
+ **Information redundancy**
28
+ - Is the same information shown twice? (Heading + tooltip + label that all say the same thing)
29
+ - Are there labels that label things that are already obvious from context?
30
+ - Are there intros that restate the page title?
31
+
32
+ **Visual noise**
33
+ - Decorative dividers between every section when whitespace would suffice
34
+ - Icon + text where one alone would communicate equally well
35
+ - Background patterns, textures, or gradients that add nothing
36
+
37
+ **Navigation complexity**
38
+ - Are there paths that lead nowhere useful?
39
+ - Are there settings no one changes?
40
+ - Are there features that serve < 5% of users in the primary navigation?
41
+
42
+ ## Distillation Protocol
43
+
44
+ 1. **List every element** on the target surface (visual inventory)
45
+ 2. **For each element, ask**: if this were removed, would a first-time user notice something missing? If no: remove it
46
+ 3. **Consolidate redundant information** into one canonical location
47
+ 4. **Increase whitespace** where elements were removed — don't fill the vacuum with something else
48
+ 5. **Verify the essential path** still works and is faster than before
49
+
50
+ ## Output
51
+
52
+ A version of the interface that is measurably simpler:
53
+ - Fewer distinct visual elements on screen at once
54
+ - Clearer visual hierarchy (the important thing is visually louder than the less-important thing)
55
+ - Faster to scan for a first-time user
56
+ - No functionality removed from the primary user path
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: monodesign-document
3
+ description: Create or update DESIGN.md — extract and codify the design system from the codebase into a portable, AI-readable design reference that anchors all future monodesign work.
4
+ type: design-sub-command
5
+ argument-hint: "[project path]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Document
10
+
11
+ Create or update `DESIGN.md` — the design system reference for this project. Every `/monodesign` sub-command uses DESIGN.md to make on-brand decisions without asking the same questions repeatedly.
12
+
13
+ DESIGN.md is the portable export of the project's design system: colors, typography, spacing, components, and conventions — extracted from what's actually in the code, not invented.
14
+
15
+ Read `reference/document.md` from the monodesign skill directory for the full protocol.
16
+
17
+ ## Discovery
18
+
19
+ **Extract from codebase:**
20
+ ```bash
21
+ # Find CSS custom properties
22
+ grep -r "^--" src/ --include="*.css" --include="*.scss" -h | sort -u
23
+
24
+ # Find font declarations
25
+ grep -r "font-family\|@font-face\|@import.*font" src/ -h | sort -u
26
+
27
+ # Find color values
28
+ grep -rE "#[0-9a-fA-F]{3,8}|oklch\(|rgb\(|hsl\(" src/ -h | sort -u | head -50
29
+ ```
30
+
31
+ **Also read:**
32
+ - `tailwind.config.js/ts` — theme configuration
33
+ - `tokens.css`, `theme.css`, `variables.css`, or equivalent
34
+ - A representative component to understand CSS conventions
35
+
36
+ ## DESIGN.md Structure
37
+
38
+ ```markdown
39
+ # Design System
40
+
41
+ ## Brand Identity
42
+ **Name**: [product name]
43
+ **System**: [design system name, e.g. "Neo kinpaku system"]
44
+ **Strategy**: [Restrained | Committed | Full palette | Drenched]
45
+ **Theme**: [dark | light | both]
46
+
47
+ ## Colors (OKLCH)
48
+
49
+ ### Brand
50
+ | Token | Value | Use |
51
+ |---|---|---|
52
+ | --color-brand | oklch(…) | Primary accent |
53
+ | --color-brand-muted | oklch(…) | Secondary accent |
54
+
55
+ ### Surfaces
56
+ [table]
57
+
58
+ ### Text
59
+ [table]
60
+
61
+ ## Typography
62
+
63
+ | Role | Font | Size | Weight | Line Height |
64
+ |---|---|---|---|---|
65
+ | Display | [family] | clamp(3rem, 5vw, 5rem) | 800 | 1.1 |
66
+ | Heading 1 | … | … | … | … |
67
+ | Body | … | 1rem | 400 | 1.6 |
68
+ | Caption | … | 0.875rem | 400 | 1.4 |
69
+
70
+ ## Spacing Scale
71
+ [4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96 / 128]
72
+
73
+ ## Components
74
+ [Brief description of key shared components and their variants]
75
+
76
+ ## Conventions
77
+ - File naming: [convention]
78
+ - Token naming: [convention]
79
+ - Component import style: [named/default/barrel]
80
+ ```
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: monodesign-extract
3
+ description: Extract an implicit design system from an existing codebase — discover tokens, components, patterns, and conventions already present, then codify them into a formal system.
4
+ type: design-sub-command
5
+ argument-hint: "[target codebase path or project]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Extract
10
+
11
+ Extract a design system from an existing codebase. Read `reference/extract.md` and `reference/token-architecture.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## Philosophy
14
+
15
+ Every codebase with more than a few pages has an implicit design system — inconsistencies, but also patterns that have emerged over time. Extract makes the implicit explicit, without inventing a new system on top of what exists.
16
+
17
+ ## Discovery Phase
18
+
19
+ **Color inventory**
20
+ - Collect all color values used in the codebase (grep for `#`, `rgb`, `hsl`, `oklch`)
21
+ - Group by apparent purpose (backgrounds, text, accents, borders, shadows)
22
+ - Identify the brand anchor color(s)
23
+ - Spot inconsistencies (5 slightly different grays)
24
+
25
+ **Typography inventory**
26
+ - Collect all font-family, font-size, font-weight, line-height, letter-spacing values
27
+ - Map to semantic roles (heading-xl, heading-lg, body, caption, etc.)
28
+ - Identify the type scale (if any)
29
+
30
+ **Spacing inventory**
31
+ - Collect all padding, margin, gap values
32
+ - Identify if a consistent scale exists (4/8/16/24/32/48...)
33
+ - Spot outliers
34
+
35
+ **Component inventory**
36
+ - List all recurring UI patterns (buttons, inputs, cards, badges, modals)
37
+ - Note variants (primary/secondary/ghost buttons, etc.)
38
+ - Identify inconsistent implementations of the same component
39
+
40
+ ## Codification
41
+
42
+ **Token architecture** (CSS custom properties):
43
+ ```css
44
+ :root {
45
+ /* Colors */
46
+ --color-brand-[scale]: oklch(…);
47
+ --color-surface-[level]: oklch(…);
48
+ --color-ink-[weight]: oklch(…);
49
+
50
+ /* Type scale */
51
+ --text-[size]: [value];
52
+ --font-[role]: [family];
53
+
54
+ /* Spacing scale */
55
+ --space-[size]: [rem];
56
+
57
+ /* Radius */
58
+ --radius-[size]: [rem];
59
+ }
60
+ ```
61
+
62
+ **Component documentation**
63
+ For each identified component: props, variants, states, example usage.
64
+
65
+ ## Output: DESIGN.md
66
+
67
+ Write a `DESIGN.md` at the project root capturing:
68
+ - Brand colors with OKLCH values
69
+ - Type scale and font families
70
+ - Spacing scale
71
+ - Key components with their states
72
+ - Design conventions (rounded vs. sharp, dense vs. airy, etc.)
73
+
74
+ This becomes the anchor for all future `/monodesign` work on this project.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: monodesign-harden
3
+ description: Fix accessibility violations, keyboard navigation gaps, semantic HTML issues, ARIA problems, and contrast failures — bring the interface to WCAG AA compliance.
4
+ type: design-sub-command
5
+ argument-hint: "[target page or component]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Harden
10
+
11
+ Fix accessibility and robustness issues. Read `reference/harden.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## Accessibility Targets
14
+
15
+ **WCAG AA** is the floor:
16
+ - Body text: ≥4.5:1 contrast ratio
17
+ - Large text (≥18px or bold ≥14px): ≥3:1
18
+ - Interactive element focus indicators: ≥3:1 against adjacent colors
19
+ - No information conveyed by color alone
20
+
21
+ **Keyboard navigation**
22
+ - Every interactive element reachable by Tab in logical order
23
+ - Visible focus ring on every focused element (never `outline: none` without a replacement)
24
+ - No keyboard traps
25
+ - Escape closes modals and dropdowns
26
+ - Arrow keys navigate within a group (menu items, radio buttons, tabs)
27
+
28
+ **Semantic HTML**
29
+ - Heading hierarchy is sequential (h1 → h2 → h3, no skipping)
30
+ - Landmark roles present (main, nav, aside, footer)
31
+ - Interactive elements use native elements (button, a, input) not div
32
+ - Forms have labels associated with inputs (via for/id or wrapping label)
33
+
34
+ **ARIA**
35
+ - Used only when native semantics can't convey the role
36
+ - `aria-label` on icon-only buttons
37
+ - `aria-expanded`, `aria-controls` on toggle buttons
38
+ - `aria-live` on dynamic content that updates without page reload
39
+ - `role="status"` or `role="alert"` on notification areas
40
+
41
+ **Images**
42
+ - Decorative images: `alt=""`
43
+ - Informative images: alt describes the information (not "image of...")
44
+ - Icon images: alt is the icon's semantic meaning
45
+
46
+ ## Hardening Checklist
47
+
48
+ ```
49
+ [ ] Run automated check: `npx axe <url>` or equivalent
50
+ [ ] Tab through entire page — every interactive element reachable
51
+ [ ] Check all headings form a logical hierarchy
52
+ [ ] Verify all contrast ratios pass
53
+ [ ] Test all interactive elements with keyboard only
54
+ [ ] Verify screen reader announces dynamic content
55
+ [ ] Check all forms have properly associated labels
56
+ [ ] Test at 200% zoom — nothing overlaps or disappears
57
+ [ ] Verify reduced motion preference is respected
58
+ ```
59
+
60
+ ## Never
61
+
62
+ - `outline: none` or `outline: 0` without a replacement focus indicator
63
+ - `tabindex="-1"` on focusable elements without a keyboard alternative
64
+ - Color as the only differentiator between states
65
+ - ARIA roles that contradict the HTML semantics (role="button" on an anchor that navigates)
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: monodesign-live
3
+ description: Iterate on the UI directly in the browser — screenshot, identify issues, apply targeted CSS fixes, verify, repeat — until the live result matches the design intent.
4
+ type: design-sub-command
5
+ argument-hint: "[target URL or component]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Live
10
+
11
+ Iterate on the UI directly in the browser. Read `reference/live.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## CLAUDE.md Requirement
14
+
15
+ This command requires browser automation. Before proceeding, verify that `npx monomind browse` is available (`Skill("agent-browser-testing")`). If not, the `/monodesign live` flow falls back to editing CSS files and asking the user to refresh.
16
+
17
+ ## Live Iteration Loop
18
+
19
+ The loop runs until the user confirms the design is right or cancels.
20
+
21
+ ### 1. Screenshot
22
+ Capture the current state of the target URL or component. No assumptions — look at what's actually rendered.
23
+
24
+ ### 2. Diagnose
25
+ Look at the screenshot with fresh eyes. Identify the top 3 issues:
26
+ - Visual hierarchy problems
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.
52
+
53
+ ## Guidelines
54
+
55
+ - Fix the most visually impactful issue first
56
+ - Don't batch multiple fixes — screenshot after each change
57
+ - State what you're about to change and why before changing it
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
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: monodesign-onboard
3
+ description: Design or improve user onboarding — first-run experiences, empty states, progressive disclosure, setup wizards, and the "aha moment" path for new users.
4
+ type: design-sub-command
5
+ argument-hint: "[target product or feature to onboard]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Onboard
10
+
11
+ Design or improve user onboarding. Read `reference/onboard.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## Onboarding Philosophy
14
+
15
+ The goal of onboarding is not to explain the product. It's to get the user to their first moment of value as fast as possible. Everything that doesn't serve that goal is a liability.
16
+
17
+ ## The Aha Moment Map
18
+
19
+ Before designing anything, identify:
20
+ 1. **What is the first moment of genuine value for a new user?** (Not "they understand the product" — what specific thing makes them say "oh, this is useful")
21
+ 2. **What is the shortest path to that moment?** (Every step that isn't required is a step where the user can drop off)
22
+ 3. **What does the user need to know before they can get there?** (Only these things — nothing more)
23
+
24
+ ## Onboarding Patterns
25
+
26
+ **Empty state onboarding**
27
+ The most overlooked opportunity. When a user first arrives at a feature with no data, the empty state is their first experience of that feature. It should:
28
+ - Describe what will appear here (not be blank)
29
+ - Show a CTA to add the first item
30
+ - Optionally show a preview of what it will look like when populated
31
+
32
+ **Progressive disclosure onboarding**
33
+ Start with the minimal useful version of the product. Reveal additional features only when the user's behavior signals readiness (they've used the basic feature N times, or they've hit a limitation).
34
+
35
+ **Contextual tooltips**
36
+ Not a tour. Tooltips that appear at the right moment (user hovers a new feature, user completes an action) and disappear when dismissed. Never a forced 10-step tour.
37
+
38
+ **Setup wizard**
39
+ When the product genuinely requires configuration before it's useful (API keys, workspace settings, integrations), a wizard is appropriate. Keep it short: 3 steps max, each with a clear benefit statement ("After this, you can...").
40
+
41
+ ## Copy Principles for Onboarding
42
+
43
+ - Frame every step as a benefit: "Connect your calendar to automatically block focus time" not "Calendar integration step 2 of 3"
44
+ - Progress indicators: show how far they've come, not how far they have to go
45
+ - Skip options: always provide a way to skip or come back later
46
+ - No dead ends: every empty state has an action, every error has a recovery path
47
+
48
+ ## Output
49
+
50
+ Design decisions + code for the specific onboarding surface: empty states, tooltip content, wizard steps, or first-run flow — with copy, layout, and interaction states.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: monodesign-optimize
3
+ description: Improve frontend performance — animation smoothness, bundle size, rendering, image optimization, and Core Web Vitals — without sacrificing design quality.
4
+ type: design-sub-command
5
+ argument-hint: "[target page or component]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Optimize
10
+
11
+ Improve frontend performance. Read `reference/optimize.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## Performance Target: Core Web Vitals
14
+
15
+ - **LCP** (Largest Contentful Paint): ≤2.5s
16
+ - **INP** (Interaction to Next Paint): ≤200ms
17
+ - **CLS** (Cumulative Layout Shift): ≤0.1
18
+
19
+ ## Common Design-Layer Performance Issues
20
+
21
+ **Animation performance**
22
+ - Animating layout properties (`width`, `height`, `padding`, `margin`, `top`, `left`) causes layout recalculation on every frame — replace with `transform` and `opacity` only
23
+ - Unbounded blur: `blur(20px)` on many elements is expensive — test and cap
24
+ - `will-change: transform` tells the browser to promote to its own layer — use sparingly (memory cost)
25
+ - Too many simultaneous animations — stagger rather than launch all at once
26
+
27
+ **Image optimization**
28
+ - `loading="lazy"` on all images below the fold
29
+ - `width` + `height` attributes on all images to prevent CLS
30
+ - Modern formats: WebP/AVIF > JPEG/PNG for photos
31
+ - `srcset` for responsive images
32
+ - CSS background images: consider whether an `<img>` with `loading="lazy"` would be faster
33
+
34
+ **Font loading**
35
+ - `font-display: swap` to prevent invisible text during font load
36
+ - Preload critical fonts: `<link rel="preload" as="font">`
37
+ - Subset fonts if using a custom typeface (Google Fonts does this automatically)
38
+
39
+ **CSS performance**
40
+ - Avoid `@import` in CSS (render-blocking)
41
+ - Don't use `:nth-child()` in hot paths with many elements
42
+ - CSS containment: `contain: layout style` on isolated components prevents unintended reflows
43
+
44
+ **JavaScript**
45
+ - Defer non-critical scripts: `<script defer>` or `<script type="module">`
46
+ - Code-split by route if using a framework
47
+ - Avoid inline event handlers at scale (use event delegation)
48
+
49
+ ## Measurement
50
+
51
+ ```bash
52
+ # Lighthouse in CLI
53
+ npx lighthouse <url> --output json --output html
54
+
55
+ # Web Vitals in DevTools
56
+ # Performance tab → Core Web Vitals section
57
+
58
+ # Bundle analysis (if Vite)
59
+ npx vite-bundle-analyzer
60
+ ```
61
+
62
+ ## Output
63
+
64
+ Specific optimizations with before/after measurements where measurable. Each change should cite the metric it improves.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: monodesign-overdrive
3
+ description: Push an interface past conventional limits — cinematic page transitions, GPU-accelerated data visualization, physics-based interactions, generative art, extraordinary technical effects that make users say "wow".
4
+ type: design-sub-command
5
+ argument-hint: "[target interface or specific effect goal]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Overdrive
10
+
11
+ Push an interface past conventional limits.
12
+
13
+ **Start your response with:**
14
+ ```
15
+ ──────────── ⚡ OVERDRIVE ─────────────
16
+ 》》》 Entering overdrive mode...
17
+ ```
18
+
19
+ Read `reference/overdrive.md` from the monodesign skill directory for the full protocol.
20
+
21
+ ## Context Determines "Extraordinary"
22
+
23
+ A particle system on a creative portfolio is impressive. The same particle system on a settings page is embarrassing. Before choosing a technique, ask: **what would make a user of THIS specific interface say "wow, that's nice"?**
24
+
25
+ - **Visual/marketing surfaces**: sensory — scroll-driven reveals, shader backgrounds, cinematic page transitions, generative art responding to cursor
26
+ - **Functional UI**: felt — dialog morphing from its trigger via View Transitions, data table rendering 100k rows at 60fps via virtual scrolling, form with streaming validation that feels instant, drag-and-drop with spring physics
27
+ - **Performance-critical UI**: invisible — search that filters 50k items without a flicker, image editor that processes near-real-time
28
+ - **Data-heavy interfaces**: fluid — GPU-accelerated rendering via Canvas/WebGL, animated transitions between data states
29
+
30
+ **The common thread**: something about the implementation goes beyond what users expect from a web interface. The technique serves the experience.
31
+
32
+ ## Propose Before Building
33
+
34
+ Do NOT jump straight to implementation. You MUST:
35
+
36
+ 1. Think through **2–3 different directions**: technique, level of ambition, aesthetic approach
37
+ 2. **Ask the user** to pick before writing code. Explain trade-offs (browser support, performance cost, complexity)
38
+ 3. Only proceed with the confirmed direction
39
+
40
+ ## The Toolkit
41
+
42
+ **Cinematic transitions**: View Transitions API, shared element transitions, `::view-transition-group`
43
+
44
+ **Scroll-driven**: `animation-timeline: scroll()`, Intersection Observer with CSS transitions, parallax via transform
45
+
46
+ **Generative/ambient**: CSS custom properties + JS, Canvas 2D for simple generative art, WebGL/Three.js for shaders
47
+
48
+ **Physics**: spring animations via motion.dev, GSAP with ease functions, Popmotion
49
+
50
+ **Data at scale**: virtual scrolling (TanStack Virtual), Canvas/WebGL rendering, Web Workers for computation
51
+
52
+ **GPU compositing**: `transform` + `opacity` only, `will-change` on animated layers, `contain: strict` for isolation
53
+
54
+ ## Iterate in Browser
55
+
56
+ Technically ambitious effects almost never look right on the first try. Use browser automation to watch the effect play. Expect multiple rounds of refinement. The gap between "technically works" and "looks extraordinary" is closed through visual iteration, not code alone.
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: monodesign-polish
3
+ description: Perform a meticulous final pass to catch all the small details that separate good work from great work — design system alignment, interaction states, spacing precision, copy consistency, edge cases.
4
+ type: design-sub-command
5
+ argument-hint: "[target component, page, or feature]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Polish
10
+
11
+ Perform a meticulous final pass. The difference between shipped and polished. Read `reference/polish.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## Design System Discovery (required first step)
14
+
15
+ 1. **Find the design system**: Look for documentation, component libraries, style guides, token definitions
16
+ 2. **Note the conventions**: spacing scale, color tokens, motion patterns, component API
17
+ 3. **Identify drift, then name the root cause**: classify each deviation as:
18
+ - **Missing token** — value should exist in the system but doesn't
19
+ - **One-off implementation** — shared component exists but wasn't used
20
+ - **Conceptual misalignment** — flow, IA, or hierarchy doesn't match neighboring features
21
+
22
+ Polish **must** align the feature with the design system. If none exists, polish against visible codebase conventions.
23
+
24
+ ## Pre-Polish Assessment
25
+
26
+ 1. **Review completeness**: Is it functionally complete? Are there known issues to preserve (mark TODOs)?
27
+ 2. **Think experience-first**: Walk the path from the user's perspective before opening DevTools
28
+ 3. **Identify polish areas**:
29
+ - Visual inconsistencies
30
+ - Spacing and alignment issues
31
+ - Interaction state gaps (hover, focus, active, disabled, loading)
32
+ - Copy inconsistencies and redundancies
33
+ - Edge cases and error states
34
+ - Loading and transition smoothness
35
+ - Information architecture drift
36
+
37
+ ## Polish Checklist
38
+
39
+ **Visual**
40
+ - [ ] Consistent spacing using the design system scale
41
+ - [ ] Typography hierarchy visible at a glance (size + weight contrast)
42
+ - [ ] Color contrast meets WCAG AA minimums
43
+ - [ ] All interactive elements have hover + focus states
44
+ - [ ] Loading/skeleton states for async content
45
+ - [ ] Empty states designed (not blank)
46
+
47
+ **Copy**
48
+ - [ ] No restated headings or intros that repeat the title
49
+ - [ ] Error messages are actionable (not "Something went wrong")
50
+ - [ ] No em dashes — use commas, colons, or semicolons
51
+ - [ ] Consistent voice with PRODUCT.md
52
+
53
+ **Motion**
54
+ - [ ] Transitions feel intentional, not added by reflex
55
+ - [ ] All animations have `prefers-reduced-motion` fallback
56
+ - [ ] No layout-property animation
57
+
58
+ **Responsive**
59
+ - [ ] All text within viewport, no overflow at any breakpoint
60
+ - [ ] Touch targets ≥44×44px on mobile
61
+
62
+ ## Browser Verification
63
+
64
+ Use browser automation to verify the live result — don't assume the CSS is correct. Check:
65
+ - The actual user path (not just the happy state)
66
+ - Mobile viewport
67
+ - Dark/light mode switch
68
+ - Keyboard navigation
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: monodesign-quieter
3
+ description: Reduce visual intensity in designs that are too loud, aggressive, or overstimulating — without losing personality or making the result generic.
4
+ type: design-sub-command
5
+ argument-hint: "[target page, component, or design]"
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Monodesign: Quieter
10
+
11
+ Quiet design is harder than bold design. Subtlety needs precision. Read `reference/quieter.md` from the monodesign skill directory for the full protocol.
12
+
13
+ ## Register
14
+
15
+ **Brand**: "quieter" means more restrained palette, more whitespace, more typographic air. Drama is reduced, not eliminated — the POV stays intact.
16
+
17
+ **Product**: "quieter" means reducing visual noise. Fewer background accents, flatter cards, less color, less motion. The tool should disappear more completely into the task.
18
+
19
+ ## Assess What's Too Loud
20
+
21
+ 1. **Color saturation**: Overly bright or saturated colors competing for attention
22
+ 2. **Contrast extremes**: Too much high-contrast juxtaposition without hierarchy
23
+ 3. **Visual weight**: Too many bold, heavy elements with no quiet counterweight
24
+ 4. **Animation excess**: Too much motion or overly dramatic effects
25
+ 5. **Complexity**: Too many visual elements, patterns, or decorations
26
+ 6. **Scale**: Everything is large with no moments of relief
27
+
28
+ ## Quieting Interventions
29
+
30
+ **Reduce color intensity**
31
+ - Lower chroma on accents (oklab(L, less-C, H))
32
+ - Move from Committed/Full palette to Restrained strategy
33
+ - Replace colored backgrounds with tinted neutrals
34
+
35
+ **Add breathing room**
36
+ - Increase whitespace between sections
37
+ - Reduce the number of distinct visual elements per screen
38
+ - Let one element be the hero; everything else serves it
39
+
40
+ **Calm the type**
41
+ - Reduce heading sizes (headline at 3rem vs. 5rem)
42
+ - Use a lighter weight for headings (500 instead of 800)
43
+ - Increase line height and letter-spacing slightly
44
+
45
+ **Flatten the cards**
46
+ - Remove drop shadows or reduce them to near-invisible (0 1px 2px oklch(0% 0 0 / 0.05))
47
+ - Replace filled card backgrounds with subtle borders or no container at all
48
+ - Reduce border-radius
49
+
50
+ **Calm the motion**
51
+ - Remove section-fade animations that fire on every element
52
+ - Reduce animation duration by 30–50%
53
+ - Remove hover effects that aren't informative
54
+
55
+ ## The Constraint
56
+
57
+ Quieter ≠ generic. The goal is precision and restraint, not the absence of a design point of view. If the result could be any brand's product, it's not quieter — it's erased. Preserve the brand's distinctive voice while removing the excess.