Skip to content

Step Flow Notation

Write multi-step AI workflows in a few lines of text, then convert them into executable graphs.

Agent orchestration

Real work is rarely one prompt. SFN describes fetch, analyze, branch, loop, and human-review steps as one compact pipeline.

Phone-friendly syntax

DOT graphs are powerful but painful to write by hand. SFN keeps the authoring format short enough for a touchscreen keyboard.

LLM-ready structure

Each numbered step can be a tool, llm, or wait_human action with output bindings, conditions, convergence, and loops.

Executable graphs

SFN is meant to be converted into a machine-executable workflow graph instead of staying as informal prose.

Modern AI coding agents are strong at individual tasks, but real work usually needs orchestration: fetch data, summarize it, branch on a condition, retry until tests pass, or pause for human approval.

Graph-based workflow systems handle this well, but authoring raw DOT by hand is verbose and awkward, especially on mobile. SFN keeps the same workflow semantics while stripping the syntax down to the essentials.

1. tool:curl -s https://example.com => page
2. llm "summarize {page}" => summary
3. tool:save_note --text={summary}

That small flow still expresses the full pipeline:

  • Step 1 runs a tool and names its output page.
  • Step 2 uses that output inside an LLM prompt and names the result summary.
  • Step 3 sends the result to another tool.
  • Linear flows with implied sequential execution
  • Parallel steps using after 0
  • Branching with if ...
  • AND-joins with after 1, 2
  • Human approval gates with wait_human
  • Retry loops and iterative cycles with goto

Specification

The formal syntax, semantics, edge cases, and examples for writing SFN flows.

Converter skill

A skill for translating SFN into Attractor-compatible DOT graphs with the required plumbing filled in.

This site is intentionally small:

  • The landing page explains what SFN is and why it exists.
  • The specification page is the main reference.
  • Usage examples can be added later as a separate section once the example set is broader.