From memory-mason
Runs health checks on memory-mason Obsidian knowledge bases. Detects broken wikilinks, orphan pages, stale articles, missing backlinks, sparse content, and more. Reports by error, warning, suggestion severity.
npx claudepluginhub s-gryt/memory-mason --plugin memory-masonThis skill is limited to using the following tools:
Run fourteen health checks on the knowledge base and report all findings by severity.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Share bugs, ideas, or general feedback.
Run fourteen health checks on the knowledge base and report all findings by severity.
This command is operational only. Do not write /mml, /memory-mason:mml, or their execution chatter back into the vault.
Before any other reasoning, resolve vault config in this priority order:
./.env./memory-mason.json~/.memory-mason/.env~/.memory-mason/config.jsonResolve:
Use the source that provides the vault path.
Subfolder rules:
.env file, use MEMORY_MASON_SUBFOLDER from that same file when present, otherwise default to ai-knowledge.memory-mason.json or ~/.memory-mason/config.json, use its subfolder.Do not claim config is missing until you have attempted all four locations above. If none provide a vault path, fail fast with an explicit error that names every location checked.
Use these paths:
_raw/ or _meta/ as knowledge articles, except for the explicit checks below against _meta/manifest.json and _meta/context.md.[[target]] from article content._raw/ as valid source references.[[foo]] as format violations handled by Check 13.index.md, find all [[wikilinks]]._raw/./. Check 13 handles them.ERROR [broken_link] file.md: Broken link: [[target]] - target does not exist
atlas/, concepts/, and synthesis/, count inbound links from other articles in those same content directories.WARN [orphan_page] file.md: No other articles link to [[path/slug]]
ingested map of YYYY-MM-DD -> hash.YYYY-MM-DD as the source key.ingested.WARN [orphan_source] _raw/YYYY-MM-DD/: Not yet compiled
state.json ingested entries, compare the current raw capture hash with the stored hash.WARN [stale_article] _raw/YYYY-MM-DD/: File changed since last compilation
/mmc.SUGGESTION [missing_backlink] a.md: [[a/slug]] links to [[b/slug]] but not vice versa
SUGGESTION [sparse_article] file.md: Only N words (minimum recommended: 200)
For each entry under {vault}/{subfolder}/_raw/:
001.md, 002.md, and so on.meta.json for size calculations.Report captures over 500KB:
WARN [large_daily_folder] _raw/YYYY-MM-DD/: Total {size}KB across {n} chunks. Consider running /mmc.
Report captures over 2MB as error:
ERROR [oversized_daily_folder] _raw/YYYY-MM-DD/: Total {size}MB across {n} chunks. Run /mmc immediately.
SUGGESTION [missing_manifest] _meta/manifest.json: No source-to-page manifest yet. Run /mmc to create lineage metadata.
sources object.sources[sourceKey] entry:
hash must be a stringcompiled_at must be a stringpages_created and pages_updated must be arrays of strings if presentstate.json and _meta/manifest.json and the hashes differ, report:WARN [manifest_drift] _meta/manifest.json: Source key {sourceKey} hash differs from state.json
ERROR [manifest_page_missing] _meta/manifest.json: Listed page {path} does not exist
SUGGESTION [missing_context] _meta/context.md: No session context yet. Run /mmc to create one.
type: metatitle: "Session Context"updated:WARN [invalid_context] _meta/context.md: Missing required frontmatter field {field}
last_compile exists in state.json and context.md's updated timestamp is older than last_compile, report:WARN [stale_context] _meta/context.md: Session context is older than the most recent compilation
concepts/, search for [!contradiction] callout blocks.evergreen status.WARN [unresolved_contradiction] concepts/file.md: Contains N unresolved [!contradiction] callout(s)
concepts/, count outbound [[...]] wikilinks in the body (excluding frontmatter and _raw/ source references).SUGGESTION [isolated_concept] concepts/file.md: No outbound wikilinks — consider adding related concept links
SUGGESTION [thin_moc] atlas/file.md: Only N concept links (minimum recommended: 3)
concepts/, search for [!gap] callout blocks.SUGGESTION [knowledge_gap] concepts/file.md: Contains [!gap] callout — awaiting enrichment from future sessions
[[slug]] in knowledge articles and the root index.md, search for matching files at:
ERROR [short_form_link] file.md: [[foo]] should be [[concepts/foo]] — use full directory-prefixed paths
ERROR [ambiguous_short_form_link] file.md: [[foo]] matches [[concepts/foo]], [[atlas/foo]] — use an explicit directory-prefixed target
ERROR [short_form_link] file.md: [[foo]] is a bare slug link and cannot be resolved — use an explicit directory-prefixed target
index.md for wikilinks that start with [[{subfolder}/_raw/.ERROR [wrong_source_prefix] file.md: [[memory-mason/_raw/...]] should be [[_raw/...]] — remove the subfolder prefix
Return results exactly in this structure:
## Knowledge Base Lint Report
### Errors (must fix)
- ERROR [broken_link] ...
- ERROR [short_form_link] ...
- ERROR [ambiguous_short_form_link] ...
- ERROR [wrong_source_prefix] ...
- ERROR [oversized_daily_folder] ...
- ERROR [manifest_page_missing] ...
### Warnings (should fix)
- WARN [orphan_page] ...
- WARN [large_daily_folder] ...
- WARN [unresolved_contradiction] ...
### Suggestions (nice to fix)
- SUGGESTION [sparse_article] ...
- SUGGESTION [isolated_concept] ...
- SUGGESTION [thin_moc] ...
- SUGGESTION [knowledge_gap] ...
### Summary
- Errors: N
- Warnings: N
- Suggestions: N
If no issues are found, output exactly:
✓ Knowledge base is healthy. No issues found.