mirror-mind 0.0.0-stage → 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.
- package/.claude/hooks/log-session-end.sh +85 -0
- package/.claude/hooks/log-user-prompt.sh +85 -0
- package/.claude/hooks/mirror-inject.sh +85 -0
- package/.claude/hooks/session-start.sh +85 -0
- package/.gemini/hooks/log-assistant.sh +85 -0
- package/.gemini/hooks/log-user.sh +85 -0
- package/.gemini/hooks/session-end.sh +85 -0
- package/.gemini/hooks/session-start.sh +85 -0
- package/.pi/extensions/mirror-logger.ts +561 -0
- package/.pi/skills/mm-backup/SKILL.md +21 -0
- package/.pi/skills/mm-build/SKILL.md +1206 -0
- package/.pi/skills/mm-consolidate/SKILL.md +112 -0
- package/.pi/skills/mm-consult/SKILL.md +70 -0
- package/.pi/skills/mm-conversations/SKILL.md +16 -0
- package/.pi/skills/mm-discard/SKILL.md +39 -0
- package/.pi/skills/mm-explore/SKILL.md +255 -0
- package/.pi/skills/mm-help/SKILL.md +74 -0
- package/.pi/skills/mm-identity/SKILL.md +96 -0
- package/.pi/skills/mm-journal/SKILL.md +16 -0
- package/.pi/skills/mm-journey/SKILL.md +23 -0
- package/.pi/skills/mm-journeys/SKILL.md +15 -0
- package/.pi/skills/mm-memories/SKILL.md +17 -0
- package/.pi/skills/mm-mirror/SKILL.md +98 -0
- package/.pi/skills/mm-mute/SKILL.md +18 -0
- package/.pi/skills/mm-new/SKILL.md +18 -0
- package/.pi/skills/mm-recall/SKILL.md +17 -0
- package/.pi/skills/mm-release-notes/SKILL.md +52 -0
- package/.pi/skills/mm-seed/SKILL.md +19 -0
- package/.pi/skills/mm-shadow/SKILL.md +117 -0
- package/.pi/skills/mm-soul/SKILL.md +502 -0
- package/.pi/skills/mm-tasks/SKILL.md +24 -0
- package/.pi/skills/mm-update/SKILL.md +32 -0
- package/.pi/skills/mm-week/SKILL.md +28 -0
- package/.pi/skills/mm-welcome/SKILL.md +24 -0
- package/AGENTS.md +188 -0
- package/LICENSE +21 -0
- package/README.md +128 -2
- package/bin/loader.js +67 -0
- package/bin/mirror-hook.js +7 -0
- package/bin/mirror.js +7 -0
- package/docs/releases/index.md +99 -0
- package/docs/releases/pending-cutoffs.md +510 -0
- package/docs/releases/v0.10.0.md +123 -0
- package/docs/releases/v0.10.1.md +66 -0
- package/docs/releases/v0.10.10.md +51 -0
- package/docs/releases/v0.10.11.md +39 -0
- package/docs/releases/v0.10.12.md +57 -0
- package/docs/releases/v0.10.13.md +35 -0
- package/docs/releases/v0.10.14.md +42 -0
- package/docs/releases/v0.10.15.md +53 -0
- package/docs/releases/v0.10.16.md +35 -0
- package/docs/releases/v0.10.17.md +43 -0
- package/docs/releases/v0.10.2.md +64 -0
- package/docs/releases/v0.10.3.md +78 -0
- package/docs/releases/v0.10.4.md +42 -0
- package/docs/releases/v0.10.5.md +57 -0
- package/docs/releases/v0.10.6.md +47 -0
- package/docs/releases/v0.10.7.md +53 -0
- package/docs/releases/v0.10.8.md +49 -0
- package/docs/releases/v0.10.9.md +37 -0
- package/docs/releases/v0.11.0.md +86 -0
- package/docs/releases/v0.12.0.md +67 -0
- package/docs/releases/v0.13.0.md +64 -0
- package/docs/releases/v0.14.0.md +68 -0
- package/docs/releases/v0.15.0.md +48 -0
- package/docs/releases/v0.16.0.md +50 -0
- package/docs/releases/v0.16.1.md +55 -0
- package/docs/releases/v0.16.2.md +36 -0
- package/docs/releases/v0.17.0.md +50 -0
- package/docs/releases/v0.17.1.md +58 -0
- package/docs/releases/v0.17.2.md +42 -0
- package/docs/releases/v0.17.3.md +58 -0
- package/docs/releases/v0.18.0.md +84 -0
- package/docs/releases/v0.18.1.md +51 -0
- package/docs/releases/v0.18.2.md +69 -0
- package/docs/releases/v0.19.0.md +85 -0
- package/docs/releases/v0.19.1.md +46 -0
- package/docs/releases/v0.20.0.md +85 -0
- package/docs/releases/v0.21.0.md +61 -0
- package/docs/releases/v0.21.1.md +47 -0
- package/docs/releases/v0.22.0.md +77 -0
- package/docs/releases/v0.22.1.md +42 -0
- package/docs/releases/v0.23.0.md +105 -0
- package/docs/releases/v0.24.0.md +125 -0
- package/docs/releases/v0.25.0.md +107 -0
- package/docs/releases/v0.26.0.md +139 -0
- package/docs/releases/v0.26.1.md +65 -0
- package/docs/releases/v0.26.2.md +43 -0
- package/docs/releases/v0.27.0.md +63 -0
- package/docs/releases/v0.28.0.md +59 -0
- package/docs/releases/v0.29.0.md +61 -0
- package/docs/releases/v0.29.1.md +59 -0
- package/docs/releases/v0.29.2.md +59 -0
- package/docs/releases/v0.29.3.md +93 -0
- package/docs/releases/v0.30.0.md +75 -0
- package/docs/releases/v0.30.1.md +93 -0
- package/docs/releases/v0.30.2.md +66 -0
- package/docs/releases/v0.31.0.md +122 -0
- package/docs/releases/v0.31.1.md +142 -0
- package/docs/releases/v0.31.10.md +118 -0
- package/docs/releases/v0.31.11.md +88 -0
- package/docs/releases/v0.31.12.md +105 -0
- package/docs/releases/v0.31.13.md +99 -0
- package/docs/releases/v0.31.14.md +97 -0
- package/docs/releases/v0.31.2.md +115 -0
- package/docs/releases/v0.31.3.md +142 -0
- package/docs/releases/v0.31.4.md +117 -0
- package/docs/releases/v0.31.5.md +155 -0
- package/docs/releases/v0.31.6.md +132 -0
- package/docs/releases/v0.31.7.md +132 -0
- package/docs/releases/v0.31.8.md +120 -0
- package/docs/releases/v0.31.9.md +120 -0
- package/docs/releases/v0.32.0.md +261 -0
- package/docs/releases/v0.32.1.md +59 -0
- package/docs/releases/v0.8.0.md +118 -0
- package/docs/releases/v0.9.0.md +98 -0
- package/docs/releases/v0.9.1.md +83 -0
- package/package.json +110 -4
- package/plugins/mirror-mind/.claude-plugin/plugin.json +13 -0
- package/plugins/mirror-mind/hooks/hooks.json +50 -0
- package/plugins/mirror-mind/hooks/log-session-end.sh +98 -0
- package/plugins/mirror-mind/hooks/log-user-prompt.sh +98 -0
- package/plugins/mirror-mind/hooks/mirror-inject.sh +98 -0
- package/plugins/mirror-mind/hooks/session-start.sh +98 -0
- package/plugins/mirror-mind/mcp/launch.sh +52 -0
- package/plugins/mirror-mind/skills/mm-backup/SKILL.md +27 -0
- package/plugins/mirror-mind/skills/mm-build/SKILL.md +1206 -0
- package/plugins/mirror-mind/skills/mm-consolidate/SKILL.md +112 -0
- package/plugins/mirror-mind/skills/mm-consult/SKILL.md +83 -0
- package/plugins/mirror-mind/skills/mm-conversations/SKILL.md +17 -0
- package/plugins/mirror-mind/skills/mm-discard/SKILL.md +40 -0
- package/plugins/mirror-mind/skills/mm-explore/SKILL.md +241 -0
- package/plugins/mirror-mind/skills/mm-help/SKILL.md +104 -0
- package/plugins/mirror-mind/skills/mm-identity/SKILL.md +96 -0
- package/plugins/mirror-mind/skills/mm-journal/SKILL.md +21 -0
- package/plugins/mirror-mind/skills/mm-journey/SKILL.md +37 -0
- package/plugins/mirror-mind/skills/mm-journeys/SKILL.md +15 -0
- package/plugins/mirror-mind/skills/mm-memories/SKILL.md +20 -0
- package/plugins/mirror-mind/skills/mm-mirror/SKILL.md +65 -0
- package/plugins/mirror-mind/skills/mm-mute/SKILL.md +18 -0
- package/plugins/mirror-mind/skills/mm-new/SKILL.md +18 -0
- package/plugins/mirror-mind/skills/mm-recall/SKILL.md +17 -0
- package/plugins/mirror-mind/skills/mm-release-notes/SKILL.md +31 -0
- package/plugins/mirror-mind/skills/mm-seed/SKILL.md +15 -0
- package/plugins/mirror-mind/skills/mm-shadow/SKILL.md +117 -0
- package/plugins/mirror-mind/skills/mm-soul/SKILL.md +488 -0
- package/plugins/mirror-mind/skills/mm-tasks/SKILL.md +36 -0
- package/plugins/mirror-mind/skills/mm-update/SKILL.md +30 -0
- package/plugins/mirror-mind/skills/mm-week/SKILL.md +46 -0
- package/plugins/mirror-mind/skills/mm-welcome/SKILL.md +22 -0
- package/scripts/codex-hooks/session-end.sh +85 -0
- package/scripts/codex-hooks/session-start.sh +85 -0
- package/scripts/codex-mirror.sh +48 -0
- package/templates/identity/README.md +119 -0
- package/templates/identity/ego/behavior.yaml +52 -0
- package/templates/identity/ego/constraints.yaml +15 -0
- package/templates/identity/ego/identity.yaml +43 -0
- package/templates/identity/journeys/personal-growth.yaml +39 -0
- package/templates/identity/organization/identity.yaml +24 -0
- package/templates/identity/organization/principles.yaml +17 -0
- package/templates/identity/personas/coach.yaml +94 -0
- package/templates/identity/personas/designer.yaml +93 -0
- package/templates/identity/personas/doctor.yaml +96 -0
- package/templates/identity/personas/engineer.yaml +77 -0
- package/templates/identity/personas/financial.yaml +97 -0
- package/templates/identity/personas/prompt-engineer.yaml +122 -0
- package/templates/identity/personas/researcher.yaml +88 -0
- package/templates/identity/personas/strategist.yaml +91 -0
- package/templates/identity/personas/teacher.yaml +95 -0
- package/templates/identity/personas/therapist.yaml +91 -0
- package/templates/identity/personas/thinker.yaml +74 -0
- package/templates/identity/personas/writer.yaml +76 -0
- package/templates/identity/self/config.yaml +16 -0
- package/templates/identity/self/soul.yaml +105 -0
- package/templates/identity/user/identity.yaml +30 -0
- package/ts/src/backup/staging.ts +62 -0
- package/ts/src/backup/zipBackup.ts +267 -0
- package/ts/src/backup/zipReader.ts +109 -0
- package/ts/src/backup/zipWriter.ts +148 -0
- package/ts/src/builder/activeCheckpoint.ts +134 -0
- package/ts/src/builder/aggregateStatus.ts +34 -0
- package/ts/src/builder/approve.ts +149 -0
- package/ts/src/builder/argv.ts +292 -0
- package/ts/src/builder/ariadMethod.ts +536 -0
- package/ts/src/builder/artifacts/artifactSurfaces.ts +106 -0
- package/ts/src/builder/artifacts/artifactWriter.ts +113 -0
- package/ts/src/builder/artifacts/closureArtifacts.ts +199 -0
- package/ts/src/builder/artifacts/deliveryStoryArtifacts.ts +316 -0
- package/ts/src/builder/artifacts/planArtifacts.ts +242 -0
- package/ts/src/builder/artifacts/scaffoldSections.ts +273 -0
- package/ts/src/builder/artifacts/scaffoldState.ts +227 -0
- package/ts/src/builder/artifacts/storyFiles.ts +61 -0
- package/ts/src/builder/artifacts/storyIndex.ts +166 -0
- package/ts/src/builder/cadence.ts +59 -0
- package/ts/src/builder/card.ts +192 -0
- package/ts/src/builder/checkpointRefused.ts +66 -0
- package/ts/src/builder/closure.ts +964 -0
- package/ts/src/builder/commands.ts +2053 -0
- package/ts/src/builder/cursorPosition.ts +176 -0
- package/ts/src/builder/cursorTransitions.ts +77 -0
- package/ts/src/builder/deliveryCursor.ts +577 -0
- package/ts/src/builder/deliveryStoryClosure.ts +521 -0
- package/ts/src/builder/deliveryStoryPlan.ts +536 -0
- package/ts/src/builder/deliveryStoryReady.ts +160 -0
- package/ts/src/builder/deliveryStoryRoadmapClosure.ts +151 -0
- package/ts/src/builder/expand.ts +336 -0
- package/ts/src/builder/flowUnit.ts +339 -0
- package/ts/src/builder/homeSurface.ts +122 -0
- package/ts/src/builder/implementationGuard.ts +125 -0
- package/ts/src/builder/index.ts +11 -0
- package/ts/src/builder/lifecycleRefusal.ts +92 -0
- package/ts/src/builder/lifecycleRibbon.ts +159 -0
- package/ts/src/builder/load.ts +313 -0
- package/ts/src/builder/methodAdoption.ts +113 -0
- package/ts/src/builder/methodDefinition.ts +429 -0
- package/ts/src/builder/methodInspection.ts +371 -0
- package/ts/src/builder/plan.ts +408 -0
- package/ts/src/builder/planPreauthorization.ts +265 -0
- package/ts/src/builder/prepare.ts +225 -0
- package/ts/src/builder/projectPaths.ts +64 -0
- package/ts/src/builder/pull.ts +356 -0
- package/ts/src/builder/pullCandidates.ts +463 -0
- package/ts/src/builder/pullCandidatesRender.ts +238 -0
- package/ts/src/builder/refinementField.ts +93 -0
- package/ts/src/builder/releaseIntent.ts +173 -0
- package/ts/src/builder/resumeState.ts +84 -0
- package/ts/src/builder/resumeSurface.ts +149 -0
- package/ts/src/builder/roadmapGrammar.ts +300 -0
- package/ts/src/builder/roadmapScan.ts +97 -0
- package/ts/src/builder/roadmapScope.ts +210 -0
- package/ts/src/builder/scopePhrases.ts +146 -0
- package/ts/src/builder/storyPaths.ts +196 -0
- package/ts/src/builder/storyPlanPreauthorization.ts +287 -0
- package/ts/src/builder/surfaceProtocol.ts +42 -0
- package/ts/src/builder/templateGeneration.ts +148 -0
- package/ts/src/builder/transition.ts +178 -0
- package/ts/src/consult/args.ts +99 -0
- package/ts/src/consult/core.ts +122 -0
- package/ts/src/consult/modelCatalog.ts +55 -0
- package/ts/src/consult/render.ts +47 -0
- package/ts/src/conversation/append.ts +414 -0
- package/ts/src/conversation/backfill.ts +387 -0
- package/ts/src/conversation/closeTail.ts +467 -0
- package/ts/src/conversation/extraction.ts +333 -0
- package/ts/src/conversation/extractionDriver.ts +130 -0
- package/ts/src/conversation/extractionRun.ts +70 -0
- package/ts/src/conversation/journeyInference.ts +165 -0
- package/ts/src/conversation/journeyRepair.ts +114 -0
- package/ts/src/conversation/lifecycleFaces.ts +197 -0
- package/ts/src/conversation/lifecycleWrites.ts +313 -0
- package/ts/src/conversation/listing.ts +77 -0
- package/ts/src/conversation/logger.ts +576 -0
- package/ts/src/conversation/loggerCli.ts +282 -0
- package/ts/src/conversation/loggerRuntime.ts +259 -0
- package/ts/src/conversation/metadataLifecycle.ts +443 -0
- package/ts/src/conversation/recall.ts +66 -0
- package/ts/src/conversation/sessionComposites.ts +258 -0
- package/ts/src/conversation/sessionImport.ts +90 -0
- package/ts/src/conversation/transcriptBackfill.ts +141 -0
- package/ts/src/cultivation/applyActions.ts +241 -0
- package/ts/src/cultivation/cluster.ts +86 -0
- package/ts/src/cultivation/consolidationStore.ts +281 -0
- package/ts/src/cultivation/promptContext.ts +62 -0
- package/ts/src/cultivation/propose.ts +305 -0
- package/ts/src/cultivation/scan.ts +155 -0
- package/ts/src/db/backupGate.ts +47 -0
- package/ts/src/db/bootstrap.ts +108 -0
- package/ts/src/db/bootstrapLock.ts +223 -0
- package/ts/src/db/copyGuard.ts +60 -0
- package/ts/src/db/database.ts +397 -0
- package/ts/src/db/decode.ts +66 -0
- package/ts/src/db/ftsIntegrity.ts +41 -0
- package/ts/src/db/migrateOnOpen.ts +214 -0
- package/ts/src/db/migrations.ts +576 -0
- package/ts/src/db/readyOnOpen.ts +35 -0
- package/ts/src/db/rowDecode.ts +42 -0
- package/ts/src/db/schema.ts +432 -0
- package/ts/src/db/schemaInventory.ts +225 -0
- package/ts/src/db/schemaInventorySnapshot.ts +2107 -0
- package/ts/src/db/schemaState.ts +91 -0
- package/ts/src/db/schemaTsDivergence.ts +114 -0
- package/ts/src/descriptor/descriptorRead.ts +49 -0
- package/ts/src/docs/docsLint.ts +265 -0
- package/ts/src/explorer/handoff.ts +522 -0
- package/ts/src/explorer/render.ts +335 -0
- package/ts/src/explorer/story.ts +769 -0
- package/ts/src/explorer/transition.ts +72 -0
- package/ts/src/extensions/bindings.ts +170 -0
- package/ts/src/extensions/catalog.ts +249 -0
- package/ts/src/extensions/catalogCommands.ts +513 -0
- package/ts/src/extensions/catalogWrites.ts +652 -0
- package/ts/src/extensions/contextRuntime.ts +325 -0
- package/ts/src/extensions/dispatch.ts +374 -0
- package/ts/src/extensions/errors.ts +24 -0
- package/ts/src/extensions/manifest.ts +356 -0
- package/ts/src/extensions/migrations.ts +350 -0
- package/ts/src/extraction/conversation.ts +304 -0
- package/ts/src/extraction/conversationMetadata.ts +206 -0
- package/ts/src/extraction/fencing.ts +106 -0
- package/ts/src/extraction/json.ts +17 -0
- package/ts/src/extraction/prompts.ts +470 -0
- package/ts/src/frontDoor/args.ts +30 -0
- package/ts/src/frontDoor/argvShape.ts +106 -0
- package/ts/src/frontDoor/buildLoadRuntime.ts +139 -0
- package/ts/src/frontDoor/buildRoute.ts +398 -0
- package/ts/src/frontDoor/cli.ts +1865 -0
- package/ts/src/frontDoor/cloneRoleGuard.ts +98 -0
- package/ts/src/frontDoor/consultRoute.ts +50 -0
- package/ts/src/frontDoor/contentTailRoute.ts +239 -0
- package/ts/src/frontDoor/conversationLoggerRoute.ts +73 -0
- package/ts/src/frontDoor/cultivationRoute.ts +210 -0
- package/ts/src/frontDoor/dbPath.ts +131 -0
- package/ts/src/frontDoor/dbSafetyToolsRoute.ts +240 -0
- package/ts/src/frontDoor/exploreRoute.ts +572 -0
- package/ts/src/frontDoor/extensionCatalogRoute.ts +252 -0
- package/ts/src/frontDoor/frontDoorLog.ts +57 -0
- package/ts/src/frontDoor/identityWrite.ts +36 -0
- package/ts/src/frontDoor/journeyWriteRoute.ts +26 -0
- package/ts/src/frontDoor/lifecycleWriteRoute.ts +110 -0
- package/ts/src/frontDoor/liveBackup.ts +100 -0
- package/ts/src/frontDoor/mirrorModeRoute.ts +163 -0
- package/ts/src/frontDoor/namedRefusal.ts +35 -0
- package/ts/src/frontDoor/nodeSupport.ts +24 -0
- package/ts/src/frontDoor/render/consolidate.ts +199 -0
- package/ts/src/frontDoor/render/conversations.ts +33 -0
- package/ts/src/frontDoor/render/cultivationShared.ts +21 -0
- package/ts/src/frontDoor/render/descriptor.ts +20 -0
- package/ts/src/frontDoor/render/detectPersona.ts +50 -0
- package/ts/src/frontDoor/render/icons.ts +13 -0
- package/ts/src/frontDoor/render/identity.ts +59 -0
- package/ts/src/frontDoor/render/identityRows.ts +17 -0
- package/ts/src/frontDoor/render/inspectPersona.ts +53 -0
- package/ts/src/frontDoor/render/journeyStatus.ts +78 -0
- package/ts/src/frontDoor/render/journeys.ts +79 -0
- package/ts/src/frontDoor/render/list.ts +41 -0
- package/ts/src/frontDoor/render/memories.ts +67 -0
- package/ts/src/frontDoor/render/recall.ts +49 -0
- package/ts/src/frontDoor/render/shadow.ts +155 -0
- package/ts/src/frontDoor/render/tasks.ts +99 -0
- package/ts/src/frontDoor/render/tasksImportSync.ts +63 -0
- package/ts/src/frontDoor/render/week.ts +113 -0
- package/ts/src/frontDoor/routing.ts +999 -0
- package/ts/src/frontDoor/runtimeRoute.ts +623 -0
- package/ts/src/frontDoor/searchRoute.ts +166 -0
- package/ts/src/frontDoor/seedPaths.ts +98 -0
- package/ts/src/frontDoor/soulRoute.ts +433 -0
- package/ts/src/frontDoor/tasksImportSyncRoute.ts +110 -0
- package/ts/src/frontDoor/tasksWriteRoute.ts +101 -0
- package/ts/src/frontDoor/usage.ts +176 -0
- package/ts/src/guards/claudePlugin.ts +252 -0
- package/ts/src/guards/packContents.ts +306 -0
- package/ts/src/guards/piSourcedSkills.ts +70 -0
- package/ts/src/guards/retiredRouteShadows.ts +57 -0
- package/ts/src/guards/retiredSurfaces.ts +564 -0
- package/ts/src/hooks/claude.ts +176 -0
- package/ts/src/hooks/codex.ts +45 -0
- package/ts/src/hooks/gemini.ts +126 -0
- package/ts/src/hooks/main.ts +109 -0
- package/ts/src/hooks/mirrorState.ts +71 -0
- package/ts/src/hooks/payload.ts +68 -0
- package/ts/src/hooks/runtime.ts +159 -0
- package/ts/src/identity/applyConsolidationIdentityUpdate.ts +67 -0
- package/ts/src/identity/descriptorGenerate.ts +162 -0
- package/ts/src/identity/identityEdit.ts +143 -0
- package/ts/src/identity/identityKey.ts +77 -0
- package/ts/src/identity/identityRead.ts +69 -0
- package/ts/src/identity/identityStore.ts +80 -0
- package/ts/src/identity/journeyListing.ts +53 -0
- package/ts/src/identity/personaInspect.ts +44 -0
- package/ts/src/identity/personaListing.ts +37 -0
- package/ts/src/identity/setIdentity.ts +64 -0
- package/ts/src/index.ts +231 -0
- package/ts/src/init/init.ts +111 -0
- package/ts/src/journey/journeyOptions.ts +131 -0
- package/ts/src/journey/journeyRemoval.ts +158 -0
- package/ts/src/journey/journeyStatus.ts +149 -0
- package/ts/src/journey/journeySyncFile.ts +87 -0
- package/ts/src/journey/journeyWrite.ts +203 -0
- package/ts/src/journey/parentJourney.ts +41 -0
- package/ts/src/journey/validateParentJourney.ts +55 -0
- package/ts/src/mcp/boundary.ts +151 -0
- package/ts/src/mcp/guards.ts +244 -0
- package/ts/src/mcp/main.ts +121 -0
- package/ts/src/mcp/payload.ts +141 -0
- package/ts/src/mcp/protocol.ts +141 -0
- package/ts/src/mcp/readModels.ts +241 -0
- package/ts/src/mcp/registry.ts +201 -0
- package/ts/src/mcp/serve.ts +120 -0
- package/ts/src/mcp/tools/deterministic.ts +137 -0
- package/ts/src/mcp/tools/providerCrossing.ts +187 -0
- package/ts/src/mcp/wire.ts +8 -0
- package/ts/src/memory/journal.ts +180 -0
- package/ts/src/memory/listing.ts +107 -0
- package/ts/src/memory/memoryWrite.ts +88 -0
- package/ts/src/memory/reinforcement.ts +35 -0
- package/ts/src/mirror/context.ts +161 -0
- package/ts/src/mirror/defaultResolution.ts +199 -0
- package/ts/src/mirror/orchestration.ts +364 -0
- package/ts/src/mirror/reception.ts +194 -0
- package/ts/src/mirror/render.ts +75 -0
- package/ts/src/mirror/runtimeSession.ts +205 -0
- package/ts/src/mode/operatingMode.ts +148 -0
- package/ts/src/observability/callOutcome.ts +115 -0
- package/ts/src/observability/inspectLedger.ts +329 -0
- package/ts/src/observability/ledgerHooks.ts +126 -0
- package/ts/src/observability/llmCalls.ts +154 -0
- package/ts/src/persona/detectPersona.ts +81 -0
- package/ts/src/planning/promptAssembly.ts +111 -0
- package/ts/src/planning/weekPending.ts +81 -0
- package/ts/src/planning/weekPlan.ts +183 -0
- package/ts/src/planning/weekSave.ts +117 -0
- package/ts/src/providers/config.ts +189 -0
- package/ts/src/providers/cost.ts +64 -0
- package/ts/src/providers/credits.ts +204 -0
- package/ts/src/providers/embedding.ts +321 -0
- package/ts/src/providers/familyProviders.ts +147 -0
- package/ts/src/providers/llm.ts +334 -0
- package/ts/src/providers/openrouter.ts +244 -0
- package/ts/src/providers/redaction.ts +110 -0
- package/ts/src/providers/replay.ts +15 -0
- package/ts/src/providers/transport.ts +410 -0
- package/ts/src/repair/encodingRepair.ts +253 -0
- package/ts/src/runtime/backup.ts +151 -0
- package/ts/src/runtime/channel.ts +146 -0
- package/ts/src/runtime/config.ts +168 -0
- package/ts/src/runtime/diagnose.ts +686 -0
- package/ts/src/runtime/git.ts +510 -0
- package/ts/src/runtime/installKind.ts +220 -0
- package/ts/src/runtime/migrate.ts +154 -0
- package/ts/src/runtime/packageIdentity.ts +102 -0
- package/ts/src/runtime/releaseNotes.ts +244 -0
- package/ts/src/runtime/status.ts +557 -0
- package/ts/src/runtime/strategies/clone.ts +200 -0
- package/ts/src/runtime/strategies/package.ts +328 -0
- package/ts/src/runtime/treeRoot.ts +30 -0
- package/ts/src/runtime/update.ts +445 -0
- package/ts/src/runtime/updateGate.ts +40 -0
- package/ts/src/runtime/updatePipeline.ts +159 -0
- package/ts/src/runtime/version.ts +36 -0
- package/ts/src/runtime/wiring.ts +130 -0
- package/ts/src/search/memorySearch.ts +338 -0
- package/ts/src/search/ranker.ts +154 -0
- package/ts/src/seed/seed.ts +256 -0
- package/ts/src/seed/seedYaml.ts +133 -0
- package/ts/src/soul/apply.ts +218 -0
- package/ts/src/soul/harvest.ts +267 -0
- package/ts/src/soul/prompts/soul_beauty_voice.md +103 -0
- package/ts/src/soul/prompts/soul_self_voice.md +219 -0
- package/ts/src/soul/prompts/soul_wisdom_voice.md +121 -0
- package/ts/src/soul/prompts.ts +85 -0
- package/ts/src/soul/render.ts +358 -0
- package/ts/src/soul/state.ts +212 -0
- package/ts/src/soul/transition.ts +37 -0
- package/ts/src/tasks/journeyPathParse.ts +113 -0
- package/ts/src/tasks/taskImportSync.ts +142 -0
- package/ts/src/tasks/taskStore.ts +312 -0
- package/ts/src/tasks/weekView.ts +120 -0
- package/ts/src/util/clipCodePoints.ts +26 -0
- package/ts/src/util/paths.ts +63 -0
- package/ts/src/util/program.ts +9 -0
- package/ts/src/util/pyGenerators.ts +144 -0
- package/ts/src/util/pythonText.ts +317 -0
- package/ts/src/util/semver.ts +45 -0
- package/ts/src/util/shellWord.ts +25 -0
- package/ts/src/util/slug.ts +64 -0
- package/ts/src/welcome/card.ts +339 -0
- package/ts/src/welcome/statusLine.ts +101 -0
- 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,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "mm-consult"
|
|
3
|
+
description: Asks other LLMs through OpenRouter with Mirror identity 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
|
|
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 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.
|
|
41
|
+
|
|
42
|
+
### No Question
|
|
43
|
+
|
|
44
|
+
When the user omits the question, synthesize Mirror Mode content (reflection, strategy, content — not Builder Mode code or architecture) into a self-contained prompt, then call:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
mirror consult FAMILY TIER "SYNTHESIZED_PROMPT" \
|
|
48
|
+
[--persona PERSONA] [--journey JOURNEY] [--org]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The synthesized prompt must be self-contained — the external LLM has no access to the conversation.
|
|
52
|
+
|
|
53
|
+
## Credits
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
mirror consult credits
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Shows OpenRouter usage and remaining balance.
|
|
60
|
+
|
|
61
|
+
## Available Families And Tiers
|
|
62
|
+
|
|
63
|
+
| Family | Lite | Mid | Flagship |
|
|
64
|
+
|---------|------|-----|----------|
|
|
65
|
+
| gemini | gemini-2.5-flash-lite | gemini-2.5-flash | gemini-2.5-pro |
|
|
66
|
+
| grok | grok-3-mini | grok-3 | grok-4.1-fast |
|
|
67
|
+
| deepseek | deepseek-chat | deepseek-v3.2 | deepseek-r1 |
|
|
68
|
+
| openai | gpt-5.4-nano | gpt-5.4-mini | gpt-5.4 |
|
|
69
|
+
| claude | haiku-4.5 | sonnet-4.6 | opus-4.6 |
|
|
70
|
+
| llama | llama-3.3-70b-instruct | llama-4-scout | llama-4-maverick |
|
|
@@ -0,0 +1,16 @@
|
|
|
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 [--limit N] [--journey SLUG] [--persona NAME]`: the plain
|
|
10
|
+
listing is answered by the TS core (CV22.DS7.US1).
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
mirror conversations [args]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Present the output to the user without modification.
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
sair descartando esta conversa
|
|
16
|
+
fechar sem salvar esta conversa
|
|
17
|
+
quit and discard this conversation
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 1. Discard Current Conversation
|
|
21
|
+
|
|
22
|
+
Run:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
mirror conversation-logger discard-current --interface pi
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The command deletes the current conversation and marks the runtime session so the
|
|
29
|
+
assistant confirmation is not logged as a new conversation.
|
|
30
|
+
|
|
31
|
+
## 2. Tell the User to Quit
|
|
32
|
+
|
|
33
|
+
After the command succeeds, answer briefly:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
Conversa atual descartada do banco. Pode sair com /quit.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Do not call `mirror log` for this skill.
|
|
@@ -0,0 +1,255 @@
|
|
|
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
|
+
Pi and Gemini CLI:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
/mm-explore <journey-slug>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Codex:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
$mm-explore <journey-slug>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Claude Code:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
/mm:explore <journey-slug>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Natural-language equivalents should be treated as the product interface:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
entrar em modo explorador nesta jornada
|
|
39
|
+
abrir exploração em <journey-slug>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 1. Activate Explorer Mode
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
mirror explore load <slug>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The command:
|
|
49
|
+
|
|
50
|
+
- activates `△ Explorer Mode` for the journey;
|
|
51
|
+
- renders the Mode Transition Surface (`△ EXPLORER MODE ACTIVE`);
|
|
52
|
+
- sets the journey as sticky context;
|
|
53
|
+
- loads Mirror identity and journey context;
|
|
54
|
+
- resumes the active durable Exploratory Story when one exists;
|
|
55
|
+
- renders `△ EXPLORATORY STORY RESUMED` when resuming;
|
|
56
|
+
- prints Explorer Mode guidance with the active Explorer capability boundary.
|
|
57
|
+
|
|
58
|
+
## 1.1 Required Surface Rendering
|
|
59
|
+
|
|
60
|
+
The `explore load` output includes the conversational transition surface. Render
|
|
61
|
+
that surface visibly to the user before continuing with exploratory work. Do not
|
|
62
|
+
recreate it from scratch unless the command failed to render it; copy the
|
|
63
|
+
rendered surface from the command output.
|
|
64
|
+
|
|
65
|
+
After any `mirror explore story ...` command that returns a
|
|
66
|
+
Mirror surface, paste the returned surface as the first visible block in the
|
|
67
|
+
response. Do not summarize, interpret, or paraphrase before rendering it.
|
|
68
|
+
|
|
69
|
+
Some Explorer story commands wrap required product surfaces with machine-readable
|
|
70
|
+
contract markers:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
[[MIRROR_REQUIRED_SURFACE_BEGIN:<surface-id>]]
|
|
74
|
+
...
|
|
75
|
+
[[MIRROR_REQUIRED_SURFACE_END:<surface-id>]]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
When markers are present, render the marked `Mirror` surface content first and do
|
|
79
|
+
not render the marker lines themselves. The markers are a runtime contract, not
|
|
80
|
+
user-facing product copy.
|
|
81
|
+
|
|
82
|
+
For `story open`, `story thicken`, `story snapshot`, `story attractors`, `story
|
|
83
|
+
experiment`, `story list`, `story archive`, and `story handoff`, the returned
|
|
84
|
+
`△ ...` surface is the primary response. Render it before commentary. Commentary
|
|
85
|
+
may follow only after the surface is visible.
|
|
86
|
+
|
|
87
|
+
## 2. Work In Explorer Mode
|
|
88
|
+
|
|
89
|
+
Explorer Mode is active and supports durable exploration, story thickening,
|
|
90
|
+
attractors, experiment proposals, and Builder handoff.
|
|
91
|
+
|
|
92
|
+
Explorer preserves uncertainty. Builder executes commitment.
|
|
93
|
+
|
|
94
|
+
While Explorer Mode is active:
|
|
95
|
+
|
|
96
|
+
- Treat new substantive material as part of the current Exploratory Story unless the user asks for a clear operational action.
|
|
97
|
+
- Preserve tensions, hypotheses, corrections, and emerging story shape.
|
|
98
|
+
- When an Exploratory Story begins, open it with:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
mirror explore story open <slug> --story "..." --summary "..." --last-card "..."
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
- Before calling `story thicken`, classify the change as either `narrative/substantive` or `local/refinement`.
|
|
105
|
+
|
|
106
|
+
- When material substantively changes the accumulated Exploratory Story, thicken it with:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
mirror explore story thicken <slug> --story "..." --summary "..." --last-card "..." --changed "..."
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Use `story thicken` for:
|
|
113
|
+
|
|
114
|
+
- new or changed attractor;
|
|
115
|
+
- new or changed exploratory hypothesis;
|
|
116
|
+
- new or changed ritual, voice, scope, or product concept;
|
|
117
|
+
- changed experiment or promotion boundary;
|
|
118
|
+
- meaningful correction to the narrative arc.
|
|
119
|
+
|
|
120
|
+
Do not use `story thicken` for local refinements:
|
|
121
|
+
|
|
122
|
+
- icon choice;
|
|
123
|
+
- microcopy;
|
|
124
|
+
- wording polish;
|
|
125
|
+
- visual label changes;
|
|
126
|
+
- surface formatting;
|
|
127
|
+
- small naming adjustments that do not change the story;
|
|
128
|
+
- conversational elaboration of an already captured idea.
|
|
129
|
+
|
|
130
|
+
For local refinements, continue the conversation without updating the story. If uncertain, ask the user whether to preserve the change in the Exploratory Story.
|
|
131
|
+
|
|
132
|
+
- When the user asks for the attractor, or when a strong directional pull should be proposed visibly, render attractors with:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
mirror explore story attractors <slug> --attractor "..." --description "..." --status proposed
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
- When the user corrects an attractor, replace it with the corrected attractor using the same command. Do not accumulate hidden competing interpretations.
|
|
139
|
+
- When the user asks what small experiment tests the attractor, render an experiment proposal with:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
mirror explore story experiment <slug> --title "..." --description "..." --status proposed
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
- When the user asks what is currently being explored, render a snapshot with:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
mirror explore story snapshot <slug>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
- When the user asks to see explorations for the active journey, render durable story visibility with:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
mirror explore story list <slug>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
- When the user asks to archive or close the active exploration without promoting it, archive the active story with:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
mirror explore story archive <slug>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
- Render the story surface returned by those commands visibly to the user.
|
|
164
|
+
- Do not promote to Builder or Delivery without explicit user confirmation.
|
|
165
|
+
|
|
166
|
+
## 2.1 Operational Boundary
|
|
167
|
+
|
|
168
|
+
Explorer Mode must not directly execute clear operational mutation requests.
|
|
169
|
+
When the user asks to edit files, apply a procedure to documents, create code,
|
|
170
|
+
run implementation commands, mutate roadmap/docs/code, or otherwise change
|
|
171
|
+
project state, do not call Explorer story commands and do not mutate files.
|
|
172
|
+
|
|
173
|
+
Instead, name the boundary visibly and ask whether to switch to Builder Mode for
|
|
174
|
+
the same journey. Use this response shape:
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
△ EXPLORER → BUILDER BOUNDARY
|
|
178
|
+
|
|
179
|
+
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.
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Only after the user confirms the switch should Mirror activate Builder Mode with:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
mirror build load <slug>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Local refinements to the exploration itself, such as microcopy discussion,
|
|
189
|
+
labels, wording, icons, or formatting, remain conversational unless the user
|
|
190
|
+
explicitly asks to preserve them in the Exploratory Story.
|
|
191
|
+
|
|
192
|
+
## 3. Deactivation
|
|
193
|
+
|
|
194
|
+
The user should use natural language:
|
|
195
|
+
|
|
196
|
+
```text
|
|
197
|
+
sair do modo explorador
|
|
198
|
+
voltar ao modo normal
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Mirror should then call the contained Explorer operation:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
mirror explore deactivate
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Render the deactivation confirmation visibly to the user. Deactivation leaves the
|
|
208
|
+
explicit Explorer lens and returns to Mirror Mode when journey context remains
|
|
209
|
+
active. It does not clear sticky journey context or promote the exploration to
|
|
210
|
+
Builder. Rendering and clearing the status bar are internal effects, not
|
|
211
|
+
user-facing operations.
|
|
212
|
+
|
|
213
|
+
## 4. Promotion Boundary
|
|
214
|
+
|
|
215
|
+
When the user says:
|
|
216
|
+
|
|
217
|
+
```text
|
|
218
|
+
promover essa exploração para construção
|
|
219
|
+
promover para builder
|
|
220
|
+
isso já está pronto para virar Builder?
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Do not switch to Builder silently. First produce a transfer document set and
|
|
224
|
+
render the handoff proposal. If the user asks to include source conversations,
|
|
225
|
+
confirm which conversations should be included before adding raw source evidence.
|
|
226
|
+
When the user names the current or recent conversation rather than an id, inspect
|
|
227
|
+
recent journey conversations with `mirror conversations --journey
|
|
228
|
+
<slug> --limit 5`, show the candidate source evidence, and ask for confirmation.
|
|
229
|
+
Use `--source-conversation <conversation-id>` for reviewed source evidence. Use
|
|
230
|
+
`--include-full-conversation` only after explicit confirmation that raw
|
|
231
|
+
conversation evidence should be written with privacy obfuscation.
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
mirror explore story handoff <slug> --title "..." --summary "..." --editorial-synthesis "..." --source-conversation "<conversation-id>:origin conversation" --include-full-conversation
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Render `△ BUILDER HANDOFF PROPOSED` visibly, including the generated document
|
|
238
|
+
paths under `docs/project/explorations/<exploratory-story-slug>/` when available:
|
|
239
|
+
|
|
240
|
+
```text
|
|
241
|
+
index.md
|
|
242
|
+
exploratory-story.md
|
|
243
|
+
handoff-info.md
|
|
244
|
+
product-design-proposal.md
|
|
245
|
+
full-conversation.md # only after explicit confirmation
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Ask for explicit confirmation. Only after the user confirms should Mirror call:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
mirror explore story promote <slug>
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Promotion activates Builder Mode through the normal Builder load path. If the
|
|
255
|
+
user does not confirm, remain in Explorer Mode and continue thickening the story.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "mm-help"
|
|
3
|
+
description: Shows available Mirror Mind commands on Pi and Gemini CLI
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Help
|
|
8
|
+
|
|
9
|
+
Show the user the available commands (same on Pi and Gemini CLI):
|
|
10
|
+
|
|
11
|
+
## Operating Modes
|
|
12
|
+
|
|
13
|
+
| Command | What it does |
|
|
14
|
+
|---------|-------------|
|
|
15
|
+
| `/mm-mirror` | Activates ◌ Mirror Mode |
|
|
16
|
+
| | `--persona ID` · `--journey ID` · `--query "terms"` · `--org` |
|
|
17
|
+
| `/mm-build <slug>` | Activates ■ Builder Mode for a journey |
|
|
18
|
+
| `/mm-explore <slug>` | Activates △ Explorer Mode for a journey |
|
|
19
|
+
| `/mm-soul [slug]` | Activates ☾ Soul Mode ritual entry |
|
|
20
|
+
|
|
21
|
+
## Journeys
|
|
22
|
+
|
|
23
|
+
| Command | What it does |
|
|
24
|
+
|---------|-------------|
|
|
25
|
+
| `/mm-journeys` | Lists journeys with status and current stage |
|
|
26
|
+
| `/mm-journey [slug]` | Shows detailed status for one or all journeys |
|
|
27
|
+
|
|
28
|
+
## Memories & Journal
|
|
29
|
+
|
|
30
|
+
| Command | What it does |
|
|
31
|
+
|---------|-------------|
|
|
32
|
+
| `/mm-memories` | Lists recorded memories |
|
|
33
|
+
| | `--type TYPE` · `--layer LAYER` · `--journey ID` · `--search "text"` · `--limit N` |
|
|
34
|
+
| `/mm-journal "text"` | Records a personal journal entry |
|
|
35
|
+
| | `--journey ID` |
|
|
36
|
+
|
|
37
|
+
## Tasks
|
|
38
|
+
|
|
39
|
+
| Command | What it does |
|
|
40
|
+
|---------|-------------|
|
|
41
|
+
| `/mm-tasks` | Lists open tasks |
|
|
42
|
+
| | `--journey SLUG` · `--status STATUS` · `--all` |
|
|
43
|
+
| `/mm-tasks add "title"` | Creates a task |
|
|
44
|
+
| `/mm-tasks done ID` · `doing ID` · `block ID` · `delete ID` | Status changes |
|
|
45
|
+
| `/mm-tasks import [slug]` | Imports tasks from journey paths |
|
|
46
|
+
| `/mm-tasks sync [slug]` | Syncs tasks from external file |
|
|
47
|
+
|
|
48
|
+
## Weekly Planning
|
|
49
|
+
|
|
50
|
+
| Command | What it does |
|
|
51
|
+
|---------|-------------|
|
|
52
|
+
| `/mm-week` | Shows the current week view |
|
|
53
|
+
| `/mm-week plan "text"` | Ingests a weekly plan |
|
|
54
|
+
|
|
55
|
+
## Conversations & Logging
|
|
56
|
+
|
|
57
|
+
| Command | What it does |
|
|
58
|
+
|---------|-------------|
|
|
59
|
+
| `/mm-conversations` | Lists recent conversations |
|
|
60
|
+
| `/mm-recall ID` | Loads a previous conversation |
|
|
61
|
+
| `/mm-save` | Export conversation (Claude Code only — no Pi transcript) |
|
|
62
|
+
| `/mm-new` | Starts a new conversation |
|
|
63
|
+
| `/mm-discard` | Discards the current conversation from the database before quitting |
|
|
64
|
+
| `/mm-mute` | Toggles conversation logging |
|
|
65
|
+
|
|
66
|
+
## System
|
|
67
|
+
|
|
68
|
+
| Command | What it does |
|
|
69
|
+
|---------|-------------|
|
|
70
|
+
| `/mm-backup` | Backs up the memory database |
|
|
71
|
+
| `/mm-seed` | Seeds identity files from the active user home into the database |
|
|
72
|
+
| `/mm-release-notes [latest|vX.Y.Z]` | Shows Mirror Mind release notes |
|
|
73
|
+
| `/mm-update` | Updates the local Mirror runtime through the safe updater |
|
|
74
|
+
| `/mm-help` | Shows this list |
|
|
@@ -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. Answered by the TS core (CV22.DS7.US1).
|
|
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. Answered by the TS core (CV22.DS7.US1).
|
|
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.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "mm-journal"
|
|
3
|
+
description: Records a personal journal entry in the memory database
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Journal
|
|
8
|
+
|
|
9
|
+
When receiving `/mm-journal "entry text" [--journey SLUG]`:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
mirror journal "entry text" [--journey SLUG]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The script records the entry, classifies it into a memory layer, and prints the result.
|
|
16
|
+
Present the output to the user without modification.
|