# RULES — Regras para IA codar neste projeto ## 1. Estilo de código - Seguir o estilo existente do código — sem mudanças cosméticas não solicitadas. - Sem comentários em código a menos que a lógica seja objetivamente complexa e ambígua sem eles. - Nomes de variáveis funções em português (já que o domínio do projeto é em PT-BR). - Usar `snake_case` para funções e variáveis, `PascalCase` para classes. ## 2. Arquitetura - `main.py` é o único entry point. Código adicional de suporte deve ficar em `dados_*.py` ou módulos separados com `_` no nome. - Toda config vem de variáveis de ambiente (`os.getenv`), nunca de arquivos de configuração fixos. - O sistema assíncrono usa `asyncio` com `python-telegram-bot`. Manter o padrão de corrotinas (`async def`). - Não adicionar dependências a menos que seja estritamente necessário e aprovado. ## 3. Tratamento de erros - Usar `try/except` apenas onde o erro é esperado (Telegram API, arquivo ausente, JSON mal formatado). - Erros inesperados devem subir e ser capturados no `main()` com `log.error`. - Sem `try/except` genéricos silenciando exceções. ## 4. Logging - Usar `logging.getLogger(__name__)` em cada módulo. - Nível `INFO` para eventos normais (ordem enviada, ciclo iniciado, etc.). - Nível `WARNING` para situações anômalas não críticas. - Nível `ERROR` para falhas que impedem execução. ## 5. Arquivos de ordens (JSON) - Cada arquivo `ordens{n}.json` é um `array` de strings. - O arquivo deve ser JSON válido (sempre validar com `json.tool` após editar). - Não quebrar a formatação nem reordenar itens existentes. - Ao adicionar novas ordens, respeitar o estilo e tom do arquivo existente. ## 6. Variáveis de ambiente - Novos canais de envio seguem o padrão `ENVIAR{n}_*`. - Toda nova variável de ambiente deve ter default seguro no código e ser documentada no `.env.example`. ## 7. Modificações - Nunca remover funcionalidade existente. - Nunca alterar o comportamento de envio sem necessidade explícita. - Sempre atualizar `.env.example` quando uma nova variável de ambiente for adicionada. - Manter `iniciar.sh` sincronizado com os canais definidos em `main.py`. ## 8. IA — regras específicas - Complete tasks — implemente completamente, não left placeholders/TODO markers. - Before creating new files, check if existing ones can be extended instead. - Keep responses concise and technical. No conversational filler. - When implementing, consider the full context: env vars, data files, existing patterns. - Do not add emojis to code or documentation unless explicitly requested. - Always validate JSON after writing (use `python3 -m json.tool`). - Maintain the explicit/picante tone of the ordens files when creating new orders.