First, both child pipelines run because the MR request “change set” includes all the files changed between the source branch and the destination branch, not just the changes in the latest push to the branch. So in my case that includes changes in a/* and b/* that’s why both child pipelines run .
This allows MR pipelines and branch pipelines, avoiding running the branch pipeline if there already a MR for that branch (and thus running only a MR pipeline in that case).
The workflow:rules in the child pipelines t prevents the downstream pipeline can not be created. Pipeline will not run for the selected trigger.The rules configuration prevented any jobs from being added to the pipeline error by configuring the child pipeline jobs to run when triggered by the parent pipeline on a MR pipeline (this is not necessary if running the pipelines as branch pipelines only, but as soon as you want to have MR pipelines, you need to add it)