# Find Orphans

> Surface orphan notes near a topic and help the user integrate them into the existing link graph.

- **Type:** Skill
- **Install:** `agentstack add skill-bettyguo-obsidian-mcp-find-orphans`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [bettyguo](https://agentstack.voostack.com/s/bettyguo)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [bettyguo](https://github.com/bettyguo)
- **Source:** https://github.com/bettyguo/obsidian_mcp/tree/main/skills/find-orphans

## Install

```sh
agentstack add skill-bettyguo-obsidian-mcp-find-orphans
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

## When to use

The user is curating their vault — usually after a burst of capture — and wants to know which atomic notes never got linked into anything. Often paired with `/build-MOC`.

## Procedure

1. Parse the user's request. If they named a topic (e.g. "near RAG"), capture it as `topic`. If not, ask for one (or default to "the whole vault" if the user explicitly says "all orphans").
2. Call `find_orphans(near_topic=topic, min_word_count=50, limit=20)`. If `topic` is None, omit `near_topic` and just return the top 20 by recency.
3. If zero orphans returned, congratulate the user and stop.
4. Group orphans into buckets of ≤5 by detected primary tag (use the tag list returned in each orphan record).
5. For each bucket, surface a short list in chat:
   - Bucket title (the primary tag, or "Untagged")
   - Each orphan: path + 1-line summary (from the first non-frontmatter paragraph)
6. Ask the user which orphans they want to integrate.
7. For each chosen orphan, call `find_related(seed=orphan_path, top_k=5)` to find the best candidate parent(s). Surface the top 1–2.
8. Propose link inserts. The user confirms each.
9. Apply via `link_notes(..., confirm=true)`.

## Output format

```
Found {N} orphans near "{topic}":

#research/rag
- [[Chunking by structure]] — {1-line summary}
- [[Embedding-aware preprocessing]] — {1-line summary}

#evals
- [[Long-tail recall benchmark]] — {1-line summary}

Which would you like to integrate? (e.g. "the first two", "all in #research/rag")
```

## Anti-patterns

- Don't auto-link orphans without per-orphan confirmation. The user knows which truly belong somewhere.
- Don't propose linking an orphan to an existing MOC unless the MOC's topic actually matches. Better to suggest the orphan join the MOC via `/build-MOC` later.
- Don't recommend deletion. Ever. Orphans are often the most valuable seedlings.
- Don't run `find_orphans` with `min_word_count` below 50 by default — stubs aren't orphans, they're TODOs.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [bettyguo](https://github.com/bettyguo)
- **Source:** [bettyguo/obsidian_mcp](https://github.com/bettyguo/obsidian_mcp)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-bettyguo-obsidian-mcp-find-orphans
- Seller: https://agentstack.voostack.com/s/bettyguo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
