feat(skills): add memory-quest skill for Memory Quest Mission 8 (#1677) · basicmachines-co/basic-memory@2e96371 · GitHub
Skip to content

Commit 2e96371

Browse files
groksrcclaude
andauthored
feat(skills): add memory-quest skill for Memory Quest Mission 8 (#1677)
Signed-off-by: Drew Cain <groksrc@gmail.com> Signed-off-by: Drew Cain <groksrc@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 605a355 commit 2e96371

4 files changed

Lines changed: 140 additions & 0 deletions

File tree

‎skills/CLAUDE.md‎

Lines changed: 1 addition & 0 deletions

‎skills/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Basic Memory provides the MCP server — tools like `write_note`, `search_notes`
2929
| **memory-literary-analysis** | Analyze a complete literary work into a structured knowledge graph — characters, themes, chapters, locations, symbols, and literary devices. | Full-text literary analysis, book club companions, teaching resources, or research projects. |
3030
| **memory-continue** | Resume prior work by rebuilding context from the knowledge graph — `build_context` via `memory://` URLs, recent activity, and search, then read the key notes. | Starting a session, or when the user says "continue with...", "back to...", or "where were we?" |
3131
| **memory-onboarding** | Guided onboarding for people new to Basic Memory — interview, blueprint, approval gate, then build a full system: schemas, templates, instruction notes, a startup router, indexes, and real seed notes, plus assistant setup so the rules load every session. | When a user is new to Basic Memory, doesn't know what to use it for, wants structure in an empty or messy project, or wants their assistant to follow consistent rules across sessions. |
32+
| **memory-quest** | Finish Memory Quest's last mission in Basic Memory Cloud: confirm the assistant reaches the cloud account and starts work from Basic Memory, then — with approval — save a Memory Master note carrying the code from app.basicmemory.com/memory-quest. | When the user runs `/memory-quest` or asks to verify their assistant for Memory Quest. |
3233

3334
`memory-research` asks the agent to search the web. Basic Memory does not ship that tool. If the host already has web search, keep using it. If not, add any web search tool or MCP server, for example [Parallel Search MCP](https://docs.parallel.ai/integrations/mcp/search-mcp). The search provider receives the agent's queries, so keep private note content out of them. The agent still asks before saving a note.
3435

‎skills/memory-quest/SKILL.md‎

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
---
2+
name: memory-quest
3+
description: "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."
4+
---
5+
6+
# Memory Quest
7+
8+
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.
9+
10+
The note write *is* the verification. There is no other endpoint to call and nothing to report afterwards.
11+
12+
## When to Use
13+
14+
- The user runs `/memory-quest` (or `$memory-quest`, or picks it from a skill menu)
15+
- The user asks to verify their assistant, finish Mission 8, or become a Memory Master
16+
- Memory Quest in the web app pointed them here
17+
18+
When you tell the user to run Memory Quest again, use their host's form: `/memory-quest` in Claude Code, `$memory-quest` in Codex, or just asking for it in a chat app.
19+
20+
Take no task context from the invocation. This skill checks setup; it does not need to find memory relevant to a task.
21+
22+
## Steps
23+
24+
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.
25+
26+
### 1. Confirm a cloud connection
27+
28+
Call `list_workspaces`.
29+
30+
- If it fails, Basic Memory isn't connected to this assistant. Tell the user to connect it and run Memory Quest again.
31+
- If the only workspace has `tenant_id` `personal`, this assistant is connected to a local-only Basic Memory. Memory Quest lives in Basic Memory Cloud: tell the user to connect their cloud account (`bm cloud login` for the CLI, or the Basic Memory connector in a chat app) and try again.
32+
- 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.
33+
34+
### 2. Confirm the guidance is active
35+
36+
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:
37+
38+
- Your context contains the Basic Memory session briefing — a section headed `# Basic Memory — session context`, injected at session start by the Basic Memory plugin for Claude Code or Codex.
39+
- 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.
40+
41+
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.
42+
43+
### 3. Ask for the verification code
44+
45+
Ask the user to open **https://app.basicmemory.com/memory-quest** and paste the code it shows. Codes look like `MQ-7HX2-K9QD-4TRM` and last 30 minutes.
46+
47+
Accept 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.
48+
49+
### 4. Ask before saving
50+
51+
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.
52+
53+
If they decline, stop. Say that the mission stays incomplete and they can run Memory Quest again any time.
54+
55+
### 5. Save the Memory Master note
56+
57+
First choose a project that exists only in Basic Memory Cloud. Call `list_memory_projects` with `output_format: "json"` and pick a project whose `source` is exactly `cloud`: 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 `external_id`.
58+
59+
Don't use a project listed as `local` or `local+cloud`. When this machine has a local project with the same name as a cloud one, which is common because every local install creates `main`, 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 `cloud`, stop and tell the user to create one in Basic Memory Cloud (or connect their cloud account), then run Memory Quest again.
60+
61+
With approval, call `write_note` once:
62+
63+
- `title`: `Memory Master`
64+
- `directory`: `memory-quest`
65+
- `note_type`: `memory_master`
66+
- `project_id`: the chosen project's `external_id`
67+
- `metadata`: `{"memory_quest_code": "<the code exactly as the user gave it>", "memory_quest_guidance": "active"}`
68+
- `content`: the template below, unchanged except where it says to fill in
69+
- `overwrite`: `false`. Always pass it: when it's omitted, `write_note` follows the user's `write_note_overwrite_default` setting and could silently replace an existing note.
70+
71+
Pass the code and guidance in `metadata`, never inside `content`. They must arrive as frontmatter fields for the cloud to recognize the write.
72+
73+
If `write_note` reports that the note already exists, read it with `read_note`, passing the same `project_id`, `output_format: "json"` and `include_frontmatter: true`. The frontmatter is where an earlier attempt's markers live, and the JSON includes the note's `checksum`. Only an earlier Memory Quest attempt — a note whose frontmatter has `type: memory_master` and a `memory_quest_code` field — may be replaced. Say so, then call `write_note` again with the same arguments, `overwrite: true`, and `expected_checksum` 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 `Memory Master (Memory Quest)`, or let them choose.
74+
75+
### 6. Tell the user what happens next
76+
77+
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.
78+
79+
## Memory Master template
80+
81+
Use this as the note's `content`. Replace `<today's date>` with today's date; leave everything else as written. The `::bm-*` blocks are live views the Basic Memory web app renders from the user's own knowledge base each time the note is opened.
82+
83+
<!-- Maintainers: basic-memory-cloud parses a copy of this template
84+
(packages/comark-harness/src/memory-master.md) against the Comark profile.
85+
Update both together. -->
86+
87+
88+
```markdown
89+
Memory Master since <today's date>. Every Memory Quest mission is complete.
90+
91+
## The quest
92+
93+
::bm-check{title="Memory Quest"}
94+
- [x] Capture your first memory
95+
- [x] Create a relationship
96+
- [x] Build and explore the knowledge graph
97+
- [x] Master advanced search
98+
- [x] Structure knowledge with schemas
99+
- [x] Share a note safely
100+
- [x] Bring in knowledge you already have
101+
- [x] Make Memory a Habit
102+
::
103+
104+
## Your knowledge today
105+
106+
::bm-stat{operation="bm.search.metadata" aggregate="count" label="Notes in this project"}
107+
::
108+
109+
::bm-kpi{operation="bm.activity.recent" metric="notes-updated" window="30d" title="Notes updated in the last 30 days"}
110+
::
111+
112+
::bm-spark{operation="bm.activity.recent" metric="notes-updated" window="30d" interval="day" title="Updates per day"}
113+
::
114+
115+
::bm-rank{operation="bm.search.metadata" aggregate="count" group-by="type" limit="5" title="Your most-used note types"}
116+
::
117+
118+
## What changes now
119+
120+
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.
121+
```
122+
123+
## Guidelines
124+
125+
- **One write, with approval.** Never write the note before step 4, and never write a second note to retry. Overwrite the same one.
126+
- **Report guidance honestly.** Only send `memory_quest_guidance: "active"` after step 2 passes.
127+
- **Don't invent outcomes.** You can't observe the award. Point the user to Memory Quest instead of announcing success.
128+
- **Keep the code in metadata.** A code in the note body verifies nothing.
129+
- **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.
Lines changed: 9 additions & 0 deletions

0 commit comments

Comments
 (0)