@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,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).