mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
3ff40d51fc
Reframes the Claude Code plugin as the bridge between Claude's working
memory and Basic Memory's durable graph, per plugins/claude-code/DESIGN.md.
This is the minimal-first vertical slice with a clean break from v0.3.x.
Added:
- hooks/session-start.sh — SessionStart brief: one structured `type: task`
query against the configured (or default) project + always-on recall
prompt. Plain stdout, silent if BM is absent.
- hooks/pre-compact.sh — PreCompact checkpoint: writes a `type: session`
note before compaction (extractive). Only writes when primaryProject is
set, so it never touches an un-opted-in graph.
- output-styles/basic-memory.md — capture reflexes (search-first, typed
decision notes, cite permalinks); keep-coding-instructions: true.
- schemas/{session,decision,task}.md — picoschema seeds (validation: warn)
so plugin-written notes are findable via metadata_filters. task mirrors
the memory-tasks skill.
- settings.example.json — copyable config with sensible defaults.
Removed (clean break):
- the six bundled skills, the basic-memory-manager agent, the
PreToolUse/PostToolUse write_note hooks, the basic-memory config-note
convention, and PLUGIN.md. Equivalent workflows live in top-level skills/.
Other:
- Rewrote scripts/validate_claude_plugin.py for the new layout (hooks +
output-style + schemas; agent dropped; skills optional). Passes
`just package-check-claude-code` incl. `claude plugin validate --strict`.
- Rewrote README around the bridge story; updated CHANGELOG, marketplace
descriptions, and the AGENTS.md package-check note.
- Hooks tested end-to-end against throwaway projects (brief surfaces tasks;
checkpoint writes a queryable session note; both degrade silently).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: phernandez <paul@basicmachines.co>
2.0 KiB
2.0 KiB
title, type, entity, version, schema, settings
| title | type | entity | version | schema | settings | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Session | schema | Session | 1 |
|
|
Session
A SessionNote is a resume checkpoint written by the Basic Memory plugin's
PreCompact hook (and, later, the /basic-memory:handoff command) right before
Claude Code compacts the context window. It records what the session was doing
so the next session can pick up where this one left off.
Sessions are found by the SessionStart hook via structured recall:
search_notes(metadata_filters={"type": "session"}, after_date="3d").
What goes in a SessionNote
- summary — a short paragraph of what happened (richer once summarized checkpoints replace the extractive first cut).
- context / next_step — the cursor: what's in flight and what to do next.
- decision / problem — choices made and dead-ends hit, so the next session doesn't repeat them.
- produced — relations to the notes this session created or changed.
Frontmatter
type: session and status are the queryable fields that power recall. warn
validation means a missing field is surfaced, never blocking — the user's flow
is never gated on schema conformance.