Simple Sequential Workflow¶
A basic workflow demonstrating sequential step execution with data passing.
Overview¶
This example shows:
- Basic workflow structure
- Sequential step dependencies
- Passing data between steps with
{{steps.X.output}} - Simple inline agents
The Workflow¶
examples/simple-sequential.yaml
name: "simple-sequential"
description: "Sequential pipeline with three review stages"
inputs:
files:
description: "Files to review (glob pattern)"
default: "src/**/*.go"
agents:
security-reviewer:
inline:
description: "Reviews code for security issues"
prompt: |
You are a security expert. Analyze code for vulnerabilities.
Focus on injection, authentication, and data exposure issues.
Be concise and cite specific locations.
performance-reviewer:
inline:
description: "Reviews code for performance issues"
prompt: |
You are a performance expert. Analyze code for efficiency.
Focus on algorithmic complexity, memory usage, and I/O.
Be concise and cite specific locations.
aggregator:
inline:
description: "Combines multiple reviews"
prompt: |
You summarize multiple code reviews into a single report.
Prioritize findings by severity and actionability.
steps:
# Step 1: Security review
- id: security-review
agent: security-reviewer
prompt: "Review the code in {{inputs.files}} for security issues."
# Step 2: Performance review (waits for security review)
- id: perf-review
agent: performance-reviewer
prompt: |
Review the code in {{inputs.files}} for performance issues.
For context, the security review found:
{{steps.security-review.output}}
depends_on: [security-review]
# Step 3: Summary (waits for performance review)
- id: summary
agent: aggregator
prompt: |
Create an executive summary combining:
## Security Findings
{{steps.security-review.output}}
## Performance Findings
{{steps.perf-review.output}}
Provide: top priorities, quick wins, and recommendations.
depends_on: [perf-review]
output:
steps: [summary]
format: markdown
How It Works¶
- security-review runs first (no dependencies)
- perf-review waits for security-review, then runs with its output as context
- summary waits for perf-review, then combines both outputs
Running the Example¶
Mock Mode (No API Calls)¶
goflow run \
--workflow examples/simple-sequential.yaml \
--inputs files='pkg/**/*.go' \
--mock \
--verbose
Expected output:
[INFO] Loading workflow: examples/simple-sequential.yaml
[INFO] Starting workflow: simple-sequential
[INFO] Step 1/3: security-review (security-reviewer)
[INFO] Step 2/3: perf-review (performance-reviewer)
[INFO] Step 3/3: summary (aggregator)
[INFO] Workflow completed
## Step: summary
mock output
Real Mode¶
goflow run \
--workflow examples/simple-sequential.yaml \
--inputs files='pkg/workflow/*.go' \
--verbose
Key Concepts Demonstrated¶
1. Input Parameters¶
Override at runtime: --inputs files='other/*.go'
2. Step Dependencies¶
3. Template Variables¶
Injects the actual output from the referenced step.
Variations¶
Adding More Stages¶
steps:
- id: security-review
...
- id: perf-review
depends_on: [security-review]
- id: style-review # New step
agent: style-reviewer
depends_on: [perf-review]
- id: summary
depends_on: [style-review] # Now waits for style
Using File-Based Agents¶
Replace inline agents with files:
See Also¶
- Code Review Pipeline — Same concept with parallel execution
- Tutorial: Multi-Step Pipelines — Detailed explanation