Common cross-task fields (e.g. showExeTime) shouldn't have to be re-declared on each task type. Introduce a shared options: block on the base task definition so options compose cleanly and live in one place in the schema.
Initial fields
showExeTime: bool — append elapsed time when the task completes
Additional fields (e.g. quiet, timeout) can be added incrementally — out of scope for this issue, tracked separately.
Acceptance criteria
options: block defined on the base task type in the JSON Schema
- All existing task types inherit the block — no per-task-type duplication in YAML
- Omitting
options or any field within it leaves current default behavior unchanged
- Doc page describes available options and composition rules
- At least one example demonstrates usage
Common cross-task fields (e.g.
showExeTime) shouldn't have to be re-declared on each task type. Introduce a sharedoptions:block on the base task definition so options compose cleanly and live in one place in the schema.Initial fields
showExeTime: bool— append elapsed time when the task completesAdditional fields (e.g.
quiet,timeout) can be added incrementally — out of scope for this issue, tracked separately.Acceptance criteria
options:block defined on the base task type in the JSON Schemaoptionsor any field within it leaves current default behavior unchanged