basic-memory-pi-setup
Set up Basic Memory for a Pi workspace. Use when Basic Memory is not configured, /bm-status…
Make a Basic Memory project ready for OKF v0.2 export by finding and fixing what blocks it. Use when preparing a project for OKF export, publishing, or handoff, or checking an OKF bundle.
$ npx -y skills add basicmachines-co/basic-memory --skill memory-okf --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/memory-okfContext preview
The summary Claude sees to decide when to auto-load this skill.
Make a Basic Memory project ready for OKF v0.2 export by finding and fixing what blocks it. Use when preparing a project for OKF export, publishing, or handoff, or checking an OKF bundle.
name: memory-okf description: "Make a Basic Memory project ready for OKF v0.2 export by finding and fixing what blocks it. Use when preparing a project for OKF export, publishing, or handoff, or checking an OKF bundle."
OKF v0.2 is a directory format for knowledge: Markdown concept files with YAML frontmatter, an `index.md` per folder, and a root `log.md`. A Basic Memory project is most of the way there already. The wiki projection writes the `index.md` and `log.md` pages, and the export turns wikilinks into the standard Markdown links OKF needs.
This skill makes a project ready for that export. It uses the note tools, so it works in Basic Memory Cloud and locally. In Cloud the export itself runs as a Cloud task; locally it is `bm okf export`.
Keep the project's wikilinks. They are how Basic Memory links notes, and the export converts them.
# Note files must end in lowercase .md
find(name="*.markdown")
find(name="*.MD")
# index.md and log.md belong to the wiki. A file there with note_type
# "Index" or "Log" is a wiki page; anything else is a note of your own.
find(name="index.md")
find(name="log.md")
# Export records relation types under `bm.okf_export`, so a note may not use it
search_notes(metadata_filters={"bm.okf_export": {"$exists": True}})Page through each `find` until `has_more` is false.
| Blocker | Fix | |---|---| | A note ends in `.markdown` or `.MD` | `move_note` to the same path ending in `.md` | | A note of your own named `index.md` or `log.md` | `move_note` to a name that says what it is, e.g. `notes/overview.md` | | A note uses `bm.okf_export`, or `bm` is not a mapping | Rewrite its frontmatter without that key (below) |
move_note(identifier="notes/long-form.markdown", destination_path="notes/long-form.md") move_note(identifier="notes/index.md", destination_path="notes/overview.md")
`move_note` keeps links to the note working. To rewrite frontmatter, read the note as JSON and overwrite only that revision:
note = read_note(identifier="notes/clash", output_format="json")
write_note(
title=note["title"],
directory="notes",
content="<the note body, unchanged>",
metadata={...}, # the frontmatter without bm.okf_export
overwrite=True,
expected_checksum=note["checksum"],
)Never edit a wiki `index.md` or `log.md` by hand. The projector rewrites them.
List what you renamed or rewrote, and anything you left for the user to decide. Say the project is ready for export, and that the export runs as a Cloud task (or with `bm okf export` locally).
Notes without frontmatter are fine: Basic Memory adds `title` and `type` when it indexes them. Broken links are allowed; the export keeps them as broken links. Fix the ones a reader will follow (see **memory-curate**).
With the `bm` CLI and a local project, you can run the export and check it:
bm wiki status --project research # current, stale, or conflicted bm wiki rebuild --project research # refresh index.md and log.md bm okf export ~/exports/research --project research --json bm okf check ~/exports/research --json
`conflicted`; rename it as in step 2.
leaves the destination as it was. Its `--json` output lists `diagnostics`, each with `rule` and `message`. It refuses an existing destination unless `--replace` is given; ask before replacing a bundle someone relies on.
structural: it accepts broken cross-links, so a passing check does not mean every link resolves.
use wikilinks and frontmatter on purpose, and the check reports them.
on the next export.
them
temporal qualifiers
something is content about that note.
AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https://discord.gg/tyvKNccgqN
Repo: basicmachines-co/basic-memory
Set up Basic Memory for a Pi workspace. Use when Basic Memory is not configured, /bm-status…
Use Basic Memory from Pi for durable continuity. Capture checkpoints with bm_capture, recall…
Guide Basic Memory setup in Tau. Use when a user wants to install or configure the Tau memory…
Save a deliberate work checkpoint to Basic Memory with the story, changed files,…
Capture a durable engineering decision in Basic Memory with rationale, alternatives,…
Orient Claude from Basic Memory before substantial repo work by reading active tasks, open…