Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add selvarajmurugesan90/ops-engineering-skills --skill vector-database-ingestion-pipeline-for-raggit clone --depth 1 https://github.com/selvarajmurugesan90/ops-engineering-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/selvarajmurugesan90/ops-engineering-skills/vector-database-ingestion-pipeline-for-rag)<a href="https://agentmods.dev/skills/selvarajmurugesan90/ops-engineering-skills/vector-database-ingestion-pipeline-for-rag"><img src="https://agentmods.dev/badge/skills/selvarajmurugesan90/ops-engineering-skills/vector-database-ingestion-pipeline-for-rag/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/selvarajmurugesan90/ops-engineering-skills/vector-database-ingestion-pipeline-for-rag"><img src="https://agentmods.dev/badge/skills/selvarajmurugesan90/ops-engineering-skills/vector-database-ingestion-pipeline-for-rag.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00127 | $0.04237 |
| Opus 5 | $0.00063 | $0.02119 |
| Sonnet 5 | $0.00025 | $0.00847 |
| Haiku 4.5 | $0.00013 | $0.00424 |
Grade A, and why
vector-database-ingestion-pipeline-for-rag scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 360 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Vector Database Ingestion Pipeline for RAG
Purpose
Getting a RAG system's vectors into its index reliably is a data pipeline engineering problem, distinct from the retrieval design question of how chunks should be shaped for good retrieval (covered in rag-pipeline-design) and from the index's own operational tuning (covered in vector-database-operations-pinecone-weaviate-milvus). This skill is specifically about the pipeline that runs chunking as a production job stage, batches embedding calls reliably at scale, upserts idempotently so a retried or partially-failed run doesn't corrupt the index, and re-indexes when source documents change — the plumbing that has to work correctly every single run, not the design choices about what a good chunk or a good index configuration look like. A RAG system with excellent chunking and retrieval design still gives stale or duplicated answers if the pipeline feeding it is unreliable.
When to use
- Building a new ingestion pipeline to take a document source (a CMS, a file store, a ticketing system, a repo) and load embedded chunks into a vector index for the first time.
- Implementing re-indexing that triggers on source-document create/update/delete events, or designing a scheduled batch fallback when event-driven triggers aren't available for a given source.
- A bulk embedding/backfill job is slow, times out, or fails partway through, and it's unclear what state the index was left in.
- The vector index contains duplicate, missing, or stale chunks for documents that were re-published or deleted at the source.
- Scaling an ingestion pipeline from a one-time backfill to a continuously running production job.
- Changing the embedding model or chunking parameters and needing to re-process the entire corpus as a controlled operation rather than an ad hoc script run.
Prerequisites & environment
- A source system that can report what changed and when — a webhook/ event stream (preferred) or, at minimum, a reliable "last modified" timestamp or version field to poll on a schedule; a source with no change signal at all forces a full re-scan on every run, which doesn't scale.
- A stable, unique document identifier from the source system that chunk IDs can be deterministically derived from — this is what makes idempotent upserts and clean deletes possible (see step 2).
- The embedding model and vector index already chosen, with dimension/ metric already validated (see vector-database-configuration-validation) — this pipeline assumes the target index configuration is correct, it does not validate it.
- A job runner/orchestrator (a workflow engine, a scheduled batch job, or a queue-consumer worker) capable of retrying a failed batch without reprocessing an entire run from scratch, and capable of running batches with bounded concurrency against both the embedding API and the vector index's write path.
- Storage for pipeline run state (a database table, or the vector index's own metadata) tracking, per source document: last-processed version/timestamp, chunk IDs produced, and last successful embed/ upsert time — required for the idempotency and partial-failure recovery patterns below.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 360 lines · 127 tokens per session scan A 5ed08c909b0f
vector-database-ingestion-pipeline-for-rag is a skill published in the GitHub repository selvarajmurugesan90/ops-engineering-skills (38 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 127 tokens to every session and 4,237 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
qdrant
Vector search engine for production RAG systems.
chroma
Embedding database for RAG and semantic search.
pinecone
Managed vector DB for production RAG and search.
embeddings
Vector embeddings with HNSW indexing, sql.js persistence, and hyperbolic support. 75x faster with agentic-flow integration. Use when: semantic search, pattern matching, similarity queries, knowledge retrieval. Skip when: exact text matching, simple lookups, no semantic understanding needed.
similarity-search-patterns
Implement efficient similarity search with vector databases. Use when building semantic search, implementing nearest neighbor queries, or optimizing retrieval performance.
pgvector-semantic-search
Use this skill for setting up vector similarity search with pgvector for AI/ML embeddings, RAG applications, or semantic search. Trigger when user asks to: Store or search vector embeddings in PostgreSQL Set up semantic search, similarity search, or nearest neighbor search Create HNSW or IVFFlat indexes for vectors…