Try it
Task playground.
The fastest way to see what a Watchfire task looks like — no install required. Fill in the form, watch the YAML update on the right, copy it into .watchfire/tasks/ when you’re ready.
Already know what you want? /templates has eight ready-to-paste starters. For the formal schema of every field, see Projects and Tasks. Quick reference: /cheatsheet. If you’d like to understand why a good task is shaped this way, read Anatomy of a great task.
Live YAML preview
version: 1
task_id: 00000000
task_number: 1
title: "Fix 500 on POST /api/orders when items[] is empty"
prompt: |
POST /api/orders returns 500 with an unhandled
TypeError when items is empty.
Return a 400 with body { "error": "items_required" }
when items is missing or empty. Mirror the validation
pattern used in services/users.ts.
acceptance_criteria: |
- The empty-items case returns 400, not 500.
- A new test in services/orders.test.ts covers it
and fails on main without the fix.
- npm run test passes.
- npm run lint passes.
status: ready
success: null
failure_reason: ""
position: 1
agent_sessions: 0
created_at: "1970-01-01T00:00:00.000Z"
updated_at: "1970-01-01T00:00:00.000Z"
What now?
- Copy the YAML, or download it.
- Save it as
.watchfire/tasks/NNNN.yamlin your project, whereNNNNis the next unused number in that directory. - Make sure
status: ready. - The daemon picks it up automatically, or run
watchfire task start NNNNto launch it on demand.
First time running Watchfire? See /docs/quickstart for the full first-run flow.
This page builds what /templates shows pre-built. If you want eight ready-to-paste starters, go there instead.