mirror-mind 0.0.1 → 0.32.1

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 (467) hide show
  1. package/.claude/hooks/log-session-end.sh +85 -0
  2. package/.claude/hooks/log-user-prompt.sh +85 -0
  3. package/.claude/hooks/mirror-inject.sh +85 -0
  4. package/.claude/hooks/session-start.sh +85 -0
  5. package/.gemini/hooks/log-assistant.sh +85 -0
  6. package/.gemini/hooks/log-user.sh +85 -0
  7. package/.gemini/hooks/session-end.sh +85 -0
  8. package/.gemini/hooks/session-start.sh +85 -0
  9. package/.pi/extensions/mirror-logger.ts +561 -0
  10. package/.pi/skills/mm-backup/SKILL.md +21 -0
  11. package/.pi/skills/mm-build/SKILL.md +1206 -0
  12. package/.pi/skills/mm-consolidate/SKILL.md +112 -0
  13. package/.pi/skills/mm-consult/SKILL.md +70 -0
  14. package/.pi/skills/mm-conversations/SKILL.md +16 -0
  15. package/.pi/skills/mm-discard/SKILL.md +39 -0
  16. package/.pi/skills/mm-explore/SKILL.md +255 -0
  17. package/.pi/skills/mm-help/SKILL.md +74 -0
  18. package/.pi/skills/mm-identity/SKILL.md +96 -0
  19. package/.pi/skills/mm-journal/SKILL.md +16 -0
  20. package/.pi/skills/mm-journey/SKILL.md +23 -0
  21. package/.pi/skills/mm-journeys/SKILL.md +15 -0
  22. package/.pi/skills/mm-memories/SKILL.md +17 -0
  23. package/.pi/skills/mm-mirror/SKILL.md +98 -0
  24. package/.pi/skills/mm-mute/SKILL.md +18 -0
  25. package/.pi/skills/mm-new/SKILL.md +18 -0
  26. package/.pi/skills/mm-recall/SKILL.md +17 -0
  27. package/.pi/skills/mm-release-notes/SKILL.md +52 -0
  28. package/.pi/skills/mm-seed/SKILL.md +19 -0
  29. package/.pi/skills/mm-shadow/SKILL.md +117 -0
  30. package/.pi/skills/mm-soul/SKILL.md +502 -0
  31. package/.pi/skills/mm-tasks/SKILL.md +24 -0
  32. package/.pi/skills/mm-update/SKILL.md +32 -0
  33. package/.pi/skills/mm-week/SKILL.md +28 -0
  34. package/.pi/skills/mm-welcome/SKILL.md +24 -0
  35. package/AGENTS.md +188 -0
  36. package/README.md +126 -9
  37. package/bin/loader.js +67 -0
  38. package/bin/mirror-hook.js +7 -0
  39. package/bin/mirror.js +7 -0
  40. package/docs/releases/index.md +99 -0
  41. package/docs/releases/pending-cutoffs.md +510 -0
  42. package/docs/releases/v0.10.0.md +123 -0
  43. package/docs/releases/v0.10.1.md +66 -0
  44. package/docs/releases/v0.10.10.md +51 -0
  45. package/docs/releases/v0.10.11.md +39 -0
  46. package/docs/releases/v0.10.12.md +57 -0
  47. package/docs/releases/v0.10.13.md +35 -0
  48. package/docs/releases/v0.10.14.md +42 -0
  49. package/docs/releases/v0.10.15.md +53 -0
  50. package/docs/releases/v0.10.16.md +35 -0
  51. package/docs/releases/v0.10.17.md +43 -0
  52. package/docs/releases/v0.10.2.md +64 -0
  53. package/docs/releases/v0.10.3.md +78 -0
  54. package/docs/releases/v0.10.4.md +42 -0
  55. package/docs/releases/v0.10.5.md +57 -0
  56. package/docs/releases/v0.10.6.md +47 -0
  57. package/docs/releases/v0.10.7.md +53 -0
  58. package/docs/releases/v0.10.8.md +49 -0
  59. package/docs/releases/v0.10.9.md +37 -0
  60. package/docs/releases/v0.11.0.md +86 -0
  61. package/docs/releases/v0.12.0.md +67 -0
  62. package/docs/releases/v0.13.0.md +64 -0
  63. package/docs/releases/v0.14.0.md +68 -0
  64. package/docs/releases/v0.15.0.md +48 -0
  65. package/docs/releases/v0.16.0.md +50 -0
  66. package/docs/releases/v0.16.1.md +55 -0
  67. package/docs/releases/v0.16.2.md +36 -0
  68. package/docs/releases/v0.17.0.md +50 -0
  69. package/docs/releases/v0.17.1.md +58 -0
  70. package/docs/releases/v0.17.2.md +42 -0
  71. package/docs/releases/v0.17.3.md +58 -0
  72. package/docs/releases/v0.18.0.md +84 -0
  73. package/docs/releases/v0.18.1.md +51 -0
  74. package/docs/releases/v0.18.2.md +69 -0
  75. package/docs/releases/v0.19.0.md +85 -0
  76. package/docs/releases/v0.19.1.md +46 -0
  77. package/docs/releases/v0.20.0.md +85 -0
  78. package/docs/releases/v0.21.0.md +61 -0
  79. package/docs/releases/v0.21.1.md +47 -0
  80. package/docs/releases/v0.22.0.md +77 -0
  81. package/docs/releases/v0.22.1.md +42 -0
  82. package/docs/releases/v0.23.0.md +105 -0
  83. package/docs/releases/v0.24.0.md +125 -0
  84. package/docs/releases/v0.25.0.md +107 -0
  85. package/docs/releases/v0.26.0.md +139 -0
  86. package/docs/releases/v0.26.1.md +65 -0
  87. package/docs/releases/v0.26.2.md +43 -0
  88. package/docs/releases/v0.27.0.md +63 -0
  89. package/docs/releases/v0.28.0.md +59 -0
  90. package/docs/releases/v0.29.0.md +61 -0
  91. package/docs/releases/v0.29.1.md +59 -0
  92. package/docs/releases/v0.29.2.md +59 -0
  93. package/docs/releases/v0.29.3.md +93 -0
  94. package/docs/releases/v0.30.0.md +75 -0
  95. package/docs/releases/v0.30.1.md +93 -0
  96. package/docs/releases/v0.30.2.md +66 -0
  97. package/docs/releases/v0.31.0.md +122 -0
  98. package/docs/releases/v0.31.1.md +142 -0
  99. package/docs/releases/v0.31.10.md +118 -0
  100. package/docs/releases/v0.31.11.md +88 -0
  101. package/docs/releases/v0.31.12.md +105 -0
  102. package/docs/releases/v0.31.13.md +99 -0
  103. package/docs/releases/v0.31.14.md +97 -0
  104. package/docs/releases/v0.31.2.md +115 -0
  105. package/docs/releases/v0.31.3.md +142 -0
  106. package/docs/releases/v0.31.4.md +117 -0
  107. package/docs/releases/v0.31.5.md +155 -0
  108. package/docs/releases/v0.31.6.md +132 -0
  109. package/docs/releases/v0.31.7.md +132 -0
  110. package/docs/releases/v0.31.8.md +120 -0
  111. package/docs/releases/v0.31.9.md +120 -0
  112. package/docs/releases/v0.32.0.md +261 -0
  113. package/docs/releases/v0.32.1.md +59 -0
  114. package/docs/releases/v0.8.0.md +118 -0
  115. package/docs/releases/v0.9.0.md +98 -0
  116. package/docs/releases/v0.9.1.md +83 -0
  117. package/package.json +102 -6
  118. package/plugins/mirror-mind/.claude-plugin/plugin.json +13 -0
  119. package/plugins/mirror-mind/hooks/hooks.json +50 -0
  120. package/plugins/mirror-mind/hooks/log-session-end.sh +98 -0
  121. package/plugins/mirror-mind/hooks/log-user-prompt.sh +98 -0
  122. package/plugins/mirror-mind/hooks/mirror-inject.sh +98 -0
  123. package/plugins/mirror-mind/hooks/session-start.sh +98 -0
  124. package/plugins/mirror-mind/mcp/launch.sh +52 -0
  125. package/plugins/mirror-mind/skills/mm-backup/SKILL.md +27 -0
  126. package/plugins/mirror-mind/skills/mm-build/SKILL.md +1206 -0
  127. package/plugins/mirror-mind/skills/mm-consolidate/SKILL.md +112 -0
  128. package/plugins/mirror-mind/skills/mm-consult/SKILL.md +83 -0
  129. package/plugins/mirror-mind/skills/mm-conversations/SKILL.md +17 -0
  130. package/plugins/mirror-mind/skills/mm-discard/SKILL.md +40 -0
  131. package/plugins/mirror-mind/skills/mm-explore/SKILL.md +241 -0
  132. package/plugins/mirror-mind/skills/mm-help/SKILL.md +104 -0
  133. package/plugins/mirror-mind/skills/mm-identity/SKILL.md +96 -0
  134. package/plugins/mirror-mind/skills/mm-journal/SKILL.md +21 -0
  135. package/plugins/mirror-mind/skills/mm-journey/SKILL.md +37 -0
  136. package/plugins/mirror-mind/skills/mm-journeys/SKILL.md +15 -0
  137. package/plugins/mirror-mind/skills/mm-memories/SKILL.md +20 -0
  138. package/plugins/mirror-mind/skills/mm-mirror/SKILL.md +65 -0
  139. package/plugins/mirror-mind/skills/mm-mute/SKILL.md +18 -0
  140. package/plugins/mirror-mind/skills/mm-new/SKILL.md +18 -0
  141. package/plugins/mirror-mind/skills/mm-recall/SKILL.md +17 -0
  142. package/plugins/mirror-mind/skills/mm-release-notes/SKILL.md +31 -0
  143. package/plugins/mirror-mind/skills/mm-seed/SKILL.md +15 -0
  144. package/plugins/mirror-mind/skills/mm-shadow/SKILL.md +117 -0
  145. package/plugins/mirror-mind/skills/mm-soul/SKILL.md +488 -0
  146. package/plugins/mirror-mind/skills/mm-tasks/SKILL.md +36 -0
  147. package/plugins/mirror-mind/skills/mm-update/SKILL.md +30 -0
  148. package/plugins/mirror-mind/skills/mm-week/SKILL.md +46 -0
  149. package/plugins/mirror-mind/skills/mm-welcome/SKILL.md +22 -0
  150. package/scripts/codex-hooks/session-end.sh +85 -0
  151. package/scripts/codex-hooks/session-start.sh +85 -0
  152. package/scripts/codex-mirror.sh +48 -0
  153. package/templates/identity/README.md +119 -0
  154. package/templates/identity/ego/behavior.yaml +52 -0
  155. package/templates/identity/ego/constraints.yaml +15 -0
  156. package/templates/identity/ego/identity.yaml +43 -0
  157. package/templates/identity/journeys/personal-growth.yaml +39 -0
  158. package/templates/identity/organization/identity.yaml +24 -0
  159. package/templates/identity/organization/principles.yaml +17 -0
  160. package/templates/identity/personas/coach.yaml +94 -0
  161. package/templates/identity/personas/designer.yaml +93 -0
  162. package/templates/identity/personas/doctor.yaml +96 -0
  163. package/templates/identity/personas/engineer.yaml +77 -0
  164. package/templates/identity/personas/financial.yaml +97 -0
  165. package/templates/identity/personas/prompt-engineer.yaml +122 -0
  166. package/templates/identity/personas/researcher.yaml +88 -0
  167. package/templates/identity/personas/strategist.yaml +91 -0
  168. package/templates/identity/personas/teacher.yaml +95 -0
  169. package/templates/identity/personas/therapist.yaml +91 -0
  170. package/templates/identity/personas/thinker.yaml +74 -0
  171. package/templates/identity/personas/writer.yaml +76 -0
  172. package/templates/identity/self/config.yaml +16 -0
  173. package/templates/identity/self/soul.yaml +105 -0
  174. package/templates/identity/user/identity.yaml +30 -0
  175. package/ts/src/backup/staging.ts +62 -0
  176. package/ts/src/backup/zipBackup.ts +267 -0
  177. package/ts/src/backup/zipReader.ts +109 -0
  178. package/ts/src/backup/zipWriter.ts +148 -0
  179. package/ts/src/builder/activeCheckpoint.ts +134 -0
  180. package/ts/src/builder/aggregateStatus.ts +34 -0
  181. package/ts/src/builder/approve.ts +149 -0
  182. package/ts/src/builder/argv.ts +292 -0
  183. package/ts/src/builder/ariadMethod.ts +536 -0
  184. package/ts/src/builder/artifacts/artifactSurfaces.ts +106 -0
  185. package/ts/src/builder/artifacts/artifactWriter.ts +113 -0
  186. package/ts/src/builder/artifacts/closureArtifacts.ts +199 -0
  187. package/ts/src/builder/artifacts/deliveryStoryArtifacts.ts +316 -0
  188. package/ts/src/builder/artifacts/planArtifacts.ts +242 -0
  189. package/ts/src/builder/artifacts/scaffoldSections.ts +273 -0
  190. package/ts/src/builder/artifacts/scaffoldState.ts +227 -0
  191. package/ts/src/builder/artifacts/storyFiles.ts +61 -0
  192. package/ts/src/builder/artifacts/storyIndex.ts +166 -0
  193. package/ts/src/builder/cadence.ts +59 -0
  194. package/ts/src/builder/card.ts +192 -0
  195. package/ts/src/builder/checkpointRefused.ts +66 -0
  196. package/ts/src/builder/closure.ts +964 -0
  197. package/ts/src/builder/commands.ts +2053 -0
  198. package/ts/src/builder/cursorPosition.ts +176 -0
  199. package/ts/src/builder/cursorTransitions.ts +77 -0
  200. package/ts/src/builder/deliveryCursor.ts +577 -0
  201. package/ts/src/builder/deliveryStoryClosure.ts +521 -0
  202. package/ts/src/builder/deliveryStoryPlan.ts +536 -0
  203. package/ts/src/builder/deliveryStoryReady.ts +160 -0
  204. package/ts/src/builder/deliveryStoryRoadmapClosure.ts +151 -0
  205. package/ts/src/builder/expand.ts +336 -0
  206. package/ts/src/builder/flowUnit.ts +339 -0
  207. package/ts/src/builder/homeSurface.ts +122 -0
  208. package/ts/src/builder/implementationGuard.ts +125 -0
  209. package/ts/src/builder/index.ts +11 -0
  210. package/ts/src/builder/lifecycleRefusal.ts +92 -0
  211. package/ts/src/builder/lifecycleRibbon.ts +159 -0
  212. package/ts/src/builder/load.ts +313 -0
  213. package/ts/src/builder/methodAdoption.ts +113 -0
  214. package/ts/src/builder/methodDefinition.ts +429 -0
  215. package/ts/src/builder/methodInspection.ts +371 -0
  216. package/ts/src/builder/plan.ts +408 -0
  217. package/ts/src/builder/planPreauthorization.ts +265 -0
  218. package/ts/src/builder/prepare.ts +225 -0
  219. package/ts/src/builder/projectPaths.ts +64 -0
  220. package/ts/src/builder/pull.ts +356 -0
  221. package/ts/src/builder/pullCandidates.ts +463 -0
  222. package/ts/src/builder/pullCandidatesRender.ts +238 -0
  223. package/ts/src/builder/refinementField.ts +93 -0
  224. package/ts/src/builder/releaseIntent.ts +173 -0
  225. package/ts/src/builder/resumeState.ts +84 -0
  226. package/ts/src/builder/resumeSurface.ts +149 -0
  227. package/ts/src/builder/roadmapGrammar.ts +300 -0
  228. package/ts/src/builder/roadmapScan.ts +97 -0
  229. package/ts/src/builder/roadmapScope.ts +210 -0
  230. package/ts/src/builder/scopePhrases.ts +146 -0
  231. package/ts/src/builder/storyPaths.ts +196 -0
  232. package/ts/src/builder/storyPlanPreauthorization.ts +287 -0
  233. package/ts/src/builder/surfaceProtocol.ts +42 -0
  234. package/ts/src/builder/templateGeneration.ts +148 -0
  235. package/ts/src/builder/transition.ts +178 -0
  236. package/ts/src/consult/args.ts +99 -0
  237. package/ts/src/consult/core.ts +122 -0
  238. package/ts/src/consult/modelCatalog.ts +55 -0
  239. package/ts/src/consult/render.ts +47 -0
  240. package/ts/src/conversation/append.ts +414 -0
  241. package/ts/src/conversation/backfill.ts +387 -0
  242. package/ts/src/conversation/closeTail.ts +467 -0
  243. package/ts/src/conversation/extraction.ts +333 -0
  244. package/ts/src/conversation/extractionDriver.ts +130 -0
  245. package/ts/src/conversation/extractionRun.ts +70 -0
  246. package/ts/src/conversation/journeyInference.ts +165 -0
  247. package/ts/src/conversation/journeyRepair.ts +114 -0
  248. package/ts/src/conversation/lifecycleFaces.ts +197 -0
  249. package/ts/src/conversation/lifecycleWrites.ts +313 -0
  250. package/ts/src/conversation/listing.ts +77 -0
  251. package/ts/src/conversation/logger.ts +576 -0
  252. package/ts/src/conversation/loggerCli.ts +282 -0
  253. package/ts/src/conversation/loggerRuntime.ts +259 -0
  254. package/ts/src/conversation/metadataLifecycle.ts +443 -0
  255. package/ts/src/conversation/recall.ts +66 -0
  256. package/ts/src/conversation/sessionComposites.ts +258 -0
  257. package/ts/src/conversation/sessionImport.ts +90 -0
  258. package/ts/src/conversation/transcriptBackfill.ts +141 -0
  259. package/ts/src/cultivation/applyActions.ts +241 -0
  260. package/ts/src/cultivation/cluster.ts +86 -0
  261. package/ts/src/cultivation/consolidationStore.ts +281 -0
  262. package/ts/src/cultivation/promptContext.ts +62 -0
  263. package/ts/src/cultivation/propose.ts +305 -0
  264. package/ts/src/cultivation/scan.ts +155 -0
  265. package/ts/src/db/backupGate.ts +47 -0
  266. package/ts/src/db/bootstrap.ts +108 -0
  267. package/ts/src/db/bootstrapLock.ts +223 -0
  268. package/ts/src/db/copyGuard.ts +60 -0
  269. package/ts/src/db/database.ts +397 -0
  270. package/ts/src/db/decode.ts +66 -0
  271. package/ts/src/db/ftsIntegrity.ts +41 -0
  272. package/ts/src/db/migrateOnOpen.ts +214 -0
  273. package/ts/src/db/migrations.ts +576 -0
  274. package/ts/src/db/readyOnOpen.ts +35 -0
  275. package/ts/src/db/rowDecode.ts +42 -0
  276. package/ts/src/db/schema.ts +432 -0
  277. package/ts/src/db/schemaInventory.ts +225 -0
  278. package/ts/src/db/schemaInventorySnapshot.ts +2107 -0
  279. package/ts/src/db/schemaState.ts +91 -0
  280. package/ts/src/db/schemaTsDivergence.ts +114 -0
  281. package/ts/src/descriptor/descriptorRead.ts +49 -0
  282. package/ts/src/docs/docsLint.ts +265 -0
  283. package/ts/src/explorer/handoff.ts +522 -0
  284. package/ts/src/explorer/render.ts +335 -0
  285. package/ts/src/explorer/story.ts +769 -0
  286. package/ts/src/explorer/transition.ts +72 -0
  287. package/ts/src/extensions/bindings.ts +170 -0
  288. package/ts/src/extensions/catalog.ts +249 -0
  289. package/ts/src/extensions/catalogCommands.ts +513 -0
  290. package/ts/src/extensions/catalogWrites.ts +652 -0
  291. package/ts/src/extensions/contextRuntime.ts +325 -0
  292. package/ts/src/extensions/dispatch.ts +374 -0
  293. package/ts/src/extensions/errors.ts +24 -0
  294. package/ts/src/extensions/manifest.ts +356 -0
  295. package/ts/src/extensions/migrations.ts +350 -0
  296. package/ts/src/extraction/conversation.ts +304 -0
  297. package/ts/src/extraction/conversationMetadata.ts +206 -0
  298. package/ts/src/extraction/fencing.ts +106 -0
  299. package/ts/src/extraction/json.ts +17 -0
  300. package/ts/src/extraction/prompts.ts +470 -0
  301. package/ts/src/frontDoor/args.ts +30 -0
  302. package/ts/src/frontDoor/argvShape.ts +106 -0
  303. package/ts/src/frontDoor/buildLoadRuntime.ts +139 -0
  304. package/ts/src/frontDoor/buildRoute.ts +398 -0
  305. package/ts/src/frontDoor/cli.ts +1865 -0
  306. package/ts/src/frontDoor/cloneRoleGuard.ts +98 -0
  307. package/ts/src/frontDoor/consultRoute.ts +50 -0
  308. package/ts/src/frontDoor/contentTailRoute.ts +239 -0
  309. package/ts/src/frontDoor/conversationLoggerRoute.ts +73 -0
  310. package/ts/src/frontDoor/cultivationRoute.ts +210 -0
  311. package/ts/src/frontDoor/dbPath.ts +131 -0
  312. package/ts/src/frontDoor/dbSafetyToolsRoute.ts +240 -0
  313. package/ts/src/frontDoor/exploreRoute.ts +572 -0
  314. package/ts/src/frontDoor/extensionCatalogRoute.ts +252 -0
  315. package/ts/src/frontDoor/frontDoorLog.ts +57 -0
  316. package/ts/src/frontDoor/identityWrite.ts +36 -0
  317. package/ts/src/frontDoor/journeyWriteRoute.ts +26 -0
  318. package/ts/src/frontDoor/lifecycleWriteRoute.ts +110 -0
  319. package/ts/src/frontDoor/liveBackup.ts +100 -0
  320. package/ts/src/frontDoor/mirrorModeRoute.ts +163 -0
  321. package/ts/src/frontDoor/namedRefusal.ts +35 -0
  322. package/ts/src/frontDoor/nodeSupport.ts +24 -0
  323. package/ts/src/frontDoor/render/consolidate.ts +199 -0
  324. package/ts/src/frontDoor/render/conversations.ts +33 -0
  325. package/ts/src/frontDoor/render/cultivationShared.ts +21 -0
  326. package/ts/src/frontDoor/render/descriptor.ts +20 -0
  327. package/ts/src/frontDoor/render/detectPersona.ts +50 -0
  328. package/ts/src/frontDoor/render/icons.ts +13 -0
  329. package/ts/src/frontDoor/render/identity.ts +59 -0
  330. package/ts/src/frontDoor/render/identityRows.ts +17 -0
  331. package/ts/src/frontDoor/render/inspectPersona.ts +53 -0
  332. package/ts/src/frontDoor/render/journeyStatus.ts +78 -0
  333. package/ts/src/frontDoor/render/journeys.ts +79 -0
  334. package/ts/src/frontDoor/render/list.ts +41 -0
  335. package/ts/src/frontDoor/render/memories.ts +67 -0
  336. package/ts/src/frontDoor/render/recall.ts +49 -0
  337. package/ts/src/frontDoor/render/shadow.ts +155 -0
  338. package/ts/src/frontDoor/render/tasks.ts +99 -0
  339. package/ts/src/frontDoor/render/tasksImportSync.ts +63 -0
  340. package/ts/src/frontDoor/render/week.ts +113 -0
  341. package/ts/src/frontDoor/routing.ts +999 -0
  342. package/ts/src/frontDoor/runtimeRoute.ts +623 -0
  343. package/ts/src/frontDoor/searchRoute.ts +166 -0
  344. package/ts/src/frontDoor/seedPaths.ts +98 -0
  345. package/ts/src/frontDoor/soulRoute.ts +433 -0
  346. package/ts/src/frontDoor/tasksImportSyncRoute.ts +110 -0
  347. package/ts/src/frontDoor/tasksWriteRoute.ts +101 -0
  348. package/ts/src/frontDoor/usage.ts +176 -0
  349. package/ts/src/guards/claudePlugin.ts +252 -0
  350. package/ts/src/guards/packContents.ts +306 -0
  351. package/ts/src/guards/piSourcedSkills.ts +70 -0
  352. package/ts/src/guards/retiredRouteShadows.ts +57 -0
  353. package/ts/src/guards/retiredSurfaces.ts +564 -0
  354. package/ts/src/hooks/claude.ts +176 -0
  355. package/ts/src/hooks/codex.ts +45 -0
  356. package/ts/src/hooks/gemini.ts +126 -0
  357. package/ts/src/hooks/main.ts +109 -0
  358. package/ts/src/hooks/mirrorState.ts +71 -0
  359. package/ts/src/hooks/payload.ts +68 -0
  360. package/ts/src/hooks/runtime.ts +159 -0
  361. package/ts/src/identity/applyConsolidationIdentityUpdate.ts +67 -0
  362. package/ts/src/identity/descriptorGenerate.ts +162 -0
  363. package/ts/src/identity/identityEdit.ts +143 -0
  364. package/ts/src/identity/identityKey.ts +77 -0
  365. package/ts/src/identity/identityRead.ts +69 -0
  366. package/ts/src/identity/identityStore.ts +80 -0
  367. package/ts/src/identity/journeyListing.ts +53 -0
  368. package/ts/src/identity/personaInspect.ts +44 -0
  369. package/ts/src/identity/personaListing.ts +37 -0
  370. package/ts/src/identity/setIdentity.ts +64 -0
  371. package/ts/src/index.ts +231 -0
  372. package/ts/src/init/init.ts +111 -0
  373. package/ts/src/journey/journeyOptions.ts +131 -0
  374. package/ts/src/journey/journeyRemoval.ts +158 -0
  375. package/ts/src/journey/journeyStatus.ts +149 -0
  376. package/ts/src/journey/journeySyncFile.ts +87 -0
  377. package/ts/src/journey/journeyWrite.ts +203 -0
  378. package/ts/src/journey/parentJourney.ts +41 -0
  379. package/ts/src/journey/validateParentJourney.ts +55 -0
  380. package/ts/src/mcp/boundary.ts +151 -0
  381. package/ts/src/mcp/guards.ts +244 -0
  382. package/ts/src/mcp/main.ts +121 -0
  383. package/ts/src/mcp/payload.ts +141 -0
  384. package/ts/src/mcp/protocol.ts +141 -0
  385. package/ts/src/mcp/readModels.ts +241 -0
  386. package/ts/src/mcp/registry.ts +201 -0
  387. package/ts/src/mcp/serve.ts +120 -0
  388. package/ts/src/mcp/tools/deterministic.ts +137 -0
  389. package/ts/src/mcp/tools/providerCrossing.ts +187 -0
  390. package/ts/src/mcp/wire.ts +8 -0
  391. package/ts/src/memory/journal.ts +180 -0
  392. package/ts/src/memory/listing.ts +107 -0
  393. package/ts/src/memory/memoryWrite.ts +88 -0
  394. package/ts/src/memory/reinforcement.ts +35 -0
  395. package/ts/src/mirror/context.ts +161 -0
  396. package/ts/src/mirror/defaultResolution.ts +199 -0
  397. package/ts/src/mirror/orchestration.ts +364 -0
  398. package/ts/src/mirror/reception.ts +194 -0
  399. package/ts/src/mirror/render.ts +75 -0
  400. package/ts/src/mirror/runtimeSession.ts +205 -0
  401. package/ts/src/mode/operatingMode.ts +148 -0
  402. package/ts/src/observability/callOutcome.ts +115 -0
  403. package/ts/src/observability/inspectLedger.ts +329 -0
  404. package/ts/src/observability/ledgerHooks.ts +126 -0
  405. package/ts/src/observability/llmCalls.ts +154 -0
  406. package/ts/src/persona/detectPersona.ts +81 -0
  407. package/ts/src/planning/promptAssembly.ts +111 -0
  408. package/ts/src/planning/weekPending.ts +81 -0
  409. package/ts/src/planning/weekPlan.ts +183 -0
  410. package/ts/src/planning/weekSave.ts +117 -0
  411. package/ts/src/providers/config.ts +189 -0
  412. package/ts/src/providers/cost.ts +64 -0
  413. package/ts/src/providers/credits.ts +204 -0
  414. package/ts/src/providers/embedding.ts +321 -0
  415. package/ts/src/providers/familyProviders.ts +147 -0
  416. package/ts/src/providers/llm.ts +334 -0
  417. package/ts/src/providers/openrouter.ts +244 -0
  418. package/ts/src/providers/redaction.ts +110 -0
  419. package/ts/src/providers/replay.ts +15 -0
  420. package/ts/src/providers/transport.ts +410 -0
  421. package/ts/src/repair/encodingRepair.ts +253 -0
  422. package/ts/src/runtime/backup.ts +151 -0
  423. package/ts/src/runtime/channel.ts +146 -0
  424. package/ts/src/runtime/config.ts +168 -0
  425. package/ts/src/runtime/diagnose.ts +686 -0
  426. package/ts/src/runtime/git.ts +510 -0
  427. package/ts/src/runtime/installKind.ts +220 -0
  428. package/ts/src/runtime/migrate.ts +154 -0
  429. package/ts/src/runtime/packageIdentity.ts +102 -0
  430. package/ts/src/runtime/releaseNotes.ts +244 -0
  431. package/ts/src/runtime/status.ts +557 -0
  432. package/ts/src/runtime/strategies/clone.ts +200 -0
  433. package/ts/src/runtime/strategies/package.ts +328 -0
  434. package/ts/src/runtime/treeRoot.ts +30 -0
  435. package/ts/src/runtime/update.ts +445 -0
  436. package/ts/src/runtime/updateGate.ts +40 -0
  437. package/ts/src/runtime/updatePipeline.ts +159 -0
  438. package/ts/src/runtime/version.ts +36 -0
  439. package/ts/src/runtime/wiring.ts +130 -0
  440. package/ts/src/search/memorySearch.ts +338 -0
  441. package/ts/src/search/ranker.ts +154 -0
  442. package/ts/src/seed/seed.ts +256 -0
  443. package/ts/src/seed/seedYaml.ts +133 -0
  444. package/ts/src/soul/apply.ts +218 -0
  445. package/ts/src/soul/harvest.ts +267 -0
  446. package/ts/src/soul/prompts/soul_beauty_voice.md +103 -0
  447. package/ts/src/soul/prompts/soul_self_voice.md +219 -0
  448. package/ts/src/soul/prompts/soul_wisdom_voice.md +121 -0
  449. package/ts/src/soul/prompts.ts +85 -0
  450. package/ts/src/soul/render.ts +358 -0
  451. package/ts/src/soul/state.ts +212 -0
  452. package/ts/src/soul/transition.ts +37 -0
  453. package/ts/src/tasks/journeyPathParse.ts +113 -0
  454. package/ts/src/tasks/taskImportSync.ts +142 -0
  455. package/ts/src/tasks/taskStore.ts +312 -0
  456. package/ts/src/tasks/weekView.ts +120 -0
  457. package/ts/src/util/clipCodePoints.ts +26 -0
  458. package/ts/src/util/paths.ts +63 -0
  459. package/ts/src/util/program.ts +9 -0
  460. package/ts/src/util/pyGenerators.ts +144 -0
  461. package/ts/src/util/pythonText.ts +317 -0
  462. package/ts/src/util/semver.ts +45 -0
  463. package/ts/src/util/shellWord.ts +25 -0
  464. package/ts/src/util/slug.ts +64 -0
  465. package/ts/src/welcome/card.ts +339 -0
  466. package/ts/src/welcome/statusLine.ts +101 -0
  467. package/ts/src/welcome/updateCache.ts +129 -0
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: "mm:consolidate"
3
+ description: Scans memories for recurring patterns and proposes consolidation (merge, identity update, or shadow candidate)
4
+ user-invocable: true
5
+ ---
6
+
7
+ # mm-consolidate
8
+
9
+ Consolidation as integration — the operation that promotes raw extracted memories into
10
+ structural identity content (CV7.E4.S3).
11
+
12
+ Memories accumulate over time. Patterns repeat. The same insight lands in five conversations
13
+ as five isolated memories, none of which reaches the identity layer where it could actually
14
+ change how the mirror responds. Consolidation is the bridge. This skill surfaces those
15
+ clusters, proposes a structural move, and waits for explicit acknowledgment before writing
16
+ anything.
17
+
18
+ **Promotion mechanism: manual-by-acknowledgment.** The scan is automatic; the promotion is not.
19
+ Every proposal must be reviewed and accepted (or rejected) before it changes the database.
20
+ This is intentional — identity updates are meaningful acts.
21
+
22
+ ---
23
+
24
+ ## Usage
25
+
26
+ ```
27
+ /mm:consolidate [--journey <slug>] [--layer <layer>] [--limit <n>]
28
+ /mm:consolidate apply <proposal_id>
29
+ /mm:consolidate reject <proposal_id>
30
+ /mm:consolidate list [--status pending|accepted|rejected]
31
+ ```
32
+
33
+ ---
34
+
35
+ ## 1. Scan for proposals
36
+
37
+ > The scan answers from TypeScript against the live provider (CV22.DS8.TS2). Each cluster is one model call bounded by the extraction timeout (`MEMORY_LLM_TIMEOUT_EXTRACTION`, 60 s) with bounded retries, and every successful call leaves a priced `llm_calls` row before its proposal is parsed. A call that fails is logged by class (`outcome=transport_failed kind=…`) in `front-door.log` beside the database.
38
+
39
+ ```bash
40
+ mirror consolidate scan \
41
+ [--journey <slug>] \
42
+ [--layer <layer>] \
43
+ [--limit 5] \
44
+ [--threshold 0.75]
45
+ ```
46
+
47
+ This clusters semantically similar memories and calls the LLM to propose one of:
48
+ - **merge**: distill a redundant cluster into one sharper memory
49
+ - **identity_update**: encode a persistent pattern into an identity layer (ego/behavior, etc.)
50
+ - **shadow_candidate**: mark a tension/avoidance cluster for the mm-shadow pass
51
+
52
+ Each proposal is printed and stored with `status='pending'`.
53
+
54
+ **Default filters:** no journey or layer filter (all memories). Threshold 0.75. Limit 5 proposals.
55
+
56
+ ---
57
+
58
+ ## 2. Present each proposal to the user
59
+
60
+ For each proposal, show:
61
+ - The source memories (title, type, date)
62
+ - The proposed action and target (if identity_update: which layer/key)
63
+ - The rationale
64
+ - The proposed content
65
+
66
+ Ask: **accept as-is / edit / reject?**
67
+
68
+ ---
69
+
70
+ ## 3. Apply or reject
71
+
72
+ **Accept as-is:**
73
+ ```bash
74
+ mirror consolidate apply <proposal_id>
75
+ ```
76
+
77
+ **Accept with edited content:**
78
+ ```bash
79
+ mirror consolidate apply <proposal_id> \
80
+ --content "User-revised version of the proposed content"
81
+ ```
82
+
83
+ **Reject:**
84
+ ```bash
85
+ mirror consolidate reject <proposal_id>
86
+ ```
87
+
88
+ What happens on acceptance:
89
+ - **merge**: creates a merged memory; source memories advance to `integrated`
90
+ - **identity_update**: appends to the identity layer; source memories advance to `acknowledged`
91
+ - **shadow_candidate**: source memories advance to `candidate` for the next mm-shadow pass
92
+
93
+ Rejected proposals leave source memories unchanged.
94
+
95
+ ---
96
+
97
+ ## 4. List consolidation history
98
+
99
+ ```bash
100
+ mirror consolidate list [--status pending|accepted|rejected] [--limit 20]
101
+ ```
102
+
103
+ ---
104
+
105
+ ## Notes
106
+
107
+ - The skill uses the same model as extraction (Gemini Flash via OpenRouter). LLM calls are
108
+ logged to `llm_calls` when `MEMORY_LOG_LLM_CALLS=1`.
109
+ - Proposal IDs can be abbreviated to their first 8 characters.
110
+ - Memories with `readiness_state='integrated'` are excluded from clustering.
111
+ - Run with `--threshold 0.65` to surface more (and looser) clusters; raise to `0.85` for tighter ones.
112
+ - For shadow-specific work, use `mm-shadow` (CV7.E4.S4) after candidates are established.
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: "mm:consult"
3
+ description: Asks other LLMs through OpenRouter with Mirror context
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Consult
8
+
9
+ Sends prompts with Mirror identity context to other models through OpenRouter.
10
+
11
+ ## Syntax
12
+
13
+ ```
14
+ /mm:consult <family> [tier] ["question"]
15
+ /mm:consult credits
16
+ ```
17
+
18
+ - **family:** `gemini`, `grok`, `deepseek`, `openai`, `claude`, `llama`, or a direct model ID such as `google/gemini-2.5-pro`
19
+ - **tier:** `lite` (default), `mid`, `flagship`
20
+ - **question present:** send it directly
21
+ - **question missing:** synthesize the current conversation and create the prompt
22
+
23
+ ## Flow
24
+
25
+ > The model call answers from TypeScript, bounded by the extraction timeout (`MEMORY_LLM_TIMEOUT_EXTRACTION`, 60 s) with bounded retries. (The 10-minute ceiling CR072 added applied only to the Python engine, which is gone.)
26
+
27
+ ### Explicit Question
28
+
29
+ Analyze the message to determine persona and journey using the same Mirror routing.
30
+
31
+ ```bash
32
+ mirror consult FAMILY TIER "QUESTION" \
33
+ [--persona PERSONA] [--journey JOURNEY] [--org]
34
+ ```
35
+
36
+ **Examples:**
37
+ - `/mm:consult gemini lite "draft an opening for this article"` -> `mirror consult gemini lite "draft an opening for this article" --persona writer`
38
+ - `/mm:consult deepseek "is this design overengineered?"` -> `mirror consult deepseek "is this design overengineered?" --persona engineer`
39
+
40
+ The script prints the response, cost, and balance. Always show the complete response to the user without summarizing or omitting it. Any Claude comments come after the full response.
41
+
42
+ ### No Question
43
+
44
+ When the user omits the question, they want a second opinion on the current conversation. Synthesize only Mirror Mode content: reflection, strategy, and content. Ignore Builder Mode content such as code, debugging, and project architecture.
45
+
46
+ 1. Synthesize the context into a self-contained prompt: topic, goal, relevant journey/attachments/references, what was discussed or decided, and what the user is asking now.
47
+ 2. Formulate a clear request for the external LLM.
48
+ 3. Send it as an ask:
49
+
50
+ ```bash
51
+ mirror consult FAMILY TIER "SYNTHESIZED_PROMPT" \
52
+ [--persona PERSONA] [--journey JOURNEY] [--org]
53
+ ```
54
+
55
+ The synthesized prompt must be self-contained. The external LLM has no access to the conversation, so include concrete details instead of vague references like "as discussed."
56
+
57
+ Example prompt:
58
+
59
+ ```
60
+ I am preparing episode 5 of the Reflexo series, about leadership and complexity.
61
+ The episode covers [key script points]. I have already suggested topics A, B, and C.
62
+
63
+ Suggest 3 alternative article topics for software leaders, keeping depth without academicism.
64
+ ```
65
+
66
+ ## Credits
67
+
68
+ ```bash
69
+ mirror consult credits
70
+ ```
71
+
72
+ Shows OpenRouter usage and remaining balance.
73
+
74
+ ## Available Families And Tiers
75
+
76
+ | Family | Lite | Mid | Flagship |
77
+ |---------|------|-----|----------|
78
+ | gemini | gemini-2.5-flash-lite | gemini-2.5-flash | gemini-2.5-pro |
79
+ | grok | grok-3-mini | grok-3 | grok-4.1-fast |
80
+ | deepseek | deepseek-chat | deepseek-v3.2 | deepseek-r1 |
81
+ | openai | gpt-5.4-nano | gpt-5.4-mini | gpt-5.4 |
82
+ | claude | haiku-4.5 | sonnet-4.6 | opus-4.6 |
83
+ | llama | llama-3.3-70b-instruct | llama-4-scout | llama-4-maverick |
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: "mm:conversations"
3
+ description: Lists recent conversations from the memory database
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Conversations
8
+
9
+ When receiving `/mm:conversations`, run:
10
+
11
+ ```bash
12
+ mirror conversations [--limit N] [--journey ID] [--persona ID]
13
+ ```
14
+
15
+ If `$ARGUMENTS` contains a filter such as a journey slug, use it as `--journey`.
16
+
17
+ Present the result to the user. Mention that `/mm:recall <id>` loads a conversation.
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: "mm:discard"
3
+ description: Discards the current runtime conversation from the Mirror database before quitting
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Discard Current Conversation
8
+
9
+ Use when the user wants to quit a test session without keeping the current
10
+ conversation in the Mirror database.
11
+
12
+ Natural language examples:
13
+
14
+ ```text
15
+ quit and discard this conversation
16
+ close without saving this conversation
17
+ exit and drop this conversation
18
+ ```
19
+
20
+ ## 1. Discard Current Conversation
21
+
22
+ Run:
23
+
24
+ ```bash
25
+ mirror conversation-logger discard-current --interface claude_code
26
+ ```
27
+
28
+ The command deletes the current conversation and marks the runtime session so the
29
+ assistant confirmation is not logged and transcript backfill skips it at session
30
+ end.
31
+
32
+ ## 2. Tell the User to Quit
33
+
34
+ After the command succeeds, answer briefly:
35
+
36
+ ```text
37
+ Current conversation discarded from the database. You can safely exit the session now.
38
+ ```
39
+
40
+ Do not call `mirror log` for this skill.
@@ -0,0 +1,241 @@
1
+ ---
2
+ name: "mm:explore"
3
+ description: Activates Explorer Mode for a journey and loads exploratory context
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Explorer Mode
8
+
9
+ Activates Explorer Mode for a specific journey. Explorer Mode is a Mirror-native
10
+ lens for uncertainty before construction.
11
+
12
+ Explorer Mode is active and supports durable exploration, story thickening,
13
+ attractors, experiment proposals, and Builder handoff.
14
+
15
+ ## Usage
16
+
17
+ ```text
18
+ /mm:explore <journey-slug>
19
+ ```
20
+
21
+ Natural-language equivalents should be treated as the product interface:
22
+
23
+ ```text
24
+ enter explorer mode for this journey
25
+ open exploration for <journey-slug>
26
+ ```
27
+
28
+ ## 1. Activate Explorer Mode
29
+
30
+ ```bash
31
+ mirror explore load <slug>
32
+ ```
33
+
34
+ The command:
35
+
36
+ - activates `△ Explorer Mode` for the journey;
37
+ - renders the Mode Transition Surface (`△ EXPLORER MODE ACTIVE`);
38
+ - sets the journey as sticky context;
39
+ - loads Mirror identity and journey context;
40
+ - resumes the active durable Exploratory Story when one exists;
41
+ - renders `△ EXPLORATORY STORY RESUMED` when resuming;
42
+ - prints Explorer Mode guidance with the active Explorer capability boundary.
43
+
44
+ ## 1.1 Required Surface Rendering
45
+
46
+ The `explore load` output includes the conversational transition surface. Render
47
+ that surface visibly to the user before continuing with exploratory work. Do not
48
+ recreate it from scratch unless the command failed to render it; copy the
49
+ rendered surface from the command output.
50
+
51
+ After any `mirror explore story ...` command that returns a
52
+ Mirror surface, paste the returned surface as the first visible block in the
53
+ response. Do not summarize, interpret, or paraphrase before rendering it.
54
+
55
+ Some Explorer story commands wrap required product surfaces with machine-readable
56
+ contract markers:
57
+
58
+ ```text
59
+ [[MIRROR_REQUIRED_SURFACE_BEGIN:<surface-id>]]
60
+ ...
61
+ [[MIRROR_REQUIRED_SURFACE_END:<surface-id>]]
62
+ ```
63
+
64
+ When markers are present, render the marked `Mirror` surface content first and do
65
+ not render the marker lines themselves. The markers are a runtime contract, not
66
+ user-facing product copy.
67
+
68
+ For `story open`, `story thicken`, `story snapshot`, `story attractors`, `story
69
+ experiment`, `story list`, `story archive`, and `story handoff`, the returned
70
+ `△ ...` surface is the primary response. Render it before commentary. Commentary
71
+ may follow only after the surface is visible.
72
+
73
+ ## 2. Work In Explorer Mode
74
+
75
+ Explorer Mode is active and supports durable exploration, story thickening,
76
+ attractors, experiment proposals, and Builder handoff.
77
+
78
+ Explorer preserves uncertainty. Builder executes commitment.
79
+
80
+ While Explorer Mode is active:
81
+
82
+ - Treat new substantive material as part of the current Exploratory Story unless the user asks for a clear operational action.
83
+ - Preserve tensions, hypotheses, corrections, and emerging story shape.
84
+ - When an Exploratory Story begins, open it with:
85
+
86
+ ```bash
87
+ mirror explore story open <slug> --story "..." --summary "..." --last-card "..."
88
+ ```
89
+
90
+ - Before calling `story thicken`, classify the change as either `narrative/substantive` or `local/refinement`.
91
+
92
+ - When material substantively changes the accumulated Exploratory Story, thicken it with:
93
+
94
+ ```bash
95
+ mirror explore story thicken <slug> --story "..." --summary "..." --last-card "..." --changed "..."
96
+ ```
97
+
98
+ Use `story thicken` for:
99
+
100
+ - new or changed attractor;
101
+ - new or changed exploratory hypothesis;
102
+ - new or changed ritual, voice, scope, or product concept;
103
+ - changed experiment or promotion boundary;
104
+ - meaningful correction to the narrative arc.
105
+
106
+ Do not use `story thicken` for local refinements:
107
+
108
+ - icon choice;
109
+ - microcopy;
110
+ - wording polish;
111
+ - visual label changes;
112
+ - surface formatting;
113
+ - small naming adjustments that do not change the story;
114
+ - conversational elaboration of an already captured idea.
115
+
116
+ For local refinements, continue the conversation without updating the story. If uncertain, ask the user whether to preserve the change in the Exploratory Story.
117
+
118
+ - When the user asks for the attractor, or when a strong directional pull should be proposed visibly, render attractors with:
119
+
120
+ ```bash
121
+ mirror explore story attractors <slug> --attractor "..." --description "..." --status proposed
122
+ ```
123
+
124
+ - When the user corrects an attractor, replace it with the corrected attractor using the same command. Do not accumulate hidden competing interpretations.
125
+ - When the user asks what small experiment tests the attractor, render an experiment proposal with:
126
+
127
+ ```bash
128
+ mirror explore story experiment <slug> --title "..." --description "..." --status proposed
129
+ ```
130
+
131
+ - When the user asks what is currently being explored, render a snapshot with:
132
+
133
+ ```bash
134
+ mirror explore story snapshot <slug>
135
+ ```
136
+
137
+ - When the user asks to see explorations for the active journey, render durable story visibility with:
138
+
139
+ ```bash
140
+ mirror explore story list <slug>
141
+ ```
142
+
143
+ - When the user asks to archive or close the active exploration without promoting it, archive the active story with:
144
+
145
+ ```bash
146
+ mirror explore story archive <slug>
147
+ ```
148
+
149
+ - Render the story surface returned by those commands visibly to the user.
150
+ - Do not promote to Builder or Delivery without explicit user confirmation.
151
+
152
+ ## 2.1 Operational Boundary
153
+
154
+ Explorer Mode must not directly execute clear operational mutation requests.
155
+ When the user asks to edit files, apply a procedure to documents, create code,
156
+ run implementation commands, mutate roadmap/docs/code, or otherwise change
157
+ project state, do not call Explorer story commands and do not mutate files.
158
+
159
+ Instead, name the boundary visibly and ask whether to switch to Builder Mode for
160
+ the same journey. Use this response shape:
161
+
162
+ ```text
163
+ △ EXPLORER → BUILDER BOUNDARY
164
+
165
+ This is operational Builder work, not exploratory thickening. Explorer preserves uncertainty; Builder executes commitment. I can switch to Builder Mode for <slug> and do this there.
166
+ ```
167
+
168
+ Only after the user confirms the switch should Mirror activate Builder Mode with:
169
+
170
+ ```bash
171
+ mirror build load <slug>
172
+ ```
173
+
174
+ Local refinements to the exploration itself, such as microcopy discussion,
175
+ labels, wording, icons, or formatting, remain conversational unless the user
176
+ explicitly asks to preserve them in the Exploratory Story.
177
+
178
+ ## 3. Deactivation
179
+
180
+ The user should use natural language:
181
+
182
+ ```text
183
+ exit explorer mode
184
+ return to normal mode
185
+ ```
186
+
187
+ Mirror should then call the contained Explorer operation:
188
+
189
+ ```bash
190
+ mirror explore deactivate
191
+ ```
192
+
193
+ Render the deactivation confirmation visibly to the user. Deactivation leaves the
194
+ explicit Explorer lens and returns to Mirror Mode when journey context remains
195
+ active. It does not clear sticky journey context or promote the exploration to
196
+ Builder. Rendering and clearing the status bar are internal effects, not
197
+ user-facing operations.
198
+
199
+ ## 4. Promotion Boundary
200
+
201
+ When the user says:
202
+
203
+ ```text
204
+ promote this exploration to construction
205
+ promote to builder
206
+ is this ready to become Builder?
207
+ ```
208
+
209
+ Do not switch to Builder silently. First produce a transfer document set and
210
+ render the handoff proposal. If the user asks to include source conversations,
211
+ confirm which conversations should be included before adding raw source evidence.
212
+ When the user names the current or recent conversation rather than an id, inspect
213
+ recent journey conversations with `mirror conversations --journey
214
+ <slug> --limit 5`, show the candidate source evidence, and ask for confirmation.
215
+ Use `--source-conversation <conversation-id>` for reviewed source evidence. Use
216
+ `--include-full-conversation` only after explicit confirmation that raw
217
+ conversation evidence should be written with privacy obfuscation.
218
+
219
+ ```bash
220
+ mirror explore story handoff <slug> --title "..." --summary "..." --editorial-synthesis "..." --source-conversation "<conversation-id>:origin conversation" --include-full-conversation
221
+ ```
222
+
223
+ Render `△ BUILDER HANDOFF PROPOSED` visibly, including the generated document
224
+ paths under `docs/project/explorations/<exploratory-story-slug>/` when available:
225
+
226
+ ```text
227
+ index.md
228
+ exploratory-story.md
229
+ handoff-info.md
230
+ product-design-proposal.md
231
+ full-conversation.md # only after explicit confirmation
232
+ ```
233
+
234
+ Ask for explicit confirmation. Only after the user confirms should Mirror call:
235
+
236
+ ```bash
237
+ mirror explore story promote <slug>
238
+ ```
239
+
240
+ Promotion activates Builder Mode through the normal Builder load path. If the
241
+ user does not confirm, remain in Explorer Mode and continue thickening the story.
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: "mm:help"
3
+ description: Shows available Mirror Mind commands and how to use them
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Help
8
+
9
+ Show the user the available commands in this format:
10
+
11
+ ## Available Commands
12
+
13
+ ### Mirror Mode
14
+
15
+ | Command | What it does |
16
+ |---------|-----------|
17
+ | `/mm:mirror` | Activates Mirror Mode manually |
18
+ | | `--persona ID` - specific persona |
19
+ | | `--journey ID` - journey context |
20
+ | | `--query "terms"` - relevant attachment search |
21
+ | | `--org` - include organization identity |
22
+ | `/mm:consult <family> "question"` | Asks another LLM with Mirror context |
23
+ | | Families: `gemini`, `grok`, `deepseek`, `openai`, `claude`, `llama`, or direct model ID |
24
+ | | `[tier]` — lite (default), mid, flagship |
25
+ | | `--persona`, `--journey`, `--query`, `--org` |
26
+ | `/mm:consult <family>` | Sends the current conversation to another model |
27
+ | `/mm:consult credits` | Shows OpenRouter balance |
28
+
29
+ ### Journeys
30
+
31
+ | Command | What it does |
32
+ |---------|-----------|
33
+ | `/mm:journeys` | Lists journeys with status and current stage |
34
+ | `/mm:journey [id]` | Shows detailed status for one journey or all journeys |
35
+ | | If the journey has `sync_file`, reads from the external file |
36
+
37
+ ### Memories And Journal
38
+
39
+ | Command | What it does |
40
+ |---------|-----------|
41
+ | `/mm:memories` | Lists recorded memories |
42
+ | | `--type TYPE` — decision, insight, idea, journal, tension, learning, pattern, commitment, reflection |
43
+ | | `--layer LAYER` — self, ego, shadow |
44
+ | | `--journey ID` - filter by journey |
45
+ | | `--search "text"` - semantic search |
46
+ | | `--limit N` - maximum results (default: 20) |
47
+ | `/mm:journal "text"` | Records a personal journal entry |
48
+ | | `--journey ID` - associate with a journey |
49
+
50
+ ### Tasks
51
+
52
+ | Command | What it does |
53
+ |---------|-----------|
54
+ | `/mm:tasks` | Lists open tasks |
55
+ | | `--journey SLUG` - filter by journey |
56
+ | | `--status STATUS` — todo, doing, done, blocked |
57
+ | | `--all` - include completed tasks |
58
+ | `/mm:tasks add "title"` | Creates a task |
59
+ | | `--journey SLUG`, `--due YYYY-MM-DD`, `--stage STAGE` |
60
+ | `/mm:tasks done ID` | Marks a task as completed |
61
+ | `/mm:tasks doing ID` | Marks a task as in progress |
62
+ | `/mm:tasks block ID` | Marks a task as blocked |
63
+ | `/mm:tasks delete ID` | Removes a task |
64
+ | `/mm:tasks import [slug]` | Imports pending tasks from journey paths |
65
+ | `/mm:tasks sync [slug]` | Syncs tasks from an external file |
66
+ | `/mm:tasks sync-config SLUG /path` | Configures the reference file for sync |
67
+
68
+ ### Weekly Planning
69
+
70
+ | Command | What it does |
71
+ |---------|-----------|
72
+ | `/mm:week` | Shows the current week view |
73
+ | `/mm:week "free text"` | Ingests a weekly plan and asks confirmation before saving |
74
+
75
+ ### Conversations And Logging
76
+
77
+ | Command | What it does |
78
+ |---------|-----------|
79
+ | `/mm:save [slug]` | Saves the latest turn as Markdown in the conversation exports directory |
80
+ | | `--full` - save the full conversation |
81
+ | `/mm:conversations` | Lists recent conversations |
82
+ | | `--limit N`, `--journey ID`, `--persona ID` |
83
+ | `/mm:recall ID` | Loads a previous conversation into context |
84
+ | | `--limit N` - maximum messages (default: 50) |
85
+ | `/mm:new` | Starts a new conversation |
86
+ | `/mm:mute` | Toggles conversation logging |
87
+
88
+ ### System
89
+
90
+ | Command | What it does |
91
+ |---------|-----------|
92
+ | `/mm:backup` | Backs up the memory database |
93
+ | `/mm:seed` | Seeds identity files from the active user home into the database |
94
+ | `/mm:release-notes [latest|vX.Y.Z]` | Shows Mirror Mind release notes |
95
+ | `/mm:help` | Shows this list |
96
+
97
+ ## Operating Modes
98
+
99
+ Mirror has two automatically activated modes:
100
+
101
+ - **Mirror Mode**: personal, work, strategy, writing, mentoring
102
+ - **Builder Mode**: code, architecture, bugs, development
103
+
104
+ When uncertain, ask which mode to use.
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: "mm:identity"
3
+ description: Read and update identity directly in the database
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Identity
8
+
9
+ After the initial seed, the database is the source of truth for identity.
10
+ Use these commands to inspect and edit identity directly — no YAML files needed.
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /mm:identity list [--layer LAYER]
16
+ /mm:identity get <layer> <key>
17
+ /mm:identity set <layer> <key> --content "..."
18
+ /mm:identity edit <layer> <key>
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Subcommands
24
+
25
+ ### list
26
+
27
+ List all identity entries currently stored in the database.
28
+
29
+ ```bash
30
+ mirror identity list [--layer LAYER] [--mirror-home PATH]
31
+ ```
32
+
33
+ **Examples:**
34
+ - `mirror identity list` — all entries
35
+ - `mirror identity list --layer ego` — only ego layer
36
+
37
+ Layers: `self`, `ego`, `user`, `organization`, `persona`, `journey`, `journey_path`
38
+
39
+ ---
40
+
41
+ ### get
42
+
43
+ Print the full content of one identity entry.
44
+
45
+ ```bash
46
+ mirror identity get <layer> <key> [--mirror-home PATH]
47
+ ```
48
+
49
+ **Examples:**
50
+ - `mirror identity get ego behavior`
51
+ - `mirror identity get self soul`
52
+ - `mirror identity get persona engineer`
53
+
54
+ ---
55
+
56
+ ### set
57
+
58
+ Update identity content directly in the database.
59
+
60
+ ```bash
61
+ mirror identity set <layer> <key> --content "..." [--mirror-home PATH]
62
+ ```
63
+
64
+ If `--content` is omitted, content is read from stdin.
65
+
66
+ A new `journey` or `persona` key must be kebab-case: lowercase letters, digits,
67
+ and single hyphens, up to 80 characters, such as `product-launch`. Agents put
68
+ these keys into commands, so `set` and `edit` refuse any other new key and name
69
+ one that would work. A key created before this rule keeps working.
70
+
71
+ **Examples:**
72
+ - `mirror identity set ego behavior --content "Be direct."`
73
+ - `cat new-soul.md | mirror identity set self soul`
74
+
75
+ ---
76
+
77
+ ### edit
78
+
79
+ Open the current content in `$EDITOR`, edit it, and save back to the database on close.
80
+
81
+ ```bash
82
+ mirror identity edit <layer> <key> [--mirror-home PATH]
83
+ ```
84
+
85
+ **Examples:**
86
+ - `mirror identity edit ego behavior`
87
+ - `mirror identity edit self soul`
88
+ - `mirror identity edit persona engineer`
89
+
90
+ If no changes are detected, nothing is written. If the file is left empty, the edit is aborted.
91
+
92
+ ---
93
+
94
+ ## When receiving `/mm:identity [subcommand] [args]`
95
+
96
+ Run the corresponding command above and present the output to the user.