Adaline datasets
Skills that guide AI coding agents to integrate with the Adaline platform — send traces, manage prompts, run evaluations, fetch deployments, and more. Compatible with Cursor, Claude Code, Codex, Windsurf, and 40+ other agents.
npx -y skills add adaline/skills --skill adaline-datasetsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create and manage evaluation datasets in Adaline. Use when building test cases, adding dataset columns/rows, importing data, or triggering dynamic columns.
SKILL.md
4.5 KB, as published. Nobody here has run it
Adaline Datasets
Concepts
Datasets are structured test cases for evaluations. Rows supply prompt inputs and optional expected values. Columns define the cell modality or dynamic generation source.
Key terms:
- Dataset — table of evaluation cases in a project
- Column — named field; types are
static,prompt, orapi - Row — one test case; values are keyed by column ID or column name
- Dynamic column —
promptorapicolumn whose values are generated on demand
Configuration
Set these environment variables when credentials are available:
ADALINE_API_KEY— workspace API key from Admin > API KeysADALINE_PROJECT_ID— project ID
Base URL: https://api.adaline.ai/v2
Key Rule: Use Current Batch Shapes
Column creation takes { "columns": [...] }. Row creation takes { "rows": [...] }. Do not send a single bare column object to /columns.
Quick Triage
| Symptom | First Fix |
|---|---|
| Column add fails | Wrap columns in { "columns": [...] } |
| Row values not applied | Use valuesBy=columnName when keys are names |
| Dynamic fetch ignored rows | Use datasetRowIds; the shorter legacy row-id key is not accepted |
| Pagination missing rows | Use pagination.nextCursor |
| Python snippets return coroutine | Await SDK methods |
Creating a Dataset
curl -X POST "https://api.adaline.ai/v2/datasets" \
-H "Authorization: Bearer $ADALINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"projectId": "project_abc123",
"title": "Support eval set",
"icon": { "type": "emoji", "value": "📚" },
"description": "Support questions and expected answers"
}'
Adding Columns
curl -X POST "https://api.adaline.ai/v2/datasets/dataset_abc123/columns" \
-H "Authorization: Bearer $ADALINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"columns": [
{ "name": "question", "type": "static" },
{ "name": "expected_answer", "type": "static" },
{
"name": "draft_answer",
"type": "prompt",
"settings": { "promptId": "prompt_abc123" }
}
]
}'
API dynamic column:
{
"name": "retrieved_context",
"type": "api",
"settings": {
"method": "POST",
"url": "https://example.com/retrieve",
"headers": { "Authorization": "Bearer token" },
"bodyTemplate": "{ \"query\": \"{{question}}\" }"
}
}
Adding Rows
curl -X POST "https://api.adaline.ai/v2/datasets/dataset_abc123/rows?valuesBy=columnName" \
-H "Authorization: Bearer $ADALINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rows": [
{
"values": {
"question": { "value": "How do I reset my password?" },
"expected_answer": { "value": "Send the reset link." }
}
}
]
}'
Dynamic Columns
curl -X POST "https://api.adaline.ai/v2/datasets/dataset_abc123/dynamic-columns/fetch" \
-H "Authorization: Bearer $ADALINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"columnIds": ["column_abc123"],
"datasetRowIds": ["row_abc123"],
"runMode": "all"
}'
runMode can be all, failed, or first.
SDK Usage
await adaline.datasets.list({ projectId, limit: 20 });
await adaline.datasets.create({ dataset });
await adaline.datasets.columns.create({ datasetId, columns });
await adaline.datasets.rows.create({ datasetId, valuesBy: 'columnName', rows });
await adaline.datasets.columns.fetchDynamic({ datasetId, query });
await adaline.datasets.list(project_id=project_id, limit=20)
await adaline.datasets.create(dataset=dataset)
await adaline.datasets.columns.create(dataset_id=dataset_id, columns=columns)
await adaline.datasets.rows.create(dataset_id=dataset_id, values_by="columnName", rows=rows)
await adaline.datasets.columns.fetch_dynamic(dataset_id=dataset_id, query=query)
Best Practices
- Prefer
valuesBy=columnNamefor authoring fixtures; use column IDs for immutable machine integrations. - Batch rows and columns when possible.
- Add static input columns first, then rows, then dynamic columns.
- Use
datasetRowIdsto rerun dynamic generation for a focused subset. - Keep dataset column names aligned with prompt variables where rows feed prompt evaluations.
References
See references/api.md for the full REST contract.