Dataset Workflows
Validation
Understand what the dataset validator checks, what summary output means, and how validation fits into generation and translation workflows.
Run the validator
node dist/cli/index.js validate-dataset outputs/receptionist-sample.jsonl
validate-dataset accepts a positional dataset path or --input <path>.
What validation catches
The validator checks dataset shape and tool-calling integrity, including:
- line-by-line JSONL parsing failures
- rows with no messages
- unsupported or malformed message roles
- assistant tool-call arguments that are not valid JSON
- tool results that do not reference an earlier assistant tool call
- tool result names that do not match the referenced tool call
- duplicate or inconsistent tool-call identifiers
- dataset summary counts such as row count, tool-call count, tool-result count, rows with tools, and average message counts
For full_tool_trajectory rows, the important structural guarantee is that the assistant tool-call message appears before the tool result, which appears before the final assistant response.
Why validation matters after translation
translate-dataset validates translated rows before writing output. That protects the schema-bearing parts of the example:
- assistant
tool_callsremain unchanged - tool result messages remain unchanged
- tool definitions remain unchanged
- row metadata is preserved and extended with translation metadata
If provider-backed translation produces empty text for a non-empty source field, the workflow rejects the output instead of writing broken JSONL.
Project-level verification
For development changes that affect dataset structure, run:
npm run typecheck
npm run verify
The verification suite exercises deterministic CLI workflows, provider config handling, provider adapter behavior, translation, persona generation, simulation runners, log-conversion deferment, and the README/tutorial commands.