memory-quest
Original:🇺🇸 English
Translated
Finish Memory Quest Mission 8: confirm this assistant reaches Basic Memory Cloud and starts from Basic Memory, then, with approval, save a Memory Master note with the user's verification code.
1installs
Added on
NPX Install
npx skill4agent add basicmachines-co/basic-memory memory-questTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Memory Quest
Memory Quest's last mission checks that this assistant is set up to use Basic Memory as a natural starting point for work. You complete it by saving one note — the user's Memory Master note — through Basic Memory, carrying a one-time code from the Basic Memory web app. The cloud recognizes that write and awards the mission.
The note write is the verification. There is no other endpoint to call and nothing to report afterwards.
Project scope
Discover projects in step 1, then use the cloud project selected in step 5.
Pass a nonempty on every note, folder, context and schema call, even
with one project or a qualified URL. Use the chosen project's name,
, or external ID; below is a placeholder for it.
Recent activity also requires . Search accepts for one
project, for selected projects, or explicitly.
Discovery and bundled manuals need no project. Keep the same scope when following
returned paths, paginating, or recovering from a refusal.
projectmemory://workspace/project<project>projectprojectprojectsall_projects=TrueWhen to Use
- The user runs (or
/memory-quest, or picks it from a skill menu)$memory-quest - The user asks to verify their assistant, finish Mission 8, or become a Memory Master
- Memory Quest in the web app pointed them here
When you tell the user to run Memory Quest again, use their host's form: in Claude Code, in Codex, or just asking for it in a chat app.
/memory-quest$memory-questTake no task context from the invocation. This skill checks setup; it does not need to find memory relevant to a task.
Steps
Work through these in order. Stop at the first step that fails, explain what's missing, and say how to fix it. Never skip ahead to the note write.
1. Confirm a cloud connection
Call and inspect the projects grouped by workspace.
bm_project(command="list", output_format="json")- If it fails, Basic Memory isn't connected to this assistant. Tell the user to connect it and run Memory Quest again.
- If no project has or
source: cloud, this assistant has not demonstrated a cloud connection. Memory Quest lives in Basic Memory Cloud: tell the user to connect their cloud account (source: local+cloudfor the CLI, or the Basic Memory connector in a chat app) and try again.bm cloud login - Otherwise the connection works. You may show the user one line about what you can see, such as the workspace names. That is a courtesy, not evidence.
2. Confirm the guidance is active
Mission 8 is about Basic Memory being this assistant's starting point, so check that the guidance which makes that happen is actually loaded. It is active when either is true:
- Your context contains the Basic Memory session briefing — a section headed , injected at session start by the Basic Memory plugin for Claude Code or Codex.
# Basic Memory — session context - Your persistent instructions (custom instructions, project instructions, or an agent context file) tell you to use Basic Memory at the start of tasks to find relevant context.
If neither is true, stop. Tell the user to install the Basic Memory plugin for their assistant, or to save the memory routine from the Memory Quest panel in their assistant's instructions, then start a fresh conversation and run Memory Quest again. Do not report the guidance as active when it isn't: that report is the one part of this check the server cannot see for itself.
3. Ask for the verification code
Ask the user to open https://app.basicmemory.com/memory-quest and paste the code it shows. Codes look like and last 30 minutes.
MQ-7HX2-K9QD-4TRMAccept the code as the user gives it; case and separators don't matter. If what they paste is clearly not a code (wrong prefix, too short), ask again rather than guessing.
4. Ask before saving
Say plainly what you are about to do: save a note titled "Memory Master" to their Basic Memory, and that saving it is what completes Mission 8. Ask for approval.
If they decline, stop. Say that the mission stays incomplete and they can run Memory Quest again any time.
5. Save the Memory Master note
First choose a project that exists only in Basic Memory Cloud. Call with and pick a project whose is exactly : the default project if it qualifies, otherwise ask the user which to use. New cloud accounts usually have one, Getting Started. Write to it by its .
bm_project(command="list")output_format: "json"sourcecloudexternal_idDon't use a project listed as or . When this machine has a local project with the same name as a cloud one, which is common because every local install creates , a local Basic Memory server writes the note to the local copy however you address it, by name, workspace-qualified name, or ID. The write reports success, but the cloud never sees it, so the mission stays incomplete. If no project is listed as , stop and tell the user to create one in Basic Memory Cloud (or connect their cloud account), then run Memory Quest again.
locallocal+cloudmaincloudWith approval, call once:
bm_write- :
titleMemory Master - :
directorymemory-quest - :
note_typememory_master - : the chosen project's
projectexternal_id - :
metadata{"memory_quest_code": "<the code exactly as the user gave it>", "memory_quest_guidance": "active"} - : the template below, unchanged except where it says to fill in
content - :
overwrite. Always pass it: when it's omitted,falsefollows the user'sbm_writesetting and could silently replace an existing note.write_note_overwrite_default
Pass the code and guidance in , never inside . They must arrive as frontmatter fields for the cloud to recognize the write.
metadatacontentIf reports that the note already exists, read it with , using the exact path from the refusal and the same , and . The frontmatter is where an earlier attempt's markers live, and the JSON includes the note's . Only an earlier Memory Quest attempt — a note whose frontmatter has and a field — may be replaced. Say so, then call again using the read result's as instead of + , , and set to that checksum. If the note changed after you read it, the write fails instead of discarding the newer version. Read it again and repeat the check. If the existing note is anything else, don't overwrite it: tell the user what's there, and either save under a different title, such as , or let them choose.
bm_writebm_readprojectoutput_format: "json"include_frontmatter: truechecksumtype: memory_mastermemory_quest_codebm_writefile_pathidentifiertitledirectoryoverwrite: trueexpected_checksumMemory Master (Memory Quest)6. Tell the user what happens next
Tell them the note is saved and to open Memory Quest in the web app, where Mission 8 shows complete once the cloud has processed it. You cannot see the award yourself, so don't claim it happened. If Memory Quest still shows Mission 8 as current after a minute, the usual cause is an expired or replaced code: get a new code and run Memory Quest again.
Memory Master template
Use this as the note's . Replace with today's date; leave everything else as written. The blocks are live views the Basic Memory web app renders from the user's own knowledge base each time the note is opened.
<!-- Maintainers: basic-memory-cloud parses a copy of this template
(packages/comark-harness/src/memory-master.md) against the Comark profile.
Update both together. -->
content<today's date>::bm-*markdown
Memory Master since <today's date>. Every Memory Quest mission is complete.
## The quest
::bm-check{title="Memory Quest"}
- [x] Capture your first memory
- [x] Create a relationship
- [x] Build and explore the knowledge graph
- [x] Master advanced search
- [x] Structure knowledge with schemas
- [x] Share a note safely
- [x] Bring in knowledge you already have
- [x] Make Memory a Habit
::
## Your knowledge today
::bm-stat{operation="bm.search.metadata" aggregate="count" label="Notes in this project"}
::
::bm-kpi{operation="bm.activity.recent" metric="notes-updated" window="30d" title="Notes updated in the last 30 days"}
::
::bm-spark{operation="bm.activity.recent" metric="notes-updated" window="30d" interval="day" title="Updates per day"}
::
::bm-rank{operation="bm.search.metadata" aggregate="count" group-by="type" limit="5" title="Your most-used note types"}
::
## What changes now
Your assistant now starts from what you already know: it checks Basic Memory for relevant context when it begins work, and offers to save what's worth keeping when it's done.Guidelines
- One write, with approval. Never write the note before step 4, and never write a second note to retry. Overwrite the same one.
- Report guidance honestly. Only send after step 2 passes.
memory_quest_guidance: "active" - Don't invent outcomes. You can't observe the award. Point the user to Memory Quest instead of announcing success.
- Keep the code in metadata. A code in the note body verifies nothing.
- Stay on task. This skill doesn't search for memory relevant to a task, and doesn't change the user's other notes or settings.