monomind 2.5.1 → 2.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -1
  3. package/packages/@monomind/cli/.claude/agents/design/design-monodesign.md +6 -6
  4. package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +3 -3
  5. package/packages/@monomind/cli/.claude/agents/github/sync-coordinator.md +2 -2
  6. package/packages/@monomind/cli/.claude/agents/specialists/integration-architect.md +4 -4
  7. package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +4 -4
  8. package/packages/@monomind/cli/.claude/commands/github/sync-coordinator.md +2 -2
  9. package/packages/@monomind/cli/.claude/commands/mastermind/_repeat.md +4 -4
  10. package/packages/@monomind/cli/.claude/commands/mastermind/approvev1.md +4 -4
  11. package/packages/@monomind/cli/.claude/commands/mastermind/architect.md +6 -6
  12. package/packages/@monomind/cli/.claude/commands/mastermind/autodev.md +5 -5
  13. package/packages/@monomind/cli/.claude/commands/mastermind/brain.md +2 -2
  14. package/packages/@monomind/cli/.claude/commands/mastermind/build.md +6 -6
  15. package/packages/@monomind/cli/.claude/commands/mastermind/code-review.md +2 -2
  16. package/packages/@monomind/cli/.claude/commands/mastermind/content.md +6 -6
  17. package/packages/@monomind/cli/.claude/commands/mastermind/createorg.md +4 -4
  18. package/packages/@monomind/cli/.claude/commands/mastermind/createtask.md +3 -3
  19. package/packages/@monomind/cli/.claude/commands/mastermind/debug.md +5 -5
  20. package/packages/@monomind/cli/.claude/commands/mastermind/design.md +5 -5
  21. package/packages/@monomind/cli/.claude/commands/mastermind/do.md +2 -2
  22. package/packages/@monomind/cli/.claude/commands/mastermind/execute.md +5 -5
  23. package/packages/@monomind/cli/.claude/commands/mastermind/finance.md +6 -6
  24. package/packages/@monomind/cli/.claude/commands/mastermind/finish.md +5 -5
  25. package/packages/@monomind/cli/.claude/commands/mastermind/idea.md +6 -6
  26. package/packages/@monomind/cli/.claude/commands/mastermind/ideate.md +5 -5
  27. package/packages/@monomind/cli/.claude/commands/mastermind/improve.md +6 -6
  28. package/packages/@monomind/cli/.claude/commands/mastermind/marketing.md +6 -6
  29. package/packages/@monomind/cli/.claude/commands/mastermind/master.md +54 -54
  30. package/packages/@monomind/cli/.claude/commands/mastermind/ops.md +6 -6
  31. package/packages/@monomind/cli/.claude/commands/mastermind/orgs.md +2 -2
  32. package/packages/@monomind/cli/.claude/commands/mastermind/orgstatus.md +2 -2
  33. package/packages/@monomind/cli/.claude/commands/mastermind/plan.md +5 -5
  34. package/packages/@monomind/cli/.claude/commands/mastermind/receive-review.md +5 -5
  35. package/packages/@monomind/cli/.claude/commands/mastermind/release.md +6 -6
  36. package/packages/@monomind/cli/.claude/commands/mastermind/research.md +6 -6
  37. package/packages/@monomind/cli/.claude/commands/mastermind/review.md +6 -6
  38. package/packages/@monomind/cli/.claude/commands/mastermind/runorg.md +4 -4
  39. package/packages/@monomind/cli/.claude/commands/mastermind/runorgv1.md +5 -5
  40. package/packages/@monomind/cli/.claude/commands/mastermind/sales.md +6 -6
  41. package/packages/@monomind/cli/.claude/commands/mastermind/skill-builder.md +5 -5
  42. package/packages/@monomind/cli/.claude/commands/mastermind/stoporg.md +3 -3
  43. package/packages/@monomind/cli/.claude/commands/mastermind/taskdev.md +5 -5
  44. package/packages/@monomind/cli/.claude/commands/mastermind/tdd.md +5 -5
  45. package/packages/@monomind/cli/.claude/commands/mastermind/techport.md +5 -5
  46. package/packages/@monomind/cli/.claude/commands/mastermind/verify.md +5 -5
  47. package/packages/@monomind/cli/.claude/commands/mastermind/worktree.md +5 -5
  48. package/packages/@monomind/cli/.claude/helpers/control-start.cjs +30 -0
  49. package/packages/@monomind/cli/.claude/helpers/event-logger.cjs +2 -2
  50. package/packages/@monomind/cli/.claude/helpers/extras-registry.json +1 -1
  51. package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +2 -2
  52. package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +2 -2
  53. package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +1 -1
  54. package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +1 -1
  55. package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +1 -1
  56. package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +11 -11
  57. package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +2 -2
  58. package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +8 -8
  59. package/packages/@monomind/cli/.claude/helpers/utils/monograph.cjs +44 -12
  60. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/access.md → mastermind-access/SKILL.md} +2 -2
  61. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/activity.md → mastermind-activity/SKILL.md} +2 -2
  62. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapter-manager.md → mastermind-adapter-manager/SKILL.md} +2 -2
  63. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapters.md → mastermind-adapters/SKILL.md} +2 -2
  64. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agent-detail.md → mastermind-agent-detail/SKILL.md} +2 -2
  65. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agents.md → mastermind-agents/SKILL.md} +2 -2
  66. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approval-detail.md → mastermind-approval-detail/SKILL.md} +2 -2
  67. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approvev1.md → mastermind-approvev1/SKILL.md} +2 -2
  68. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/architect.md → mastermind-architect/SKILL.md} +7 -7
  69. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/autodev.md → mastermind-autodev/SKILL.md} +10 -10
  70. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/backup.md → mastermind-backup/SKILL.md} +2 -2
  71. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/bootstrap.md → mastermind-bootstrap/SKILL.md} +2 -2
  72. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/budgets.md → mastermind-budgets/SKILL.md} +2 -2
  73. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/build.md → mastermind-build/SKILL.md} +5 -5
  74. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/companies.md → mastermind-companies/SKILL.md} +2 -2
  75. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/content.md → mastermind-content/SKILL.md} +5 -5
  76. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/costs.md → mastermind-costs/SKILL.md} +2 -2
  77. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/createorg.md → mastermind-createorg/SKILL.md} +3 -3
  78. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/debug.md → mastermind-debug/SKILL.md} +4 -4
  79. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_delegation.md → mastermind-delegation/SKILL.md} +1 -1
  80. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/design.md → mastermind-design/SKILL.md} +9 -9
  81. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/diagnose.md → mastermind-diagnose/SKILL.md} +2 -2
  82. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/env.md → mastermind-env/SKILL.md} +2 -2
  83. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/environments.md → mastermind-environments/SKILL.md} +2 -2
  84. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/execute.md → mastermind-execute/SKILL.md} +10 -10
  85. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/export.md → mastermind-export/SKILL.md} +2 -2
  86. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finance.md → mastermind-finance/SKILL.md} +5 -5
  87. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goal-detail.md → mastermind-goal-detail/SKILL.md} +2 -2
  88. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goals.md → mastermind-goals/SKILL.md} +2 -2
  89. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/heartbeatv1.md → mastermind-heartbeatv1/SKILL.md} +2 -2
  90. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/idea.md → mastermind-idea/SKILL.md} +7 -7
  91. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/import.md → mastermind-import/SKILL.md} +2 -2
  92. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/inbox.md → mastermind-inbox/SKILL.md} +2 -2
  93. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance.md → mastermind-instance/SKILL.md} +2 -2
  94. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance-settings.md → mastermind-instance-settings/SKILL.md} +2 -2
  95. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invite-landing.md → mastermind-invite-landing/SKILL.md} +2 -2
  96. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invites.md → mastermind-invites/SKILL.md} +2 -2
  97. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issue-detail.md → mastermind-issue-detail/SKILL.md} +2 -2
  98. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issues.md → mastermind-issues/SKILL.md} +2 -2
  99. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/join-queue.md → mastermind-join-queue/SKILL.md} +2 -2
  100. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/liveness.md → mastermind-liveness/SKILL.md} +2 -2
  101. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/marketing.md → mastermind-marketing/SKILL.md} +8 -8
  102. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/memory.md → mastermind-memory/SKILL.md} +2 -2
  103. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monitor.md → mastermind-monitor/SKILL.md} +2 -2
  104. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/my-issues.md → mastermind-my-issues/SKILL.md} +2 -2
  105. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/new-agent.md → mastermind-new-agent/SKILL.md} +2 -2
  106. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/ops.md → mastermind-ops/SKILL.md} +5 -5
  107. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-chart.md → mastermind-org-chart/SKILL.md} +2 -2
  108. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-settings.md → mastermind-org-settings/SKILL.md} +2 -2
  109. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgs.md → mastermind-orgs/SKILL.md} +1 -1
  110. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgstatus.md → mastermind-orgstatus/SKILL.md} +2 -2
  111. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan.md → mastermind-plan/SKILL.md} +7 -7
  112. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan-to-tasks.md → mastermind-plan-to-tasks/SKILL.md} +2 -2
  113. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-manager.md → mastermind-plugin-manager/SKILL.md} +2 -2
  114. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-settings.md → mastermind-plugin-settings/SKILL.md} +2 -2
  115. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugins.md → mastermind-plugins/SKILL.md} +2 -2
  116. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/profile.md → mastermind-profile/SKILL.md} +2 -2
  117. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-detail.md → mastermind-project-detail/SKILL.md} +2 -2
  118. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-workspace.md → mastermind-project-workspace/SKILL.md} +2 -2
  119. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/projects.md → mastermind-projects/SKILL.md} +2 -2
  120. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_protocol.md → mastermind-protocol/SKILL.md} +3 -3
  121. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/release.md → mastermind-release/SKILL.md} +5 -5
  122. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_repeat.md → mastermind-repeat/SKILL.md} +2 -2
  123. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/research.md → mastermind-research/SKILL.md} +5 -5
  124. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/review.md → mastermind-review/SKILL.md} +5 -5
  125. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routine-detail.md → mastermind-routine-detail/SKILL.md} +2 -2
  126. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routines.md → mastermind-routines/SKILL.md} +2 -2
  127. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorgv1.md → mastermind-runorgv1/SKILL.md} +2 -2
  128. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/sales.md → mastermind-sales/SKILL.md} +5 -5
  129. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/search.md → mastermind-search/SKILL.md} +2 -2
  130. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/secrets.md → mastermind-secrets/SKILL.md} +2 -2
  131. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/skill-builder.md → mastermind-skill-builder/SKILL.md} +16 -14
  132. package/packages/@monomind/cli/.claude/skills/mastermind-skills/{skills.md → SKILL.md} +2 -2
  133. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/stoporg.md → mastermind-stoporg/SKILL.md} +2 -2
  134. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/taskdev.md → mastermind-taskdev/SKILL.md} +6 -6
  135. package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/implementer-prompt.md +1 -1
  136. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tasks.md → mastermind-tasks/SKILL.md} +2 -2
  137. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tdd.md → mastermind-tdd/SKILL.md} +4 -4
  138. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/techport.md → mastermind-techport/SKILL.md} +6 -6
  139. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/threads.md → mastermind-threads/SKILL.md} +2 -2
  140. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tree-control.md → mastermind-tree-control/SKILL.md} +2 -2
  141. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/verify.md → mastermind-verify/SKILL.md} +1 -1
  142. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/wiki.md → mastermind-wiki/SKILL.md} +2 -2
  143. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspace-detail.md → mastermind-workspace-detail/SKILL.md} +2 -2
  144. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspaces.md → mastermind-workspaces/SKILL.md} +2 -2
  145. package/packages/@monomind/cli/.claude/skills/monodesign/SKILL.md +114 -190
  146. package/packages/@monomind/cli/.claude/skills/monodesign/adapt.md +1 -1
  147. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-asset-producer.md +4 -4
  148. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
  149. package/packages/@monomind/cli/.claude/skills/monodesign/audit.md +1 -1
  150. package/packages/@monomind/cli/.claude/skills/monodesign/craft.md +2 -2
  151. package/packages/@monomind/cli/.claude/skills/monodesign/critique.md +1 -1
  152. package/packages/@monomind/cli/.claude/skills/monodesign/init.md +30 -0
  153. package/packages/@monomind/cli/.claude/skills/monodesign/layout.md +36 -0
  154. package/packages/@monomind/cli/.claude/skills/monodesign/live.md +19 -44
  155. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.md +122 -0
  156. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.native.md +58 -0
  157. package/packages/@monomind/cli/.claude/skills/monodesign/reference/android.md +40 -0
  158. package/packages/@monomind/cli/.claude/skills/monodesign/reference/animate.md +39 -11
  159. package/packages/@monomind/cli/.claude/skills/monodesign/reference/antipatterns-catalog.md +67 -16
  160. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.md +5 -3
  161. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.native.md +139 -0
  162. package/packages/@monomind/cli/.claude/skills/monodesign/reference/bolder.md +71 -64
  163. package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand.md +12 -18
  164. package/packages/@monomind/cli/.claude/skills/monodesign/reference/clarify.md +114 -0
  165. package/packages/@monomind/cli/.claude/skills/monodesign/reference/codex.md +4 -6
  166. package/packages/@monomind/cli/.claude/skills/monodesign/reference/colorize.md +108 -5
  167. package/packages/@monomind/cli/.claude/skills/monodesign/reference/craft.md +70 -143
  168. package/packages/@monomind/cli/.claude/skills/monodesign/reference/critique.md +635 -68
  169. package/packages/@monomind/cli/.claude/skills/monodesign/reference/delight.md +1 -1
  170. package/packages/@monomind/cli/.claude/skills/monodesign/reference/distill.md +1 -1
  171. package/packages/@monomind/cli/.claude/skills/monodesign/reference/document.md +24 -22
  172. package/packages/@monomind/cli/.claude/skills/monodesign/reference/extract.md +1 -1
  173. package/packages/@monomind/cli/.claude/skills/monodesign/reference/hooks.md +22 -29
  174. package/packages/@monomind/cli/.claude/skills/monodesign/reference/init.md +221 -0
  175. package/packages/@monomind/cli/.claude/skills/monodesign/reference/interaction-design.md +0 -6
  176. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ios.md +45 -0
  177. package/packages/@monomind/cli/.claude/skills/monodesign/reference/layout.md +57 -13
  178. package/packages/@monomind/cli/.claude/skills/monodesign/reference/live.md +159 -71
  179. package/packages/@monomind/cli/.claude/skills/monodesign/reference/overdrive.md +1 -1
  180. package/packages/@monomind/cli/.claude/skills/monodesign/reference/personas.md +1 -1
  181. package/packages/@monomind/cli/.claude/skills/monodesign/reference/polish.md +16 -8
  182. package/packages/@monomind/cli/.claude/skills/monodesign/reference/pre-delivery-checklist.md +1 -1
  183. package/packages/@monomind/cli/.claude/skills/monodesign/reference/product.md +1 -3
  184. package/packages/@monomind/cli/.claude/skills/monodesign/reference/quieter.md +1 -1
  185. package/packages/@monomind/cli/.claude/skills/monodesign/reference/shape.md +27 -13
  186. package/packages/@monomind/cli/.claude/skills/monodesign/reference/teach.md +6 -152
  187. package/packages/@monomind/cli/.claude/skills/monodesign/reference/typeset.md +180 -3
  188. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
  189. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
  190. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context.mjs +1061 -0
  191. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
  192. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect-csp.mjs +198 -0
  193. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect.mjs +33 -0
  194. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1962 -0
  195. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
  196. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
  197. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5601 -0
  198. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
  199. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
  200. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +258 -0
  201. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
  202. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1015 -0
  203. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
  204. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
  205. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
  206. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
  207. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
  208. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
  209. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
  210. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
  211. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
  212. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +2995 -0
  213. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
  214. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
  215. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
  216. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
  217. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
  218. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-admin.mjs +661 -0
  219. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
  220. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-lib.mjs +1776 -0
  221. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook.mjs +61 -0
  222. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/design-parser.mjs +842 -0
  223. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
  224. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
  225. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
  226. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
  227. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
  228. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
  229. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
  230. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
  231. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
  232. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
  233. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
  234. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
  235. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
  236. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
  237. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +274 -0
  238. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
  239. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
  240. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
  241. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-dom.js +146 -0
  242. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-session.js +123 -0
  243. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser.js +11240 -0
  244. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
  245. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
  246. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
  247. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
  248. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-inject.mjs +583 -0
  249. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
  250. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
  251. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
  252. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
  253. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-server.mjs +1137 -0
  254. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
  255. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
  256. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-wrap.mjs +894 -0
  257. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live.mjs +297 -0
  258. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
  259. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/palette.mjs +633 -0
  260. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/pin.mjs +221 -0
  261. package/packages/@monomind/cli/.claude/skills/monodesign/teach.md +7 -58
  262. package/packages/@monomind/cli/README.md +1 -1
  263. package/packages/@monomind/cli/dist/src/commands/design-detect.d.ts +7 -1
  264. package/packages/@monomind/cli/dist/src/commands/design-detect.js +131 -38
  265. package/packages/@monomind/cli/dist/src/commands/design-palette.d.ts +0 -1
  266. package/packages/@monomind/cli/dist/src/commands/design-palette.js +2 -3
  267. package/packages/@monomind/cli/dist/src/commands/doc.js +72 -15
  268. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +5 -1
  269. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +24 -1
  270. package/packages/@monomind/cli/dist/src/commands/doctor.js +3 -3
  271. package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
  272. package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +8 -8
  273. package/packages/@monomind/cli/dist/src/commands/init.js +2 -2
  274. package/packages/@monomind/cli/dist/src/commands/org.js +109 -9
  275. package/packages/@monomind/cli/dist/src/index.d.ts +1 -1
  276. package/packages/@monomind/cli/dist/src/index.js +3 -3
  277. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +5 -5
  278. package/packages/@monomind/cli/dist/src/init/executor.js +17 -6
  279. package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.d.ts +2 -0
  280. package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +4 -1
  281. package/packages/@monomind/cli/dist/src/mcp-server.js +2 -2
  282. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +1 -1
  283. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +1 -1
  284. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +2 -2
  285. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +1 -1
  286. package/packages/@monomind/cli/dist/src/mcp-tools/knowledge-tools.js +38 -7
  287. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +8 -3
  288. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +193 -31
  289. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +33 -0
  290. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +166 -17
  291. package/packages/@monomind/cli/dist/src/memory/memory-kg.d.ts +186 -0
  292. package/packages/@monomind/cli/dist/src/memory/memory-kg.js +450 -0
  293. package/packages/@monomind/cli/dist/src/memory/query-router.d.ts +44 -0
  294. package/packages/@monomind/cli/dist/src/memory/query-router.js +113 -0
  295. package/packages/@monomind/cli/dist/src/orgrt/daemon.d.ts +18 -0
  296. package/packages/@monomind/cli/dist/src/orgrt/daemon.js +249 -12
  297. package/packages/@monomind/cli/dist/src/orgrt/migrate.js +7 -0
  298. package/packages/@monomind/cli/dist/src/orgrt/policy.js +7 -0
  299. package/packages/@monomind/cli/dist/src/orgrt/session.d.ts +24 -1
  300. package/packages/@monomind/cli/dist/src/orgrt/session.js +18 -3
  301. package/packages/@monomind/cli/dist/src/orgrt/templates.d.ts +1 -0
  302. package/packages/@monomind/cli/dist/src/orgrt/templates.js +9 -4
  303. package/packages/@monomind/cli/dist/src/orgrt/types.d.ts +15 -0
  304. package/packages/@monomind/cli/dist/src/orgrt/types.js +2 -0
  305. package/packages/@monomind/cli/dist/src/routing/embed-worker.js +1 -1
  306. package/packages/@monomind/cli/dist/src/routing/llm-caller.js +1 -1
  307. package/packages/@monomind/cli/dist/src/routing/route-layer-factory.js +1 -1
  308. package/packages/@monomind/cli/dist/src/ui/dashboard.html +176 -26
  309. package/packages/@monomind/cli/dist/src/ui/orgs.html +24 -0
  310. package/packages/@monomind/cli/dist/src/ui/server.mjs +162 -12
  311. package/packages/@monomind/cli/dist/src/update/checker.js +3 -3
  312. package/packages/@monomind/cli/package.json +8 -6
  313. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_agent-select.md → mastermind-agent-select/SKILL.md} +0 -0
  314. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finish.md → mastermind-finish/SKILL.md} +0 -0
  315. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_intake.md → mastermind-intake/SKILL.md} +0 -0
  316. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/copywriting-frameworks.md +0 -0
  317. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/persuasion-psychology.md +0 -0
  318. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monotask.md → mastermind-monotask/SKILL.md} +0 -0
  319. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/receive-review.md → mastermind-receive-review/SKILL.md} +0 -0
  320. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorg.md → mastermind-runorg/SKILL.md} +0 -0
  321. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/code-quality-reviewer-prompt.md +0 -0
  322. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/final-reviewer-prompt.md +0 -0
  323. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/spec-reviewer-prompt.md +0 -0
  324. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/worktree.md → mastermind-worktree/SKILL.md} +0 -0
@@ -0,0 +1,221 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Pin/unpin sub-commands as standalone skill shortcuts.
4
+ *
5
+ * Usage:
6
+ * node <scripts_path>/pin.mjs pin <command>
7
+ * node <scripts_path>/pin.mjs unpin <command>
8
+ *
9
+ * `pin audit` creates a lightweight audit skill that redirects to Monodesign's audit workflow.
10
+ * `unpin audit` removes that shortcut.
11
+ *
12
+ * The script discovers harness directories (.claude/skills, .cursor/skills, etc.)
13
+ * in the project root and creates/removes the pin in all of them.
14
+ */
15
+
16
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, rmSync, readdirSync } from 'node:fs';
17
+ import { basename, join, resolve, dirname } from 'node:path';
18
+ import { fileURLToPath } from 'node:url';
19
+
20
+ const __dirname = dirname(fileURLToPath(import.meta.url));
21
+
22
+ // All known harness directories
23
+ const HARNESS_DIRS = [
24
+ '.claude', '.cursor', '.gemini', '.codex', '.agents',
25
+ '.trae', '.trae-cn', '.pi', '.opencode', '.kiro', '.rovodev',
26
+ ];
27
+
28
+ const CODEX_HARNESSES = new Set(['.codex', '.agents']);
29
+
30
+ // Valid sub-command names
31
+ const VALID_COMMANDS = [
32
+ 'craft', 'init', 'extract', 'document', 'shape',
33
+ 'critique', 'audit',
34
+ 'polish', 'bolder', 'quieter', 'distill', 'harden', 'onboard', 'live',
35
+ 'animate', 'colorize', 'typeset', 'layout', 'delight', 'overdrive',
36
+ 'clarify', 'adapt', 'optimize',
37
+ ];
38
+
39
+ // Marker to identify pinned skills (so unpin doesn't delete user skills)
40
+ const PIN_MARKER = '<!-- monodesign-pinned-skill -->';
41
+
42
+ /**
43
+ * Walk up from startDir to find a project root.
44
+ */
45
+ function findProjectRoot(startDir = process.cwd()) {
46
+ let dir = resolve(startDir);
47
+ while (dir !== '/') {
48
+ if (
49
+ existsSync(join(dir, 'package.json')) ||
50
+ existsSync(join(dir, '.git')) ||
51
+ existsSync(join(dir, 'skills-lock.json'))
52
+ ) {
53
+ return dir;
54
+ }
55
+ const parent = resolve(dir, '..');
56
+ if (parent === dir) break;
57
+ dir = parent;
58
+ }
59
+ return resolve(startDir);
60
+ }
61
+
62
+ /**
63
+ * Find harness skill directories that have an monodesign skill installed.
64
+ */
65
+ function findHarnessDirs(projectRoot) {
66
+ const dirs = [];
67
+ for (const harness of HARNESS_DIRS) {
68
+ const skillsDir = join(projectRoot, harness, 'skills');
69
+ // Only pin in harness dirs that already have monodesign installed
70
+ const monodesignDir = join(skillsDir, 'monodesign');
71
+ if (existsSync(monodesignDir) || existsSync(join(skillsDir, 'i-monodesign'))) {
72
+ dirs.push(skillsDir);
73
+ }
74
+ }
75
+ return dirs;
76
+ }
77
+
78
+ /**
79
+ * Load command metadata (descriptions for pinned skills).
80
+ */
81
+ function loadCommandMetadata() {
82
+ const metadataPath = join(__dirname, 'command-metadata.json');
83
+ if (existsSync(metadataPath)) {
84
+ return JSON.parse(readFileSync(metadataPath, 'utf-8'));
85
+ }
86
+ return {};
87
+ }
88
+
89
+ /**
90
+ * Generate a pinned skill's SKILL.md content.
91
+ */
92
+ function commandPrefixForSkillsDir(skillsDir) {
93
+ return CODEX_HARNESSES.has(basename(dirname(skillsDir))) ? '$' : '/';
94
+ }
95
+
96
+ function generatePinnedSkill(command, metadata, commandPrefix) {
97
+ const desc = metadata[command]?.description || `Shortcut for ${commandPrefix}monodesign ${command}.`;
98
+ const hint = metadata[command]?.argumentHint || '[target]';
99
+
100
+ return `---
101
+ name: ${command}
102
+ description: "${desc}"
103
+ argument-hint: "${hint}"
104
+ user-invocable: true
105
+ ---
106
+
107
+ ${PIN_MARKER}
108
+
109
+ This is a pinned shortcut for \`${commandPrefix}monodesign ${command}\`.
110
+
111
+ Invoke ${commandPrefix}monodesign ${command}, passing along any arguments provided here, and follow its instructions.
112
+ `;
113
+ }
114
+
115
+ /**
116
+ * Pin a command: create shortcut skill in all harness dirs.
117
+ */
118
+ function pin(command, projectRoot) {
119
+ const metadata = loadCommandMetadata();
120
+ const harnessDirs = findHarnessDirs(projectRoot);
121
+
122
+ if (harnessDirs.length === 0) {
123
+ console.log('No harness directories with monodesign installed found.');
124
+ return false;
125
+ }
126
+
127
+ let created = 0;
128
+
129
+ for (const skillsDir of harnessDirs) {
130
+ const commandPrefix = commandPrefixForSkillsDir(skillsDir);
131
+ const content = generatePinnedSkill(command, metadata, commandPrefix);
132
+ // Check if skill already exists (and isn't a pin)
133
+ const skillDir = join(skillsDir, command);
134
+ if (existsSync(skillDir)) {
135
+ const existingMd = join(skillDir, 'SKILL.md');
136
+ if (existsSync(existingMd)) {
137
+ const existing = readFileSync(existingMd, 'utf-8');
138
+ if (!existing.includes(PIN_MARKER)) {
139
+ console.log(` SKIP: ${skillDir} (non-pinned skill already exists)`);
140
+ continue;
141
+ }
142
+ }
143
+ }
144
+
145
+ mkdirSync(skillDir, { recursive: true });
146
+ writeFileSync(join(skillDir, 'SKILL.md'), content, 'utf-8');
147
+ console.log(` + ${skillDir}`);
148
+ created++;
149
+ }
150
+
151
+ if (created > 0) {
152
+ console.log(`\nPinned '${command}' as a standalone shortcut in ${created} location(s).`);
153
+ console.log('Use the pinned command directly in each harness.');
154
+ }
155
+
156
+ return created > 0;
157
+ }
158
+
159
+ /**
160
+ * Unpin a command: remove shortcut skill from all harness dirs.
161
+ */
162
+ function unpin(command, projectRoot) {
163
+ const harnessDirs = findHarnessDirs(projectRoot);
164
+ let removed = 0;
165
+
166
+ for (const skillsDir of harnessDirs) {
167
+ const skillDir = join(skillsDir, command);
168
+ if (!existsSync(skillDir)) continue;
169
+
170
+ const skillMd = join(skillDir, 'SKILL.md');
171
+ if (!existsSync(skillMd)) continue;
172
+
173
+ // Safety: only remove if it's a pinned skill
174
+ const content = readFileSync(skillMd, 'utf-8');
175
+ if (!content.includes(PIN_MARKER)) {
176
+ console.log(` SKIP: ${skillDir} (not a pinned skill)`);
177
+ continue;
178
+ }
179
+
180
+ rmSync(skillDir, { recursive: true, force: true });
181
+ console.log(` - ${skillDir}`);
182
+ removed++;
183
+ }
184
+
185
+ if (removed > 0) {
186
+ console.log(`\nUnpinned '${command}' from ${removed} location(s).`);
187
+ console.log(`Use Monodesign's '${command}' workflow directly to access it.`);
188
+ } else {
189
+ console.log(`No pinned '${command}' shortcut found.`);
190
+ }
191
+
192
+ return removed > 0;
193
+ }
194
+
195
+ // --- CLI ---
196
+ const [,, action, command] = process.argv;
197
+
198
+ if (!action || !command) {
199
+ console.log('Usage: node pin.mjs <pin|unpin> <command>');
200
+ console.log(`\nAvailable commands: ${VALID_COMMANDS.join(', ')}`);
201
+ process.exit(1);
202
+ }
203
+
204
+ if (action !== 'pin' && action !== 'unpin') {
205
+ console.error(`Unknown action: ${action}. Use 'pin' or 'unpin'.`);
206
+ process.exit(1);
207
+ }
208
+
209
+ if (!VALID_COMMANDS.includes(command)) {
210
+ console.error(`Unknown command: ${command}`);
211
+ console.error(`Available commands: ${VALID_COMMANDS.join(', ')}`);
212
+ process.exit(1);
213
+ }
214
+
215
+ const root = findProjectRoot();
216
+
217
+ if (action === 'pin') {
218
+ pin(command, root);
219
+ } else {
220
+ unpin(command, root);
221
+ }
@@ -1,69 +1,18 @@
1
1
  ---
2
2
  name: monodesign-teach
3
- description: Create or update PRODUCT.mdextract product context, users, brand voice, and design principles from the codebase, existing files, and conversation to anchor all future monodesign work.
3
+ description: Alias of /monodesign initset up a project for monodesign by producing PRODUCT.md (strategic context), optionally DESIGN.md (visual system), and pre-configuring live mode.
4
4
  type: design-sub-command
5
5
  argument-hint: "[project path or description]"
6
6
  user-invocable: true
7
7
  ---
8
8
 
9
- # Monodesign: Teach
9
+ # Monodesign: Teach (alias of Init)
10
10
 
11
- Create or update `PRODUCT.md` the required context anchor for all `/monodesign` sub-commands.
11
+ `teach` is the historical name for the setup command and remains fully supported; it is an alias of `init`. Both invocations behave identically.
12
12
 
13
- `PRODUCT.md` is not a design document it's the product context document. It answers: who uses this, what is it for, what is the brand personality, and what design anti-references should be avoided.
13
+ Follow `commands/init.md` and the authoritative flow in `reference/init.md` from the monodesign skill directory: one codebase crawl plus a short strategic interview produces **PRODUCT.md** (register, users, purpose, brand personality, anti-references, design principles), offers **DESIGN.md** via `/monodesign document`, and pre-configures `.monodesign/live/config.json` for `/monodesign live`.
14
14
 
15
- ## When to Run
15
+ Notes preserved from the teach era:
16
16
 
17
- Run `/monodesign teach` when:
18
- - Starting work on a new project with no `PRODUCT.md`
19
- - The existing `PRODUCT.md` is empty, placeholder (<200 chars), or has `[TODO]` markers
20
- - The product has significantly evolved and the `PRODUCT.md` is stale
21
-
22
- ## Discovery Protocol
23
-
24
- **Step 1: Gather existing signals**
25
-
26
- Read the following files if they exist:
27
- - `README.md` — what is this product?
28
- - `package.json` — name, description, keywords
29
- - Any landing page copy (`index.html`, `src/pages/index.astro`, etc.)
30
- - Existing `PRODUCT.md` (to assess completeness)
31
-
32
- If a description or tagline exists, extract: target user, core value proposition, brand personality signals.
33
-
34
- **Step 2: Ask for what's missing**
35
-
36
- Ask the user 3–5 targeted questions based on what couldn't be inferred:
37
- - Who specifically uses this? (Role, context, skill level)
38
- - What's the one thing this does better than alternatives?
39
- - Three words that describe the brand personality
40
- - What design style do you want to AVOID? (anti-references)
41
- - Is this a marketing surface, product UI, or both?
42
-
43
- **Step 3: Write PRODUCT.md**
44
-
45
- ```markdown
46
- # Product
47
-
48
- ## Register
49
- [brand | product | both]
50
-
51
- ## Users
52
- [Specific description of who uses this — not "developers", but "senior engineers at mid-size SaaS companies who need to..."]
53
-
54
- ## Product Purpose
55
- [What this does and why it matters to those users. One paragraph.]
56
-
57
- ## Brand Personality
58
- [3 words + a description of the tone. Direct, specific, no hedging.]
59
-
60
- ## Anti-references
61
- [Specific things this product should NOT look like. Brand names, aesthetics, clichés to avoid.]
62
-
63
- ## Design Principles
64
- [3–5 opinionated principles that guide all design decisions.]
65
- ```
66
-
67
- ## After Writing
68
-
69
- Confirm with the user that the PRODUCT.md is accurate before continuing to any design work. The PRODUCT.md is the foundation — if it's wrong, everything built on it is built on the wrong foundation.
17
+ - A legacy `.monodesign.md` at the project root is auto-renamed to `PRODUCT.md` by the context loader; mention this once and merge into that content rather than starting fresh.
18
+ - If teach was invoked as a setup blocker by another monodesign command, complete the init flow, then resume the original task with the fresh context.
@@ -365,7 +365,7 @@ Everything runs from inside Claude Code via slash commands. Here's the highlight
365
365
  graph TD
366
366
  CC["Claude Code"]
367
367
  MCP["MCP Server\nmonomind mcp start"]
368
- D["Background Workers\n(@monomind/hooks, in-process)"]
368
+ D["Background Workers\n(@monoes/hooks, in-process)"]
369
369
  ORG["OrgDaemon\nmonomind org run\nreal SDK sessions"]
370
370
 
371
371
  CC <-->|"MCP tools: monograph, memory"| MCP
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * CLI Design Detect Command
3
- * Thin wrapper around impeccable's design anti-pattern detector
3
+ * Thin wrapper around the bundled @monoes/monodesign anti-pattern detector
4
4
  *
5
5
  * github.com/monoes/monomind
6
6
  */
@@ -16,6 +16,12 @@ export interface DesignDetectResult {
16
16
  patterns: DesignAntiPattern[];
17
17
  count: number;
18
18
  }
19
+ /**
20
+ * Resolve the bundled monodesign CLI entry (cli/bin/cli.js) from the
21
+ * @monoes/monodesign package. Falls back to the monorepo sibling layout when
22
+ * running from a source checkout without installed workspace links.
23
+ */
24
+ export declare function resolveMonodesignCli(): string | null;
19
25
  export declare const designCommand: Command;
20
26
  export default designCommand;
21
27
  //# sourceMappingURL=design-detect.d.ts.map
@@ -1,39 +1,52 @@
1
1
  /**
2
2
  * CLI Design Detect Command
3
- * Thin wrapper around impeccable's design anti-pattern detector
3
+ * Thin wrapper around the bundled @monoes/monodesign anti-pattern detector
4
4
  *
5
5
  * github.com/monoes/monomind
6
6
  */
7
7
  import { output } from '../output.js';
8
- import { spawn, execFile } from 'child_process';
9
- import { promisify } from 'util';
8
+ import { spawn } from 'child_process';
9
+ import { createRequire } from 'module';
10
+ import { dirname, join } from 'path';
11
+ import { existsSync } from 'fs';
12
+ import { fileURLToPath } from 'url';
10
13
  import { paletteSubcommand } from './design-palette.js';
11
- const execFileAsync = promisify(execFile);
12
14
  // ─── Helpers ─────────────────────────────────────────────────────────────────
13
- async function isImpeccableAvailable() {
15
+ /**
16
+ * Resolve the bundled monodesign CLI entry (cli/bin/cli.js) from the
17
+ * @monoes/monodesign package. Falls back to the monorepo sibling layout when
18
+ * running from a source checkout without installed workspace links.
19
+ */
20
+ export function resolveMonodesignCli() {
21
+ // 1. Normal resolution through the package's "./engine" export.
14
22
  try {
15
- await execFileAsync('npx', ['--no-install', 'impeccable', '--version'], { timeout: 5000 });
16
- return true;
23
+ const require = createRequire(import.meta.url);
24
+ const enginePath = require.resolve('@monoes/monodesign/engine');
25
+ const binPath = join(dirname(enginePath), '..', 'bin', 'cli.js');
26
+ if (existsSync(binPath))
27
+ return binPath;
17
28
  }
18
29
  catch {
19
- // Try checking via which
20
- try {
21
- await execFileAsync('which', ['impeccable'], { timeout: 3000 });
22
- return true;
23
- }
24
- catch {
25
- return false;
26
- }
30
+ // fall through to monorepo-relative lookup
31
+ }
32
+ // 2. Monorepo layout: packages/@monomind/cli/{src|dist/src}/commands/ packages/@monoes/monodesign
33
+ const here = dirname(fileURLToPath(import.meta.url));
34
+ for (const toCliRoot of ['../..', '../../..']) {
35
+ // <cli root>/../../@monoes/monodesign = packages/@monoes/monodesign
36
+ const candidate = join(here, toCliRoot, '..', '..', '@monoes', 'monodesign', 'cli', 'bin', 'cli.js');
37
+ if (existsSync(candidate))
38
+ return candidate;
27
39
  }
40
+ return null;
28
41
  }
29
- function runImpeccable(args) {
42
+ function runMonodesign(cliPath, args) {
30
43
  return new Promise((resolve) => {
31
- const child = spawn('npx', ['impeccable', 'detect', ...args], {
44
+ const child = spawn(process.execPath, [cliPath, ...args], {
32
45
  stdio: 'inherit',
33
46
  shell: false,
34
47
  });
35
48
  child.on('error', (err) => {
36
- output.printError(`Failed to run impeccable: ${err.message}`);
49
+ output.printError(`Failed to run the monodesign detector: ${err.message}`);
37
50
  resolve(1);
38
51
  });
39
52
  child.on('close', (code) => {
@@ -41,10 +54,18 @@ function runImpeccable(args) {
41
54
  });
42
55
  });
43
56
  }
57
+ function printEngineMissing() {
58
+ output.writeln();
59
+ output.writeln(output.warning('The bundled monodesign detection engine could not be found.'));
60
+ output.writeln();
61
+ output.writeln('The detector ships with @monoes/monodesign. Reinstall monomind to restore it:');
62
+ output.writeln(output.dim(' npm install -g monomind # or: pnpm install (in a monomind checkout)'));
63
+ output.writeln();
64
+ }
44
65
  // ─── detect subcommand ────────────────────────────────────────────────────────
45
66
  const detectSubcommand = {
46
67
  name: 'detect',
47
- description: 'Detect design anti-patterns in HTML/CSS files using impeccable',
68
+ description: 'Detect design anti-patterns in HTML/CSS files using the bundled monodesign engine',
48
69
  options: [
49
70
  {
50
71
  name: 'target',
@@ -70,28 +91,96 @@ const detectSubcommand = {
70
91
  output.writeln();
71
92
  output.writeln(output.bold('Design Anti-Pattern Detection'));
72
93
  output.writeln(output.dim('─'.repeat(50)));
73
- const available = await isImpeccableAvailable();
74
- if (!available) {
75
- output.writeln();
76
- output.writeln(output.warning('impeccable is not installed.'));
77
- output.writeln();
78
- output.writeln('Install it to enable design anti-pattern detection:');
79
- output.writeln(output.dim(' npm install -g impeccable'));
80
- output.writeln();
81
- output.writeln('Or run directly without installing:');
82
- output.writeln(output.dim(' npx impeccable detect <file-or-dir>'));
83
- output.writeln();
84
- output.writeln(output.dim('impeccable checks for 46 known design anti-patterns across:'));
85
- output.writeln(output.dim(' • slop — AI tells: purple palettes, side-tabs, card grids, italic-serif heroes'));
86
- output.writeln(output.dim(' • quality — spacing, hierarchy, readability, contrast, motion, typography'));
87
- return { success: false, message: 'impeccable not installed' };
94
+ const cliPath = resolveMonodesignCli();
95
+ if (!cliPath) {
96
+ printEngineMissing();
97
+ return { success: false, message: 'monodesign detection engine not found' };
88
98
  }
89
99
  output.writeln(output.dim(`Scanning: ${target}`));
90
100
  output.writeln();
91
- const forwardArgs = [target];
101
+ const forwardArgs = ['detect', target];
92
102
  if (jsonOutput)
93
103
  forwardArgs.push('--json');
94
- const exitCode = await runImpeccable(forwardArgs);
104
+ const exitCode = await runMonodesign(cliPath, forwardArgs);
105
+ return { success: exitCode === 0, exitCode };
106
+ },
107
+ };
108
+ // ─── fix subcommand ───────────────────────────────────────────────────────────
109
+ const fixSubcommand = {
110
+ name: 'fix',
111
+ description: 'Auto-fix design anti-patterns with a safe deterministic codemod, where one exists',
112
+ options: [
113
+ {
114
+ name: 'target',
115
+ short: 't',
116
+ type: 'string',
117
+ description: 'File or directory to fix',
118
+ default: '.',
119
+ },
120
+ {
121
+ name: 'dry-run',
122
+ type: 'boolean',
123
+ description: 'Print unified diffs of would-be changes; write nothing',
124
+ },
125
+ {
126
+ name: 'json',
127
+ type: 'boolean',
128
+ description: 'Output the fix report as JSON',
129
+ },
130
+ {
131
+ name: 'rule',
132
+ type: 'string',
133
+ description: 'Only fix the given rule ids (comma-separated)',
134
+ },
135
+ ],
136
+ examples: [
137
+ { command: 'monomind design fix', description: 'Auto-fix anti-patterns in the current directory' },
138
+ { command: 'monomind design fix -t ./src --dry-run', description: 'Preview fixes without writing' },
139
+ { command: 'monomind design fix --rule tight-leading,tiny-text', description: 'Fix only specific rules' },
140
+ ],
141
+ action: async (ctx) => {
142
+ const target = ctx.flags.target || ctx.args[0] || '.';
143
+ const dryRun = ctx.flags['dry-run'];
144
+ const jsonOutput = ctx.flags.json;
145
+ const rule = ctx.flags.rule;
146
+ output.writeln();
147
+ output.writeln(output.bold('Design Anti-Pattern Auto-Fix'));
148
+ output.writeln(output.dim('─'.repeat(50)));
149
+ const cliPath = resolveMonodesignCli();
150
+ if (!cliPath) {
151
+ printEngineMissing();
152
+ return { success: false, message: 'monodesign detection engine not found' };
153
+ }
154
+ output.writeln(output.dim(`Fixing: ${target}${dryRun ? ' (dry run)' : ''}`));
155
+ output.writeln();
156
+ const forwardArgs = ['fix', target];
157
+ if (dryRun)
158
+ forwardArgs.push('--dry-run');
159
+ if (jsonOutput)
160
+ forwardArgs.push('--json');
161
+ if (rule)
162
+ forwardArgs.push('--rule', rule);
163
+ const exitCode = await runMonodesign(cliPath, forwardArgs);
164
+ return { success: exitCode === 0, exitCode };
165
+ },
166
+ };
167
+ // ─── ignores subcommand ───────────────────────────────────────────────────────
168
+ const ignoresSubcommand = {
169
+ name: 'ignores',
170
+ description: 'Manage monodesign detector ignore rules, files, and values',
171
+ examples: [
172
+ { command: 'monomind design ignores list', description: 'Show current ignore configuration' },
173
+ { command: 'monomind design ignores add-rule <rule-id>', description: 'Ignore a detector rule project-wide' },
174
+ { command: 'monomind design ignores add-file <path>', description: 'Exclude a file from detection' },
175
+ { command: 'monomind design ignores remove-rule <rule-id>', description: 'Re-enable an ignored rule' },
176
+ ],
177
+ action: async (ctx) => {
178
+ const cliPath = resolveMonodesignCli();
179
+ if (!cliPath) {
180
+ printEngineMissing();
181
+ return { success: false, message: 'monodesign detection engine not found' };
182
+ }
183
+ const exitCode = await runMonodesign(cliPath, ['ignores', ...ctx.args]);
95
184
  return { success: exitCode === 0, exitCode };
96
185
  },
97
186
  };
@@ -99,10 +188,12 @@ const detectSubcommand = {
99
188
  export const designCommand = {
100
189
  name: 'design',
101
190
  description: 'Design tooling: anti-pattern detection, OKLCH palette seeding, and design quality checks',
102
- subcommands: [detectSubcommand, paletteSubcommand],
191
+ subcommands: [detectSubcommand, fixSubcommand, ignoresSubcommand, paletteSubcommand],
103
192
  examples: [
104
193
  { command: 'monomind design detect', description: 'Detect design anti-patterns' },
105
194
  { command: 'monomind design detect -t ./src --json', description: 'JSON output for CI' },
195
+ { command: 'monomind design fix -t ./src --dry-run', description: 'Preview safe auto-fixes' },
196
+ { command: 'monomind design ignores list', description: 'Manage detector ignore rules' },
106
197
  { command: 'monomind design palette', description: 'Pick an OKLCH brand seed color' },
107
198
  { command: 'monomind design palette --from "my-product"', description: 'Deterministic seed from product name' },
108
199
  ],
@@ -113,7 +204,9 @@ export const designCommand = {
113
204
  output.writeln();
114
205
  output.writeln('Subcommands:');
115
206
  output.printList([
116
- 'detect - Detect design anti-patterns using impeccable',
207
+ 'detect - Detect design anti-patterns (bundled monodesign engine)',
208
+ 'fix - Auto-fix anti-patterns with a safe deterministic codemod, where one exists',
209
+ 'ignores - Manage detector ignore rules, files, and values',
117
210
  'palette - OKLCH brand seed — returns anchor color + mood + composition strategy',
118
211
  ]);
119
212
  output.writeln();
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * CLI Design Palette Command
3
3
  * OKLCH brand-seed picker — returns one anchor seed color + mood + composition strategy.
4
- * Ported from impeccable's palette.mjs (129 hand-curated seeds).
5
4
  *
6
5
  * github.com/monoes/monomind
7
6
  */
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * CLI Design Palette Command
3
3
  * OKLCH brand-seed picker — returns one anchor seed color + mood + composition strategy.
4
- * Ported from impeccable's palette.mjs (129 hand-curated seeds).
5
4
  *
6
5
  * github.com/monoes/monomind
7
6
  */
@@ -496,8 +495,8 @@ export const paletteSubcommand = {
496
495
  const idFlag = ctx.flags.id;
497
496
  const fromFlag = ctx.flags.from;
498
497
  const jsonFlag = ctx.flags.json;
499
- // Respect IMPECCABLE_PALETTE_SEED env var as a fallback for --from
500
- const fromKey = fromFlag || process.env['IMPECCABLE_PALETTE_SEED'];
498
+ // Respect MONODESIGN_PALETTE_SEED env var as a fallback for --from
499
+ const fromKey = fromFlag || process.env['MONODESIGN_PALETTE_SEED'];
501
500
  let seed;
502
501
  if (idFlag) {
503
502
  const found = SEEDS.find((s) => s.id === idFlag);