# PR-19.2 - Infra DependencyGraphAnaliser Extraction and Module Cutover ## Briefing As decisions da familia `19` fixaram que modules e globals compartilham o mesmo kernel estrutural de analise de dependencias, vindo de um refactor do algoritmo atual de modules para `DependencyGraphAnaliser` em `util.structures`. Esta PR faz somente esse corte de infra: 1. extrair o kernel estrutural reutilizavel; 2. migrar o uso atual de modules para esse novo componente; 3. deixar a superficie pronta para a futura aplicacao no graph de globals. ## Target Introduzir um analizador estrutural generico para: 1. topological ordering, 2. deterministic traversal, 3. cycle detection, 4. e, quando util, exposicao de SCC/path para diagnostics. ## Dependencies Prerequisitos diretos: 1. `Globals Surface, Identity, and Module Boundaries Decision.md` ## Scope 1. Extrair o algoritmo atual de dependency ordering de modules para `DependencyGraphAnaliser`. 2. Definir uma API estrutural baseada em nos canonicos e edges preconstruidas. 3. Migrar a linha atual de modules para usar esse componente comum. 4. Preservar comportamento observavel dos diagnostics de modules. ## Non-Goals 1. Nao introduzir ainda globals no pipeline semantico. 2. Nao misturar semantica de modules com semantica de globals. 3. Nao alterar parser ou AST. 4. Nao alterar diagnostics user-facing da linha de globals nesta PR. ## Method 1. Extrair apenas o kernel estrutural; sem abstrair semantica de descoberta de edges. 2. Manter cada dominio responsavel por: - nos canonicos, - edges, - mapeamento para diagnostics. 3. Garantir regressao zero para a linha atual de dependency ordering de modules. ## Acceptance Criteria 1. Existe um `DependencyGraphAnaliser` reutilizavel em infra `util.structures`. 2. Modules passam a usar esse componente sem mudar o contrato observavel atual. 3. O componente nao carrega conhecimento de modulo, global ou PBS-specific semantics. 4. A futura linha de globals consegue consumir o novo kernel sem novo refactor estrutural. ## Tests 1. Testes atuais de dependency ordering e cycle detection de modules permanecem verdes. 2. Testes unitarios diretos do `DependencyGraphAnaliser` cobrem: - DAG simples, - ciclo, - ordering deterministico, - graph desconexo. ## Affected Artifacts 1. `prometeu-deps` e/ou infra estrutural equivalente 2. fases atuais que usam o algoritmo de dependency ordering de modules ## Open Questions 1. A exposicao de SCC/path pode ser minima nesta PR, desde que nao force novo refactor na PR-19.5.