Skills

Rag Architect

Designs and implements production-grade RAG systems by chunking documents, generating...

Install

npx skills add Jeffallan/claude-skills --skill rag-architect -g -a claude-code -y
Category
Design
Updated
5d ago
License
MIT
Context cost
Mediumabout 1,775 tokens
Runs scripts
No, instructions only

What it does

Designs and implements production-grade RAG systems by chunking documents, generating embeddings, configuring vector stores, building hybrid search pipelines, applying reranking, and evaluating retrieval quality. Use when building RAG systems, vector databases, or knowledge-grounded AI applications requiring semantic search, document retrieval, context augmentation, similarity search, or embedding-based indexing.

RAG Architect

Core Workflow

  1. Requirements Analysis, Identify retrieval needs, latency constraints, accuracy requirements, and scale
  2. Vector Store Design, Select database, schema design, indexing strategy, sharding approach
  3. Chunking Strategy, Document splitting, overlap, semantic boundaries, metadata enrichment
  4. Retrieval Pipeline, Embedding selection, query transformation, hybrid search, reranking
  5. Evaluation & Iteration, Metrics tracking, retrieval debugging, continuous optimization

For each step, validate before moving on (see checkpoints below).

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Vector Databasesreferences/vector-databases.mdComparing Pinecone, Weaviate, Chroma, pgvector, Qdrant
Embedding Modelsreferences/embedding-models.mdSelecting embeddings, fine-tuning, dimension trade-offs
Chunking Strategiesreferences/chunking-strategies.mdDocument splitting, overlap, semantic chunking
Retrieval Optimizationreferences/retrieval-optimization.mdHybrid search, reranking, query expansion, filtering
RAG Evaluationreferences/rag-evaluation.mdMetrics, evaluation frameworks, debugging retrieval

Implementation Examples

1. Chunking Documents

from langchain.text_splitter import RecursiveCharacterTextSplitter

# Evaluate chunk_size on your domain data, never use 512 blindly
splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,
    chunk_overlap=100,
    separators=["\n\n", "\n", ". ", " "],
)

chunks = splitter.create_documents(
    texts=[doc.page_content for doc in raw_docs],
    metadatas=[{"source": doc.metadata["source"], "timestamp": doc.metadata.get("timestamp")} for doc in raw_docs],
)

Checkpoint: assert all(c.metadata.get("source") for c in chunks), "Missing source metadata"

2. Generating Embeddings & Indexing

Read the whole SKILL.md on GitHub

More in Design