"Create, validate, and debug lm-evaluation-harness YAML tasks, task
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill task-authoring --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Task Authoring?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-task-authoring)More formats (shields.io, HTML) on the badges page.
---
name: task-authoring
description: "Create, validate, and debug lm-evaluation-harness YAML tasks, task
groups, filters, metrics, Jinja prompts, includes, and external task
directories."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# Task Authoring
Use this sub-skill when an agent needs to add or repair lm-evaluation-harness task definitions. It covers YAML `TaskConfig` and group config authoring, `!function` helpers, few-shot settings, local/custom datasets, filters, metrics, and static validation. Route full evaluation execution to `../evaluation-runs/`, model/backend setup to `../model-backends/`, and result interpretation to `../result-logging/`.
## Start Here
1. Identify whether the user is creating a leaf task, a Python-backed task, a group, or a tag-based collection.
2. Draft the YAML from `references/task-schema.md` and prefer a small local fixture while iterating.
3. Use `scripts/create_task_skeleton.py` for a self-contained external task directory when starting from scratch.
4. Run `scripts/lint_task_yaml.py` before any command that downloads datasets or imports arbitrary `!function` code.
5. Hand off runtime validation with `lm-eval validate --tasks TASK --include_path DIR`; run only after confirming dataset access and any unsafe/custom code implications.
## Safe Workflow
- Static checks first: parse YAML, resolve `include` structure, inspect keys, metrics, filters, template strings, `!function` references, and common YAML quoting mistakes.
- Runtime validation second: `lm-eval validate` confirms task discovery for the installed package; the command advertises broader validation concerns, but version `0.4.13.dev0` primarily checks that requested tasks/groups/tags resolve through `TaskManager`.
- Full evaluation last: only use evaluation commands after routing to the evaluation-runs sub-skill and confirming model/backend cost, dataset download, and cache behavior.
## References
- `references/task-schema.md` — YAML fields, groups/tags, includes, `!function`, local datasets, few-shot config.
- `references/task-workflows.md` — creation, external task package, validation, debugging, and handoff workflows.
- `references/filters-and-metrics.md` — registered filters, metric/output-type compatibility, and pipeline shape rules.
- `references/troubleshooting.md` — common failures for YAML quoting, includes, splits, filters, metrics, and unsafe code.
## Bundled Scripts
- `scripts/create_task_skeleton.py` creates a minimal external task directory with YAML, `utils.py`, and optional tiny JSON fixture.
- `scripts/lint_task_yaml.py` performs safe static checks without importing task functions or downloading datasets.
## Boundaries
- Do not copy or summarize the full upstream task catalog; use only task names/examples needed for the user's task.
- Do not run full evaluations from this sub-skill; produce the task and validation handoff.
- Do not implement model backends or analyze benchmark scores here.
- Treat Python `!function`, Python task classes, local loading scripts, and `unsafe_code: true` as code execution surfaces that require explicit confirmation before runtime execution.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!