How the pieces of a security-pipeline migration across about a hundred repositories fed each other: what each agent read, what it handed on, and where an edge case looped back into the rules. Click a box to see its inputs and outputs, or play the flow step by step.
51 small background scripts did the waiting and checking, so nobody had to refresh GitLab. They only read and reported; the one thing they were allowed to do was retry a job once.
Before writing anything, each group agent reviewed every repo in its group (CI file, bake file, the legacy scan job) and walked these questions to decide which change it actually needed. Across the 91 MRs, that meant reusing our shared CI template's report job in 59, only removing the old job in 23, and writing the report logic inline in 7 where the template couldn't be used.
Every problem we hit, in the order we hit it. Click one to see what we saw, what we found, what we did and the rule it left behind, lit up on the map above.
Totals for the whole migration: 96 repos audited, 12 agents, 51 background script jobs, 91 MRs. Company, team, repo and channel names are changed.