Cerebro Studio · Backlog · Changelog
Cerebro • /root/cerebro/docs/BACKLOG.md
Abrir Studio Selecione um BK para aprovar, delegar curadoria ou encaminhar.

Backlog Unificado

Projeto: Cerebro. Fonte principal: /root/cerebro/docs/BACKLOG.md.

Especificações Disponíveis (fora da fila pendente)

Detalhe do BK Selecionado

/root/cerebro/docs/backlog/BK-145-auditor-diario-rnt.md • 2026-03-19T16:45:23.157Z

BK-145 · Auditor Diário Read-Only do RioNoTeatro

Criado em: 2026-03-19

Escopo: rionoteatro

Responsável: a definir

Prioridade: alta

Status: pending


1. Objetivo

Criar um auditor diário read-only que analiza a árvore do repositório /www/wwwroot/rionoteatro.com.br e envia um relatório para o WhatsApp do admin com achados de organização. O auditor nunca move, apaga ou edita arquivos.


2. Detecção de Achados

O auditor deve detectar as seguintes anomalias:

2.1 Arquivos .md fora de docs/

  • Encontrar todos os arquivos *.md que não estejam dentro do diretório docs/
  • Exceção legítima: .claude/, .cursorrules, README.md na raiz

2.2 Arquivos BK-* fora de docs/backlog/ ou docs/changelog/

  • Encontrar arquivos com nome começando em BK- que não estejam em docs/backlog/ ou docs/changelog/
  • Exceção legítima: nenhum — BKs devem estar organizados no backlog central

2.3 Relatórios sensíveis soltos na raiz

  • Identificar arquivos com padrões de relatório, credencial ou dado sensível na raiz:
  • CREDENCIAL, SENHA, TOKEN, RELATORIO, EXPOSTA
  • Arquivos .json na raiz que não sejam package.json ou composer.json
  • Arquivos .env ou com .env no nome (nunca devem estar versionados)
  • Arquivos com _bkp, _backup, _bak na raiz

2.4 Backups e temporários fora do padrão

  • Identificar arquivos de backup fora das pastas designadas:
  • Padrões: .bak, .backup, _bkp_, .tmp, .swp
  • Backups fora de backups/, docs/, ou admin/cron/backups
  • Arquivos .bak na raiz ou em admin/modulos/

2.5 Possíveis arquivos órfãos

  • Encontrar arquivos sem referência no projeto (sem links, includes ou imports para eles):
  • PHPs/HTMLs em admin/ ou na raiz que não sejam incluídos por nenhum action.php ou index.php
  • Scripts SQL fora de SQL/
  • Imagens ou assets soltos na raiz ou em uploads/ sem correspondência no banco

3. Requisitos Funcionais

3.1 Execução

  • Frequência: 1 vez por dia via cron
  • Script: /root/cerebro/scripts/auditor_rnt.sh (shell wrapper) + /root/cerebro/scripts/auditor_rnt.js (motor Node.js)
  • Saída: relatório em texto legível (máximo ~600 palavras) enviado via WhatsApp
  • Modo silêncio: se não houver achados e não for dia forçado, não envia nada

3.2 Relatório

  • Formato curto e legível (bullet points)
  • Agrupa por categoria de achado
  • Indica caminho repo-relativo e contagem por categoria
  • Inclui data e hora da análise
  • Separador claro entre seções

3.3 Permissão de exclusão (whitelist)

  • Arquivo de configuração em /root/cerebro/config/auditor_rnt_excludes.json:

```json

{

"patterns": [

"*.bak",

"README.md"

],

"paths": [

"PagSeguroLibrary/",

".well-known/"

],

"size_threshold_kb": 1000

}

```

  • Permite excluir por:
  • Padrão glob (ex.: *.bak)
  • Caminho exato (ex.: PagSeguroLibrary/)
  • Tamanho mínimo (ignorar arquivos grandes legítimos)

3.4 Nunca altera o repositório

  • O script nunca executa git mv, rm, git rm, chmod, chown
  • Leitura exclusivamente via fs/readdir/readFile em Node.js
  • Verificação final: hash do estado do repositório antes e depois deve ser idêntico

4. Critérios de Aceite

| # | Critério | Validação |

|---|---|---|

| 1 | Roda 1x/dia via cron sem interação humana | Verificar cron entry em /etc/cron.d/ ou crontab -l |

| 2 | Gera relatório legível em texto | Executar manualmente e inspecionar saída |

| 3 | Envia apenas quando há achado ou modo resumo | Testar com repo limpo (silêncio) e com achado (envio) |

| 4 | Nunca altera o repositório | Verificar git status antes e depois — idêntico |

| 5 | Permite whitelist de exclusão | Criar arquivo de exclusão e verificar que itens são filtrados |

| 6 | Detecta .md fora de docs/ | Colocar .md na raiz e verificar que aparece no relatório |

| 7 | Detecta BK-* fora de docs/backlog/ | Colocar BK-TESTE.md na raiz e verificar que aparece |

| 8 | Detecta backups fora do padrão | Criar .bak na raiz e verificar que aparece |

| 9 | Ignora exceções legítimas | README.md, .claude/, .cursorrules não devem aparecer |

| 10 | Detecta arquivos órfãos | Verificar que PHPs não referenciados são detectados |


5. Envio via WhatsApp

  • Usar o mesmo canal WhatsApp já configurado no Cérebro (monitor externo)
  • Mensagem com prefixo: [AUDITOR RNT 📋 DD/MM/YYYY]
  • Se não houver achados, enviar resumo diário opcional (configurável)
  • Cooldown anti-flood: se enviou nos últimos 30min, ignorar duplicate

6. Path List (Lock Files)

```

/root/cerebro/scripts/auditor_rnt.sh # Shell wrapper

/root/cerebro/scripts/auditor_rnt.js # Motor Node.js

/root/cerebro/config/auditor_rnt_excludes.json # Whitelist de exclusão

/docs/backlog/BK-145-auditor-diario-rnt.md # Este arquivo

```


7. Referências

  • Monitor externo do Cérebro: scripts/monitor_ronteatro.sh
  • Canal WhatsApp configurado em /root/cerebro/.env (não editar — apenas referenciar)
  • Whitelist pattern: inspirado no .gitignore mas em JSON para consumo programático