Dev abre PR, e o CI roda testes, verifica se build passa, é feito code review e o merge é feito para main.
Todo código novo na main vai gerar uma nova CI e CD, uma release para ambiente de staging, onde é feito o QA pelas partes interessadas (Dev, QA, Product).
O controle do que pode ser exibido por ambiente é feito por feature flags, basicamente um if
no código que verifica se no ambiente X (staging | production) a feature pode ser ativada ou desativada.