Merge pull request #8 from DavidROliverBA/feature/search-skill
Add /search skill for keyword vault search
This commit is contained in:
104
vault-template/.claude/skills/search/SKILL.md
Normal file
104
vault-template/.claude/skills/search/SKILL.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
name: search
|
||||
description: Search vault content by keyword using Grep. Zero dependencies — works in any vault without indexes or plugins. Groups results by directory for easy scanning.
|
||||
allowed-tools: Grep, Glob, Read
|
||||
user-invocable: true
|
||||
---
|
||||
|
||||
# Search Skill
|
||||
|
||||
Fast keyword search across all vault markdown files using the Grep tool. No indexes, no plugins, no setup — just structured search with directory grouping.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/search <term>
|
||||
```
|
||||
|
||||
Examples:
|
||||
- `/search project planning`
|
||||
- `/search weekly review`
|
||||
- `/search TODO`
|
||||
|
||||
## How to Execute
|
||||
|
||||
When the user invokes `/search <term>`:
|
||||
|
||||
### Step 1: Search for the term
|
||||
|
||||
Use the **Grep** tool to search all `.md` files for the term:
|
||||
|
||||
```
|
||||
Grep:
|
||||
pattern: <search term>
|
||||
glob: "*.md"
|
||||
output_mode: content
|
||||
-n: true
|
||||
-C: 1
|
||||
```
|
||||
|
||||
Exclude hidden directories (`.claude/`, `.obsidian/`) and templates:
|
||||
|
||||
```
|
||||
Grep:
|
||||
pattern: <search term>
|
||||
glob: "*.md"
|
||||
path: .
|
||||
output_mode: content
|
||||
-n: true
|
||||
-C: 1
|
||||
```
|
||||
|
||||
Filter out results from `.claude/`, `.obsidian/`, and `Templates/` directories.
|
||||
|
||||
### Step 2: Group results by directory
|
||||
|
||||
Organise matches into sections by their parent directory:
|
||||
|
||||
- **Daily Notes/** — journal entries
|
||||
- **Goals/** — goal and vision documents
|
||||
- **Projects/** — project notes
|
||||
- **Archives/** — archived content
|
||||
- **Inbox/** — unprocessed items
|
||||
- **(root)** — top-level notes
|
||||
|
||||
### Step 3: Present results
|
||||
|
||||
Format output as:
|
||||
|
||||
```markdown
|
||||
## Search: "<term>"
|
||||
|
||||
### Daily Notes/
|
||||
- **2024-01-15.md** (line 23): ...matching context...
|
||||
- **2024-01-14.md** (line 8): ...matching context...
|
||||
|
||||
### Projects/
|
||||
- **Project Alpha.md** (line 45): ...matching context...
|
||||
|
||||
### Goals/
|
||||
- **2024 Goals.md** (line 12): ...matching context...
|
||||
|
||||
**Found X matches across Y files**
|
||||
```
|
||||
|
||||
### Step 4: Suggest related content
|
||||
|
||||
After showing results, check if any matched files contain `[[wiki-links]]` to other notes. If so, briefly mention:
|
||||
|
||||
```
|
||||
💡 Related notes mentioned in results: [[Note A]], [[Note B]]
|
||||
```
|
||||
|
||||
## No Results
|
||||
|
||||
If no matches are found:
|
||||
1. Suggest alternative search terms (synonyms, related words)
|
||||
2. Offer to search with case-insensitive matching if the original search was case-sensitive
|
||||
3. Suggest checking `Archives/` if not already included
|
||||
|
||||
## Tips
|
||||
|
||||
- Search is case-sensitive by default. Add `-i: true` to the Grep call for case-insensitive search
|
||||
- Use regex patterns for advanced searches: `task.*complete`, `#tag-name`
|
||||
- Combine with `/daily` to quickly find when something was mentioned
|
||||
Reference in New Issue
Block a user