npx claudepluginhub remember-md/rememberThis skill uses the workspace's default tool permissions.
Reads unprocessed Claude Code transcripts and routes valuable content into your Second Brain using a knowledge-aware pipeline.
Capture knowledge to your Second Brain when triggered by "remember this", "save this", or "brain dump"
Extracts insights from conversation sessions via guided dialogue and integrates into persistent memory for cross-session learning when knowledge should be preserved.
Persists learnings into a 5-layer memory hierarchy (CLAUDE.md files, memory/MEMORY.md) and consolidates by pruning outdated entries and promoting recurring patterns. Triggers on 'extract learnings', 'remember', 'dream'.
Share bugs, ideas, or general feedback.
Reads unprocessed Claude Code transcripts and routes valuable content into your Second Brain using a knowledge-aware pipeline.
Only use Bash for running Node.js scripts. Use Read/Write/Edit/Glob/Grep for all file operations.
session_date < file_last_modified → OLD SESSION (append only, no replace, no frontmatter update). Otherwise → normal update.[[wikilinks]], prevent duplicates.$REMEMBER_BRAIN_PATH env var (fallback ~/remember). Call this {brain}./remember:init and stop.node ${CLAUDE_PLUGIN_ROOT}/scripts/build-index.jsRead REMEMBER.md (cascading): {brain}/REMEMBER.md (global) + {project_root}/REMEMBER.md (project, if exists). These override default routing, capture rules, templates, and custom types.
Run once to get last-modified dates for all brain files:
cd {brain} && git log --format="%ai" --name-only --diff-filter=ACMR HEAD | paste - - | sort -k2 -u
Parse into a lookup map: file_path → last_modified_date. Use this in Step 4c instead of per-file git log calls.
node ${CLAUDE_PLUGIN_ROOT}/scripts/extract.js --unprocessed
Optional filters: --project <name>, --source openclaw|claude-code.
Show the list. Ask user which to process: All, specific sessions by number, or Skip.
node ${CLAUDE_PLUGIN_ROOT}/scripts/extract.js <file_path>
Use the **Session date (use for journal/tasks):** line as SESSION_DATE for everything. Never use today's date.
Read @reference.md for routing tables, templates, and classification rules.
Resolve every name, project, topic against the knowledge index. Fuzzy match: "John", "john smith", "John S." → People/john-smith.md.
Apply REMEMBER.md rules first (Always/Never/Routing overrides/Custom Types), then fall through to default classification in reference.md. Skip: routine code generation, debugging noise, tool call chatter.
Before creating L2 files, append a section for this session into {brain}/Journal/{SESSION_DATE}.md (create if missing — type: experience frontmatter). Include the verbatim quote(s) you intend to cite as evidence on any belief/world-fact files you'll create. The journal entry's path becomes the canonical evidence.source for everything you create from this session.
Never invent a chat/..., session/..., or transcript/... path that doesn't exist on disk. The journal IS the source.
Once classified to a folder/file by 4b, also tag with one of: world-fact, belief, observation, experience.
Apply the same heuristics as the remember skill (or call scripts/schema.js detectType for the same logic):
This skill MUST emit type: in the frontmatter of every newly created L2 file. For beliefs, confidence is REQUIRED. For all L2 files, include at least one evidence entry (source + quote + SESSION_DATE).
This skill does NOT trigger consolidation, reflection, or promotion. Those are the responsibility of /remember:evolve (Phase 2).
After every Write/Edit on a brain file in this skill (steps 4c/4d), run:
node ${CLAUDE_PLUGIN_ROOT}/scripts/schema.js validate <filepath>
Output {changed, addedFields, addedSections, warnings}. Surface any warnings in the final report. Skip on Inbox/Tasks/Archive (validator returns passthrough). Aim to emit complete frontmatter on first write so the validator is a no-op.
Before creating a new Notes/<slug>.md, check for an existing similar belief/world-fact:
node ${CLAUDE_PLUGIN_ROOT}/scripts/append-evidence.js find-similar {brain} <slug> <belief|world-fact>
No match → create new (Step 4a).
Match returned → run the polarity check below before deciding which command to use.
Read the existing file (body + evidence:). Decide which of three branches applies:
Same direction (re-affirms existing claim) → append positive evidence:
node ${CLAUDE_PLUGIN_ROOT}/scripts/append-evidence.js append <filepath> '{"source":"Journal/<SESSION_DATE>.md","quote":"<verbatim>","date":"<SESSION_DATE>"}'
Increments sources_count, appends to evidence:, refuses duplicate sources.
Opposite direction (contradicts existing claim) → append counter-evidence + log:
node ${CLAUDE_PLUGIN_ROOT}/scripts/append-evidence.js append-counter <filepath> '{"source":"Journal/<SESSION_DATE>.md","quote":"<verbatim>","date":"<SESSION_DATE>"}'
node ${CLAUDE_PLUGIN_ROOT}/scripts/evolution-log.js CONTRADICT "<filepath> counter from Journal/<SESSION_DATE>.md"
Appends to counter_evidence:, leaves sources_count alone, auto-flips freshness: contradicted when counter entries exceed positive ones.
Unrelated (fuzzy match was wrong) → ignore the find-similar match and create a new note via Step 4a.
In bulk processing, mention the polarity decision in the per-session report so the user can spot mistakes (e.g. "3 positive, 1 contradicted (Notes/pref-postgres.md)").
Use Edit for surgical updates. Do NOT rewrite whole files.
Chronology check: Look up the file in the batch chronology map (Step 1c).
session_date < file_last_modified → OLD SESSION: append only, insert chronologically in logs, don't replace sections, don't update frontmatterupdated: fieldSee reference.md for per-type update patterns and chronology examples.
When in doubt: Append. Duplicate context is better than lost information.
Check REMEMBER.md ## Templates first, then fall back to reference.md templates. Use [[wikilinks]] everywhere.
Analyze session for: user corrections, stated preferences, repeated workflows, communication style, decision criteria, code style. Read current Persona.md first. Add evidence with [{SESSION_DATE}] prefix. Skip if no clear patterns.
node ${CLAUDE_PLUGIN_ROOT}/scripts/extract.js --source <source> --mark-processed <session_id>
After all sessions in this batch have been processed, run promote.js a single time so Persona.md ## Top Beliefs reflects everything that just landed:
node ${CLAUDE_PLUGIN_ROOT}/scripts/promote.js
Bulk extraction often pushes many beliefs over the threshold at once — surface the deltas (promoted/demoted) in the report below.
Report: list created files, updated files (note if append-only), skipped files, session dates, remaining unprocessed count, and the auto-promote delta (promoted/demoted Top Beliefs). See reference.md for report template.