Skills

Memory Schema

Manage Basic Memory schemas: find unschemaed notes, infer and edit schemas, validate...

Install

npx skills add basicmachines-co/basic-memory --skill memory-schema -g -a claude-code -y
Category
Writing
Updated
3d ago
License
AGPL-3.0
Context cost
Mediumabout 2,227 tokens
Runs scripts
No, instructions only

What it does

Manage Basic Memory schemas: find unschemaed notes, infer and edit schemas, validate notes, detect drift. Use when structured note types (Task, Person, Meeting) need consistency across the graph.

Memory Schema

Manage structured note types using Basic Memory's Picoschema system. Schemas define what fields a note type should have, making notes uniform, queryable, and validatable.

Project scope

If the project is unknown, discover it with bm_project(command="list"). Pass a nonempty project on every note, folder, context and schema call, even with one project or a qualified memory:// URL. Use the chosen project's name, workspace/project, or external ID; <project> below is a placeholder for it. Recent activity also requires project. Search accepts project for one project, projects for selected projects, or all_projects=True explicitly. Discovery and bundled manuals need no project. Keep the same scope when following returned paths, paginating, or recovering from a refusal.

When to Use

  • New note type emerging, you notice several notes share the same structure (meetings, people, decisions)
  • Validation check, confirm existing notes conform to their schema
  • Schema drift, detect fields that notes use but the schema doesn't define (or vice versa)
  • Schema evolution, add/remove/change fields as requirements evolve
  • On demand, user asks to create, check, or manage schemas

Picoschema Syntax Reference

Schemas are defined in YAML frontmatter using Picoschema, a compact notation for describing note structure.

Basic Types

schema:
  name: string, person's full name
  age: integer, age in years
  score: number, floating-point rating
  active: boolean, whether currently active

Supported types: string, integer, number, boolean.

Optional Fields

Append ? to the field name:

schema:
  title: string, required field
  subtitle?: string, optional field

Enums

Use (enum) with a list of allowed values:

schema:
  status(enum, current state): [active, blocked, done, abandoned]

Optional enum:

Read the whole SKILL.md on GitHub

More in Writing