From memini
Saves durable facts, decisions, and preferences to the memini memory service. Automatically invoked when the user says 'remember this' or after discovering root causes, making architectural decisions, or learning project conventions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/memini:rememberThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- Save-policy invariants (when to call, when not, secrets exclusion) are
memini is a memory service. To save a fact, call the memory_remember MCP
tool with:
content (required) — the fact itself, atomic and self-containedtier — semantic for durable knowledge, procedural for how-to,
episodic for events, working for transient notes; omit to let the server
auto-classifytags (optional) — array of keywords for later search; tag a critical,
always-relevant fact (the user's identity, a hard constraint) pinned so it
surfaces in every session briefingmetadata.category (optional) — a topic bucket so the memory can be browsed
and filtered by subject later. This is orthogonal to tier: tier is the
memory's kind, category is its topic. Any string is accepted, but pick one
of the canonical values so filtering keeps working: architecture_decisions,
anti_patterns, task_learnings, tooling_setup, bug_fixes,
coding_conventions, user_preferences, dependency_decisions,
performance_findings, security_constraints, testing_patterns,
data_model, api_contracts, deployment_runbook, team_norms,
domain_glossary, experiment_results.visibility (optional) — who should know this: project (default, this
project only), personal (about the user, follows them everywhere), or an
ancestor namespace name read off the memory_briefing Scope line (e.g. the
team or org level) to share it up that chain. An unrecognized ancestor name
errors listing the valid chain. Ignored for episodic/working writes —
those always stay in the project regardless of visibility, so a session
digest can never pollute a shared ancestor or the user's personal namespace.summary (optional) — short summary; defaults to first 200 chars of contentconfidence (optional) — 0..1 for durable (semantic/procedural) facts;
omit to let it start uncorroborated and earn trust as the fact recurs. Durable
facts gain confidence each time they're re-observed and lose it if never
recalled, so saving a real, lasting fact as semantic (not working) is what
lets it rise above one-off noise over time.stored: false — the write was dropped by the episodic value gate (low-signal
content, e.g. too short); not an error, just not saved. Rephrase with more
substance if it's actually worth keeping.reinforced: true — the fact was already known: no new memory was created, the
existing one was strengthened, and id names that pre-existing memory rather
than anything you just wrote. Don't report it to the user as a new save, and be
careful updating or forgetting that id.merge_hint — present when the content nearly duplicates an existing memory
(merge_hint.similar_id, .similar_content, .score). The new content was
still stored as its own memory; call the memory_update MCP tool with
id: merge_hint.similar_id to fold the new information into the existing
memory instead of leaving two near-duplicates, or ignore the hint to keep
both as-is.degraded: "pending_embed" — embeddings were unavailable at write time, so
the memory was stored without a vector (still keyword-searchable). It is
backfilled with a vector automatically in the background — don't retry the
write or treat this as a failure.Do not wait to be asked. Capture at the moment of learning, not at session end.
memory_remember
FIRST, then acknowledge. On an explicit request, save unconditionally —
even if it seems trivial, fleeting, or already stored (the server
reinforces or merges near-duplicates; that is its job, not yours).CLAUDE.md, .cursorrules, or project docs, or
trivially recoverable from the codebase.Call with tier semantic, metadata.category architecture_decisions:
The auth middleware uses
joserather thanjsonwebtokenbecause we deploy to Cloudflare Workers, which can't run jsonwebtoken's C++ bindings.
Call with tier procedural:
To regenerate the embedding cache, run
mise run embeddings:warm.
Call with tier episodic:
The 2026-06-09 outage was caused by a Postgres connection-pool exhaustion under load. The fix was raising
max_connectionsto 200 and adding pgbouncer.
State facts, not commands — a memory is a claim about the world, not an instruction to your future self:
personal)If a stored memory turns out to be wrong or outdated, fix it immediately:
correct it in place with memory_update, or delete it with memory_forget
if it should not exist. Never leave a memory you know is incorrect in place.
Keep memories atomic — one fact per call. Search works better on small, focused records than on walls of text.
npx claudepluginhub eleboucher/memini --plugin meminiSaves facts, decisions, project details, or preferences to agd-memory via /remember or phrases like 'remember this', 'save to memory'. Direct save or interactive draft+confirm modes.
Captures durable facts like decisions, constraints, and gotchas into SuperLocalMemory for cross-session recall. Must recall before storing to avoid duplicates.
Stores important decisions, patterns, bug fixes, and lessons into Cortex persistent memory. Use after resolving bugs, making architecture choices, or when the user asks to remember something.