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
@@ -32,7 +32,7 @@ async function main() {
32
32
  }
33
33
  // Cap the task to prevent OOM when an oversized string is passed to the embedding model.
34
34
  const task = rawTask.length > MAX_TASK_LENGTH ? rawTask.slice(0, MAX_TASK_LENGTH) : rawTask;
35
- const { RouteLayer, ALL_ROUTES } = await import('@monomind/routing');
35
+ const { RouteLayer, ALL_ROUTES } = await import('@monoes/routing');
36
36
  const semantic = await createSemanticRouting(ALL_ROUTES);
37
37
  if (!semantic) {
38
38
  // Model unavailable — signal the parent to degrade.
@@ -7,7 +7,7 @@
7
7
  * No API key required: the host's existing Claude Code auth is reused.
8
8
  *
9
9
  * The returned function matches `LLMFallbackConfig.llmCaller` from
10
- * `@monomind/routing` — `(prompt: string) => Promise<string>`. When the
10
+ * `@monoes/routing` — `(prompt: string) => Promise<string>`. When the
11
11
  * `claude` CLI is unavailable it throws, which the routing layer already
12
12
  * catches and degrades to the best semantic match.
13
13
  */
@@ -140,7 +140,7 @@ function runWorker(task) {
140
140
  });
141
141
  }
142
142
  export async function createConfiguredRouteLayer(opts = {}) {
143
- const { RouteLayer, KeywordPreFilter, LLMFallbackRouter, ALL_ROUTES } = await import('@monomind/routing');
143
+ const { RouteLayer, KeywordPreFilter, LLMFallbackRouter, ALL_ROUTES } = await import('@monoes/routing');
144
144
  const { createClaudeLLMCaller } = await import('./llm-caller.js');
145
145
  const llmCaller = createClaudeLLMCaller({ model: 'haiku' });
146
146
  const keyword = new KeywordPreFilter();
@@ -126,14 +126,17 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
126
126
  /* ── detail panel ─────────────────────────────────────────── */
127
127
  #detail-panel {
128
128
  position: absolute; top: 0; right: 252px; bottom: 0;
129
- width: 0; overflow: hidden;
129
+ width: 280px; overflow: hidden;
130
130
  background: oklch(13% 0.009 55);
131
131
  border-left: 1px solid var(--border);
132
132
  border-right: 1px solid var(--border);
133
- transition: width 0.22s cubic-bezier(0.16, 1, 0.3, 1);
133
+ /* compositor-only reveal (opacity/transform) animating width reflows on every frame */
134
+ opacity: 0; visibility: hidden; transform: translateX(12px);
135
+ transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s 0.22s;
134
136
  display: flex; flex-direction: column; z-index: 10;
135
137
  }
136
- #detail-panel.open { width: 280px; }
138
+ #detail-panel.open { opacity: 1; visibility: visible; transform: none; transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s 0s; }
139
+ @media (prefers-reduced-motion: reduce) { #detail-panel { transition: none; } #rp-fill { transition: none; } }
137
140
  #detail-head { padding: 12px 14px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
138
141
  #detail-head h3 { font-size: 12px; font-weight: 600; color: var(--text-hi); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
139
142
  #detail-close { font-size: 14px; color: var(--text-lo); background: none; border: none; cursor: pointer; padding: 0 2px; line-height: 1; }
@@ -245,7 +248,7 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
245
248
  .loop-cdown { font-family: var(--mono); font-size: 11px; color: var(--accent); white-space: nowrap; display: inline; }
246
249
  .loop-cdown.overdue { color: var(--red); }
247
250
  .lp-bar { height: 4px; background: var(--border); border-radius: 2px; margin-top: 5px; overflow: hidden; }
248
- .lp-fill { height: 100%; background: var(--accent); border-radius: 2px; transition: width 0.4s ease; }
251
+ .lp-fill { height: 100%; background: var(--accent); border-radius: 2px; }
249
252
  .loop-stop-btn { font-size: 11px; padding: 2px 8px; background: none; border: 1px solid var(--border); border-radius: 4px; color: var(--text-lo); cursor: pointer; font-family: var(--sans); }
250
253
  .loop-stop-btn:hover { border-color: var(--red); color: var(--red); }
251
254
  .loop-status.done { background: var(--surface-hi); color: var(--text-xs); }
@@ -426,8 +429,53 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
426
429
  .oms-val { font-size: 12px; color: var(--text-hi); word-break: break-word; line-height: 1.4; }
427
430
 
428
431
  /* SVG org chart */
429
- .org-chart-wrap { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; margin-bottom: 12px; }
432
+ .org-chart-wrap { position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; margin-bottom: 12px; }
430
433
  .org-chart-svg { width: 100%; display: block; }
434
+ .v2-chart-expand {
435
+ position: absolute; top: 8px; right: 8px; z-index: 3;
436
+ width: 28px; height: 28px; padding: 0;
437
+ display: grid; place-items: center;
438
+ font-size: 14px; line-height: 1; cursor: pointer;
439
+ color: oklch(60% 0.01 75); background: oklch(16% 0.01 55 / 0.85);
440
+ border: 1px solid var(--border); border-radius: 6px;
441
+ transition: color 0.15s, border-color 0.15s;
442
+ }
443
+ .v2-chart-expand:hover { color: oklch(80% 0.12 75); border-color: oklch(72% 0.18 75 / 0.5); }
444
+ #v2-chart-modal {
445
+ position: fixed; inset: 0; z-index: 1200;
446
+ display: flex; flex-direction: column;
447
+ background: oklch(9% 0.008 55 / 0.985);
448
+ opacity: 0; transition: opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1);
449
+ }
450
+ #v2-chart-modal.open { opacity: 1; }
451
+ #v2-chart-modal .v2cm-head {
452
+ display: flex; align-items: center; justify-content: space-between;
453
+ padding: 14px 20px; border-bottom: 1px solid var(--border); flex: 0 0 auto;
454
+ }
455
+ #v2-chart-modal .v2cm-title {
456
+ font-size: 14px; font-weight: 600; letter-spacing: 0.02em; color: var(--text-hi, oklch(88% 0.005 75));
457
+ }
458
+ #v2-chart-modal .v2cm-close {
459
+ width: 32px; height: 32px; padding: 0; display: grid; place-items: center;
460
+ font-size: 15px; cursor: pointer; color: oklch(60% 0.01 75);
461
+ background: oklch(16% 0.01 55); border: 1px solid var(--border); border-radius: 7px;
462
+ transition: color 0.15s, border-color 0.15s;
463
+ }
464
+ #v2-chart-modal .v2cm-close:hover { color: oklch(85% 0.01 75); border-color: oklch(50% 0.01 75); }
465
+ #v2-chart-modal .v2cm-body {
466
+ flex: 1 1 auto; min-height: 0; overflow: auto; padding: 18px 24px 24px;
467
+ transform: scale(0.985); transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
468
+ }
469
+ #v2-chart-modal.open .v2cm-body { transform: scale(1); }
470
+ #v2-chart-modal .org-chart-wrap { border: none; background: transparent; }
471
+ #v2-chart-modal .org-chart-svg { min-height: calc(100vh - 260px) !important; max-height: none; }
472
+ .v2cm-placeholder {
473
+ padding: 40px 16px; text-align: center;
474
+ color: oklch(48% 0.005 75); font-size: 12px; letter-spacing: 0.02em;
475
+ }
476
+ @media (prefers-reduced-motion: reduce) {
477
+ #v2-chart-modal, #v2-chart-modal .v2cm-body { transition: none; transform: none; }
478
+ }
431
479
  .v2-bubble-inner {
432
480
  background: oklch(18% 0.01 55 / 0.95);
433
481
  border: 1px solid oklch(72% 0.18 75 / 0.4);
@@ -744,7 +792,7 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
744
792
  .rp-btn:hover { color:var(--text-hi); }
745
793
  .rp-btn.active { color:var(--accent); border-color:oklch(72% 0.18 75 / 0.5); }
746
794
  #rp-progress { flex:1; height:3px; background:var(--surface-hi); border-radius:2px; overflow:hidden; }
747
- #rp-fill { height:100%; background:var(--accent); border-radius:2px; transition:width 0.15s; }
795
+ #rp-fill { height:100%; width:100%; background:var(--accent); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform 0.15s; }
748
796
  #rp-counter { font-size:11px; color:var(--text-lo); font-family:var(--mono); white-space:nowrap; }
749
797
 
750
798
  /* ── agent chat view ─────────────────────────────────────── */
@@ -886,7 +934,7 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
886
934
  .burn-gauge-row { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
887
935
  .burn-gauge-label { font-size:10px; color:var(--text-lo); width:60px; flex-shrink:0; }
888
936
  .burn-gauge-track { flex:1; height:6px; background:var(--surface-hi); border-radius:3px; overflow:hidden; }
889
- .burn-gauge-fill { height:100%; border-radius:3px; transition:width 0.4s, background 0.4s; }
937
+ .burn-gauge-fill { height:100%; border-radius:3px; }
890
938
  .burn-val { font-size:10px; font-family:var(--mono); color:var(--text-xs); white-space:nowrap; }
891
939
  .burn-rate-ok { background:oklch(65% 0.15 150); }
892
940
  .burn-rate-warn { background:oklch(72% 0.18 75); }
@@ -1177,7 +1225,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
1177
1225
  .mg-bar-row { display:flex; align-items:center; gap:8px; margin-bottom:5px; font-size:12px; }
1178
1226
  .mg-bar-row .mg-bar-lbl { width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-mid); flex-shrink:0; }
1179
1227
  .mg-bar-track { flex:1; background:var(--surface-hi); border-radius:3px; height:6px; overflow:hidden; }
1180
- .mg-bar-fill { height:100%; border-radius:3px; background:var(--accent); transition:width 0.3s; }
1228
+ .mg-bar-fill { height:100%; border-radius:3px; background:var(--accent); }
1181
1229
  .mg-bar-fill.mg { background:var(--mg-accent); }
1182
1230
  .mg-bar-val { width:32px; text-align:right; color:var(--text-lo); font-size:11px; font-family:var(--mono); }
1183
1231
  .mg-section-title { font-size:11px; text-transform:uppercase; letter-spacing:0.07em; color:var(--text-xs); margin:16px 0 8px; }
@@ -1213,7 +1261,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
1213
1261
  .mgr-ranked-num { font-size:10px; font-family:var(--mono); color:var(--text-lo); text-align:right; }
1214
1262
  .mgr-ranked-name { font-size:12px; color:var(--text-hi); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1215
1263
  .mgr-ranked-bar-wrap { height:3px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
1216
- .mgr-ranked-bar-fill { height:100%; border-radius:2px; background:var(--accent); transition:width 0.45s cubic-bezier(0.16,1,0.3,1); }
1264
+ .mgr-ranked-bar-fill { height:100%; border-radius:2px; background:var(--accent); transform-origin:left; transition:transform 0.45s cubic-bezier(0.16,1,0.3,1); }
1217
1265
  .mgr-ranked-val { font-size:11px; font-family:var(--mono); color:var(--accent); text-align:right; white-space:nowrap; }
1218
1266
  /* risk items */
1219
1267
  .mgr-risk-list { display:flex; flex-direction:column; gap:6px; }
@@ -1244,7 +1292,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
1244
1292
  .mgr-bar-row { display:grid; grid-template-columns:130px 1fr 70px; align-items:center; gap:10px; }
1245
1293
  .mgr-bar-label { font-size:11px; font-family:var(--mono); color:var(--text-mid); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1246
1294
  .mgr-bar-track { height:4px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
1247
- .mgr-bar-fill { height:100%; border-radius:2px; transition:width 0.5s cubic-bezier(0.16,1,0.3,1); }
1295
+ .mgr-bar-fill { height:100%; border-radius:2px; transform-origin:left; transition:transform 0.5s cubic-bezier(0.16,1,0.3,1); }
1248
1296
  .mgr-bar-count { font-size:11px; font-family:var(--mono); color:var(--text-lo); text-align:right; white-space:nowrap; }
1249
1297
  /* all-clear */
1250
1298
  .mgr-clear { font-size:12px; color:var(--green); font-family:var(--mono); padding:8px 0; display:flex; align-items:center; gap:8px; }
@@ -1301,7 +1349,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
1301
1349
  .mgr-node-name { font-size:12px; font-weight:600; color:var(--text-hi); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1302
1350
  .mgr-node-type { font-size:10px; font-family:var(--mono); color:var(--text-lo); background:oklch(25% 0.008 55); padding:2px 7px; border-radius:3px; white-space:nowrap; }
1303
1351
  .mgr-node-bar-wrap { height:3px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
1304
- .mgr-node-bar-fill { height:100%; background:var(--accent); border-radius:2px; transition:width 0.4s cubic-bezier(0.16,1,0.3,1); }
1352
+ .mgr-node-bar-fill { height:100%; background:var(--accent); border-radius:2px; transform-origin:left; transition:transform 0.4s cubic-bezier(0.16,1,0.3,1); }
1305
1353
  .mgr-node-count { font-size:11px; font-family:var(--mono); color:var(--accent); text-align:right; white-space:nowrap; }
1306
1354
 
1307
1355
  /* Type distribution */
@@ -1309,7 +1357,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
1309
1357
  .mgr-type-row { display:grid; grid-template-columns:100px 1fr 52px 44px; align-items:center; gap:12px; }
1310
1358
  .mgr-type-name { font-size:11px; font-family:var(--mono); color:var(--text-mid); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1311
1359
  .mgr-type-bar-wrap { height:4px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
1312
- .mgr-type-bar-fill { height:100%; border-radius:2px; transition:width 0.5s cubic-bezier(0.16,1,0.3,1); }
1360
+ .mgr-type-bar-fill { height:100%; border-radius:2px; transform-origin:left; transition:transform 0.5s cubic-bezier(0.16,1,0.3,1); }
1313
1361
  .mgr-type-count { font-size:11px; font-family:var(--mono); color:var(--text-mid); text-align:right; }
1314
1362
  .mgr-type-pct { font-size:10px; font-family:var(--mono); color:var(--text-lo); text-align:right; }
1315
1363
 
@@ -1445,7 +1493,7 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
1445
1493
  .wf-run-meta span { display: flex; align-items: center; gap: 4px; }
1446
1494
  .wf-run-error { font-size: 11px; color: var(--red); margin-top: 6px; font-family: var(--mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1447
1495
  .wf-progress-bar { height: 3px; background: var(--border); border-radius: 2px; margin-top: 8px; overflow: hidden; }
1448
- .wf-progress-bar-fill { height: 100%; background: var(--accent); border-radius: 2px; transition: width 0.3s; }
1496
+ .wf-progress-bar-fill { height: 100%; background: var(--accent); border-radius: 2px; }
1449
1497
  #wf-runs-list .loading-txt, #wf-defs-list .loading-txt { padding: 40px 0; text-align: center; color: var(--text-lo); }
1450
1498
  .wf-def-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 14px 16px; margin-bottom: 8px; display: flex; align-items: flex-start; gap: 14px; cursor: default; transition: border-color 0.12s; }
1451
1499
  .wf-def-card:hover { border-color: var(--accent); }
@@ -1630,7 +1678,7 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
1630
1678
  <button class="rp-btn" id="rp-play" onclick="replayToggle()" title="Play/pause replay">▶</button>
1631
1679
  <button class="rp-btn" onclick="replayStep(-1)" title="Step back">‹</button>
1632
1680
  <button class="rp-btn" onclick="replayStep(1)" title="Step forward">›</button>
1633
- <div id="rp-progress"><div id="rp-fill" style="width:0%"></div></div>
1681
+ <div id="rp-progress"><div id="rp-fill"></div></div>
1634
1682
  <span id="rp-counter">0 / 0</span>
1635
1683
  <button class="rp-btn" onclick="stopReplay()" title="Exit replay">✕</button>
1636
1684
  </div>
@@ -4924,7 +4972,7 @@ function highlightReplayEntry() {
4924
4972
  });
4925
4973
  const total = replayEvents.length;
4926
4974
  const pct = total > 1 ? Math.round(replayIdx / (total - 1) * 100) : 100;
4927
- document.getElementById('rp-fill').style.width = pct + '%';
4975
+ document.getElementById('rp-fill').style.transform = 'scaleX(' + (pct / 100) + ')';
4928
4976
  document.getElementById('rp-counter').textContent = `${replayIdx + 1} / ${total}`;
4929
4977
  // scroll into view
4930
4978
  replayEvents[replayIdx]?.scrollIntoView({ block: 'nearest' });
@@ -6050,6 +6098,43 @@ function _v2OrgIsLeader(r) {
6050
6098
  || r.agent_type === 'coordinator' || r.agent_type === 'devbot-orchestrator';
6051
6099
  }
6052
6100
 
6101
+ // ── Full-page chart modal ──────────────────────────────────────────────
6102
+ // While open, v2RenderOrgChart() renders into the modal body (wider viewBox)
6103
+ // and the inline pane holds a placeholder. Close restores the inline chart.
6104
+ let _v2ChartExpanded = false;
6105
+ function _v2ChartEsc(e) { if (e.key === 'Escape') v2ToggleChartExpand(false); }
6106
+ function v2ToggleChartExpand(open) {
6107
+ _v2ChartExpanded = !!open;
6108
+ let m = document.getElementById('v2-chart-modal');
6109
+ if (open) {
6110
+ if (!m) {
6111
+ m = document.createElement('div');
6112
+ m.id = 'v2-chart-modal';
6113
+ m.setAttribute('role', 'dialog');
6114
+ m.setAttribute('aria-modal', 'true');
6115
+ m.setAttribute('aria-label', 'Org chart, expanded view');
6116
+ m.innerHTML = `
6117
+ <div class="v2cm-head">
6118
+ <div class="v2cm-title"></div>
6119
+ <button class="v2cm-close" onclick="v2ToggleChartExpand(false)" aria-label="Close expanded chart">✕</button>
6120
+ </div>
6121
+ <div id="v2-chart-modal-body" class="v2cm-body"></div>`;
6122
+ document.body.appendChild(m);
6123
+ }
6124
+ m.querySelector('.v2cm-title').textContent = _v2SelOrg || 'Org chart';
6125
+ const inlinePane = document.getElementById('odt-chart');
6126
+ if (inlinePane) inlinePane.innerHTML = '<div class="v2cm-placeholder">Chart is expanded to full page · press Esc or ✕ to bring it back</div>';
6127
+ document.addEventListener('keydown', _v2ChartEsc);
6128
+ requestAnimationFrame(() => m.classList.add('open'));
6129
+ v2RenderOrgChart();
6130
+ m.querySelector('.v2cm-close').focus();
6131
+ } else {
6132
+ document.removeEventListener('keydown', _v2ChartEsc);
6133
+ if (m) m.remove();
6134
+ v2RenderOrgChart();
6135
+ }
6136
+ }
6137
+
6053
6138
  function v2RenderOrgChart() {
6054
6139
  if (!_v2SelOrg) return;
6055
6140
  const d = _v2OrgData;
@@ -6060,7 +6145,17 @@ function v2RenderOrgChart() {
6060
6145
  const goalText = d.goal || '—';
6061
6146
  const topo = (d.topology || 'hierarchical').toLowerCase();
6062
6147
  const created = d.created_at ? new Date(d.created_at).toLocaleDateString('en', {month:'short',day:'numeric',year:'numeric'}) : '—';
6063
- const pane = document.getElementById('odt-chart');
6148
+ // Expanded mode renders into the full-page modal instead of the inline pane.
6149
+ // Exactly ONE chart instance exists at a time — the bubble/letter/particle
6150
+ // animation code queries singleton ids (v2-org-svg, v2oc-letters, …).
6151
+ const pane = _v2ChartExpanded
6152
+ ? document.getElementById('v2-chart-modal-body')
6153
+ : document.getElementById('odt-chart');
6154
+ if (!pane) return;
6155
+ if (_v2ChartExpanded) {
6156
+ const _t = document.querySelector('#v2-chart-modal .v2cm-title');
6157
+ if (_t) _t.textContent = _v2SelOrg;
6158
+ }
6064
6159
 
6065
6160
  // ── color palette ─────────────────────────────────────
6066
6161
  const COLORS = [
@@ -6085,7 +6180,19 @@ function v2RenderOrgChart() {
6085
6180
  }
6086
6181
 
6087
6182
  // ── layout positions ──────────────────────────────────
6088
- const W = 720, R = 42, PAD_X = R + 20, PAD_Y = R + 24;
6183
+ // Expanded: width scales with head-count so nodes never overlap (inline
6184
+ // keeps the compact 720 viewBox that fits the tab column).
6185
+ let W = _v2ChartExpanded ? Math.max(1100, roles.length * 130) : 720;
6186
+ // Crowded orgs (8+ roles) get smaller rings + serpentine re-flow in BOTH
6187
+ // views, so topology reads instead of a wall of overlapping circles. Top
6188
+ // padding reserves room for activity bubbles (34px box floating 46px above
6189
+ // the ring) so message pop-ups never clip.
6190
+ const _crowded = roles.length > 7;
6191
+ const R = (_v2ChartExpanded || _crowded) ? 34 : 42;
6192
+ // Side padding must cover the 140px-wide activity bubble (70 each side of
6193
+ // a node center) or edge-column bubbles clip against the chart border.
6194
+ const PAD_X = (_v2ChartExpanded || _crowded) ? Math.max(R + 20, 78) : R + 20;
6195
+ const PAD_Y = (_v2ChartExpanded || _crowded) ? R + 96 : R + 24;
6089
6196
  const roleIds = new Set(roles.map(r => r.id));
6090
6197
  // all leaders at depth 0 (supports co-lead orgs)
6091
6198
  const leaders = roles.filter(_v2OrgIsLeader);
@@ -6182,6 +6289,31 @@ function v2RenderOrgChart() {
6182
6289
  _hubAndSpoke();
6183
6290
  }
6184
6291
 
6292
+ // ── crowded re-flow: break single-row walls into a serpentine grid ──
6293
+ // A 12-role chain or hub laid out on one line says nothing about who talks
6294
+ // to whom. When the layout degenerates to <=2 distinct rows with a crowded
6295
+ // row, re-flow in reading order into rows of ~6, reversing every other row
6296
+ // so consecutive nodes stay physically adjacent across wraps. Applies in
6297
+ // both views for 8+ roles (the inline chart scales the viewBox down).
6298
+ if (_crowded) {
6299
+ const _rowsSeen = new Set(Object.values(pos).map(p => Math.round(p.y)));
6300
+ const _widest = Math.max(..._rowsSeen.size ? [..._rowsSeen].map(y => Object.values(pos).filter(p => Math.round(p.y) === y).length) : [0]);
6301
+ if (_rowsSeen.size <= 2 && _widest > 7) {
6302
+ const seq = [...roles].sort((a, b) => (pos[a.id].y - pos[b.id].y) || (pos[a.id].x - pos[b.id].x));
6303
+ const perRow = Math.min(6, Math.ceil(seq.length / Math.ceil(seq.length / 6)));
6304
+ const COL_W = 185, ROW_H = 205;
6305
+ seq.forEach((r, i) => {
6306
+ const row = Math.floor(i / perRow);
6307
+ let col = i % perRow;
6308
+ if (row % 2 === 1) col = perRow - 1 - col; // serpentine
6309
+ pos[r.id] = { x: PAD_X + col * COL_W, y: PAD_Y + row * ROW_H };
6310
+ });
6311
+ const rows = Math.ceil(seq.length / perRow);
6312
+ W = PAD_X * 2 + (perRow - 1) * COL_W;
6313
+ _layoutH = PAD_Y + (rows - 1) * ROW_H + R + 28;
6314
+ }
6315
+ }
6316
+
6185
6317
  const H = _layoutH || (hasSubs ? 320 : 180);
6186
6318
 
6187
6319
  // ── build edge SVG strings with offset parallel arrows ─
@@ -6217,7 +6349,19 @@ function v2RenderOrgChart() {
6217
6349
  } else {
6218
6350
  stroke='oklch(65% 0.15 150)'; dash=''; marker='v2ah'; opacity=0.6; sw=1.5;
6219
6351
  }
6220
- edgesHTML += `<path id="${pid}" class="v2oc-edge" d="M${x1},${y1} L${x2},${y2}" stroke="${stroke}" stroke-opacity="${opacity}" stroke-width="${sw}" ${dash?`stroke-dasharray="${dash}"`:''} fill="none" marker-end="url(#${marker})"/>`;
6352
+ // Long spans (the boss fan-out crossing rows) bow outward as quadratic
6353
+ // curves so crossings separate; short neighbor links stay straight.
6354
+ const _spanLen = len - (trimS + trimE);
6355
+ let dAttr;
6356
+ if (_spanLen > 260) {
6357
+ const sag = Math.min(56, _spanLen * 0.14) * edgeSide * canonDir;
6358
+ const mx = ((+x1 + +x2) / 2 + px * sag).toFixed(1);
6359
+ const my = ((+y1 + +y2) / 2 + py * sag).toFixed(1);
6360
+ dAttr = `M${x1},${y1} Q${mx},${my} ${x2},${y2}`;
6361
+ } else {
6362
+ dAttr = `M${x1},${y1} L${x2},${y2}`;
6363
+ }
6364
+ edgesHTML += `<path id="${pid}" class="v2oc-edge" d="${dAttr}" stroke="${stroke}" stroke-opacity="${opacity}" stroke-width="${sw}" ${dash?`stroke-dasharray="${dash}"`:''} fill="none" marker-end="url(#${marker})"/>`;
6221
6365
 
6222
6366
  // Animated flow particle on command edges
6223
6367
  if (edge.type === 'command') {
@@ -6269,13 +6413,15 @@ function v2RenderOrgChart() {
6269
6413
  });
6270
6414
 
6271
6415
  // ── assemble HTML ─────────────────────────────────────
6416
+ // Expanded view: the chart owns the space — meta cards stay in the tab.
6272
6417
  pane.innerHTML = `
6273
- <div class="org-meta-strip">
6418
+ ${_v2ChartExpanded ? '' : `<div class="org-meta-strip">
6274
6419
  <div class="oms-cell"><div class="oms-lbl">Goal</div><div class="oms-val" style="color:var(--text-mid);font-size:11px;line-height:1.4">${esc(goalText)}</div></div>
6275
6420
  <div class="oms-cell"><div class="oms-lbl">Topology</div><div class="oms-val">${esc(topo)}</div></div>
6276
6421
  <div class="oms-cell"><div class="oms-lbl">Created</div><div class="oms-val" style="color:var(--text-mid)">${esc(created)}</div></div>
6277
- </div>
6422
+ </div>`}
6278
6423
  <div class="org-chart-wrap">
6424
+ ${_v2ChartExpanded ? '' : `<button class="v2-chart-expand" onclick="v2ToggleChartExpand(true)" title="Expand chart to full page" aria-label="Expand chart to full page">⛶</button>`}
6279
6425
  <svg class="org-chart-svg" id="v2-org-svg" viewBox="0 0 ${W} ${H}" style="min-height:${Math.round(H * 0.5)}px">
6280
6426
  <defs>
6281
6427
  <marker id="v2ac" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0,0.5 L0,6.5 L6,3.5 z" fill="oklch(72% 0.18 75 / 0.8)"/></marker>
@@ -6320,7 +6466,7 @@ function v2RenderOrgChart() {
6320
6466
  } else {
6321
6467
  // CSS fallback: simple fade-in stagger
6322
6468
  pane.querySelectorAll('.v2oc-node').forEach((el, i) => {
6323
- el.style.animation = `v2nodeIn 0.45s cubic-bezier(0.34,1.56,0.64,1) ${(i * 0.08).toFixed(2)}s forwards`;
6469
+ el.style.animation = `v2nodeIn 0.45s cubic-bezier(0.16,1,0.3,1) ${(i * 0.08).toFixed(2)}s forwards`;
6324
6470
  el.style.opacity = '0';
6325
6471
  });
6326
6472
  }
@@ -12156,8 +12302,8 @@ function mgShowResult(title, html) {
12156
12302
  requestAnimationFrame(() => {
12157
12303
  if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
12158
12304
  panel.querySelectorAll('.mgr-ranked-bar-fill, .mgr-bar-fill').forEach(b => {
12159
- const w = b.style.width; b.style.width = '0';
12160
- requestAnimationFrame(() => { b.style.width = w; });
12305
+ b.style.transform = 'scaleX(0)';
12306
+ requestAnimationFrame(() => { b.style.transform = 'scaleX(1)'; });
12161
12307
  });
12162
12308
  });
12163
12309
  }
@@ -13075,9 +13221,8 @@ function mgRenderReport(markdown, el, stats) {
13075
13221
  requestAnimationFrame(() => {
13076
13222
  if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
13077
13223
  el.querySelectorAll('.mgr-node-bar-fill, .mgr-type-bar-fill').forEach(b => {
13078
- const w = b.style.width;
13079
- b.style.width = '0';
13080
- requestAnimationFrame(() => { b.style.width = w; });
13224
+ b.style.transform = 'scaleX(0)';
13225
+ requestAnimationFrame(() => { b.style.transform = 'scaleX(1)'; });
13081
13226
  });
13082
13227
  });
13083
13228
  }
@@ -13633,8 +13778,13 @@ async function secondBrainSearch() {
13633
13778
  results.map(function (res) {
13634
13779
  var srcTag = (res.tags || []).find(function (t) { return t.indexOf('src:') === 0; });
13635
13780
  var label = srcTag ? srcTag.slice(4).split('/').slice(-2).join('/') : (res.key || '');
13781
+ // Surface badge: the endpoint fuses chunks + KG triplets + rules +
13782
+ // pattern memories (RRF); show non-chunk kinds so users see where a
13783
+ // hit came from.
13784
+ var kindBadge = res.triplet ? 'kg' : (res.rule ? 'rule' : (res.memory ? 'memory' : ''));
13636
13785
  return '<div style="border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:6px">' +
13637
13786
  '<div style="font-size:10px;color:var(--text-lo);margin-bottom:3px">' + esc(label) +
13787
+ (kindBadge ? ' <span style="color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:0 4px">' + kindBadge + '</span>' : '') +
13638
13788
  (res.global ? ' <span style="color:var(--accent-dim,#888);border:1px solid var(--border);border-radius:4px;padding:0 4px">global</span>' : '') +
13639
13789
  ' <span style="color:var(--accent)">' + (typeof res.score === 'number' ? res.score.toFixed(2) : '') + '</span></div>' +
13640
13790
  '<div style="font-size:12px;white-space:pre-wrap;max-height:120px;overflow:hidden">' + esc(String(res.content || '').slice(0, 600)) + '</div>' +
@@ -976,6 +976,7 @@ html, body {
976
976
  <div id="health-grid" class="health-grid"></div>
977
977
  <div id="health-detail"></div>
978
978
  <div id="health-history"></div>
979
+ <div id="health-memory"></div>
979
980
  </div>
980
981
  </div>
981
982
 
@@ -1762,6 +1763,7 @@ function renderHealth() {
1762
1763
  }
1763
1764
 
1764
1765
  loadRunHistory();
1766
+ loadOrgMemory();
1765
1767
  }
1766
1768
 
1767
1769
  // Run history (history.jsonl, written by the daemon at each stopOrg): outcome,
@@ -1793,6 +1795,28 @@ async function loadRunHistory() {
1793
1795
  } catch (_) { el.innerHTML = ''; }
1794
1796
  }
1795
1797
 
1798
+ // Org memory: knowledge-graph size, learned entities, and distilled rules
1799
+ // (accumulated across runs via org_learn / heuristic extraction).
1800
+ async function loadOrgMemory() {
1801
+ const el = document.getElementById('health-memory');
1802
+ if (!el || !selectedOrg) return;
1803
+ try {
1804
+ const listOrg = allOrgs.find(o => o.name === selectedOrg) || {};
1805
+ const r = await fetch(`/api/orgs/${encodeURIComponent(selectedOrg)}/memory?dir=${encodeURIComponent(listOrg.projectDir || '')}`);
1806
+ if (!r.ok) { el.innerHTML = ''; return; }
1807
+ const m = await r.json();
1808
+ if (!m.nodes && !m.rules) { el.innerHTML = ''; return; }
1809
+ el.innerHTML = `
1810
+ <div style="margin-top:16px">
1811
+ <div style="font-size:8px;letter-spacing:2px;color:var(--dim);margin-bottom:8px">ORG MEMORY — ${Number(m.nodes) || 0} ENTITIES · ${Number(m.edges) || 0} RELATIONS · ${Number(m.rules) || 0} RULES</div>
1812
+ ${Array.isArray(m.glossary) && m.glossary.length ? `
1813
+ <div style="font-size:9px;color:var(--muted);line-height:1.7">${m.glossary.map(g => `<span style="border:1px solid oklch(50% 0 0 / 0.25);border-radius:3px;padding:1px 5px;margin-right:4px;white-space:nowrap;display:inline-block;margin-bottom:3px">${esc(g)}</span>`).join('')}</div>` : ''}
1814
+ ${Array.isArray(m.ruleTexts) && m.ruleTexts.length ? m.ruleTexts.map(t => `
1815
+ <div style="font-size:9px;padding:4px 0;border-bottom:1px solid oklch(50% 0 0 / 0.1);color:var(--muted)">▸ ${esc(t)}</div>`).join('') : ''}
1816
+ </div>`;
1817
+ } catch (_) { el.innerHTML = ''; }
1818
+ }
1819
+
1796
1820
  // ── CHAT TAB ──────────────────────────────────────────────────────
1797
1821
  let chatSessions = []; // all sessions from /api/mastermind/sessions
1798
1822
  let chatCurrentId = null; // currently viewed session id