From dominodatalab
Orchestrate multi-step ML workflows as typed DAGs using Domino Flows (Flyte). Use when building data pipelines, multi-stage training, or reproducible processes with heterogeneous environments.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dominodatalab:flowsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill provides comprehensive knowledge for orchestrating ML workflows using Domino Flows, built on the Flyte platform.
This skill provides comprehensive knowledge for orchestrating ML workflows using Domino Flows, built on the Flyte platform.
Domino Flows enable:
| Component | Description |
|---|---|
| Task | Single unit of work (runs as a Domino Job) |
| Workflow | DAG connecting tasks |
| Artifact | Typed input/output passed between tasks |
| Launch Plan | Configured workflow execution |
⚠️ Critical: Domino Flows does NOT support native Flyte
@taskdecorators. Tasks must useDominoJobTask+DominoJobConfig. Only@workflowis unchanged.
Each task runs as a Domino Job. Stage scripts read from /workflow/inputs/<name>
and write to /workflow/outputs/o0. Pass PYTHONPATH=/mnt/code in the command.
from flytekit import workflow
from flytekitplugins.domino.task import DominoJobConfig, DominoJobTask
preprocess_task = DominoJobTask(
name="Preprocess Data",
domino_job_config=DominoJobConfig(
Command="bash -c 'PYTHONPATH=/mnt/code python /mnt/code/stages/preprocess.py'",
),
inputs={"input_path": str},
outputs={"o0": str},
use_latest=True,
)
train_task = DominoJobTask(
name="Train Model",
domino_job_config=DominoJobConfig(
Command="bash -c 'PYTHONPATH=/mnt/code python /mnt/code/stages/train.py'",
),
inputs={"preprocess_output": str},
outputs={"o0": str},
use_latest=True,
)
@workflow
def training_pipeline(input_path: str = "/mnt/data/raw.csv") -> str:
preprocess_output = preprocess_task(input_path=input_path)
result = train_task(preprocess_output=preprocess_output)
return result
# stages/preprocess.py
import json, os
INPUTS, OUTPUTS = "/workflow/inputs", "/workflow/outputs"
def main():
input_path = open(f"{INPUTS}/input_path").read().strip()
# ... do work ...
os.makedirs(OUTPUTS, exist_ok=True)
with open(f"{OUTPUTS}/o0", "w") as f:
f.write(json.dumps({"output_path": "/mnt/artifacts/processed.parquet"}))
if __name__ == "__main__":
main()
# Always commit and push first — jobs run against remote repo state
git add -A && git commit -m "..." && git push
# Trigger remotely
PYTHONPATH=/mnt/code pyflyte run --remote \
my_flow.py training_pipeline \
--input_path "/mnt/data/raw.csv"
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
npx claudepluginhub anthropics/claude-plugins-official --plugin dominodatalab