Skip to content
Back to skills

Reading Pipelines

ASecurity

"Guide agents that need to read, transform, decode, batch, sample,

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
datagonodeapisecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill reading-pipelines --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reading Pipelines?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reading Pipelines
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-reading-pipelines/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-reading-pipelines)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reading-pipelines
description: "Guide agents that need to read, transform, decode, batch, sample,
  mix, split, and validate existing WebDataset shards."
metadata:
  disco-role: operating
disable-model-invocation: true
license: BSD 3-Clause
---

# Reading Pipelines

Use this sub-skill when the task is about consuming WebDataset shards or shard lists, not writing them.
It covers the common read path: shard expansion, worker/node splitting, tar-to-sample grouping,
decoding, filtering, tuple extraction, batching, repetition, and PyTorch CPU loader integration.

## Use this when

- You need a fluent read chain such as `WebDataset(...).shuffle(...).decode(...).to_tuple(...)`.
- You need an explicit `DataPipeline` equivalent for the same read flow.
- You need `DataLoader` or `WebLoader` integration on CPU.
- You need shard list behavior such as brace expansion, `::` lists, YAML multi-shard specs,
  directory shard lists, or resampled shard streams.
- You need to handle missing keys, empty datasets, decoder failures, or batch/unbatch mismatch.
- You need recipes for column-store reads, mixing, or distributed splitting.

## Route elsewhere when

- You need to write tar shards or generate WebDataset archives: use [shard-writing](../shard-writing/SKILL.md).
- You need URL opening, cache policy, secure mode, or `gopen` side effects: use
  [io-caching-security](../io-caching-security/SKILL.md).
- You need full training, OCR, or cloud workflows: treat those as reference-only here.

## Canonical read order

1. Confirm the shard format and sample key layout in `references/data-formats.md`.
2. Choose a fluid chain or an explicit `DataPipeline`.
3. Decide on shard splitting: `split_by_node`, `split_by_worker`, `detshuffle`, or `resampled=True`.
4. Decide where decoding happens and whether `partial` or `only` is needed.
5. Add filtering / projection steps such as `select`, `rename`, `rename_keys`, `extract_keys`, or `to_tuple`.
6. Add `batched`, `unbatched`, `with_epoch`, `repeat`, or `with_length` only when the loader contract needs them.
7. If the data comes from a new shard write, validate readback with the bundled smoke helper and then hand off to
   the sibling write-side skill.

## Key references

- [API reference](references/api-reference.md)
- [Canonical workflows](references/workflows.md)
- [Data format notes](references/data-formats.md)
- [Troubleshooting](references/troubleshooting.md)
- [Smoke helper](scripts/smoke_read_pipeline.py)

## Practical defaults

- `WebDataset` defaults to `nodesplitter=single_node_only` and `workersplitter=split_by_worker`.
- `shardshuffle=None` is a warning state; set it explicitly to `False` or a positive buffer size.
- `empty_check=True` raises when a worker sees no samples.
- `decode()` raises `DecodingError` unless you supply a handler.
- `with_length()` only sets `__len__`; it does not change the number of yielded samples.
- `with_epoch()` and `repeat()` control iteration length, not shard contents.

## Good first answers

- "How do I read a local shard?" -> start with `WebDataset(path).decode().to_tuple(...)`.
- "How do I use explicit stages?" -> use `DataPipeline(SimpleShardList(...), tarfile_to_samples(), ...)`.
- "How do I avoid empty-worker failures?" -> check shard count, splitter choice, and `empty_check`.
- "How do I mix datasets?" -> use `RoundRobin` or `RandomMix` after the basic read path.
- "How do I validate a pipeline quickly?" -> run `scripts/smoke_read_pipeline.py`.

Keep the guidance in this sub-skill bounded to reads and transforms. Do not promise
writer-side, network, or training behavior beyond what the bundled references and tests cover.

Files in this skill

  • SKILL.md3.6 KB
  • references/api-reference.md6.6 KB
  • references/data-formats.md3.5 KB
  • references/troubleshooting.md3.5 KB
  • references/workflows.md4.6 KB
  • scripts/smoke_read_pipeline.py6.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.