askill
search

searchSafety 90Repository

Semantic search across GTM knowledge base using qmd - find context by meaning, not just keywords

0 stars
1.2k downloads
Updated 2/5/2026

Package Files

Loading files...
SKILL.md

Search

Semantic search across your GTM workspace. Find decisions, context, and knowledge by meaning.

Uses qmd - local hybrid search combining BM25 keywords, vector embeddings, and LLM reranking.

Usage

/search "what did we decide about pricing"
/search "authentication flow"
/search --keyword "API"           # Fast keyword-only
/search --semantic "how to deploy" # Vector-only

Setup

New workspaces: Search is set up automatically during jfl init if you choose to enable it.

Existing workspaces: Follow the manual setup below.

On Skill Invoke

Step 1: Check if qmd is installed

which qmd

If not installed:

qmd not found. It's a local search engine for your markdown files.

Install it?

  bun install -g https://github.com/tobi/qmd

[Yes] [No]

If yes, run:

bun install -g https://github.com/tobi/qmd

Step 2: Check if GTM is indexed

qmd status

Look for a collection that matches this workspace (check .jfl/config.json for the collection name).

If no collection exists, guide setup:

This GTM workspace isn't indexed yet.

To set up search, run these commands:

  # Add the workspace as a collection
  qmd collection add . --name <project-name>

  # Add context to help search understand the content
  qmd context add qmd://<project-name> "GTM workspace: vision, narrative, specs, content, and decisions"
  qmd context add qmd://<project-name>/knowledge "Strategic docs: vision, thesis, roadmap, brand"
  qmd context add qmd://<project-name>/content "Marketing content: articles, threads, posts"

  # Generate embeddings (takes a minute, downloads ~1.5GB of models first time)
  qmd embed

After running these, try /search again.

Note: These commands are run automatically during jfl init if search is enabled. Only run manually for existing workspaces.

Step 3: Run the search

Default (hybrid with reranking - best quality):

qmd query "USER_QUERY" -n 10

Keyword-only (fast):

qmd search "USER_QUERY" -n 10

Semantic-only:

qmd vsearch "USER_QUERY" -n 10

Step 4: Present results

Show results with:

  • File path (relative to workspace)
  • Score (percentage)
  • Snippet with context
Found 5 results for "pricing":

knowledge/PRODUCT_SPEC_V2.md (87%)
  "The day pass model: $5/day per person. Only pay days you use it..."

knowledge/THESIS.md (72%)
  "Before: $355k/year (tools + coordination headcount). After: $240/year..."

content/articles/YOU_SHOULD_BE_WORKING_ON_CONTEXT.md (58%)
  "The entire SaaS economy is a $300B/year patch..."

If user wants full content, use:

qmd get "FILE_PATH" --full

Search Modes

ModeCommandUse When
Hybridqmd queryBest quality, default
Keywordqmd searchFast, exact matches
Semanticqmd vsearchConceptual similarity

Keeping Index Fresh

When files change, the index needs updating:

# Re-index all collections
qmd update

# Re-index and pull git changes first
qmd update --pull

# Re-generate embeddings (after significant changes)
qmd embed

Do not run these automatically. Mention to user if results seem stale.


Advanced Options

# Filter by collection
qmd query "API design" -c knowledge

# Minimum score threshold
qmd query "authentication" --min-score 0.5

# All results above threshold
qmd query "error handling" --all --min-score 0.3

# JSON output for processing
qmd query "deployment" --json

# Get full document content
qmd get "knowledge/VISION.md" --full

MCP Server (Optional)

For deeper integration, qmd can run as an MCP server so Claude has it as a native tool.

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "qmd": {
      "command": "qmd",
      "args": ["mcp"]
    }
  }
}

Then Claude can use qmd_search, qmd_vsearch, qmd_query, qmd_get directly without invoking the skill.


What Gets Indexed

Default glob pattern indexes all markdown files:

  • knowledge/ - vision, narrative, thesis, brand, specs
  • content/ - articles, threads, posts
  • product/ - product specs, decisions
  • suggestions/ - contributor work
  • drafts/ - work in progress

Customize with --mask when adding collection:

qmd collection add . --name gtm --mask "**/*.md"

Why Local Search

  • Private - everything stays on your machine
  • Semantic - finds related concepts, not just keywords
  • Fast - SQLite + local models, no API calls
  • Context-aware - understands your knowledge base structure

The context layer becomes searchable. Decisions don't get lost.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/12/2026

A highly actionable and complete skill for semantic search using 'qmd'. It provides excellent step-by-step instructions for agents, handling installation, indexing, and querying with clear fallback logic and specific CLI commands.

90
95
75
95
98

Metadata

Licenseunknown
Version-
Updated2/5/2026
Publishermajiayu000

Tags

apici-cddatabasegithubllm