"Build Haystack ingestion flows that construct data classes,
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill data-ingestion --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Data Ingestion?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-data-ingestion-98fc99f9)More formats (shields.io, HTML) on the badges page.
---
name: data-ingestion
description: "Build Haystack ingestion flows that construct data classes,
convert files/streams into Documents or multimodal message content,
clean/split text, route by file/type/metadata, and perform safe fetch/cache
checks before indexing."
disable-model-invocation: true
metadata:
disco-role: operating
license: NOASSERTION
---
# Data Ingestion
Use this sub-skill when the task is about preparing data before it is written to a document store: constructing Haystack data objects, converting local files or `ByteStream` payloads, cleaning/splitting documents, routing files/documents by MIME type or metadata, and fetching URL content for conversion.
Route away from this sub-skill when the task is mainly about:
- Writing, deduplicating, embedding, retrieving, or choosing document stores: use `../retrieval-and-rag/SKILL.md`.
- Prompt assembly, generators, or model-specific generation parameters: use `../generation-and-model-components/SKILL.md`.
- Agents, tools, human-in-the-loop flows, or tool-call message orchestration beyond basic `ChatMessage` data construction: use `../agents-tools-and-hitl/SKILL.md`.
## Fast Paths
- Create text documents with `from haystack import Document`; pass `content`, JSON-serializable `meta`, optional explicit `id`, `embedding`, `sparse_embedding`, `score`, or binary `blob`.
- Use `ByteStream.from_file_path(path, guess_mime_type=True, meta={...})` or `ByteStream.from_string(text, mime_type="text/plain", meta={...})` when a converter/router should carry bytes plus metadata.
- Convert common files with `TextFileToDocument`, `MarkdownToDocument`, `PyPDFToDocument`, `PDFMinerToDocument`, `HTMLToDocument`, `DOCXToDocument`, `PPTXToDocument`, `XLSXToDocument`, `CSVToDocument`, `JSONConverter`, or `MultiFileConverter`.
- Clean text with `DocumentCleaner`; split text with `DocumentSplitter`; use `DocumentPreprocessor` when a compact split-then-clean super-component is enough.
- Route files before conversion with `FileTypeRouter`; route converted documents with `DocumentTypeRouter`, `MetadataRouter`, or `DocumentLengthRouter`.
- Fetch URLs with `LinkContentFetcher` into `ByteStream` objects, then convert the returned streams with a matching converter such as `HTMLToDocument`.
## Reference Map
- Data class details, serialization, metadata, and multimodal content: `references/data-formats.md`.
- End-to-end ingestion recipes for files, streams, preprocessing, routing, fetching, and cache/fetch checks: `references/workflows.md`.
- Failure diagnosis for imports, optional dependencies, credentials/backends, API misuse, bad data/config, and workflow edge cases: `references/troubleshooting.md`.
- Smoke-check script for public API availability and basic ingestion behavior: `scripts/ingestion_smoke_check.py`.
## Minimum Validation Pattern
1. Assert every converter/preprocessor/router output key exists, commonly `"documents"`, `"streams"`, MIME-type keys, `"unclassified"`, `"failed"`, or `"unmatched"`.
2. Assert document counts at each step, not just pipeline success.
3. Check metadata preservation: `file_path`, `mime_type`, source-specific metadata, `source_id`, `page_number`, and `split_id` where applicable.
4. Check empty/unsupported cases explicitly: unclassified files, failed fetches, empty PDF extraction, `Document.content is None`, and metadata-filter syntax.
Run the bundled smoke check from the skill root after installing Haystack in any normal Python environment:
```bash
python sub-skills/data-ingestion/scripts/ingestion_smoke_check.py
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!