From mori
Bootstraps a Claude Code session by loading shared memories and team standards from the Mori server. Invoke at session start or after context compaction with --post-compact.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mori:briefThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**If the Mori server is unreachable** (a tool call returns a connection error, ECONNREFUSED, or timeout), do not show a stack trace. Tell the user the Mori server appears to be down and that a running Mori server is required. Point them to the quickstart at https://github.com/fjwood69/mori#quickstart and suggest checking the server URL in plugin settings. Then stop.
If the Mori server is unreachable (a tool call returns a connection error, ECONNREFUSED, or timeout), do not show a stack trace. Tell the user the Mori server appears to be down and that a running Mori server is required. Point them to the quickstart at https://github.com/fjwood69/mori#quickstart and suggest checking the server URL in plugin settings. Then stop.
Parse the raw input for:
--project <name>: scope the brief to a specific project--auto: detect project from the current git working directory--post-compact: lightweight delta re-grounding after a context compaction —
surfaces only what changed in shared state since the last brief, not the full base.
Fired automatically by the Mori PostCompact hook; can also be run manually.If no arguments: run the standard unscoped brief.
The brief boundary is tracked in a per-config-dir marker:
${CLAUDE_CONFIG_DIR:-$HOME/.claude}/.mori-last-brief
It holds the UTC ISO-8601 timestamp of the most recent brief. Stamp it (overwrite with the current UTC time) at the end of every brief run, in all modes:
date -u +%Y-%m-%dT%H:%M:%SZ > "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/.mori-last-brief"
If --auto:
.mori-project file — walk up from CWD to filesystem root; if found, use its text content (stripped, lowercased)MORI_PROJECT environment variablegit rev-parse --show-toplevel 2>/dev/null and use basename of the result (lowercased)If --project <name>: use that name directly.
Standard brief (default):
mori-brief with project=<name>mori-brief (no params — loads all memories up to cap)Post-compact brief (--post-compact): resolve the since boundary first
(session-aware), then call the delta tool.
${CLAUDE_CONFIG_DIR:-$HOME/.claude}/.mori-last-brief. If it
exists and is non-empty, use its contents as since..jsonl (e.g. the file's first-event timestamp, or its creation time).since and let the server default window (MORI_POST_COMPACT_WINDOW,
default 6h) apply.Then call mori-brief with post_compact=true, plus project=<name> if resolved and
since=<resolved> if found:
mori-brief(post_compact=true, project="<name>", since="<iso-or-omitted>")
The delta lists are capped; if the tool reports "…N more — run a full /brief if you need the rest", relay that pointer rather than auto-running a full brief.
Call mori-msg_recv(unacked=True) (both modes — new messages are part of the delta).
If messages are returned, surface them after the memory summary:
mori-msg_send(to="<from_host>", type="ack", reply_to="<id>", body="acknowledged")mori-msg_send(to="<from_host>", type="reply", reply_to="<id>", body="...")Skip this section silently if no pending messages or if mori-msg_recv fails (daemon may not be running).
On --post-compact, also catch cross-device traffic that arrived during the session:
call mori-nats_sub(replay=true, wait=2) and surface anything new.
Write the current UTC time to the marker file (see Marker file above). Do this in both modes, after the tool calls.
Standard brief: report "Ready" — summarise what was loaded (memory counts, project scope, dream state, pending message count if any). Do not take autonomous actions.
Post-compact brief: report a one-line abbreviated re-grounding summary, e.g. "Re-grounded — N changed, M superseded, K messages". Do not re-dump the full base; the working context is already preserved by the compaction summary.
npx claudepluginhub fjwood69/mori --plugin moriSession-start briefing that reads project status, loads identity/preferences/memories, and surfaces pending memory revisions. Call `/brief [topic]` first each session.
Loads project context from `.agents/memory/` and recent session history at session start or after `/clear`, surfaces open next steps, and activates session-documenter.
Recalls project context via ctx CLI: loads context packet, reads TASKS.md/DECISIONS.md, lists recent sessions, presents structured readback of last session, active tasks, recent decisions, next steps. For memory questions or session starts.