breaking_changes keeps the commits since a git ref whose subject marks a breaking change, like feat!:. Its breaking step checks each commit once.
Keep the items that match
where compares a field of each item, read as {{item.<field>}}, with no model call. Run the plan from a release tag:
{{breaking.items}} holds the 7 commits that passed, in their original order, and {{breaking.dropped}} the 21 that didn’t:
Ask a model about each item
When no field decides, replacewhere with an infer question. Each item gets its own yes/no verdict, and concurrency sets how many run at once:
.graph/plans/breaking_changes.yaml
Related guides
Iterate with map and reduce
Run steps on each item that passed.
Branch with route
Take different steps depending on the data.
Stop early with exit gates
End the plan when nothing passes.
Run a plan
Run a plan with inputs and use its result.