Install
npx skillscat add kevinslin/llm/dendron Install via the SkillsCat registry.
SKILL.md
Dendron Skill
This skill helps you read, search, and create Dendron notes using the filesystem or the local notes.db sqlite database. Notes are plaintext markdown with dot-delimited filenames. Vaults are folders containing a dendron.yml and notes/ directory.
When to Use
- Navigating or querying existing notes (filesystem or sqlite)
- Creating new notes in the current vault
- Creating report notes when user asks for a report
- Running cross-vault queries only when explicitly requested
Vault Selection
- Default to the vault of the current working directory (the active vault).
- Only run across all workspace vaults if the user explicitly asks.
- Inspect
dendron.ymlto see workspace vault list (workspace.vaults).
File Conventions
- Notes live under
<vault>/notes/and are named with dot-delimited ids plus.md. - Common hierarchies:
daily.journal.YYYY.MM.DD,task.YYYY.MM.DD,books.*,scratch.*. - Wikilinks use
[[...]].
Access Methods
- Filesystem: use
ls,rg, etc., scoped to the target vault’snotes/dir. - SQLite (
notes.db): schema in/Users/kevinlin/code/dendron-lite/prisma/schema.prisma(tables:Note,Vault,Heading,Link,SyncStatus).
SQLite Pointers
Note.fnamestores the dot-delimited id,rawstores markdown (no frontmatter),title/desc/tagsoptional,vaultIdlinks toVault.Vaulttable hasnameandfsPath; join to limit queries to the active vault unless cross-vault is requested.- Use parameterized queries to avoid injection; when using the CLI, properly quote inputs.
Common Workflows
- Find notes by pattern: filesystem
rg "pattern" <vault>/notes -g "*.md"or sqliteLIKEqueries onfname/raw. - List children under a hierarchy: filter filenames starting with
hierarchy.and extract the next segment. - Create a new note: write a markdown file under
<vault>/notes/<fname>.md; include frontmatter if needed.
Examples to Support
- “look at daily.* notes created in last week and look for terms matching scout”
- Identify last 7 days daily files in the active vault (
daily.journal.YYYY.MM.DD), then search contents forscout.
- Identify last 7 days daily files in the active vault (
- "extract all the 1st level children of pkg.* (should only get the name of the next dot delimited name)"
- From filenames starting
pkg., return the segment immediately afterpkg(unique, non-empty).
- From filenames starting
- "create a report on weekly scout activities"
- Create a new note at
<vault>/notes/report.2025.11-weekly-scout-activities.mdwith frontmatter and write the report content analyzing scout activities from recent daily notes.
- Create a new note at
Safety & Scope
- Do not modify files unless asked to create/update notes.
- Keep searches scoped to active vault unless cross-vault is requested.
- Prefer
rgfor content search; avoid expensive full-tree scans when a vault path is known.
Quick Command Patterns
- Active vault path: read
dendron.ymland resolveworkspace.vaultsentry whosefsPathmatches CWD (default.). - Search text:
rg "term" <vault>/notes -g "*.md". - SQLite daily search (active vault only):
sqlite3 notes.db "SELECT fname FROM Note n JOIN Vault v ON n.vaultId=v.id WHERE v.fsPath='.' AND fname LIKE 'daily.journal.%' AND date(n.updated/1000,'unixepoch')>=date('now','-7 day') AND raw LIKE '%scout%';"
- Children of hierarchy via fs:
find <vault>/notes -name 'pkg.*.md' -maxdepth 1then parse next segment. - Create report note: Generate filename
report.$(date +%Y).$(date +%m)-{kebab-case-name}.mdand write to<vault>/notes/with frontmatter.
Follow these steps when responding:
- Assume target vault is the default active vault unless user mentions otherwise
- Choose access method (filesystem/sqlite) appropriate to the query.
- Execute search or creation.
- Return concise results; if creating, show path and key fields.