Skip to main content
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, replace where 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
The same run now makes one model call per commit:

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.