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-skillsProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.