# Repository Mesh Automation

## Objetivo

Executar a cada 5 minutos um ciclo nao destrutivo de inventario, fetch, comparacao de hashes e bloqueio de risco.

## Contrato operacional

- Etapa 1: criar lock por ambiente para evitar duas sincronizacoes simultaneas.
- Etapa 2: inventariar caminho, `.git`, branch, HEAD, remote, status e upstream.
- Etapa 3: executar somente `git fetch --all --prune` nos repositorios materializados.
- Etapa 4: calcular ahead/behind sem modificar working tree.
- Etapa 5: permitir fast-forward apenas quando worktree estiver limpo e o merge for comprovadamente `--ff-only`.
- Etapa 6: bloquear qualquer dirty tree, divergencia, falta de credencial, ambiente ausente, remote divergente ou renome pendente.
- Etapa 7: gravar JSON, CSV e Markdown com hash, timestamp, comando e decisao.
- Etapa 8: nunca executar reset, clean, checkout, merge nao fast-forward, rebase ou pull generico.

## Scheduled Task Windows sugerida

```powershell
$python = 'C:\Users\Ami\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe'
$repo = 'G:\_codex-git\tudo-para-ia-mais-humana'
$central = 'G:\_codex-git\nucleo-gestao-operacional\central-de-ordem-de-servico\projects\15_repo_tudo-para-ia-mais-humana-platform'
$action = New-ScheduledTaskAction -Execute $python -Argument "-m mais_humana.cli repo-mesh --ecosystem-root G:\_codex-git --project-root $repo --central-platform-folder $central --fetch"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)
Register-ScheduledTask -TaskName 'TudoParaIA-RepositoryMeshSync' -Action $action -Trigger $trigger
```

## Cron Linux sugerido

```cron
*/5 * * * * cd /root/__gpt-codex/tudo-para-ia-mais-humana && python -m mais_humana.cli repo-mesh --ecosystem-root /root/__gpt-codex --fetch
```

## Estado desta rodada

- report_id: `repository-mesh-01dbdab36e20`
- blocked: `15`
- attention: `0`
- credential_errors: `0`
- missing_materializations: `30`

## Bloqueios para ativacao plena

- tudo-para-ia-business-platform: hash unico bb1cec9a273a; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-compliance-platform: hash unico a97cd9a1103e; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-customer-ops-platform: hash unico bf45665a80ff; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-docs-plataform: hash unico e7330785b3b7; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-finance-platform: hash unico af42e69e75fa; 2 materializacoes ausentes/inacessiveis; 1 worktrees sujos; 2 divergencias nominais; 1 bloqueios contra sync destrutiva
- tudo-para-ia-gettys-platform: hash unico d116fb397d34; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-identity-platform: hash unico 5d47be0be72a; 2 materializacoes ausentes/inacessiveis; 1 worktrees sujos; 2 divergencias nominais; 1 bloqueios contra sync destrutiva
- tudo-para-ia-integracoes-platform: 2 hashes distintos; 2 materializacoes ausentes/inacessiveis; 1 worktrees sujos; 2 remotes divergentes; 3 divergencias nominais; 2 bloqueios contra sync destrutiva
- tudo-para-ia-intelligence-platform: hash unico 37c3ae194586; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-mais-humana-platform: 2 hashes distintos; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais; 1 bloqueios contra sync destrutiva
- tudo-para-ia-mcps-internos-plataform: hash unico 694c3906aa88; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-platform-base: 2 hashes distintos; 2 materializacoes ausentes/inacessiveis; 1 worktrees sujos; 2 divergencias nominais; 2 bloqueios contra sync destrutiva
- tudo-para-ia-public-platform: hash unico 7980d3de29ab; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-stj-platform: hash unico b83f848f3ef6; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
- tudo-para-ia-ui-platform: hash unico 76c81999d710; 2 materializacoes ausentes/inacessiveis; 2 divergencias nominais
