agentleFS
tboome33tboome33/obsidian-mcp-router/skills/read-search-smart/SKILL.md

read-search-smart

Skill1 starsChanged 7 months agoApache-2.0View on GitHub

Semantic search via Smart Connections embeddings. Returns ranked chunks with cosine scores and breadcrumbs. Use when the query is conceptual (meaning, not literal substring).

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Call the obsidian-router search_smart MCP tool with arguments parsed from $ARGUMENTS.

    line 16
  2. Very specific:

    Never present a fallback result as a semantic one: If the response carries tier: "local-bm25" with a fallback object, say so in one short …

    line 49
  3. Very specific:

    If no results, suggest the substring read-search skill instead, or to broaden the query.

    line 85

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

read-search-smart

Call the obsidian-router search_smart MCP tool with arguments parsed from $ARGUMENTS.

Arguments

Required:

  • query — natural-language query (not a literal substring).

Optional:

  • vault — vault name. Omit for default. Pass * to fan-out across ALL vaults.
  • folders — array of folder prefixes to restrict results (e.g. ["Sessions", "Trades"]).
  • excludeFolders — array of folder prefixes to exclude (e.g. [".trash", "Templates"]).
  • limit — max results (default 10).
  • tier — which engine answers: auto (default), semantic, or local. See below.

Argument parsing from $ARGUMENTS

  • bare text in $ARGUMENTS → query, default vault, default limit
  • vault=X query="..." → split
  • --all or "across all vaults" → set vault: "*"
  • --limit 20 or limit=20 → set limit
  • --in Sessions,Trades or folders=Sessions,Trades → set folders
  • --local / "recherche déterministe" / "sans plugin" → set tier: "local"
  • --semantic-only → set tier: "semantic"

The two tiers (v0.63.0, borrowing C4)

tierengineneeds
semanticSmart Connections embeddings (cosine)bridge + smart-connections plugins, indexed
locallocal BM25 index (deterministic, pure JS)build_search_index has been run once

auto (the default) tries semantic and, only when that tier cannot serve this vault (plugin absent / route missing), falls back entirely to the local BM25 index. The two are never blended — their score scales are incomparable — and the response says which one answered.

Never present a fallback result as a semantic one. If the response carries tier: "local-bm25" with a fallback object, say so in one short line, e.g. "Smart Connections isn't available on this vault — these come from the local BM25 index."

Pre-requisites

None for tier: "local" beyond a built index. For the semantic tier the vault needs BOTH the obsidian-mcp-router-bridge and smart-connections plugins enabled and indexed — but you no longer need to handle that as an error: auto degrades on its own and labels the result.

Two failures you must NOT paper over:

  • An absent/empty local index → the tool refuses with a message naming build_search_index. Relay it; offer to run /obsidian-router:build-search-index. Do not report it as "no results found".
  • A semantic tier that errors for any other reason (auth, timeout, a genuine bridge malfunction) → it surfaces on purpose. Report it; don't silently retry in local.

Output format

Render the results as a markdown list, one entry per chunk:

1. **<breadcrumbs or section>** — *<vault name>*, score `0.XX`
   > <first ~150 chars of text>

Lead with the tier when it isn't plain semantic. Local hits carry title, section (the heading path) and description — use them as the breadcrumb.

When you carry one of these hits into an answer, cite the SECTION, not just the page — when the response gives you one. The breadcrumb is the whole reason a chunk is more useful than a page reference: [[page]] § Formule is checkable in seconds, [[page]] on a long note is not. But not every payload carries breadcrumbs; when it does not, cite the page and stop. Never invent a section the response did not give you.

Two things the response says that the answer must not swallow. freshness names the hits whose page has been modified since it was indexed (changed, touched) or has gone entirely (page-missing) — open the page before quoting such a hit, and never cite a missing one. folderExclusion says which folders were left out and what that cost: by default wiki-meta/Sessions is excluded, so "I found nothing" may mean "nothing outside the session logs". Say so, or re-run with excludeFolders: [].

If no results, suggest the substring read-search skill instead, or to broaden the query.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.