mirror-mind 0.0.1 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/.claude/hooks/log-assistant-reply.sh +85 -0
  2. package/.claude/hooks/log-session-end.sh +85 -0
  3. package/.claude/hooks/log-user-prompt.sh +85 -0
  4. package/.claude/hooks/mirror-inject.sh +85 -0
  5. package/.claude/hooks/session-start.sh +85 -0
  6. package/.gemini/hooks/log-assistant.sh +85 -0
  7. package/.gemini/hooks/log-user.sh +85 -0
  8. package/.gemini/hooks/session-end.sh +85 -0
  9. package/.gemini/hooks/session-start.sh +85 -0
  10. package/.pi/extensions/mirror-logger.ts +646 -0
  11. package/.pi/skills/mm-backup/SKILL.md +21 -0
  12. package/.pi/skills/mm-build/SKILL.md +1206 -0
  13. package/.pi/skills/mm-consolidate/SKILL.md +112 -0
  14. package/.pi/skills/mm-consult/SKILL.md +70 -0
  15. package/.pi/skills/mm-conversations/SKILL.md +16 -0
  16. package/.pi/skills/mm-discard/SKILL.md +39 -0
  17. package/.pi/skills/mm-explore/SKILL.md +255 -0
  18. package/.pi/skills/mm-help/SKILL.md +74 -0
  19. package/.pi/skills/mm-identity/SKILL.md +96 -0
  20. package/.pi/skills/mm-journal/SKILL.md +16 -0
  21. package/.pi/skills/mm-journey/SKILL.md +23 -0
  22. package/.pi/skills/mm-journeys/SKILL.md +15 -0
  23. package/.pi/skills/mm-memories/SKILL.md +17 -0
  24. package/.pi/skills/mm-mirror/SKILL.md +98 -0
  25. package/.pi/skills/mm-mute/SKILL.md +18 -0
  26. package/.pi/skills/mm-new/SKILL.md +18 -0
  27. package/.pi/skills/mm-recall/SKILL.md +17 -0
  28. package/.pi/skills/mm-release-notes/SKILL.md +52 -0
  29. package/.pi/skills/mm-seed/SKILL.md +19 -0
  30. package/.pi/skills/mm-shadow/SKILL.md +117 -0
  31. package/.pi/skills/mm-soul/SKILL.md +502 -0
  32. package/.pi/skills/mm-tasks/SKILL.md +24 -0
  33. package/.pi/skills/mm-update/SKILL.md +32 -0
  34. package/.pi/skills/mm-week/SKILL.md +28 -0
  35. package/.pi/skills/mm-welcome/SKILL.md +24 -0
  36. package/AGENTS.md +188 -0
  37. package/README.md +126 -9
  38. package/bin/loader.js +67 -0
  39. package/bin/mirror-hook.js +7 -0
  40. package/bin/mirror.js +7 -0
  41. package/docs/releases/index.md +100 -0
  42. package/docs/releases/pending-cutoffs.md +510 -0
  43. package/docs/releases/v0.10.0.md +123 -0
  44. package/docs/releases/v0.10.1.md +66 -0
  45. package/docs/releases/v0.10.10.md +51 -0
  46. package/docs/releases/v0.10.11.md +39 -0
  47. package/docs/releases/v0.10.12.md +57 -0
  48. package/docs/releases/v0.10.13.md +35 -0
  49. package/docs/releases/v0.10.14.md +42 -0
  50. package/docs/releases/v0.10.15.md +53 -0
  51. package/docs/releases/v0.10.16.md +35 -0
  52. package/docs/releases/v0.10.17.md +43 -0
  53. package/docs/releases/v0.10.2.md +64 -0
  54. package/docs/releases/v0.10.3.md +78 -0
  55. package/docs/releases/v0.10.4.md +42 -0
  56. package/docs/releases/v0.10.5.md +57 -0
  57. package/docs/releases/v0.10.6.md +47 -0
  58. package/docs/releases/v0.10.7.md +53 -0
  59. package/docs/releases/v0.10.8.md +49 -0
  60. package/docs/releases/v0.10.9.md +37 -0
  61. package/docs/releases/v0.11.0.md +86 -0
  62. package/docs/releases/v0.12.0.md +67 -0
  63. package/docs/releases/v0.13.0.md +64 -0
  64. package/docs/releases/v0.14.0.md +68 -0
  65. package/docs/releases/v0.15.0.md +48 -0
  66. package/docs/releases/v0.16.0.md +50 -0
  67. package/docs/releases/v0.16.1.md +55 -0
  68. package/docs/releases/v0.16.2.md +36 -0
  69. package/docs/releases/v0.17.0.md +50 -0
  70. package/docs/releases/v0.17.1.md +58 -0
  71. package/docs/releases/v0.17.2.md +42 -0
  72. package/docs/releases/v0.17.3.md +58 -0
  73. package/docs/releases/v0.18.0.md +84 -0
  74. package/docs/releases/v0.18.1.md +51 -0
  75. package/docs/releases/v0.18.2.md +69 -0
  76. package/docs/releases/v0.19.0.md +85 -0
  77. package/docs/releases/v0.19.1.md +46 -0
  78. package/docs/releases/v0.20.0.md +85 -0
  79. package/docs/releases/v0.21.0.md +61 -0
  80. package/docs/releases/v0.21.1.md +47 -0
  81. package/docs/releases/v0.22.0.md +77 -0
  82. package/docs/releases/v0.22.1.md +42 -0
  83. package/docs/releases/v0.23.0.md +105 -0
  84. package/docs/releases/v0.24.0.md +125 -0
  85. package/docs/releases/v0.25.0.md +107 -0
  86. package/docs/releases/v0.26.0.md +139 -0
  87. package/docs/releases/v0.26.1.md +65 -0
  88. package/docs/releases/v0.26.2.md +43 -0
  89. package/docs/releases/v0.27.0.md +63 -0
  90. package/docs/releases/v0.28.0.md +59 -0
  91. package/docs/releases/v0.29.0.md +61 -0
  92. package/docs/releases/v0.29.1.md +59 -0
  93. package/docs/releases/v0.29.2.md +59 -0
  94. package/docs/releases/v0.29.3.md +93 -0
  95. package/docs/releases/v0.30.0.md +75 -0
  96. package/docs/releases/v0.30.1.md +93 -0
  97. package/docs/releases/v0.30.2.md +66 -0
  98. package/docs/releases/v0.31.0.md +122 -0
  99. package/docs/releases/v0.31.1.md +142 -0
  100. package/docs/releases/v0.31.10.md +118 -0
  101. package/docs/releases/v0.31.11.md +88 -0
  102. package/docs/releases/v0.31.12.md +105 -0
  103. package/docs/releases/v0.31.13.md +99 -0
  104. package/docs/releases/v0.31.14.md +97 -0
  105. package/docs/releases/v0.31.2.md +115 -0
  106. package/docs/releases/v0.31.3.md +142 -0
  107. package/docs/releases/v0.31.4.md +117 -0
  108. package/docs/releases/v0.31.5.md +155 -0
  109. package/docs/releases/v0.31.6.md +132 -0
  110. package/docs/releases/v0.31.7.md +132 -0
  111. package/docs/releases/v0.31.8.md +120 -0
  112. package/docs/releases/v0.31.9.md +120 -0
  113. package/docs/releases/v0.32.0.md +261 -0
  114. package/docs/releases/v0.32.1.md +59 -0
  115. package/docs/releases/v0.33.0.md +164 -0
  116. package/docs/releases/v0.8.0.md +118 -0
  117. package/docs/releases/v0.9.0.md +98 -0
  118. package/docs/releases/v0.9.1.md +83 -0
  119. package/package.json +102 -6
  120. package/plugins/mirror-mind/.claude-plugin/plugin.json +17 -0
  121. package/plugins/mirror-mind/hooks/hooks.json +62 -0
  122. package/plugins/mirror-mind/hooks/log-assistant-reply.sh +98 -0
  123. package/plugins/mirror-mind/hooks/log-session-end.sh +98 -0
  124. package/plugins/mirror-mind/hooks/log-user-prompt.sh +98 -0
  125. package/plugins/mirror-mind/hooks/mirror-inject.sh +98 -0
  126. package/plugins/mirror-mind/hooks/session-start.sh +98 -0
  127. package/plugins/mirror-mind/skills/mm-backup/SKILL.md +27 -0
  128. package/plugins/mirror-mind/skills/mm-build/SKILL.md +1206 -0
  129. package/plugins/mirror-mind/skills/mm-consolidate/SKILL.md +112 -0
  130. package/plugins/mirror-mind/skills/mm-consult/SKILL.md +83 -0
  131. package/plugins/mirror-mind/skills/mm-conversations/SKILL.md +17 -0
  132. package/plugins/mirror-mind/skills/mm-discard/SKILL.md +40 -0
  133. package/plugins/mirror-mind/skills/mm-explore/SKILL.md +241 -0
  134. package/plugins/mirror-mind/skills/mm-help/SKILL.md +104 -0
  135. package/plugins/mirror-mind/skills/mm-identity/SKILL.md +96 -0
  136. package/plugins/mirror-mind/skills/mm-journal/SKILL.md +21 -0
  137. package/plugins/mirror-mind/skills/mm-journey/SKILL.md +37 -0
  138. package/plugins/mirror-mind/skills/mm-journeys/SKILL.md +15 -0
  139. package/plugins/mirror-mind/skills/mm-memories/SKILL.md +20 -0
  140. package/plugins/mirror-mind/skills/mm-mirror/SKILL.md +67 -0
  141. package/plugins/mirror-mind/skills/mm-mute/SKILL.md +18 -0
  142. package/plugins/mirror-mind/skills/mm-new/SKILL.md +18 -0
  143. package/plugins/mirror-mind/skills/mm-recall/SKILL.md +17 -0
  144. package/plugins/mirror-mind/skills/mm-release-notes/SKILL.md +31 -0
  145. package/plugins/mirror-mind/skills/mm-seed/SKILL.md +15 -0
  146. package/plugins/mirror-mind/skills/mm-shadow/SKILL.md +117 -0
  147. package/plugins/mirror-mind/skills/mm-soul/SKILL.md +488 -0
  148. package/plugins/mirror-mind/skills/mm-tasks/SKILL.md +36 -0
  149. package/plugins/mirror-mind/skills/mm-update/SKILL.md +30 -0
  150. package/plugins/mirror-mind/skills/mm-week/SKILL.md +46 -0
  151. package/plugins/mirror-mind/skills/mm-welcome/SKILL.md +22 -0
  152. package/scripts/codex-hooks/session-end.sh +85 -0
  153. package/scripts/codex-hooks/session-start.sh +85 -0
  154. package/scripts/codex-mirror.sh +48 -0
  155. package/templates/identity/README.md +119 -0
  156. package/templates/identity/ego/behavior.yaml +52 -0
  157. package/templates/identity/ego/constraints.yaml +15 -0
  158. package/templates/identity/ego/identity.yaml +43 -0
  159. package/templates/identity/journeys/personal-growth.yaml +39 -0
  160. package/templates/identity/organization/identity.yaml +24 -0
  161. package/templates/identity/organization/principles.yaml +17 -0
  162. package/templates/identity/personas/coach.yaml +94 -0
  163. package/templates/identity/personas/designer.yaml +93 -0
  164. package/templates/identity/personas/doctor.yaml +96 -0
  165. package/templates/identity/personas/engineer.yaml +77 -0
  166. package/templates/identity/personas/financial.yaml +97 -0
  167. package/templates/identity/personas/prompt-engineer.yaml +122 -0
  168. package/templates/identity/personas/researcher.yaml +88 -0
  169. package/templates/identity/personas/strategist.yaml +91 -0
  170. package/templates/identity/personas/teacher.yaml +95 -0
  171. package/templates/identity/personas/therapist.yaml +91 -0
  172. package/templates/identity/personas/thinker.yaml +74 -0
  173. package/templates/identity/personas/writer.yaml +76 -0
  174. package/templates/identity/self/config.yaml +16 -0
  175. package/templates/identity/self/soul.yaml +105 -0
  176. package/templates/identity/user/identity.yaml +30 -0
  177. package/ts/src/backup/staging.ts +62 -0
  178. package/ts/src/backup/zipBackup.ts +267 -0
  179. package/ts/src/backup/zipReader.ts +109 -0
  180. package/ts/src/backup/zipWriter.ts +148 -0
  181. package/ts/src/builder/activeCheckpoint.ts +134 -0
  182. package/ts/src/builder/aggregateStatus.ts +34 -0
  183. package/ts/src/builder/approve.ts +149 -0
  184. package/ts/src/builder/argv.ts +292 -0
  185. package/ts/src/builder/ariadMethod.ts +536 -0
  186. package/ts/src/builder/artifacts/artifactSurfaces.ts +106 -0
  187. package/ts/src/builder/artifacts/artifactWriter.ts +113 -0
  188. package/ts/src/builder/artifacts/closureArtifacts.ts +199 -0
  189. package/ts/src/builder/artifacts/deliveryStoryArtifacts.ts +316 -0
  190. package/ts/src/builder/artifacts/planArtifacts.ts +242 -0
  191. package/ts/src/builder/artifacts/scaffoldSections.ts +273 -0
  192. package/ts/src/builder/artifacts/scaffoldState.ts +227 -0
  193. package/ts/src/builder/artifacts/storyFiles.ts +61 -0
  194. package/ts/src/builder/artifacts/storyIndex.ts +166 -0
  195. package/ts/src/builder/cadence.ts +59 -0
  196. package/ts/src/builder/card.ts +192 -0
  197. package/ts/src/builder/checkpointRefused.ts +66 -0
  198. package/ts/src/builder/closure.ts +964 -0
  199. package/ts/src/builder/commands.ts +2053 -0
  200. package/ts/src/builder/cursorPosition.ts +176 -0
  201. package/ts/src/builder/cursorTransitions.ts +77 -0
  202. package/ts/src/builder/deliveryCursor.ts +577 -0
  203. package/ts/src/builder/deliveryStoryClosure.ts +521 -0
  204. package/ts/src/builder/deliveryStoryPlan.ts +536 -0
  205. package/ts/src/builder/deliveryStoryReady.ts +160 -0
  206. package/ts/src/builder/deliveryStoryRoadmapClosure.ts +151 -0
  207. package/ts/src/builder/expand.ts +336 -0
  208. package/ts/src/builder/flowUnit.ts +339 -0
  209. package/ts/src/builder/homeSurface.ts +122 -0
  210. package/ts/src/builder/implementationGuard.ts +125 -0
  211. package/ts/src/builder/index.ts +11 -0
  212. package/ts/src/builder/lifecycleRefusal.ts +92 -0
  213. package/ts/src/builder/lifecycleRibbon.ts +159 -0
  214. package/ts/src/builder/load.ts +313 -0
  215. package/ts/src/builder/methodAdoption.ts +113 -0
  216. package/ts/src/builder/methodDefinition.ts +429 -0
  217. package/ts/src/builder/methodInspection.ts +371 -0
  218. package/ts/src/builder/plan.ts +408 -0
  219. package/ts/src/builder/planPreauthorization.ts +265 -0
  220. package/ts/src/builder/prepare.ts +225 -0
  221. package/ts/src/builder/projectPaths.ts +64 -0
  222. package/ts/src/builder/pull.ts +356 -0
  223. package/ts/src/builder/pullCandidates.ts +463 -0
  224. package/ts/src/builder/pullCandidatesRender.ts +238 -0
  225. package/ts/src/builder/refinementField.ts +93 -0
  226. package/ts/src/builder/releaseIntent.ts +173 -0
  227. package/ts/src/builder/resumeState.ts +84 -0
  228. package/ts/src/builder/resumeSurface.ts +149 -0
  229. package/ts/src/builder/roadmapGrammar.ts +300 -0
  230. package/ts/src/builder/roadmapScan.ts +97 -0
  231. package/ts/src/builder/roadmapScope.ts +210 -0
  232. package/ts/src/builder/scopePhrases.ts +146 -0
  233. package/ts/src/builder/storyPaths.ts +196 -0
  234. package/ts/src/builder/storyPlanPreauthorization.ts +287 -0
  235. package/ts/src/builder/surfaceProtocol.ts +42 -0
  236. package/ts/src/builder/templateGeneration.ts +148 -0
  237. package/ts/src/builder/transition.ts +178 -0
  238. package/ts/src/consult/args.ts +99 -0
  239. package/ts/src/consult/core.ts +122 -0
  240. package/ts/src/consult/modelCatalog.ts +55 -0
  241. package/ts/src/consult/render.ts +47 -0
  242. package/ts/src/conversation/append.ts +414 -0
  243. package/ts/src/conversation/backfill.ts +387 -0
  244. package/ts/src/conversation/closeTail.ts +467 -0
  245. package/ts/src/conversation/extraction.ts +333 -0
  246. package/ts/src/conversation/extractionDriver.ts +130 -0
  247. package/ts/src/conversation/extractionRun.ts +70 -0
  248. package/ts/src/conversation/hookPayload.ts +51 -0
  249. package/ts/src/conversation/journeyInference.ts +165 -0
  250. package/ts/src/conversation/journeyRepair.ts +114 -0
  251. package/ts/src/conversation/lifecycleFaces.ts +197 -0
  252. package/ts/src/conversation/lifecycleWrites.ts +313 -0
  253. package/ts/src/conversation/listing.ts +77 -0
  254. package/ts/src/conversation/logger.ts +851 -0
  255. package/ts/src/conversation/loggerCli.ts +321 -0
  256. package/ts/src/conversation/loggerRuntime.ts +259 -0
  257. package/ts/src/conversation/metadataLifecycle.ts +443 -0
  258. package/ts/src/conversation/recall.ts +66 -0
  259. package/ts/src/conversation/sessionComposites.ts +258 -0
  260. package/ts/src/conversation/sessionImport.ts +90 -0
  261. package/ts/src/conversation/transcriptBackfill.ts +141 -0
  262. package/ts/src/cultivation/applyActions.ts +241 -0
  263. package/ts/src/cultivation/cluster.ts +86 -0
  264. package/ts/src/cultivation/consolidationStore.ts +281 -0
  265. package/ts/src/cultivation/promptContext.ts +62 -0
  266. package/ts/src/cultivation/propose.ts +305 -0
  267. package/ts/src/cultivation/scan.ts +155 -0
  268. package/ts/src/db/backupGate.ts +47 -0
  269. package/ts/src/db/bootstrap.ts +108 -0
  270. package/ts/src/db/bootstrapLock.ts +223 -0
  271. package/ts/src/db/copyGuard.ts +60 -0
  272. package/ts/src/db/database.ts +397 -0
  273. package/ts/src/db/decode.ts +66 -0
  274. package/ts/src/db/ftsIntegrity.ts +41 -0
  275. package/ts/src/db/migrateOnOpen.ts +214 -0
  276. package/ts/src/db/migrations.ts +576 -0
  277. package/ts/src/db/readyOnOpen.ts +35 -0
  278. package/ts/src/db/rowDecode.ts +42 -0
  279. package/ts/src/db/schema.ts +432 -0
  280. package/ts/src/db/schemaInventory.ts +225 -0
  281. package/ts/src/db/schemaInventorySnapshot.ts +2107 -0
  282. package/ts/src/db/schemaState.ts +91 -0
  283. package/ts/src/db/schemaTsDivergence.ts +114 -0
  284. package/ts/src/descriptor/descriptorRead.ts +49 -0
  285. package/ts/src/docs/docsLint.ts +265 -0
  286. package/ts/src/explorer/handoff.ts +522 -0
  287. package/ts/src/explorer/render.ts +335 -0
  288. package/ts/src/explorer/story.ts +769 -0
  289. package/ts/src/explorer/transition.ts +72 -0
  290. package/ts/src/extensions/bindings.ts +170 -0
  291. package/ts/src/extensions/catalog.ts +249 -0
  292. package/ts/src/extensions/catalogCommands.ts +513 -0
  293. package/ts/src/extensions/catalogWrites.ts +652 -0
  294. package/ts/src/extensions/contextRuntime.ts +325 -0
  295. package/ts/src/extensions/dispatch.ts +374 -0
  296. package/ts/src/extensions/errors.ts +24 -0
  297. package/ts/src/extensions/manifest.ts +356 -0
  298. package/ts/src/extensions/migrations.ts +350 -0
  299. package/ts/src/extraction/conversation.ts +304 -0
  300. package/ts/src/extraction/conversationMetadata.ts +206 -0
  301. package/ts/src/extraction/fencing.ts +106 -0
  302. package/ts/src/extraction/json.ts +17 -0
  303. package/ts/src/extraction/prompts.ts +470 -0
  304. package/ts/src/frontDoor/args.ts +30 -0
  305. package/ts/src/frontDoor/argvShape.ts +106 -0
  306. package/ts/src/frontDoor/buildLoadRuntime.ts +139 -0
  307. package/ts/src/frontDoor/buildRoute.ts +398 -0
  308. package/ts/src/frontDoor/cli.ts +1872 -0
  309. package/ts/src/frontDoor/cloneRoleGuard.ts +98 -0
  310. package/ts/src/frontDoor/consultRoute.ts +50 -0
  311. package/ts/src/frontDoor/contentTailRoute.ts +239 -0
  312. package/ts/src/frontDoor/conversationLoggerRoute.ts +83 -0
  313. package/ts/src/frontDoor/cultivationRoute.ts +210 -0
  314. package/ts/src/frontDoor/dbPath.ts +131 -0
  315. package/ts/src/frontDoor/dbSafetyToolsRoute.ts +240 -0
  316. package/ts/src/frontDoor/exploreRoute.ts +572 -0
  317. package/ts/src/frontDoor/extensionCatalogRoute.ts +252 -0
  318. package/ts/src/frontDoor/frontDoorLog.ts +57 -0
  319. package/ts/src/frontDoor/identityWrite.ts +36 -0
  320. package/ts/src/frontDoor/journeyWriteRoute.ts +26 -0
  321. package/ts/src/frontDoor/lifecycleWriteRoute.ts +110 -0
  322. package/ts/src/frontDoor/liveBackup.ts +100 -0
  323. package/ts/src/frontDoor/mirrorModeRoute.ts +163 -0
  324. package/ts/src/frontDoor/namedRefusal.ts +35 -0
  325. package/ts/src/frontDoor/nodeSupport.ts +24 -0
  326. package/ts/src/frontDoor/render/consolidate.ts +199 -0
  327. package/ts/src/frontDoor/render/conversations.ts +33 -0
  328. package/ts/src/frontDoor/render/cultivationShared.ts +21 -0
  329. package/ts/src/frontDoor/render/descriptor.ts +20 -0
  330. package/ts/src/frontDoor/render/detectPersona.ts +50 -0
  331. package/ts/src/frontDoor/render/icons.ts +13 -0
  332. package/ts/src/frontDoor/render/identity.ts +59 -0
  333. package/ts/src/frontDoor/render/identityRows.ts +17 -0
  334. package/ts/src/frontDoor/render/inspectPersona.ts +53 -0
  335. package/ts/src/frontDoor/render/journeyStatus.ts +78 -0
  336. package/ts/src/frontDoor/render/journeys.ts +79 -0
  337. package/ts/src/frontDoor/render/list.ts +41 -0
  338. package/ts/src/frontDoor/render/memories.ts +67 -0
  339. package/ts/src/frontDoor/render/recall.ts +49 -0
  340. package/ts/src/frontDoor/render/shadow.ts +155 -0
  341. package/ts/src/frontDoor/render/tasks.ts +99 -0
  342. package/ts/src/frontDoor/render/tasksImportSync.ts +63 -0
  343. package/ts/src/frontDoor/render/week.ts +113 -0
  344. package/ts/src/frontDoor/routing.ts +1001 -0
  345. package/ts/src/frontDoor/runtimeRoute.ts +623 -0
  346. package/ts/src/frontDoor/searchRoute.ts +166 -0
  347. package/ts/src/frontDoor/seedPaths.ts +98 -0
  348. package/ts/src/frontDoor/sessionStartWelcomeRoute.ts +166 -0
  349. package/ts/src/frontDoor/soulRoute.ts +433 -0
  350. package/ts/src/frontDoor/stdinSource.ts +37 -0
  351. package/ts/src/frontDoor/tasksImportSyncRoute.ts +110 -0
  352. package/ts/src/frontDoor/tasksWriteRoute.ts +101 -0
  353. package/ts/src/frontDoor/usage.ts +176 -0
  354. package/ts/src/guards/claudePlugin.ts +298 -0
  355. package/ts/src/guards/packContents.ts +306 -0
  356. package/ts/src/guards/piSourcedSkills.ts +70 -0
  357. package/ts/src/guards/retiredRouteShadows.ts +57 -0
  358. package/ts/src/guards/retiredSurfaces.ts +564 -0
  359. package/ts/src/hooks/claude.ts +214 -0
  360. package/ts/src/hooks/codex.ts +45 -0
  361. package/ts/src/hooks/gemini.ts +126 -0
  362. package/ts/src/hooks/main.ts +109 -0
  363. package/ts/src/hooks/mirrorState.ts +71 -0
  364. package/ts/src/hooks/payload.ts +73 -0
  365. package/ts/src/hooks/runtime.ts +179 -0
  366. package/ts/src/hooks/runtimeDetection.ts +34 -0
  367. package/ts/src/identity/applyConsolidationIdentityUpdate.ts +67 -0
  368. package/ts/src/identity/descriptorGenerate.ts +162 -0
  369. package/ts/src/identity/identityEdit.ts +143 -0
  370. package/ts/src/identity/identityKey.ts +77 -0
  371. package/ts/src/identity/identityRead.ts +69 -0
  372. package/ts/src/identity/identityStore.ts +80 -0
  373. package/ts/src/identity/journeyListing.ts +53 -0
  374. package/ts/src/identity/personaInspect.ts +44 -0
  375. package/ts/src/identity/personaListing.ts +37 -0
  376. package/ts/src/identity/setIdentity.ts +64 -0
  377. package/ts/src/index.ts +231 -0
  378. package/ts/src/init/init.ts +111 -0
  379. package/ts/src/journey/journeyOptions.ts +131 -0
  380. package/ts/src/journey/journeyRemoval.ts +158 -0
  381. package/ts/src/journey/journeyStatus.ts +149 -0
  382. package/ts/src/journey/journeySyncFile.ts +87 -0
  383. package/ts/src/journey/journeyWrite.ts +203 -0
  384. package/ts/src/journey/parentJourney.ts +41 -0
  385. package/ts/src/journey/validateParentJourney.ts +55 -0
  386. package/ts/src/mcp/boundary.ts +151 -0
  387. package/ts/src/mcp/guards.ts +244 -0
  388. package/ts/src/mcp/main.ts +121 -0
  389. package/ts/src/mcp/payload.ts +141 -0
  390. package/ts/src/mcp/protocol.ts +141 -0
  391. package/ts/src/mcp/readModels.ts +241 -0
  392. package/ts/src/mcp/registry.ts +201 -0
  393. package/ts/src/mcp/serve.ts +120 -0
  394. package/ts/src/mcp/tools/deterministic.ts +137 -0
  395. package/ts/src/mcp/tools/providerCrossing.ts +187 -0
  396. package/ts/src/mcp/wire.ts +8 -0
  397. package/ts/src/memory/journal.ts +180 -0
  398. package/ts/src/memory/listing.ts +107 -0
  399. package/ts/src/memory/memoryWrite.ts +88 -0
  400. package/ts/src/memory/reinforcement.ts +35 -0
  401. package/ts/src/mirror/context.ts +161 -0
  402. package/ts/src/mirror/defaultResolution.ts +199 -0
  403. package/ts/src/mirror/mirrorForm.ts +43 -0
  404. package/ts/src/mirror/orchestration.ts +364 -0
  405. package/ts/src/mirror/reception.ts +194 -0
  406. package/ts/src/mirror/render.ts +75 -0
  407. package/ts/src/mirror/runtimeSession.ts +205 -0
  408. package/ts/src/mode/operatingMode.ts +148 -0
  409. package/ts/src/observability/callOutcome.ts +115 -0
  410. package/ts/src/observability/inspectLedger.ts +329 -0
  411. package/ts/src/observability/ledgerHooks.ts +126 -0
  412. package/ts/src/observability/llmCalls.ts +154 -0
  413. package/ts/src/persona/detectPersona.ts +81 -0
  414. package/ts/src/planning/promptAssembly.ts +111 -0
  415. package/ts/src/planning/weekPending.ts +81 -0
  416. package/ts/src/planning/weekPlan.ts +183 -0
  417. package/ts/src/planning/weekSave.ts +117 -0
  418. package/ts/src/providers/config.ts +189 -0
  419. package/ts/src/providers/cost.ts +64 -0
  420. package/ts/src/providers/credits.ts +204 -0
  421. package/ts/src/providers/embedding.ts +321 -0
  422. package/ts/src/providers/familyProviders.ts +147 -0
  423. package/ts/src/providers/llm.ts +334 -0
  424. package/ts/src/providers/openrouter.ts +244 -0
  425. package/ts/src/providers/redaction.ts +110 -0
  426. package/ts/src/providers/replay.ts +15 -0
  427. package/ts/src/providers/transport.ts +410 -0
  428. package/ts/src/repair/encodingRepair.ts +253 -0
  429. package/ts/src/runtime/backup.ts +151 -0
  430. package/ts/src/runtime/channel.ts +146 -0
  431. package/ts/src/runtime/config.ts +168 -0
  432. package/ts/src/runtime/diagnose.ts +686 -0
  433. package/ts/src/runtime/git.ts +510 -0
  434. package/ts/src/runtime/installKind.ts +220 -0
  435. package/ts/src/runtime/migrate.ts +154 -0
  436. package/ts/src/runtime/packageIdentity.ts +102 -0
  437. package/ts/src/runtime/releaseNotes.ts +244 -0
  438. package/ts/src/runtime/status.ts +557 -0
  439. package/ts/src/runtime/strategies/clone.ts +200 -0
  440. package/ts/src/runtime/strategies/package.ts +328 -0
  441. package/ts/src/runtime/treeRoot.ts +30 -0
  442. package/ts/src/runtime/update.ts +445 -0
  443. package/ts/src/runtime/updateGate.ts +40 -0
  444. package/ts/src/runtime/updatePipeline.ts +159 -0
  445. package/ts/src/runtime/version.ts +36 -0
  446. package/ts/src/runtime/wiring.ts +130 -0
  447. package/ts/src/search/memorySearch.ts +338 -0
  448. package/ts/src/search/ranker.ts +154 -0
  449. package/ts/src/seed/seed.ts +256 -0
  450. package/ts/src/seed/seedYaml.ts +133 -0
  451. package/ts/src/soul/apply.ts +218 -0
  452. package/ts/src/soul/harvest.ts +267 -0
  453. package/ts/src/soul/prompts/soul_beauty_voice.md +103 -0
  454. package/ts/src/soul/prompts/soul_self_voice.md +219 -0
  455. package/ts/src/soul/prompts/soul_wisdom_voice.md +121 -0
  456. package/ts/src/soul/prompts.ts +85 -0
  457. package/ts/src/soul/render.ts +358 -0
  458. package/ts/src/soul/state.ts +212 -0
  459. package/ts/src/soul/transition.ts +37 -0
  460. package/ts/src/tasks/journeyPathParse.ts +113 -0
  461. package/ts/src/tasks/taskImportSync.ts +142 -0
  462. package/ts/src/tasks/taskStore.ts +312 -0
  463. package/ts/src/tasks/weekView.ts +120 -0
  464. package/ts/src/util/clipCodePoints.ts +26 -0
  465. package/ts/src/util/paths.ts +63 -0
  466. package/ts/src/util/program.ts +9 -0
  467. package/ts/src/util/pyGenerators.ts +144 -0
  468. package/ts/src/util/pythonText.ts +317 -0
  469. package/ts/src/util/semver.ts +45 -0
  470. package/ts/src/util/shellWord.ts +25 -0
  471. package/ts/src/util/slug.ts +64 -0
  472. package/ts/src/welcome/card.ts +339 -0
  473. package/ts/src/welcome/statusLine.ts +101 -0
  474. package/ts/src/welcome/updateCache.ts +129 -0
@@ -0,0 +1,488 @@
1
+ ---
2
+ name: "mm:soul"
3
+ description: Activates Soul Mode, a ritual listening mode for inner life
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Soul Mode
8
+
9
+ Activates `☾ Soul Mode`, the ritual listening lens for inner life.
10
+
11
+ Soul Mode turns the day toward the inner life. It opens with a visible entry
12
+ surface and the question: "how is your day going today?"
13
+
14
+ ## Usage
15
+
16
+ ```text
17
+ /mm:soul [journey-slug]
18
+ ```
19
+
20
+ Natural-language equivalents should be treated as the product interface:
21
+
22
+ ```text
23
+ enter Soul Mode
24
+ open Soul Mode
25
+ start Soul Mode for <journey-slug>
26
+ ```
27
+
28
+ ## 1. Activate Soul Mode
29
+
30
+ ```bash
31
+ mirror soul load [slug]
32
+ ```
33
+
34
+ The command:
35
+
36
+ - activates `☾ Soul Mode` in the operating-mode lifecycle;
37
+ - renders the Mode Entry surface (`☾ SOUL MODE ACTIVE`);
38
+ - sets the journey as sticky context when a slug is provided;
39
+ - does not open a rite;
40
+ - does not create or update a journal entry.
41
+
42
+ ## 1.1 Transition Surface
43
+
44
+ The `soul load` output includes the conversational transition surface. Render
45
+ that surface visibly to the user before continuing. Do not recreate it from
46
+ scratch unless the command failed to render it; copy the rendered surface from
47
+ the command output.
48
+
49
+ ## 2. Listening To The Living Field
50
+
51
+ After activation, treat the user's next natural answer as Listening To The Living
52
+ Field. Do not show Possible Listenings when the answer is still thin. Reflect or
53
+ ask a follow-up instead.
54
+
55
+ When living matter appears, such as a touched center, emerging shadow,
56
+ threatened value, search for clarity, request for beauty or meaning, strong
57
+ dispersion, or a phrase with more weight than the rest, render Possible
58
+ Listenings at the end of the response. Do not only ask another reflective
59
+ question once this threshold is crossed.
60
+
61
+ Use the contained renderer. This call is required Soul Mode behavior, not
62
+ optional tool use:
63
+
64
+ ```bash
65
+ mirror soul listen \
66
+ --self "situated Self Voice description" \
67
+ --shadow "situated Shadow Voice description" \
68
+ [--wisdom "situated Wisdom Voice description"] \
69
+ [--beauty "situated Beauty Voice description"]
70
+ ```
71
+
72
+ The descriptions must be situated in what the user brought. Do not use generic
73
+ menu copy when the user has offered specific material.
74
+
75
+ The threshold has been crossed when the user moves from reporting events to
76
+ naming an inner contract or referring to any internal tension, conflict, or
77
+ discomfort, such as fear, wound, desire, compulsion, or threatened sense of
78
+ belonging.
79
+
80
+ ## 3. Activation, Listening, And Operational Boundary
81
+
82
+ Activating Soul Mode is context setup and ritual entry only. After rendering the
83
+ surface, let the user answer naturally. Do not infer a rite, create a fruit, or
84
+ write to the journal during activation.
85
+
86
+ Rendering Possible Listenings is still only an invitation. The surface must end
87
+ by telling the user they can hear one of these voices now or just continue the
88
+ conversation. Do not open a rite until the user chooses a listening. Do not
89
+ create a fruit or write to the journal in this story.
90
+
91
+ Soul Mode must not directly execute clear operational mutation requests. When
92
+ the user asks to edit files, create code, implement a story, run implementation
93
+ commands, mutate roadmap/docs/code, package a release, or otherwise change
94
+ project state, do not call Soul Mode ritual commands and do not mutate files.
95
+
96
+ Instead, name the boundary visibly and ask whether to switch to Builder Mode for
97
+ the same journey. Use this response shape:
98
+
99
+ ```text
100
+ ☾ SOUL → BUILDER BOUNDARY
101
+
102
+ This is operational Builder work, not Soul Mode ritual listening. Soul Mode turns the day toward the inner life; Builder executes commitment. I can switch to Builder Mode for <slug> and do this there.
103
+ ```
104
+
105
+ Only after the user confirms the switch should Mirror activate Builder Mode with:
106
+
107
+ ```bash
108
+ mirror build load <slug>
109
+ ```
110
+
111
+ Local refinements to the ritual experience, such as discussing microcopy,
112
+ thresholds, voice behavior, icons, or flow, remain conversational unless the user
113
+ explicitly asks to preserve or implement them in the codebase.
114
+
115
+ ## 4. Active Rite: Soul Mode Voices
116
+
117
+ When Possible Listenings are visible and the user chooses Self Voice, Shadow
118
+ Voice, Wisdom Voice, or Beauty Voice in natural language, render the listening
119
+ surface before the interpretive bridge:
120
+
121
+ ```bash
122
+ mirror soul rite self
123
+ mirror soul rite shadow
124
+ mirror soul rite wisdom \
125
+ --says "complete Wisdom Voice response"
126
+ mirror soul rite beauty \
127
+ --says "complete Beauty Voice response"
128
+ ```
129
+
130
+ You may pass situated listening copy when it improves continuity:
131
+
132
+ ```bash
133
+ mirror soul rite self \
134
+ --says "complete Self Voice response"
135
+ ```
136
+
137
+ Voices are listening lenses, not conversational agents. The user always
138
+ converses with Mirror. The voice response appears inside the card under `the
139
+ voice says`; Mirror then makes an interpretive bridge outside the card,
140
+ connecting what the voice says to the ongoing conversation. Do not render a
141
+ `listening for` section for any voice.
142
+
143
+ For Self Voice, use the composed prompt as the voice contract:
144
+
145
+ ```bash
146
+ mirror soul prompt self
147
+ ```
148
+
149
+ This command injects the user's current `self/soul` identity layer into the base
150
+ Self Voice prompt, so the voice gains the principles the user is incorporating
151
+ over time. Before rendering the Self card, compose the complete Self Voice
152
+ utterance yourself from the prompt and the user's living material, then pass it
153
+ with `--says`. Do not reduce Self Voice to a one-line aphorism. The response
154
+ inside the card should usually be 3 to 5 compact paragraphs; a single sentence is
155
+ only a seed, not the whole voice.
156
+
157
+ The prompt is grammar, not text to quote. Self Voice listens for principle,
158
+ value, internal constitution, and what must not be betrayed. It must mirror what
159
+ the user is not seeing and use the invisible principles to reveal what is
160
+ happening; it must not solve the problem, recommend a next step, or tell the user
161
+ what to do.
162
+
163
+ For Shadow Voice, listen to the rejected part without punishment, diagnosis, or
164
+ governance. The Shadow response inside the card should reveal the protection or necessity
165
+ inside the rejected part, not justify it. After the card, Mirror bridges the
166
+ voice response back to the conversation.
167
+
168
+ For Wisdom Voice, use the canonical prompt as the voice contract:
169
+
170
+ ```bash
171
+ mirror soul prompt wisdom
172
+ ```
173
+
174
+ Before rendering the Wisdom card, compose the complete Wisdom Voice utterance yourself from the prompt and the user's living material. Then call `soul rite wisdom --says "..."`. Never call `soul rite wisdom` without `--says`; that would render no real voice.
175
+
176
+ The prompt is grammar, not text to quote. Wisdom Voice lets the user's material
177
+ be crossed by a situated idea from a thinker, philosopher, sacred text, ancient
178
+ tradition, proverb, contemplative teaching, mythic image, or other relevant
179
+ wisdom text.
180
+
181
+ Wisdom Voice must be substantial: usually 5 to 8 compact paragraphs inside the
182
+ card, directly below `the voice says`, not a one-line aphorism. Do not render a
183
+ `listening for` section.
184
+
185
+ The card must contain the voice of the selected source itself: the text,
186
+ tradition, thinker, prophet, monk, sage, or old teaching speaking from its own
187
+ symbolic world. The tone is solemn, ancestral, divine, severe, poetic, and
188
+ atemporal: like a god on a mountain, a Zarathustra-like figure descending after
189
+ solitude, a reclusive monk, or a sage who has waited for everyone else to speak
190
+ first. It should not sound like Mirror's ordinary explanatory voice.
191
+
192
+ Inside the card, Wisdom Voice does not explain, analyze, cite, justify, or bridge
193
+ to the user's practical problem. It affirms, reveals, declares, and unfolds the
194
+ source's central image, metaphor, symbol, distinction, or teaching from within
195
+ its native world. Use archetypal language when fitting: mountain, earth, sky,
196
+ abyss, fire, seed, river, tree, root, fruit, forge, dust, stars, silence, season,
197
+ pulse, covenant, exile, return, threshold, wound, blessing. End with a powerful,
198
+ lapidary declaration rather than an ordinary question.
199
+
200
+ The practical connection to the user's concrete problem is Mirror's job and must
201
+ happen outside the card, after the voice, in Mirror's normal tone. Outside the
202
+ card, Mirror should briefly explain the origin of the passage or teaching when
203
+ known: who said it, where it appears, and the historical or textual context that
204
+ matters for this conversation. Keep that origin note related to the user's
205
+ material, not as an academic aside. Do not fabricate citations, books, chapters,
206
+ verses, page numbers, or exact wording; if uncertain, name only the source level
207
+ that is reliable.
208
+
209
+ For Beauty Voice, use the canonical prompt as the voice contract:
210
+
211
+ ```bash
212
+ mirror soul prompt beauty
213
+ ```
214
+
215
+ Before rendering the Beauty card, compose the complete Beauty Voice utterance yourself from the prompt and the user's living material. Then call `soul rite beauty --says "..."`. Never call `soul rite beauty` without `--says`; that would render no real voice.
216
+
217
+ The prompt is grammar, not text to quote. Beauty Voice listens for the form of
218
+ aliveness still present in the user's material: texture, delicacy, care, meaning,
219
+ body, image, rhythm, poem, literature, music, atmosphere, or the place where life
220
+ still breathes. It must not force positivity, minimize pain, decorate the user's
221
+ material, or tell the user what to do.
222
+
223
+ Beauty Voice must be substantial: usually 4 to 6 compact paragraphs inside the
224
+ card, directly below `the voice says`, not a decorative one-line consolation. Do
225
+ not render a `listening for` section.
226
+
227
+ Inside the card, Beauty speaks as image, texture, rhythm, atmosphere, or fragment
228
+ without explaining the user's psychology or bridging practically to the problem.
229
+ The practical connection to the user's concrete material is Mirror's job and must
230
+ happen outside the card, after the voice, in Mirror's normal tone. Outside the
231
+ card, Mirror may name a poem, author, artwork, song, or aesthetic source when
232
+ useful and reliable. Do not fabricate citation details when the origin is
233
+ uncertain.
234
+
235
+ ## 5. Fruit In Maturation
236
+
237
+ During an active Self Voice or Shadow Voice rite, when the conversation yields a
238
+ provisional harvest, render one Fruit In Maturation at the end of the response:
239
+
240
+ ```bash
241
+ mirror soul fruit set "provisional fruit text"
242
+ ```
243
+
244
+ Session routing is hook-owned in Claude Code; do not fabricate a session id.
245
+
246
+ Keep exactly one fruit in maturation. The fruit should thicken over turns.
247
+ When new material appears, do not replace the fruit with the newest insight as a
248
+ filter. Instead, synthesize the current fruit with the new living material and
249
+ call `fruit set` with the denser formulation.
250
+
251
+ If needed, render the current fruit first:
252
+
253
+ ```bash
254
+ mirror soul fruit show
255
+ ```
256
+
257
+ Fruit maturation replaces the wording, not the lineage. Preserve the previous
258
+ living core unless the user explicitly rejects it.
259
+
260
+ The fruit should remain singular in form but plural in root. If more than one
261
+ living element appears in a turn, do not choose only one by default. Preserve
262
+ every element that deepens the same fruit, then compress them into one living
263
+ phrase. Do not turn the fruit into a list, a summary, or a bundle of separate
264
+ takeaways.
265
+
266
+ Include multiple new elements when they deepen the same living fruit. Leave out
267
+ elements that belong to another fruit, are only context, merely repeat what is
268
+ already present, weaken the phrase, or should remain an unresolved open question.
269
+
270
+ A good fruit is short, memorable, phrased as living insight rather than a task,
271
+ faithful to the active voice, revisable, and dense enough to carry the lineage of
272
+ what has already appeared.
273
+
274
+ ## 6. Closing Rite
275
+
276
+ The Closing Rite closes the Soul Mode session opened by the entry question
277
+ "how is your day going today?" It is not necessarily an exit from Soul Mode.
278
+ After the Closing Rite, Mirror invites the user to review what may want to remain
279
+ before ending.
280
+
281
+ Render the Closing Rite when:
282
+
283
+ - the user asks to close the rite/session;
284
+ - the user says there is nothing more after harvest;
285
+ - a harvested fruit has just been saved to the journal.
286
+
287
+ Natural-language examples:
288
+
289
+ ```text
290
+ let's close the rite
291
+ I think that's it
292
+ end this session
293
+ close this ritual
294
+ ```
295
+
296
+ Compose compact situated material from the conversation and call:
297
+
298
+ ```bash
299
+ mirror soul close \
300
+ --harvested "what was harvested" \
301
+ --echoes "what still echoes" \
302
+ --open "what remains open" \
303
+ --integration "what may want integration later"
304
+ ```
305
+
306
+ Only include sections that have real material. At least one section is required.
307
+ Paste the Closing Rite surface visibly before commentary.
308
+
309
+ After the Closing Rite, ask exactly:
310
+
311
+ ```text
312
+ There is living material that may want to remain as part of your Mirror identity. Do you want to integrate it now?
313
+ ```
314
+
315
+ If the user says yes, render Integration Proposal. If the user declines and inclines
316
+ toward ending for today, exit Soul Mode by deactivating the active operating mode:
317
+
318
+ ```bash
319
+ mirror mode deactivate
320
+ ```
321
+
322
+ Then leave a short farewell in Mirror's normal voice. If the user brings another
323
+ theme, stay in Soul Mode and treat it as a new answer to the day's living field.
324
+
325
+ Closing is not integration. It must not save a journal entry by itself, propose
326
+ an identity diff, mutate Self/Shadow/Ego/persona/journey identity, or change
327
+ project state.
328
+
329
+ ## 7. Integration Proposal
330
+
331
+ When the user accepts the post-closing invitation, or asks what may want to
332
+ remain, render Integration Proposal. This card is the proposed integration text
333
+ itself, not a preliminary map:
334
+
335
+ ```bash
336
+ mirror soul review \
337
+ --origin "where this material came from" \
338
+ --self "first-person principle/practice" \
339
+ --shadow "protective part to recognize" \
340
+ --ego "operational behavior pattern" \
341
+ --persona "public presentation pattern" \
342
+ --open "question or material to leave open"
343
+ ```
344
+
345
+ Only include sections with real material. At least one section is required.
346
+ Paste the Integration Proposal surface visibly before commentary.
347
+
348
+ The `origin` and `leave open` sections are context only. Registrable identity
349
+ sections are Self, Shadow, Ego, and Persona. The card must not include journey
350
+ identity or journey pattern; that category is not mature enough for this release.
351
+
352
+ After Integration Proposal, ask exactly:
353
+
354
+ ```text
355
+ Do you want to record it this way in your identity? Or we can adjust anything you want.
356
+ ```
357
+
358
+ If the user asks to adjust, render an updated Integration Proposal before any
359
+ apply. If the user confirms registration, apply only the registrable identity
360
+ sections present in the card, using their exact text. Do not mutate from `origin`
361
+ or `leave open`.
362
+
363
+ ## 8. Focused Psyche Enrichment Proposal
364
+
365
+ The multi-layer Integration Proposal is the normal proposal surface. Use the
366
+ focused `soul propose` surface only when the user asks to isolate or rewrite one
367
+ specific layer before applying.
368
+
369
+ When the user asks how one specific point could remain in Self, Shadow, Ego, or a
370
+ persona, first load the current target identity when possible:
371
+
372
+ ```bash
373
+ mirror identity get self soul
374
+ mirror identity get shadow profile
375
+ mirror identity get ego behavior
376
+ mirror identity get persona <persona-id>
377
+ ```
378
+
379
+ Then render a proposal-only surface:
380
+
381
+ ```bash
382
+ mirror soul propose self \
383
+ --origin "Soul Mode harvest / review context" \
384
+ --current "current self/soul material or none loaded" \
385
+ --proposed "proposed identity content" \
386
+ --why "why this may belong"
387
+ ```
388
+
389
+ Targets:
390
+
391
+ - `self` defaults to key `soul`.
392
+ - `shadow` defaults to key `profile`.
393
+ - `ego` defaults to key `behavior`.
394
+ - `persona` requires `--key <persona-id>`.
395
+
396
+ The proposal must include `proposal only — no identity changed`. Do not apply it
397
+ until the user explicitly confirms the exact proposed content.
398
+
399
+ The `--proposed` text must be the exact integration sentence/paragraph to add,
400
+ not an informal summary and not the full replacement document. `soul apply`
401
+ records the individual integration and appends it to the target identity under
402
+ the layer-specific integration section; it must not overwrite the existing
403
+ identity content by default.
404
+
405
+ Use layer-appropriate language:
406
+
407
+ - Self: an affirmative first-person principle the user adopts as practice while accepting good and bad days. Do not use possibility language such as `can`, `may`, `maybe`, or `need to` as the center of the Self statement. Prefer direct principle language, e.g. `I care for bonds without turning immediate availability into moral proof of love; my inner measure also belongs to care.` or `My true commitment is born from the truth of the work, not from managing my image.`
408
+ - Shadow: a first-person recognition of a protective part without shame or command, e.g. `A part of me tries to buy safety by offering excessive availability when it fears being judged as careless.`
409
+ - Ego: a behavioral pattern stated operationally, e.g. `When I fear judgment, I can compensate by staying available beyond the real measure.`
410
+ - Persona: a public-role pattern stated as presentation, not essence, e.g. `My professional persona can confuse reliability with excessive visible availability.`
411
+
412
+ ## 9. Confirmation And Safe Identity Mutation
413
+
414
+ If the user asks to apply a proposal, first ask for explicit confirmation with the exact target and exact text:
415
+
416
+ ```text
417
+ May I apply exactly this proposal to `self/soul`:
418
+
419
+ "..."
420
+
421
+ Do you confirm applying exactly this text?
422
+ ```
423
+
424
+ If the user explicitly confirms applying a proposal, call:
425
+
426
+ ```bash
427
+ mirror soul apply self \
428
+ --proposed "exact proposed integration text" \
429
+ --origin "Soul Mode harvest / integration proposal context" \
430
+ --confirm APPLY
431
+ ```
432
+
433
+ Use the same target layer/key as the proposal. For persona, include `--key`.
434
+ Never call `soul apply` without explicit user confirmation. Never apply a
435
+ paraphrase that differs from the proposed content unless the user first approves
436
+ the revised proposal. `soul apply` is additive by default: it preserves existing
437
+ identity content, creates an individual integration record, and appends the
438
+ confirmed text under the target layer's integration section:
439
+
440
+ - Self: `## New Incorporated Principles`
441
+ - Shadow: `## New Hidden Needs Recognized`
442
+ - Ego: `## New Operational Patterns Identified`
443
+ - Persona: `## New Participation Patterns Revealed`
444
+
445
+ After applying, ask:
446
+
447
+ ```text
448
+ Do you want to review another integration, or shall we close here?
449
+ ```
450
+
451
+ ## 10. Harvested Fruit And Journal Confirmation
452
+
453
+ When the user says they wish to harvest, close the current fruit into a Harvested
454
+ Fruit surface:
455
+
456
+ ```bash
457
+ mirror soul harvest set "final fruit text"
458
+ ```
459
+
460
+ If the fruit is already harvested, render it with:
461
+
462
+ ```bash
463
+ mirror soul harvest show
464
+ ```
465
+
466
+ Paste the Harvested Fruit surface visibly. Do not save automatically. The card
467
+ asks whether to save as-is or change anything first, and the user must explicitly
468
+ confirm saving or request an edit.
469
+
470
+ When the user confirms saving, call:
471
+
472
+ ```bash
473
+ mirror soul harvest save [--journey journey-slug]
474
+ ```
475
+
476
+ This creates one structured Markdown journal entry and clears the harvested fruit state. When a runtime conversation is available, the journal entry includes the originating `conversation_id`, an origin link, and preserved conversation material. If the user asks to save again after state is cleared, do not create a duplicate.
477
+
478
+ After a successful save, do not stop at "saved to journal". Immediately render
479
+ the Closing Rite with `memory soul close`, using the harvested fruit and any
480
+ remaining echoes/open questions from the conversation. Then ask: `There is living material that may want to remain. Do you want to look at it together before we close?`
481
+
482
+ When the user declines saving, call:
483
+
484
+ ```bash
485
+ mirror soul harvest decline
486
+ ```
487
+
488
+ This clears the harvested fruit without creating a journal entry.
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: "mm:tasks"
3
+ description: Lists and manages journey tasks
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Tasks
8
+
9
+ When receiving `/mm:tasks`, run:
10
+
11
+ ```bash
12
+ mirror tasks [SUBCOMMAND] [ARGS]
13
+ ```
14
+
15
+ ## Subcommands
16
+
17
+ - **No argument or `list`**: list open tasks grouped by journey
18
+ - `--journey SLUG`: filter by journey
19
+ - `--status STATUS`: filter by status (`todo`, `doing`, `done`, `blocked`)
20
+ - `--all`: include completed tasks
21
+ - `add "TITLE" --journey SLUG [--due YYYY-MM-DD] [--stage STAGE]`: create a task
22
+ - `done TASK_ID`: mark task as completed
23
+ - `doing TASK_ID`: mark task as in progress
24
+ - `block TASK_ID`: mark task as blocked
25
+ - `import [SLUG]`: import pending tasks from journey paths
26
+ - `sync [SLUG]`: sync tasks from external reference files
27
+ - `sync-config SLUG /path/to/file`: configure a journey reference file for sync
28
+ - `delete TASK_ID`: remove a task
29
+
30
+ ## Argument Interpretation
31
+
32
+ If `$ARGUMENTS` contains a journey slug, use it as `--journey`.
33
+ If it contains "all", use `--all`.
34
+ If it is a sentence like "I need to do X by Friday", create a task with `add`.
35
+
36
+ Present the result in a readable form.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: "mm:update"
3
+ description: Updates the local Mirror Mind runtime through the safe runtime updater
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Update Mirror
8
+
9
+ Use when the user asks any natural-language variant of:
10
+
11
+ - "Update my Mirror."
12
+ - "Update Mirror."
13
+ - "Install the new Mirror version."
14
+ - "Apply the Mirror update."
15
+
16
+ ## Command
17
+
18
+ Run the safe updater:
19
+
20
+ ```bash
21
+ mirror runtime update
22
+ ```
23
+
24
+ Show the output verbatim. Do not replace this with `git pull`, `git fetch`, or
25
+ manual migration commands. The runtime updater owns the status gate, the
26
+ verified backup, the fast-forward, the migration, and the post-update check.
27
+
28
+ If the updater reports a recovery route, show it exactly as printed: it names
29
+ the commit to return to. If it succeeds, mention the installed version if the
30
+ output includes it.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: "mm:week"
3
+ description: Plans the week by ingesting free-text tasks/appointments or showing the weekly view
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Week
8
+
9
+ When receiving `/mm:week`, run according to the arguments.
10
+
11
+ ## No Argument: Weekly View
12
+
13
+ ```bash
14
+ mirror week view
15
+ ```
16
+
17
+ Shows current-week tasks and appointments grouped by day.
18
+
19
+ **Display rules:**
20
+ - Past appointments (`scheduled_at` < now) do not appear
21
+ - Tasks with past `due_date` and status != done appear as overdue
22
+ - Items with `scheduled_at` show the exact time
23
+ - Items with only `time_hint` show the hint
24
+ - Journey appears beside the item when present
25
+
26
+ ## With Text: Ingest Weekly Plan
27
+
28
+ ```bash
29
+ mirror week plan "TEXTO LIVRE"
30
+ ```
31
+
32
+ The script extracts items through the LLM and returns JSON with proposed items plus similarity warnings.
33
+
34
+ **Required flow:**
35
+ 1. Run the script with the user's text.
36
+ 2. Present extracted items in readable form.
37
+ 3. Show similarity warnings if any.
38
+ 4. Ask for confirmation before creating items.
39
+ 5. After confirmation, run: `mirror week save`
40
+
41
+ Never save automatically without user confirmation.
42
+
43
+ ## Argument Interpretation
44
+
45
+ If `$ARGUMENTS` is empty or `view`, show the week.
46
+ If `$ARGUMENTS` contains descriptive text, ingest it as a plan.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: "mm:welcome"
3
+ description: Renders the state-aware welcome card on demand
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Welcome
8
+
9
+ When receiving `/mm:welcome`, run:
10
+
11
+ ```bash
12
+ mirror welcome
13
+ ```
14
+
15
+ Show the user the output verbatim. The welcome is a short, state-aware
16
+ greeting composed from the database: header, active journey, recent insight
17
+ or conversation, and a closing invitation.
18
+
19
+ If the command prints nothing, tell the user: "Nothing to surface right now."
20
+ Otherwise, do not add commentary — the welcome speaks for itself.
21
+
22
+ See `docs/product/specs/welcome/index.md` for the composition rules.