Task Manifest (v0.1)
Every task directory can include a task.toml manifest describing deterministic contracts, budgets, and entrypoints.
Example
task.toml
id = "filesystem_hidden_config" suite = "filesystem" version = 1 description = "Extract the value of API_KEY from the filesystem." deterministic = true seed_behavior = "fixed" [budgets] steps = 200 tool_calls = 40 [action_surface] source = "actions.py" schema = "introspected" [validator] entrypoint = "validate.py:validate" [setup] entrypoint = "setup.py:setup"
Required Fields
- id (string): Unique task identifier
- suite (string): Task suite label
- version (int): Frozen task version
- description (string): Human-readable summary
- deterministic (bool): Whether deterministic under fixed seeds
- seed_behavior (string): fixed, stochastic, or ignored
- budgets.steps (int): Maximum steps per run
- budgets.tool_calls (int): Maximum tool calls per run
- action_surface.source (string): Actions module path
- validator.entrypoint (string): Validator entrypoint
Optional Fields
- setup.entrypoint (string): Setup entrypoint
- action_surface.schema (string): Default introspected
Compatibility
- If both task.toml and task.yaml exist, TOML wins.
- Registry entries must match manifest id, suite, version.
- Schema-breaking changes require new task version and SPEC_FREEZE.md update.