fabro-workflow-factory

Skill for using Fabro, the open source AI coding workflow orchestrator that lets you define agent pipelines as Graphviz DOT graphs with human gates, multi-model routing, and cloud sandboxes.

By reason-machines · 1,230 installs

npx skills add reason-machines/trending-skills --skill fabro-workflow-factory

Source repository · Upstream listing

Fabro Workflow Factory Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. Fabro is an open source AI coding workflow orchestrator written in Rust. It lets you define agent pipelines as Graphviz DOT graphs — with branching, loops, human approval gates, multi model routing, and cloud sandbox execution — then run them as a persistent service. You define the process; agents execute it; you intervene only where it matters. Installation After installation, run one time setup and per project initialization: Key CLI Commands Workflow Definition (Graphviz DOT) Workflows are .dot files using the Graphviz DOT language with Fabro specific attributes. Node Types Shape Meaning Mdiamond Start node Msquare Exit node rectangle (default) Agent node (LLM turn) hexagon Human gate (pauses for approval) Minimal Hello World Multi Model Routing with Stylesheets Fabro uses CSS like model stylesheet declarations on the graph to route nodes to models. Use classes to target groups of nodes. Supported Model Stylesheet Properties Human Gates (Approval Nodes) Use shape=hexagon to pause execution for human approval. Transitions are labeled with [A] (approve) and [R] (revise/reject). Approve or reject from the CLI: Loops and Fix Cycles Use labeled transitions to build automatic retry/fix loops: Parallel Nodes Run multiple agent nodes concurrently by forking edges from a single source: Variables and Dynamic Prompts Use {variable} interpolation in prompts. Pass variables at run time: Cloud Sandboxes (Daytona) To run agents in isolated cloud VMs instead of locally, configure a Daytona sandbox: Then add sandbox config to your workflow graph: Git Checkpointing Fabro automatically commits code changes and execution metadata to Git branches at each stage. To inspect or resume: Retrospectives After every run, Fabro generates a retrospective with cost, duration, files changed, and an LLM written narrative: Example output: REST API and SSE Streaming Fabro runs an API server for programmatic use: Trigger a run via API Stream run events via SSE Approve a gate via API Environment Variables Project Structure Convention Common Patterns Pattern: Spec driven implementation Pattern: Cheap draft, expensive refine Troubleshooting fabro: command not found Re run the install script and ensure ~/.local/bin (or the install prefix) is on your $PATH . Try source ~/.bashrc or source ~/.zshrc after installation. Agent gets stuck in a loop Add a maximum iteration guard: use a counter variable and a conditional transition to force exit after N iterations. Check your prompt — ambiguous exit conditions cause looping. Human gate never pauses Confirm the node uses shape=hexagon , not just a label containing "approve". Check fabro runs show <run id to confirm the run reached that node. Sandbox fails to start Verify DAYTONA API KEY is set and valid. Run fabro config to confirm sandbox.provider is set to daytona . Check fabro runs show <run id for sandbox error details. Model not found / API error Ensure the correct provider API key is exported ( ANTHROPIC API KEY , OPENAI API KEY , etc.). Check the model: value in your stylesheet matches the provider's exact model ID. Run exits immediately without doing work Verify the DOT file has a valid path from start ( shape=Mdiamond ) to exit ( shape=Msquare ). Run dot Tsvg workflow.dot o workflow.svg to visually inspect the graph for disconnected nodes. Resources [Documentation](https://docs.fabro.sh) [Why Fabro](https://docs.fabro.sh/getting started/why fabro) [DOT Language Reference](https://docs.fabro.sh/reference/dot language) [API Reference](https://docs.fabro.sh/api reference/overview) [Tutorials](https://docs.fabro.sh/tutorials/hello world) [Bug Reports](https://github.com/fabro sh/fabro/issues) [Feature Requests](https://github.com/fabro sh/fabro/discussions)