162 lines
3.9 KiB
Markdown
162 lines
3.9 KiB
Markdown
---
|
|
description: $ARGUMENTS - Search Obsidian vault with PARA-aware context
|
|
allowed-tools: mcp__MCP_DOCKER__obsidian_simple_search, mcp__MCP_DOCKER__obsidian_complex_search, mcp__MCP_DOCKER__obsidian_get_file_contents, mcp__MCP_DOCKER__obsidian_list_files_in_dir, mcp__MCP_DOCKER__obsidian_patch_content, AskUserQuestion
|
|
---
|
|
|
|
# Search Second Brain
|
|
|
|
You search the user's Obsidian vault with PARA-aware context.
|
|
|
|
## Input
|
|
|
|
Search query: **$ARGUMENTS**
|
|
|
|
## Search Strategy
|
|
|
|
### 1. Parse Query Intent
|
|
|
|
Determine search type:
|
|
- **By content**: General text search
|
|
- **By type**: "projects about X", "resources for Y"
|
|
- **By status**: "active projects", "inbox items"
|
|
- **By area**: "everything related to [area]"
|
|
- **By date**: "created this week", "due soon"
|
|
|
|
### 2. Execute Search
|
|
|
|
**Content Search**:
|
|
```
|
|
mcp__MCP_DOCKER__obsidian_simple_search
|
|
query: [search terms]
|
|
context_length: 150
|
|
```
|
|
|
|
**Folder-Specific Search**:
|
|
```
|
|
mcp__MCP_DOCKER__obsidian_list_files_in_dir
|
|
dirpath: [01_Projects|02_Areas|03_Resources|04_Archive]
|
|
```
|
|
|
|
Then filter/search within results.
|
|
|
|
**Complex Search (JsonLogic)**:
|
|
```
|
|
mcp__MCP_DOCKER__obsidian_complex_search
|
|
query: {"and": [
|
|
{"glob": ["01_Projects/**/*.md", {"var": "path"}]},
|
|
{"in": ["active", {"var": "content"}]}
|
|
]}
|
|
```
|
|
|
|
### 3. Present Results
|
|
|
|
```markdown
|
|
## Search Results: "[query]"
|
|
|
|
Found X results across your vault:
|
|
|
|
### Projects (X)
|
|
- [[Project 1]] - [brief context]
|
|
- [[Project 2]] - [brief context]
|
|
|
|
### Areas (X)
|
|
- [[Area 1]] - [brief context]
|
|
|
|
### Resources (X)
|
|
- [[Resource 1]] - [brief context]
|
|
|
|
### Archive (X)
|
|
- [[Archived Item]] - [brief context]
|
|
|
|
---
|
|
|
|
**Refine search?**
|
|
- `/para:search [query] in:projects` - Search only projects
|
|
- `/para:search [query] status:active` - Only active items
|
|
- `/para:search [query] area:[[Area Name]]` - By area
|
|
```
|
|
|
|
## Search Modifiers
|
|
|
|
| Modifier | Example | Description |
|
|
|----------|---------|-------------|
|
|
| `in:projects` | `meeting in:projects` | Search only 01_Projects/ |
|
|
| `in:areas` | `health in:areas` | Search only 02_Areas/ |
|
|
| `in:resources` | `typescript in:resources` | Search only 03_Resources/ |
|
|
| `in:inbox` | `urgent in:inbox` | Search only 00_Inbox/ |
|
|
| `status:active` | `api status:active` | Only active items |
|
|
| `status:completed` | `auth status:completed` | Only completed items |
|
|
| `area:[[X]]` | `task area:[[Work]]` | Items linked to area |
|
|
| `created:today` | `notes created:today` | Created today |
|
|
| `created:week` | `ideas created:week` | Created this week |
|
|
|
|
## Common Searches
|
|
|
|
**Find all active projects**:
|
|
```
|
|
/para:search status:active in:projects
|
|
```
|
|
|
|
**Find resources about a topic**:
|
|
```
|
|
/para:search typescript in:resources
|
|
```
|
|
|
|
**Find items in an area**:
|
|
```
|
|
/para:search area:[[Health & Fitness]]
|
|
```
|
|
|
|
**Find inbox items needing processing**:
|
|
```
|
|
/para:search in:inbox
|
|
```
|
|
|
|
**Find recently created notes**:
|
|
```
|
|
/para:search created:week
|
|
```
|
|
|
|
## No Results?
|
|
|
|
If search returns nothing:
|
|
1. Suggest alternative search terms
|
|
2. Check if content might be in a different PARA category
|
|
3. Offer to create a new note with this topic
|
|
|
|
---
|
|
|
|
## Lazy Migration: Validate Notes on Read
|
|
|
|
When user selects a note to view details, validate its frontmatter.
|
|
|
|
**See**: [_shared/validate-note.md](_shared/validate-note.md) for schemas.
|
|
|
|
### After Reading a Note
|
|
|
|
1. Parse frontmatter and check `type:` field
|
|
2. Compare against schema for that type
|
|
3. If missing required fields, show:
|
|
|
|
```markdown
|
|
### ⚠️ Note needs update
|
|
|
|
**[[Note Title]]** is missing required fields:
|
|
- `areas` - Which area(s) does this relate to?
|
|
- `reviewed` - Last review date
|
|
|
|
**Update now?** This takes 10 seconds.
|
|
```
|
|
|
|
4. If user agrees:
|
|
- Use `AskUserQuestion` to gather missing values
|
|
- Use `obsidian_patch_content` to update frontmatter
|
|
- Confirm update complete
|
|
|
|
5. Continue with original search results
|
|
|
|
### Skip Validation If
|
|
|
|
- Note was reviewed in last 7 days (`reviewed` field is recent)
|
|
- User previously declined to update this note in session
|