pi update
This commit is contained in:
89
pi/.pi/agent/skills/qmd/SKILL.md
Normal file
89
pi/.pi/agent/skills/qmd/SKILL.md
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
name: qmd
|
||||
description: Search markdown knowledge bases, notes, and documentation using the qmd CLI. Use when searching notes, finding documents, or looking up information in the knowledge base.
|
||||
license: MIT
|
||||
compatibility: Requires qmd CLI. Install via `npm install -g @tobilu/qmd`.
|
||||
metadata:
|
||||
author: tobi
|
||||
version: "2.0.0"
|
||||
allowed-tools: Bash(qmd:*)
|
||||
---
|
||||
|
||||
# QMD - Quick Markdown Search
|
||||
|
||||
Local search engine for markdown content. Use via the `qmd` CLI (bash).
|
||||
|
||||
## Status
|
||||
|
||||
!`qmd status 2>/dev/null || echo "Not installed: npm install -g @tobilu/qmd"`
|
||||
|
||||
## CLI Usage
|
||||
|
||||
```bash
|
||||
qmd query "question" # Auto-expand + rerank (recommended)
|
||||
qmd query $'lex: X\nvec: Y' # Structured query document
|
||||
qmd query $'expand: question' # Explicit expand
|
||||
qmd search "keywords" # BM25 only (no LLM)
|
||||
qmd get "path/to/file.md" # Retrieve a document by path
|
||||
qmd get "#abc123" # Retrieve by docid
|
||||
qmd get "path/to/file.md:100" -l 50 # Retrieve starting at line 100, 50 lines
|
||||
qmd multi-get "journals/2026-*.md" -l 40 # Batch fetch by glob
|
||||
qmd multi-get notes/foo.md,notes/bar.md # Comma-separated list
|
||||
```
|
||||
|
||||
## Query Types
|
||||
|
||||
| Type | Method | Input |
|
||||
|------|--------|-------|
|
||||
| `lex` | BM25 | Keywords — exact terms, names, code |
|
||||
| `vec` | Vector | Question — natural language |
|
||||
| `hyde` | Vector | Answer — hypothetical result (50-100 words) |
|
||||
|
||||
## Writing Good Queries
|
||||
|
||||
**lex (keyword)**
|
||||
- 2-5 terms, no filler words
|
||||
- Exact phrase: `"connection pool"` (quoted)
|
||||
- Exclude terms: `performance -sports` (minus prefix)
|
||||
- Code identifiers work: `handleError async`
|
||||
|
||||
**vec (semantic)**
|
||||
- Full natural language question
|
||||
- Be specific: `"how does the rate limiter handle burst traffic"`
|
||||
|
||||
**hyde (hypothetical document)**
|
||||
- Write 50-100 words of what the *answer* looks like
|
||||
- Use the vocabulary you expect in the result
|
||||
|
||||
**expand (auto-expand)**
|
||||
- Single-line query (implicit) or `expand: question`
|
||||
- Lets a local LLM generate lex/vec/hyde variations
|
||||
- Do not mix with other typed lines
|
||||
|
||||
## Combining Types
|
||||
|
||||
| Goal | Approach |
|
||||
|------|----------|
|
||||
| Know exact terms | `lex` only |
|
||||
| Don't know vocabulary | Single-line (implicit expand) or `vec` |
|
||||
| Best recall | `lex` + `vec` |
|
||||
| Complex topic | `lex` + `vec` + `hyde` |
|
||||
|
||||
First query gets 2x weight — put your strongest signal first.
|
||||
|
||||
## Lex Syntax
|
||||
|
||||
| Syntax | Meaning | Example |
|
||||
|--------|---------|---------|
|
||||
| `term` | Prefix match | `perf` matches "performance" |
|
||||
| `"phrase"` | Exact phrase | `"rate limiter"` |
|
||||
| `-term` | Exclude | `performance -sports` |
|
||||
|
||||
## Collection Filtering
|
||||
|
||||
```bash
|
||||
qmd query --collections docs "question"
|
||||
qmd query --collections docs,notes "question"
|
||||
```
|
||||
|
||||
Omit to search all collections.
|
||||
Reference in New Issue
Block a user