affidavit-rag

Indexes legal case data into Qdrant and retrieves similar cases via semantic search.

Updated Sep 5, 2026
One-click install
npx skills add https://github.com/SillyHippy/zo-skills --skill affidavit-rag-sillyhippy
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: affidavit-rag
Source: https://github.com/SillyHippy/zo-skills/tree/main/skills/affidavit-rag
Command: npx skills add https://github.com/SillyHippy/zo-skills --skill affidavit-rag-sillyhippy

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, and includes scripts (resource) components.

What problem does it solve? Process servers and legal staff waste time manually searching past cases, service attempts, and address histories when drafting affidavits. This Skill indexes ServTracker case data into a Qdrant vector database so you can semantically search for similar cases, suggested service descriptions, and address outcomes. ## Core Features & Use Cases - Semantic Case Search: Find cases similar to a given case number using embedding-based similarity across court, plaintiff, and defendant data. - Service Description Suggestions: Retrieve descriptions from completed serve attempts matching a defendant and address. - Address History Lookup: Check how many times an address was served and its success rate before attempting service. - Use Case: Before writing an affidavit for a new serve at an address in Tulsa, query the address history to see prior outcomes and pull a proven service description from a similar completed attempt. ## Quick Start Ask the assistant to index the ServTracker database and then find cases similar to case number DC-26-08548 using the affidavit-rag query script.

Frequently Asked Questions about affidavit-rag

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find similar legal cases using semantic search?▼

Run the query script with --type similar-cases and --case-number to embed the case's court and party details, then search the Qdrant cases collection. Results exclude the queried case itself and return the closest matches by cosine similarity.

How do I index SQLite case data into Qdrant?▼

Run scripts/index_servtracker.py, which reads client_cases, serve_attempts, and address aggregates from the SQLite database, generates embeddings via the local embedding service, and upserts points into the cases, serve_attempts, and addresses collections.

What services must be running for Qdrant semantic search to work?▼

You need Qdrant listening on localhost:6333 and an embedding service on localhost:4400 exposing a POST /embed endpoint. Both scripts fail to produce vectors if the embedding service is unreachable.

Can I filter vector search results by serve attempt status?▼

Yes, the description query applies a Qdrant payload filter requiring status to equal completed, so only successful serve attempts are returned when suggesting service descriptions.

Why does the RAG query return empty results?▼

Empty results occur when the embedding service is down, the Qdrant collections have not been indexed yet, or the case number does not exist in the SQLite database. Run the indexing script first and verify both local services respond.