Fast vault Q&A — quick lookups, decision history, blocker status, doc search. Uses QMD hybrid search when available, falls back to vault grep. Use for "/ask what did we decide about auth?" or "/ask who's blocked?".
Scanned 6/5/2026
Install via CLI
openskills install kv0906/pm-kit---
name: ask
description: Fast vault Q&A — quick lookups, decision history, blocker status, doc search. Uses QMD hybrid search when available, falls back to vault grep. Use for "/ask what did we decide about auth?" or "/ask who's blocked?".
allowed-tools: Read, Glob, Grep
user-invocable: true
---
# /ask — Question Answering
Fast answers from your vault. Uses QMD hybrid search (BM25 + vector + rerank) when available, with automatic fallback to vault grep.
## Context
Config: @_core/config.yaml
## Input
User input: $ARGUMENTS
## Processing Steps
### Step 1: Detect Search Backend
Check if QMD MCP tools are available in the current session:
1. **Try `qmd_status`** (MCP tool) to check QMD availability and index state.
2. **Evaluate result:**
- QMD available AND has embedded docs → use **QMD mode**
- QMD available but 0 embedded docs → use **Fallback mode** + hint
- QMD not available (tool missing/error) → use **Fallback mode**
### Step 2: Parse Question
- Detect project if mentioned
- Identify question type:
- "what did we decide about X" → decisions
- "who's blocked" → blockers
- "find doc for X" → docs
- "status of X" → index
### Step 3A: QMD Mode (preferred)
When QMD is available and indexed:
1. **Deep search**: Call `qmd_deep_search` with the user's question.
- Use collection filter from config: `_core/config.yaml → qmd.collection_name` (default: `pm-kit`)
- Cap results: use `qmd.max_results` from config (default: 8)
2. **Retrieve top docs**: Call `qmd_get` or `qmd_multi_get` for the top-scored results.
- Apply minimum score threshold from config: `qmd.min_score` (default: 0.35)
3. **Synthesize answer**: Read the retrieved content and produce a grounded answer with source citations.
### Step 3B: Fallback Mode (vault grep)
When QMD is not available or not indexed:
1. **Search Strategy**
| Question Type | Search Path |
|--------------|-------------|
| Decisions | `decisions/{project}/*.md` |
| Blockers | `blockers/{project}/*.md` |
| Docs | `docs/{project}/*.md`, `docs/general/*.md` |
| Status | `01-index/{project}.md` |
| General | All folders |
2. **Search Methods**
- Filename match first (fastest — naming-as-API)
- Frontmatter field match
- Content grep (slower)
### Step 4: Return Answer
## Output Format
### With results
```markdown
## Answer
{Direct answer — 1-3 sentences, grounded in source content}
### Sources
- `{file-path}` — {brief context why this source is relevant}
- `{file-path}` — {brief context}
### Search Mode
{QMD (deep) | Fallback (vault grep)}
```
### No results
```markdown
## No Results Found
Searched: {folders or QMD collection}
Query: "{query}"
**Suggestions**:
- Try broader terms
- Check spelling
- Run `qmd embed` if QMD is installed but not indexed
### Search Mode
{QMD (deep) | Fallback (vault grep)}
```
### Fallback mode hint
When running in Fallback mode, append after the answer:
> **Tip**: Install [QMD](https://github.com/tobi/qmd) for smarter search with semantic understanding. See [handbook/QMD_INTEGRATION.md](handbook/QMD_INTEGRATION.md) for setup.
No comments yet. Be the first to comment!