Reference

Complete and dry. If you want to understand why a key exists rather than look up its spelling, that is Features.

Two formats, and which you want

  tasks.yml workflows/*.yml
Is a library of commands one pipeline
Order comes from needs: between tasks stages:, then needs: between jobs
Run granularity any task, alone the whole file
version: optional, read as 1 if absent required
Tasks are a map, keyed by task id a list, run in list order
needs: on a task how ordering works refused — it belongs on the job

Both run through the same task executor, so env:, vars:, dotenv:, cwd:, templating, trigger:, timeout:, retries:, if:, continueOnError: and output: mean the same thing in each.

Two things tasks.yml does not have, and people assume it does: there is no list of commands under a task — one task is one run:, and several lines go in a run: | block — and the top-level key is tasks:. A file keyed on anything else parses into no tasks at all rather than reporting an error, because there is nothing there to reject.

The full schema

Every key in both formats, plus the guide to writing your own plugins, lives in REFERENCE.md in the repository — and inside the editor, where it is the fastest thing to reach:

Command Palette → Local Workflows: Schema Reference

The per-key pages that belong here are not written yet, and they are waiting on a generator rather than on someone’s afternoon: they should build from resources/schemas/*.schema.json and package.json’s contributes block, with CI failing when the committed output drifts from the source.

That is not a preference. A hand-copied schema table is how REFERENCE.md came to document a tasks: key that the parser has never accepted, in an example shaped around a cmds: list that has never existed — wrong in a way that produces an empty sidebar and no error message.


Back to top

Local Workflows is a VS Code extension. Everything it does is declared in a YAML file you own.