qmd-knowledge
$
npx mdskill add jellydn/my-ai-tools/qmd-knowledgeRecord project learnings and retrieve knowledge instantly.
- Captures insights, issue notes, and architectural decisions.
- Depends on qmd MCP server for storage and search.
- Uses natural language queries to surface relevant information.
- Delivers searchable results directly within the agent interface.
SKILL.md
.github/skills/qmd-knowledgeView on GitHub ↗
---
name: qmd-knowledge
description: Project-specific knowledge management system using qmd MCP server. Captures learnings, issue notes, and conventions in a searchable knowledge base.
license: MIT
compatibility: opencode, claude, amp, codex, gemini, cursor, pi
hint: Use when recording or retrieving project knowledge, learnings, and issue notes
user-invocable: true
metadata:
audience: all
workflow: knowledge-management
---
## What I do
- Record and retrieve project learnings and insights
- Capture issue-specific notes and resolutions
- Build a growing, AI-searchable knowledge base
- Provide context about project architecture and decisions
## When to use me
Use this skill when you need to:
- **Record learnings**: Capture new insights, patterns, or best practices discovered during development
- **Track issues**: Add notes to ongoing or resolved issues
- **Query knowledge**: Search for previous decisions, learnings, or solutions
- **Maintain context**: Build institutional memory for the project
## How it works
This skill provides a unified knowledge management system. You install the skill once, and it manages knowledge across all your projects using qmd collections:
```
# The qmd-knowledge skill (installed to your AI tool's skills directory)
# Location varies by tool: ~/.config/opencode/skill/, ~/.claude/skills/, or ~/.config/amp/skills/
├── SKILL.md # This file - the skill definition
├── scripts/ # Executable scripts
│ └── record.sh # Record learnings/issues/notes
└── references/ # Example structure and READMEs
# Project knowledge storage (managed by the skill)
~/.ai-knowledges/
├── <project-name>/ # Collection for your project
│ ├── learnings/
│ └── issues/
└── another-project/ # Collection for another project
├── learnings/
└── issues/
```
The `qmd` MCP server provides AI-powered search across all stored knowledge, allowing your AI assistant to autonomously query and update the knowledge base.
## Available scripts
### Recording knowledge
**Important**: Before recording knowledge, ensure qmd is installed and your project collection is set up. Run a preflight check:
```bash
# Verify qmd is installed
command -v qmd || echo "Install qmd: bun install -g @tobilu/qmd"
# Verify your project collection exists (replace my-project with your actual project name)
qmd collection list | grep my-project
```
```bash
# Record a learning (use the skill's script)
$SKILL_PATH/scripts/record.sh learning "qmd MCP integration"
# Add a note to an issue
$SKILL_PATH/scripts/record.sh issue 123 "Fixed by updating dependencies"
# Record a general note
$SKILL_PATH/scripts/record.sh note "Consider using agent skills for extensibility"
```
**After recording**:
- The `record.sh` script automatically runs `qmd embed` to re-index the knowledge base
- This embedding step is **required** to make newly added content searchable for the next query
- If auto-embedding fails or you manually add/edit files, run `qmd embed` explicitly to update the index
### Querying knowledge
Use the qmd MCP server tools directly from Claude or OpenCode:
```bash
# Fast keyword search
qmd search "MCP servers" -c <project-name>
# Semantic search with AI embeddings
qmd vsearch "how to configure MCP"
# Hybrid search with reranking (best quality)
qmd query "MCP server configuration"
# Get specific document
qmd get "references/learnings/2024-01-26-qmd-integration.md"
# Search with minimum score filter
qmd search "API" --all --files --min-score 0.3 -c <project-name>
```
## Setup
**Preflight check**: Before starting, verify you have the required tools:
```bash
# Check for bun or node
command -v bun || command -v node || echo "Install bun or node.js first"
# Verify git is available (for project detection)
command -v git || echo "Install git for automatic project name detection"
```
1. **Install qmd**:
```bash
bun install -g @tobilu/qmd
```
2. **Install the skill**:
```bash
# The skill is installed to your AI tool's skills directory:
# - OpenCode: ~/.config/opencode/skill/qmd-knowledge/
# - Claude Code: ~/.claude/skills/qmd-knowledge/
# - Amp: ~/.config/amp/skills/qmd-knowledge/
```
3. **Configure MCP server** (see installation docs for Claude/OpenCode/Amp)
4. **Create a knowledge collection for your project**:
```bash
# The skill's record.sh script will auto-detect the project name when executed.
# For manual setup, use your desired project name consistently in the commands below.
# Optional: export QMD_PROJECT=<project-name> to override auto-detection
# Create storage directory for your project (replace <project-name> with your project)
mkdir -p ~/.ai-knowledges/<project-name>/learnings
mkdir -p ~/.ai-knowledges/<project-name>/issues
# Add qmd collection
qmd collection add ~/.ai-knowledges/<project-name> --name <project-name>
qmd context add qmd://<project-name> "Knowledge base for <project-name> project: learnings, issue notes, and conventions"
# Generate embeddings for AI-powered search
qmd embed
```
## Knowledge structure
- `references/learnings/`: Time-stamped markdown files with project insights
- Format: `YYYY-MM-DD-topic-slug.md`
- Contains learnings, patterns, architectural decisions
- `references/issues/`: Issue-specific notes and resolutions
- Format: `<issue-id>.md`
- Append-only log of notes related to specific issues
## Integration with qmd MCP server
The qmd MCP server allows Claude to:
- **Search knowledge**: Use natural language queries to find relevant context
- **Auto-update index**: Automatically reindex after adding new knowledge
- **Filter by project**: Use `--collection` flag to scope searches to specific projects
## Example workflow
1. **During development**, you discover something useful:
> "I learned that qmd MCP server allows Claude to use tools autonomously."
2. **Claude recognizes the skill and executes**:
```bash
$SKILL_PATH/scripts/record.sh learning "qmd MCP autonomous tool use"
```
3. **Later, you ask**:
> "What did I learn about MCP servers?"
4. **Claude queries the knowledge base** using qmd MCP tools:
```bash
qmd query --collection <project-name> "MCP servers"
```
## Project detection
The skill automatically detects your project name using the following priority:
1. **QMD_PROJECT environment variable** (highest priority)
```bash
export QMD_PROJECT=my-project-name
```
2. **Git remote URL** (most reliable - extracts repo name from origin URL)
- Example: `https://github.com/user/my-project.git` → `my-project`
- Works even if the local folder has a different name
3. **Git repository folder name** (fallback)
- Uses the name of the git repository root directory
- Works when you're anywhere inside a git repository
- Note: May not match the actual repo name if the folder was renamed
4. **Current directory name** (last resort)
- Uses the name of your current working directory
- Used when not in a git repository
This means you can use the skill in any project without hardcoding project names. The knowledge base will be stored at `~/.ai-knowledges/<detected-project-name>/`.
**Important**: The script prioritizes the git remote URL to ensure consistent project naming even if local folders are renamed or in non-standard locations (e.g., dated folders like `2026-01-08-my-ai-tools.qmd-skill`).
## 📋 Best Practices
### 🎨 Session Wrap-up
At the end of a work session, consider prompting the user about key learnings:
> "What were the main discoveries or decisions from this session? Would you like me to record any learnings?"
### 🎨 Pattern Detection
Be attentive to phrases that indicate valuable knowledge capture opportunities:
- "I discovered that..."
- "I learned that..."
- "The solution was..."
- "The key insight is..."
- "Don't forget to..."
- "Make sure to..."
When you detect these patterns, suggest recording:
> "That sounds like a useful learning. Would you like me to record it?"
### 🎨 Auto-Index Updates
The record script automatically runs `qmd embed` after each write, ensuring the knowledge base is searchable immediately. This re-indexing step is **required** to make new content available for search queries.
**Important**: If you manually create or edit knowledge files (outside of the record script), you must run `qmd embed` manually to update the search index:
```bash
# Manual re-indexing after direct file edits
qmd embed
```
Without re-indexing, newly added or modified content will not appear in search results.
More from jellydn/my-ai-tools
- adrManages Architecture Decision Records (ADR) for tracking important architectural decisions
- codemapOrchestrate parallel codebase analysis to produce 7 structured documents about the codebase in .planning/codebase/
- handoffsCreates detailed handoff plans of conversations for continuing work in new sessions
- pickupResumes work from a previous handoff session which are stored in `.claude/handoffs/`
- portless-localNamed .localhost URLs for local development - replaces port numbers with stable, readable URLs
- slopRemoves AI-generated code slop from git diffs to maintain code quality