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 organvm-iv-taxis/a-i--skills --skill data-ingestion-pipelinegit clone --depth 1 https://github.com/organvm-iv-taxis/a-i--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/organvm-iv-taxis/a-i--skills/data-ingestion-pipeline)<a href="https://agentmods.dev/skills/organvm-iv-taxis/a-i--skills/data-ingestion-pipeline"><img src="https://agentmods.dev/badge/skills/organvm-iv-taxis/a-i--skills/data-ingestion-pipeline/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/organvm-iv-taxis/a-i--skills/data-ingestion-pipeline"><img src="https://agentmods.dev/badge/skills/organvm-iv-taxis/a-i--skills/data-ingestion-pipeline.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.00053 | $0.02044 |
| Opus 5.5 | $0.00021 | $0.00818 |
| Sonnet 5.5 | $0.00011 | $0.00409 |
| Haiku 4.5 | $0.00005 | $0.00204 |
Grade A, and why
data-ingestion-pipeline 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 1mo 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 — 286 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Data Ingestion Pipeline
Extract, validate, and load data from diverse sources into target systems.
Pipeline Architecture
Sources → Extract → Validate → Transform → Stage → Load → Verify
│ │ │ │ │ │ │
│ │ │ │ │ │ └─ Row counts match
│ │ │ │ │ └─ Write to target
│ │ │ │ └─ Staging table/file
│ │ │ └─ Normalize, enrich, deduplicate
│ │ └─ Schema validation, business rules
│ └─ Pull from source
└─ APIs, files, databases, streams
Source Extraction
File-Based Sources
from pathlib import Path
import json
import csv
import yaml
class FileExtractor:
PARSERS = {
".json": lambda p: json.loads(p.read_text()),
".yaml": lambda p: yaml.safe_load(p.read_text()),
".yml": lambda p: yaml.safe_load(p.read_text()),
".csv": lambda p: list(csv.DictReader(p.open())),
}
def extract(self, path: Path) -> list[dict]:
parser = self.PARSERS.get(path.suffix)
if not parser:
raise ValueError(f"Unsupported format: {path.suffix}")
data = parser(path)
return data if isinstance(data, list) else [data]
API Extraction with Pagination
import httpx
async def extract_paginated(base_url: str, params: dict = {}) -> list[dict]:
all_records = []
page = 1
async with httpx.AsyncClient() as client:
while True:
response = await client.get(base_url, params={**params, "page": page, "per_page": 100})
response.raise_for_status()
data = response.json()
records = data.get("items", data.get("results", data))
if not records:
break
all_records.extend(records)
page += 1
return all_records
Database Extraction
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.
- 1mo ago First seen · 286 lines · 53 tokens per session scan A f53f62c1a3e5
data-ingestion-pipeline is a skill published in the GitHub repository organvm-iv-taxis/a-i--skills (17 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 53 tokens to every session and 2,044 once invoked, about $0.0002 per session on Opus 5.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
implement-sqrl
Use when writing or editing DataSQRL scripts (.sqrl) for data processing, transformation, aggregation, or serving logic. Use for any pipeline logic implementation. Contains SQRL language spec.
manage-connector
Use when connecting to external data systems for ingestion or export in DataSQRL. Use for Kafka, filesystem, database, Iceberg, or other connector configuration.
test-sqrl
Use when adding or updating tests for a DataSQRL pipeline. Use after implementing features to verify correctness.
Data Pipeline Testing
Testing data pipelines including ETL validation, data quality checks, pipeline orchestration testing, and data lineage verification.
architecture-paradigm-pipeline
Applies pipes-and-filters for sequential data transformations. Use when data flows through discrete stages like ETL, streaming analytics, or CI/CD pipelines.
init-sqrl
Use when starting a new DataSQRL project or initializing an empty pipeline. Use for greenfield implementations, project scaffolding, or setting up the folder structure.