Queries cached external documentation and blog content for authoritative, up-to-date information. Sources include Claude Code docs, engineering blog, and configured knowledge bases with 24-hour TTL caching. Use when you need current information about Claude Code features, hooks, or best practices. Do NOT use for general coding questions - rely on training knowledge or web search instead.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
checklists/search-strategies.jsonscripts/semantic_search.pyworkflows/lookup-workflow.jsonQuery cached external documentation and blog content to get fresh context for development tasks. Knowledge sources are synced on session start and cached for 24 hours.
Core principle: Get authoritative, up-to-date information from official sources.
Trigger: When you need current information about Claude Code, best practices, or configured documentation sources.
Invoke this skill when:
Default sources (synced automatically):
Use the Read tool to check what knowledge is available:
Read: ~/.claude/config/knowledge/sources.json
Use bash for SQLite queries (no native equivalent):
sqlite3 ~/.claude/config/knowledge/cache.db \
"SELECT source_id, fetched_at, expires_at, status FROM knowledge_cache"
Use the Read tool to read cached content:
Read: ~/.claude/config/knowledge/content/anthropic-engineering.md
Read: ~/.claude/config/knowledge/content/claude-code-docs-overview.md
Use the Grep tool to search across all cached content:
Grep: pattern="hooks", path="~/.claude/config/knowledge/content/"
Grep: pattern="MCP", path="~/.claude/config/knowledge/content/"
When embeddings are initialized, use semantic similarity for better results:
# Check if semantic search is available
from hooks.utils.embedding_store import EmbeddingStore
from hooks.utils.voyage_client import is_available
store = EmbeddingStore()
if is_available() and store.count("knowledge") > 0:
# Semantic search available
from hooks.utils.voyage_client import embed_query
query_embedding = embed_query("how do hooks work")
results = store.search(
query_embedding,
source_type="knowledge",
top_k=5,
min_similarity=0.7
)
for result in results:
print(f"[{result.similarity:.2f}] {result.record.source_id}")
print(f" {result.record.content[:100]}...")
Hybrid Search Strategy:
Initialize Embeddings:
python hooks/utils/embedding_init.py --force
When providing information from knowledge sources:
## Knowledge Reference
**Source:** [Source Name]
**Fetched:** [Timestamp]
**Relevance:** [Why this is relevant to the query]
### Key Information
[Relevant excerpt or summary from cached knowledge]
---
*From cached knowledge source: [source_id]*
*Last updated: [fetched_at]*
Use the Read tool to read the hooks documentation:
Read: ~/.claude/config/knowledge/content/claude-code-docs-hooks.md
Extract relevant sections
Provide answer with source attribution
Use the Read tool to read the engineering blog:
Read: ~/.claude/config/knowledge/content/anthropic-engineering.md
Look for best practices content
Summarize with examples
Use the Grep tool to search all sources:
Grep: pattern="X", path="~/.claude/config/knowledge/content/"
If found, use Read tool to get the full context
If not found, inform user and suggest they check directly
If knowledge is stale or missing:
**Note:** The cached knowledge for [source] is [stale/missing].
Last fetched: [date] (expired [time] ago)
Would you like me to:
1. Refresh the knowledge sources? (`/popkit:knowledge refresh`)
2. Provide what I have from my training data?
3. Search the web for current information?
/popkit:knowledge command - Manage knowledge sourcesknowledge-sync.py hook - Automatic session start sync