From obsidian-brain
Batch-cluster vault notes into named themes. Use when: (1) /consolidate to seed themes from unassigned notes, (2) /consolidate stats, (3) /consolidate split <id>, (4) /consolidate merge <a> <b>, (5) /consolidate --full to wipe and recluster everything.
How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-brain:consolidateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Clusters notes into themes (3+ notes per theme), names them via Haiku, and
Clusters notes into themes (3+ notes per theme), names them via Haiku, and
populates themes / theme_members. The default run is a NON-destructive
seeder over unassigned notes; --full wipes and reclusters everything.
Tools needed: Bash
--full → Step 2 (consolidate)stats → Step 3split <id> → Step 4; bind THEME_ID=<id> from the user's numeric argumentmerge <a> <b> → Step 5; bind A=<a> and B=<b> from the two numeric argumentscd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
python3 -c '
import sys, os, glob; sys.path.insert(0, max(glob.glob(os.path.expanduser("~/.claude/plugins/cache/*/obsidian-brain/*/hooks")), default="hooks"))
from consolidate_cli import run_consolidate; run_consolidate(full=(len(sys.argv) > 1 and sys.argv[1] == "--full"))
' "$@"
Report the UNASSIGNED= (or SCANNED= for --full), CREATED=, and
THEMES_TOTAL= lines. If CREATED=0, tell the user no clusters of 3+ similar
notes were found (themes need at least 3 notes above the similarity threshold).
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
python3 -c '
import sys, os, glob; sys.path.insert(0, max(glob.glob(os.path.expanduser("~/.claude/plugins/cache/*/obsidian-brain/*/hooks")), default="hooks"))
from consolidate_cli import run_stats; run_stats()
'
Present THEMES=, MEMBERS=, UNASSIGNED=, the LARGEST rows, and any NUDGE.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
python3 -c '
import sys, os, glob; sys.path.insert(0, max(glob.glob(os.path.expanduser("~/.claude/plugins/cache/*/obsidian-brain/*/hooks")), default="hooks"))
from consolidate_cli import run_split; run_split(int(sys.argv[1]))
' "$THEME_ID"
Report SPLIT or NO_SPLIT.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
python3 -c '
import sys, os, glob; sys.path.insert(0, max(glob.glob(os.path.expanduser("~/.claude/plugins/cache/*/obsidian-brain/*/hooks")), default="hooks"))
from consolidate_cli import run_merge; run_merge(int(sys.argv[1]), int(sys.argv[2]))
' "$A" "$B"
Report MERGED or the error.
npx claudepluginhub abhattacherjee/obsidian-brain --plugin obsidian-brainSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.