Wave Workflow (Oleadas)
Execute tasks in parallel waves based on dependency analysis.
Concept
Oleada 1: [T-001] [T-002] [T-003] ← No dependencies, run in parallel
↓ merge all → develop
Oleada 2: [T-004] [T-005] ← Depend on Oleada 1
↓ merge all → develop
Release: develop → main
Quick Commands
# View current wave status
./scripts/new-wave.sh --list
# Create new wave with tasks
./scripts/new-wave.sh "T-001 T-002 T-003"
# Create branches for all tasks
./scripts/new-wave.sh --create-branches
# Mark wave as complete
./scripts/new-wave.sh --complete
Workflow Steps
1. Analyze Dependencies
Before creating a wave, identify which tasks can run in parallel:
- Tasks with NO dependencies on each other → Same wave
- Tasks that depend on others → Next wave
2. Create Wave
./scripts/new-wave.sh "T-001 T-002 T-003"
This:
- Creates entry in
.project/Memory/WAVES.md - Records start timestamp
- Sets wave status to "in-progress"
3. Create Branches
./scripts/new-wave.sh --create-branches
Creates:
feature/t-001-descriptionfeature/t-002-descriptionfeature/t-003-description
4. Work on Tasks (Parallel)
Each task can be worked on independently:
# Terminal 1
git checkout feature/t-001
# ... work ...
git commit -m "feat(scope): implement T-001"
git push
# Terminal 2
git checkout feature/t-002
# ... work ...
git commit -m "feat(scope): implement T-002"
git push
5. Create PRs
For each task, create PR to develop:
gh pr create --base develop --title "feat: T-001 description"
6. Merge Wave
Once ALL tasks in wave are complete and PRs approved:
# Merge all PRs to develop
gh pr merge <pr-number> --merge
7. Complete Wave
./scripts/new-wave.sh --complete
This:
- Updates
.project/Memory/WAVES.md - Records completion timestamp
- Deletes merged branches (optional)
8. Next Wave
Repeat for the next wave of tasks.
Best Practices
Dependency Analysis
- Draw a simple dependency graph
- Group independent tasks
- Never exceed ~15 parallel tasks (cognitive limit)
Branch Naming
feature/t-xxx-short-descriptionfix/t-xxx-bug-description- Keep descriptions short (max 3-4 words)
PR Strategy
- One PR per task
- Base all PRs on
develop - Review in batches when possible
Merge Order
- Merge in any order if truly independent
- If hidden dependencies found, pause and re-analyze
Integration with VibeKanban
Tasks come from VibeKanban:
- List tasks:
mcp__vibe_kanban__list_tasks - Get details:
mcp__vibe_kanban__get_task - Update status:
mcp__vibe_kanban__update_task
Sync Workflow
VibeKanban (todo) → Wave created → Work → PR merged → VibeKanban (done)
Example Session
# Morning: Analyze and plan
./scripts/new-wave.sh --list
# Create Oleada 3
./scripts/new-wave.sh "T-010 T-011 T-012 T-013"
# Create branches
./scripts/new-wave.sh --create-branches
# Work through the day...
# Each dev takes 1-2 tasks
# End of day: All merged
./scripts/new-wave.sh --complete
# Check what's next
./scripts/new-wave.sh --list
Memory Files
Wave progress is tracked in:
.project/Memory/WAVES.md- All waves history.project/Memory/CONTEXT.md- Current state summary.project/Memory/KANBAN.md- Visual task board (Obsidian Brain)