From dora-skills
Guides creation and editing of dora-rs dataflow YAML configuration files, covering node setup, input/output connections, timers, environment variables, and source options.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dora-skills:dataflow-configThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Complete guide to dora-rs dataflow YAML specification
Complete guide to dora-rs dataflow YAML specification
nodes:
- id: node_id # Required: unique identifier (no "/" characters)
name: "Human Name" # Optional: descriptive name
description: "..." # Optional: node description
path: executable # Path to executable/script
args: "-v --flag" # Optional: command-line arguments
env: # Optional: environment variables
DEBUG: true
PORT: 8080
inputs: # Input connections
input_id: source_node/output_id
outputs: # Output identifiers
- output_1
- output_2
| Field | Required | Description |
|---|---|---|
id | Yes | Unique identifier (no / characters) |
name | No | Human-readable name |
description | No | Node description |
path | Yes* | Path to executable or package name |
args | No | Command-line arguments |
env | No | Environment variables |
inputs | No | Input connections |
outputs | No | Output identifiers |
build | No | Build command |
git | No | Git repository URL |
branch/tag/rev | No | Git checkout target |
restart_policy | No | never, on-failure, always |
send_stdout_as | No | Forward stdout as output |
operator | No* | Single operator definition |
operators | No* | Multiple operators |
*One of path, operator, or operators is required.
inputs:
input_name: source_node/output_name
inputs:
# Trigger every N milliseconds
tick: dora/timer/millis/100 # 10 Hz
tick: dora/timer/millis/33 # ~30 Hz
tick: dora/timer/millis/1000 # 1 Hz
# Trigger every N seconds
tick: dora/timer/secs/5 # Every 5 seconds
inputs:
image:
source: camera/image
queue_size: 1 # Only keep latest (drop old frames)
env:
# Model configuration
MODEL_PATH: /path/to/model.pt
DEVICE: cuda
# Camera settings
CAPTURE_PATH: "0"
IMAGE_WIDTH: "640"
IMAGE_HEIGHT: "480"
# Serial ports
SERIAL_PORT: /dev/ttyUSB0
BAUD_RATE: "115200"
- id: yolo
build: pip install dora-yolo
path: dora-yolo
- id: custom
path: ./my_node.py
- id: rust-node
build: cargo build --release
path: ./target/release/my_node
- id: remote-node
git: https://github.com/org/repo.git
branch: main # Or: tag: v1.0.0 / rev: abc123
build: cargo build --release
path: target/release/node
- id: dynamic-node
path: dynamic # Special keyword
inputs:
tick: dora/timer/millis/100
outputs:
- output
- id: processor
operator:
python: script.py
inputs:
data: source/output
outputs:
- processed
- id: runtime-node
operators:
- id: op1
python: op1.py
inputs:
data: source/output
outputs:
- result1
- id: op2
python: op2.py
inputs:
input: op1/result1
outputs:
- result2
- id: ml-node
operator:
python:
source: inference.py
conda_env: ml_env
inputs:
image: camera/image
outputs:
- prediction
- id: resilient-node
path: ./node
restart_policy: on-failure # never (default), on-failure, always
- id: producer
path: ./node
send_stdout_as: logs # Forward stdout as output
outputs:
- logs
nodes:
# Camera capture
- id: camera
build: pip install opencv-video-capture
path: opencv-video-capture
inputs:
tick: dora/timer/millis/33
outputs:
- image
env:
CAPTURE_PATH: "0"
IMAGE_WIDTH: "640"
IMAGE_HEIGHT: "480"
# Object detection
- id: detector
build: pip install dora-yolo
path: dora-yolo
inputs:
image: camera/image
outputs:
- bbox
env:
MODEL: yolov8n.pt
# Visualization
- id: plot
build: pip install dora-rerun
path: dora-rerun
inputs:
image: camera/image
boxes2d: detector/bbox
camera, object-detector, arm-controllerqueue_size: 1 for real-time applications--uv flag: For faster Python package installationnpx claudepluginhub zhanghandong/dora-skills --plugin dora-skillsGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.