Skip to content
Back to skills

Dataset Generator

BSecurity

Generate evaluation datasets with adjustable difficulty levels from PDF documents for RAG system testing and benchmarking

  • 666 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 8, 2026
testingpythonbashtestingapi

Works with

  • api

Security analysis

B75/100
  • criticalImpersonates system messages to override safety constraints

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill dataset-generator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dataset Generator?

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

Security grade badge for Dataset Generator
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-dataset-generator/badge)](https://www.skillsdirectory.com/skills/majiayu000-dataset-generator)

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: dataset-generator
description: Generate evaluation datasets with adjustable difficulty levels from PDF documents for RAG system testing and benchmarking
version: 1.0.0
author: lana.dominkovic
disable-model-invocation: false
tags:
  - datasets
  - evaluation
  - benchmarking
  - RAG
  - testing
  - pdf
---

# Dataset Generator Skill

Generate high-quality benchmark evaluation datasets with adjustable difficulty levels from custom PDF documents. Perfect for testing RAG systems, knowledge graphs, and Q&A models.

## Usage

Invoke this skill with:
```
/dataset-generator <pdf_directory> [output_file] [num_questions] [difficulty]
```

**Arguments:**
- `$1` (required) - Path to PDF directory containing source documents
- `$2` (optional) - Output JSON file path (default: `benchmark_dataset.json`)
- `$3` (optional) - Number of questions to generate (default: 20)
- `$4` (optional) - Difficulty level: `easy`, `medium`, `hard`, or `mixed` (default: `mixed`)

## Examples

```bash
# Generate 20 mixed-difficulty questions
/dataset-generator ./pdfs

# Generate 30 hard questions
/dataset-generator ./pdfs hard_benchmark.json 30 hard

# Generate 15 easy questions for testing retrieval
/dataset-generator ./pdfs easy_test.json 15 easy
```

## What This Skill Does

1. **Extract Content**: Reads all PDFs from specified directory using pypdf
2. **Analyze Topics**: Uses Claude to identify key concepts, entities, dates, and relationships
3. **Generate Questions**: Creates questions across 5 types:
   - **Fact Retrieval**: Direct facts extractable from single passages
   - **Multi-hop Reasoning**: Requires connecting 2-3 pieces of information
   - **Comparative Analysis**: Compare concepts, approaches, or entities
   - **Contextual Summarization**: Broad understanding across multiple sections
   - **Creative Generation**: Application/scenario-based questions
4. **Difficulty Calibration**: Adjusts question complexity and required reasoning depth
5. **Format Output**: Standard benchmark JSON format with:
   - Question and ground truth answer
   - Question type classification
   - Difficulty level
   - 2-5 supporting evidence passages
   - Evidence relationship explanations

## Difficulty Levels

### Easy (Single-hop, Direct)
- **Reasoning**: Answerable from a single chunk/passage
- **Evidence**: Direct quotes sufficient
- **Chunk Size**: 300-500 chars
- **Examples**:
  - "What is [Product/Service] described in the document?"
  - "Who is mentioned as the CEO in [Year]?"
  - "What is the duration/cost/size of [Feature]?"

### Medium (Multi-hop, Inference)
- **Reasoning**: Requires 2-3 pieces of information
- **Evidence**: Light inference and connection needed
- **Chunk Size**: 800-1000 chars
- **Examples**:
  - "How does [Concept A] affect [Concept B]?"
  - "What are the requirements for [Process/System]?"

### Hard (Synthesis, Cross-document)
- **Reasoning**: Requires synthesizing info across multiple documents
- **Evidence**: Implicit relationships, complex inference
- **Chunk Size**: 1200-1500 chars
- **Examples**:
  - "Compare [Company's] approach in [Document A] vs [Document B]"
  - "Summarize how [System] addresses [Challenge] across all documents"

### Mixed (Balanced Distribution)
- **Distribution**: 40% easy, 40% medium, 20% hard
- **Purpose**: Comprehensive testing across difficulty spectrum
- **Chunk Size**: Adaptive (1000 chars average)

## Output Format

Standard evaluation JSON format:
```json
[
  {
    "id": "unique-hash-id",
    "question": "What is the main product described?",
    "answer": "The main product is a cloud-based solution that provides...",
    "question_type": "Fact Retrieval",
    "difficulty": "easy",
    "evidence": [
      "The product is a cloud-based solution that provides enterprise-grade features...",
      "Key capabilities include real-time processing and analytics..."
    ],
    "evidence_relations": "Evidence 1 defines the product, evidence 2 details key capabilities."
  }
]
```

## Implementation Details

When invoked, execute Python script `generate_benchmark_with_difficulty.py` which:

1. **Load PDFs**: Extract text from all PDFs in directory
2. **Adaptive Chunking**:
   - Easy: 300-500 char chunks
   - Medium: 800-1000 char chunks
   - Hard: 1200-1500 char chunks with 25% overlap
3. **Topic Analysis**: Use Claude to identify:
   - Key entities (companies, products, people, dates)
   - Main concepts and themes
   - Relationships and connections
4. **Question Generation** (Claude-powered):
   - Generate questions matching difficulty requirements
   - Ensure diverse question types
   - Create comprehensive ground truth answers
   - Extract supporting evidence passages
5. **Validation**:
   - Verify evidence supports answer
   - Check answer completeness
   - Validate JSON structure
6. **Output**: Save to specified file with statistics

## Statistics Reported

After generation:
- Total questions generated
- Questions per type breakdown
- Questions per difficulty
- Average answer length
- Average evidence passages per question
- Processing time

## Requirements

- Python 3.8+
- pypdf library (auto-installed if missing)
- Anthropic API key (from environment)
- PDF files in specified directory

## Notes

- For **hard** questions, ensures cross-document synthesis by analyzing multiple PDFs
- For **easy** questions, uses direct extraction with minimal inference
- Always includes 2-5 evidence passages per question
- Validates that evidence actually supports the answer
- Uses unique hash IDs for question tracking
- Compatible with RAGAs and other evaluation frameworks

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.