# Dataset And Input Factory

> Generates realistic synthetic datasets, input files, traces, logs, images, CSV files, graphs, and edge-case inputs for computing labs, projects, and exams. Use when pedagogical artifacts need representative inputs or benchmark data.

- Skill: `alainlebret/dataset-and-input-factory` (Agent Skill)
- Install (CLI): `npx skillmds@latest add alainlebret/dataset-and-input-factory`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alainlebret/dataset-and-input-factory/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: alainlebret (https://skillmd.com/u/alainlebret)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/alainlebret/dataset-and-input-factory

---


# Dataset and Input Factory

## Goal

Produce synthetic, realistic, and pedagogically appropriate input data for a computing assignment, TP, exam, or benchmark. Data must be varied enough to test student code thoroughly, and must never expose real personal or sensitive information.

## Inputs

- `mission.json` — level, domain, constraints, evaluation_mode
- `statement.md` — the assignment subject; data must be consistent with what is described
- `rubric.md` — grading criteria; each data category should exercise at least one criterion

## Output contract

Place all generated data under `data/` or `tests/cases/` as appropriate.

| File | Description |
|---|---|
| `data/README.md` | Describes each dataset: format, generation method, known properties, intended test coverage |
| `data/<name>.<ext>` | One or more synthetic input files (CSV, JSON, log, binary, etc.) |
| `data/generate.py` (or `.sh`) | Reproducible generation script so data can be regenerated with a fixed seed |
| `data/edge-cases/` | Subdirectory with adversarial or boundary inputs |

### Dataset categories to produce

For each assignment, generate at minimum:
1. **Nominal case** — realistic, well-formed input that exercises the happy path
2. **Large case** — input at or near the stated size limit to test performance
3. **Empty / minimal case** — empty file, zero elements, or minimum valid input
4. **Malformed case** — syntactically invalid input to test error handling
5. **Edge case** — boundary values (max int, unicode characters, trailing newlines, binary data mixed with text)

## Domain-specific guidance

| Domain | Typical data formats | Notes |
|---|---|---|
| Systems / C | Log files, named pipes, binary streams | Use ASCII-safe content; avoid locale-specific characters unless stated |
| Python data | CSV, JSON, plain text | Use `random.seed(42)` for reproducibility |
| SQL | SQL dump or CSV for import | Include NULL values and duplicate keys |
| Networking | PCAP excerpts or HTTP request logs | Use RFC-example addresses (192.0.2.x) |
| Embedded / real-time | Sensor traces, CAN frames | Include timing jitter and out-of-order packets |

## Rules

- All data must be synthetic — never use real user data, real logs, or scraped datasets.
- The generation script must be deterministic given a fixed seed.
- Document the statistical properties of each dataset (size, value range, class distribution).
- Data must be consistent with the domain scenario described in `statement.md`.
- Do not generate data that would require students to install additional tools to process (e.g. proprietary binary formats).

