Understanding YAML Project Structure
Farline uses YAML to define projects. This article explains the structure and all available fields.
Basic Project Structure
name: My Project
unit: story points
scenarios:
- name: Baseline
workstreams:
- name: Frontend Team
capacity: 10
work_items:
- id: ui-design
name: UI Design
size: 20
- id: components
name: Build Components
size: 30
dependencies: [ui-design]YAML Structure Diagram
Here’s a visual representation of how Farline’s YAML structure is organized:
This diagram shows the hierarchy: Project → Scenarios → Workstreams → Work Items, with Milestones at the scenario level.
Project-Level Fields
name (required)
The name of your project.
name: Website Redesignunit (required)
The unit of measurement for capacity and work item sizes. Common values:
story pointsengineer-dayshourssprints
unit: story pointsScenarios
Each project can have multiple scenarios to model different planning options.
name (required)
The scenario name. Common scenarios:
Baseline- Your current planOptimistic- Best case scenarioPessimistic- Worst case scenarioFast Track- With additional resources
scenarios:
- name: Baseline
workstreams: [...]
- name: Fast Track
workstreams: [...]Workstreams
Workstreams represent teams or tracks of work.
name (required)
The workstream name.
- name: Frontend Teamcapacity (required)
How many units of work this workstream can complete per week.
capacity: 10 # 10 story points per weekstart_delay (optional)
Delay the start of this workstream by a number of weeks.
start_delay: 2 # Start 2 weeks into the projectcost_per_week (optional)
The weekly cost of this workstream in dollars.
cost_per_week: 15000 # $15k per weekWork Items
Work items are the individual pieces of work to be completed.
id (required)
Unique identifier for the work item. Used in dependencies.
- id: backend-apiname (required)
Display name for the work item.
name: Build Backend APIsize (required)
How many units of work this item requires (in your project’s unit).
size: 25 # 25 story pointsdependencies (optional)
Array of work item IDs that must complete before this item can start.
dependencies: [ui-design, backend-api]sequence (optional)
Controls the order work items start. Lower numbers start first. Items with the same sequence can run in parallel.
sequence: 1 # Start in the first batchdelay (optional)
Add a fixed delay (in weeks) before this work item starts.
delay: 2 # Wait 2 weeks before startingMilestones
Milestones represent key dates that depend on work items.
id (required)
Unique identifier for the milestone.
- id: beta-releasename (required)
Display name for the milestone.
name: Beta Releasedependencies (required)
Array of work item IDs that must complete before this milestone is reached.
dependencies: [testing, documentation]Complete Example
name: Mobile App Launch
unit: story points
scenarios:
- name: Baseline
workstreams:
- name: iOS Team
capacity: 12
cost_per_week: 18000
work_items:
- id: ios-auth
name: Authentication
size: 15
sequence: 1
- id: ios-core
name: Core Features
size: 40
sequence: 2
dependencies: [ios-auth]
- id: ios-polish
name: Polish & QA
size: 20
sequence: 3
dependencies: [ios-core]
- name: Backend Team
capacity: 8
cost_per_week: 12000
work_items:
- id: api-setup
name: API Infrastructure
size: 10
sequence: 1
- id: api-endpoints
name: API Endpoints
size: 25
sequence: 2
dependencies: [api-setup]
- id: api-testing
name: API Testing
size: 15
sequence: 3
dependencies: [api-endpoints]
milestones:
- id: alpha
name: Alpha Release
dependencies: [ios-core, api-endpoints]
- id: launch
name: Public Launch
dependencies: [ios-polish, api-testing]Tips for Writing YAML
- Indentation matters - YAML uses 2 spaces per level (not tabs)
- Use quotes sparingly - Only needed for special characters or numbers as strings
- Test incrementally - Build your YAML step by step
- Use the AI - The AI chat can generate YAML for you if you describe what you want
- Dependencies are powerful - Use them to model realistic project constraints
Common Patterns
Parallel Workstreams
Multiple teams working simultaneously:
workstreams:
- name: Team A
capacity: 10
work_items: [...]
- name: Team B
capacity: 10
work_items: [...]Sequential Phases
Work items that must happen in order:
work_items:
- id: phase1
name: Phase 1
size: 20
sequence: 1
- id: phase2
name: Phase 2
size: 30
sequence: 2
dependencies: [phase1]
- id: phase3
name: Phase 3
size: 25
sequence: 3
dependencies: [phase2]Cross-Team Dependencies
Frontend depending on backend:
workstreams:
- name: Backend
work_items:
- id: api
name: Build API
size: 20
- name: Frontend
work_items:
- id: ui
name: Build UI
size: 15
dependencies: [api] # Waits for backendRelated Articles
- Getting Started with Farline - Learn the basics
- Using the AI Chat - Let AI generate YAML for you
- Importing From Jira - Import existing projects
Last updated: 2025-12-19