memory-curate — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited memory-curate (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Maintain a healthy, well-connected knowledge graph. As notes accumulate, it pays to periodically organize, link, and curate the knowledge base so isolated notes become a connected graph.
This skill curates the knowledge graph — the notes, relations, and tags that make up the knowledge base. (For the notes' content — splitting bloated notes, consolidating scattered facts, retiring stale entries — see memory-defrag.)
Orphans have no relations to other notes — they're islands in the graph.
# List notes, then read each to inspect its Relations section
bm_search(query="*", mode="text", page_size=50)
bm_read(identifier="note-to-check")
# Orphans have an empty (or missing) Relations sectionquery="*" lists everything only with mode="text". A note whose body links to other notes, with wikilinks or ordinary Markdown links, is not an orphan even without a Relations section.
If the bm CLI is available, bm orphans lists notes with no relations in one call.
What to do with orphans:
Analyze a note's content and propose meaningful connections.
bm_read(identifier="note-to-analyze")
# Pull out key terms, then search for related notes
bm_search(query="key terms from the note")Suggest relations based on shared topics, complementary content (problem/solution, question/answer), sequence (part 1 → part 2), or hierarchy (parent concept → detail).
Relation-type vocabulary:
relates_to — general topical connectionextends — builds upon or elaboratesimplements — realizes a concept or specdepends_on — requires understanding ofpart_of — hierarchy or compositioncontrasts_with — presents an alternative viewinspired_by — source of insightenables — makes something possibleCustom relation types are fine — use whatever verb is descriptive.
Add a confirmed relation with bm_edit:
bm_edit(
identifier="API Design Decisions",
command="insert_after_section",
section="Relations",
content="- depends_on [[Rate Limiter]]",
)insert_after_section needs the heading to exist, and orphans often have no ## Relations. Then append the section instead:
bm_edit(
identifier="API Design Decisions",
command="append",
content="\n## Relations\n- depends_on [[Rate Limiter]]",
)Find notes that may cover the same ground.
bm_search(query="topic keywords")
# Compare results for: similar titles, overlapping observations,
# shared tags, close-together timestampsActions for duplicates:
notes stay as unresolved links; repoint them first
supersedes / updates when one revises the other# Point an older note at the one that replaces it
bm_edit(
identifier="DB Schema v1",
command="insert_after_section",
section="Relations",
content="- updates [[DB Schema v2]]",
)bm_find(path="/", depth=3, project="<project>")Look for overcrowded folders, single-note folders, inconsistent naming, and notes that belong elsewhere. Suggest grouping related notes into topic folders, adding subfolders for large categories, and a consistent naming convention. Move misplaced notes with bm_move. By default the permalink stays the same after a move, so links keep resolving. Projects with update_permalinks_on_move enabled rewrite it from the new path.
bm_move(
identifier="API Design Decisions",
destination="architecture/api-design-decisions.md",
)bm_search(query="*", mode="text", page_size=100)
# Inspect tag patterns across resultsLook for:
architecture vs arch; pick one and standardizeAfter finding a cluster of related notes, build a navigation hub.
bm_write(
title="Architecture Decisions Index",
directory="indexes",
tags=["architecture", "index"],
note_type="index",
content="""# Architecture Decisions Index
A hub linking architecture-related decisions and patterns.
## Decisions
- [[Database Selection Decision]]
- [[API Design Patterns]]
- [[Authentication Architecture]]
## Patterns
- [[Repository Pattern]]
- [[Async Client Pattern]]
## Observations
- [index] Central hub for architecture knowledge #navigation
## Relations
- indexes [[Architecture]]""",
)Find notes lacking structure and fill them in.
bm_read(identifier="sparse-note")If the note is missing an Observations section, suggest categories. If it has no Relations, suggest links. If it has no tags, suggest relevant ones. If it lacks context, suggest adding background. Apply with bm_edit.
Scale the pass to the request. A health check reports orphans, likely duplicates, recent activity (bm_project(command="recent")), and folder distribution. A deep session works through the capabilities above in whatever order the findings suggest. A topic pass maps one subject with bm_search and bm_context, fills the gaps it finds, and ends with a hub note.
memory:// links. Moves keep the permalink by default (unless the project enables update_permalinks_on_move).bm_context to help the user see how notes connect.User: "Help me organize my notes"
The assistant:
User: "Find notes that should link to my API design note"
The assistant:
relates_toimplementsextendsShould I add any of these relations?"
User: "Are there notes on similar topics?"
The assistant:
supersedes relationWant to review either?"
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.