本文へ移動
cccskills
無料GitHub で公開

notebrain-assistant

Search and explore an Obsidian vault through the NoteBrain CLI (semantic search, tags, backlinks, connections, hidden links, boosted retrieval). Use it whenever the user mentions their notes, knowledge base, Obsidian vault, semantic search, finding connections or unlinked notes, or asks exploratory questions like "what do I know about X", "find notes related to Y", "what connects to Z", or "summarize my notes on W" — even when they never say NoteBrain, vector search, or ChromaDB.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md7.2 KB
  • references/example.md6.9 KB
  • references/flags.md16.6 KB
  • references/schema.md9.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

NoteBrain Assistant Skill

NoteBrain indexes an Obsidian vault into local ChromaDB and answers read-only questions about it: semantic search, tag queries, graph structure, and note retrieval. It never mutates the vault — for writes, use standard file tools or obsidian-cli and keep NoteBrain for the discovery step.

References, read on demand:

Preflight (once per conversation)

notebrain stats --format=json
ResultDo
chunks: 0The vault is unindexed — tell the user to run notebrain ingest first. Do not try to read the vault another way.
Binary missing / errorsSay NoteBrain isn't available and offer to check setup. Do not grep/find the vault instead.
chunks > 0Proceed.

The config trap: ~/.notebrain/config/config.toml (or --config) overrides built-in flag defaults — include-text, context-window, min-score, limit, top-k all have config keys. If config enables text/context, every result carries text+context even without the flags. For lean output pass --include-text=false --context-window=0. If a query looks over-filtered, a configured min-score floor (e.g. 0.4) means low-score rows never appear — that's expected, not a bug. Details: flags.md.

Retrieval ladder

The vault is large; the context budget is not. Each step has one criterion that says done.

Step 1 — Lean search

Determine the topic, then query it lean:

notebrain search "<topic>" --format json --include-text --context-window 1 --limit 3

Done when the top hit scores >= 0.75 and its text fully answers the question. Then stop and answer — do not launch graph commands out of curiosity.

Lean shapes:

  • Top candidates/slugs only: drop --context-window, use --jsonpath="$.results[*].note_slug".
  • Note-level (not chunk-level) list: --group-by-note to collapse to the best chunk per note; dedupe via --jsonpath="$.results[*].note_slug" | sort -u.
  • Weak matches above the --min-score 0.5 floor, or --tag, --section, --has-tasks, --has-code, --exclude-note.
  • Multi-topic at once — boost by adding positional queries: search "redis pubsub" "kafka brokers".
  • A show-tags + --jsonpath="$.results[0].tags" reveals real note tags in one call.

Flag tables, --min-score semantics, filters: flags.md.

Step 2 — Targeted depth

Only when the task needs graph structure or related-but-unlinked notes, pass the exact slug (see Slug discipline) to the single matching command. Pick one; don't run the whole ladder for a simple question.

IntentCommandDecisive part
Reading / metadata onlyget--meta (header, no body) or --head N (first N chunks) — full get only on direct demand
What links to a notebacklinksexactly the slug
What's graph-neighbourconnections--hops 1–2 (exponential blow-up beyond)
Meaning-related but NOT linkedhidden--deep for section-level matches
Related including linkedhidden--include-linked
Concepts around a seed noteboosted--seed "<slug>" (required)
Notes with tag Xtags--children for the full family
What shares tags with note Ytags--shared --min-shared N

Done when each command answers what you asked, or returns nothing — then go one rung down the ladder (reformulate, widen with --limit, or tag query), not up the filesystem.

Lexical fallback explains the around-the-zero case

Semantic search returns zero results or nothing above --min-score, so search automatically falls back to a token scan over titles/paths/tags/text. Rows arrive "lexical": true, score: 0; the header prints Lexical Search (no semantic matches). So a short word like Lecture can still hit. When even that returns nothing, lengthen the query into a descriptive phrase or switch to a tags query if the word is a heading/tag keyword. No fallback for boosted or hidden.

Slug discipline

Slugs are the handle; titles are not. For graph and get commands, pass the exact note_slug returned by a prior search/tags — never a bare title, titles are ambiguous. Since the deterministic-resolution fix, a missing note is an error (note not found: "<input>" ...), not a silently guessed phantom slug. A "no indexed chunks" / "note not found" failure is normally a breadth-resolution problem, not a missing note. Slugs also go stale mid-conversation on schedule (cron re-ingest): if a slug that worked earlier now 404s, re-resolve via search before retrying.

Tag discovery

Never guess a tag spelling — vault tags drift (K8S remembered vs kubernetes stored). Four rungs, stop where the answer arrives:

  1. Enumerate cheaply: tags --list --format tsv (every tag + count). --limit 0 = all; a config limit may cap — pass it explicitly.
  2. From content: search "<topic>" --limit 1 --show-tags --jsonpath="$.results[0].tags".
  3. From the header: get "<slug>" --format text, read the Tags: line.
  4. Then query: tags "<tag>" with --children for the whole family.

Tag semantics: # optional, case-insensitive, exact unless --children (then hierarchical prefix kubernetes ⊃ kubernetes/cka). JSON emits tags only with --show-tags, bare and lowercase — so in answer text render them as written.

Response format

Lead with the answer; attach the sources; only embellish with threads the vault genuinely opens.

  • Direct question — answer first, then list supporting notes as bullet titles under **From the vault**. Add 1–2 real follow-ups only if the vault covers them; skip padding when the answer is self-contained.
  • No result above score 0.30 — say so plainly. Offer 1–2 reformulations (synonyms, narrower/broader). Never pad weak matches; never go to the filesystem.
  • Weak/off-topic top hits — demand precision: --min-score 0.5 or add a distinguishing term. Short shorthands (k8s) are the usual cause; spell out the subject (kubernetes) before declaring the vault lacks it.
  • Traceability — every fact claims a retrieved note_slug/text/context; never invent titles, paths, or quoted text. Label retrieved fact vs your own implication ("Your notes suggest…" vs "This looks like…"). Cite every note you lean on.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/spec asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".

日本語の概要は準備中です。原文の説明を表示しています。

nmdra/Dotfiles282026年8月11日 更新

Execute git commits using the Conventional Commits specification. Use this skill whenever the user says "commit", "git commit", "/commit", "stage and commit", "make a commit", "save my changes", or asks to commit specific files or all changes. Also triggers on phrases like "push my changes" (commit first), "commit everything", "commit with message X", or whenever git diff/status suggests uncommitted work the user wants to save. Handles auto-staging, diff analysis, message generation, breaking change detection, batch splitting of unrelated changes, safe pushes, and pre-commit hook failures gracefully. Always use this skill rather than ad-hoc git commit commands.

日本語の概要は準備中です。原文の説明を表示しています。

nmdra/Dotfiles282026年8月11日 更新

graphify

無料

Use for any question about a codebase, its architecture, file relationships, or project content — especially when graphify-out/ exists, where the question should be treated as a graphify query first. Turns any input (code, docs, papers, images, videos) into a persistent knowledge graph with god nodes, community detection, and query/path/explain tools.

日本語の概要は準備中です。原文の説明を表示しています。

nmdra/Dotfiles282026年8月11日 更新

grilling

無料

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

日本語の概要は準備中です。原文の説明を表示しています。

nmdra/Dotfiles282026年8月11日 更新

implement

無料

Implement a piece of work based on a spec or set of tickets.

日本語の概要は準備中です。原文の説明を表示しています。

nmdra/Dotfiles282026年8月11日 更新

Maintain CHANGELOG.md — add new version entries, keep the Unreleased section, cut a release, or restructure the whole file — following the Keep a Changelog format and Semantic Versioning.

日本語の概要は準備中です。原文の説明を表示しています。

nmdra/Dotfiles282026年8月11日 更新

nmdra のスキルをすべて見る

このスキルの問題を報告する