AGENTS.md
agents.md/AGENTS.mdAGENTS.md
Quality
54/100
Scores the file, not the repository.Length
779 words
15 headings · 4 code blocksRepository
1
— · pushed 86 days agoLast changed
3 days ago
First indexed 3 days ago.1# AGENTS.md — Diretrizes do Projeto Comanda Digital23> Este arquivo define as regras, padrões e contexto do projeto.4> Todo agente de IA ou desenvolvedor DEVE ler este arquivo antes de qualquer alteração.56---78## 📌 Visão Geral910**Comanda Digital** é um SaaS multi-tenant para gestão de restaurantes.11Cada restaurante é isolado por `restaurante_id`. Nenhuma query pode misturar dados entre restaurantes.1213- **Domínio produção:** https://pantanaldev.com.br14- **Repositório:** github.com/friamericardo-ux/Sistema-Restaurante15- **Deploy:** Coolify v4 + Docker + Hetzner CPX22 (2 vCPU, 4GB RAM)1617---1819## 🏗️ Stack Técnica2021| Camada | Tecnologia |22|---|---|23| Backend | Python 3.11 + Flask |24| Banco de dados | MySQL 8 (PyMySQL + SQLAlchemy) |25| Deploy | Docker + Coolify |26| Proxy/SSL | Traefik + Let's Encrypt |27| Frontend | HTML + CSS + JS (Jinja2 templates) |2829---3031## 📁 Estrutura de Pastas3233```34/35├── app.py # Entrypoint Flask + rotas principais36├── repository.py # Todas as queries ao banco de dados37├── migrations/ # Scripts SQL de migração (001, 002...)38├── static/39│ ├── css/ # Estilos — NÃO alterar sem pedido explícito40│ ├── js/ # Scripts frontend41│ └── img/ # Imagens e uploads42├── templates/ # HTML Jinja243├── .env # Variáveis locais — NUNCA commitar44├── AGENTS.md # Este arquivo45└── requirements.txt # Dependências Python46```4748---4950## 🔒 Regras de Segurança — OBRIGATÓRIAS51521. **NUNCA** commitar `.env` ou qualquer arquivo com credenciais532. **NUNCA** expor `SECRET_KEY`, senhas de banco ou API keys no código543. Senhas de usuário SEMPRE com `werkzeug.security` (hash bcrypt)554. Toda rota autenticada DEVE verificar `session['user_id']` e `session['restaurante_id']`565. `SESSION_COOKIE_SECURE=True` em produção576. Inputs do usuário SEMPRE sanitizados antes de queries SQL5859---6061## 🏢 Regras de Multi-Tenancy — CRÍTICO6263- Toda query DEVE filtrar por `restaurante_id`64- O `restaurante_id` vem sempre da sessão: `session['restaurante_id']`65- **NUNCA** retornar dados de um restaurante para outro66- Superadmin (`role='superadmin'`) pode ver todos — tratar separado6768```python69# CORRETO70produtos = db.execute(71 "SELECT * FROM produtos WHERE restaurante_id = %s",72 (session['restaurante_id'],)73)7475# ERRADO — vaza dados entre restaurantes76produtos = db.execute("SELECT * FROM produtos")77```7879---8081## 🗄️ Banco de Dados8283**Conexão:** MySQL via `DATABASE_URL` no ambiente (nunca hardcoded)8485**Tabelas principais:**86- `restaurantes` — cadastro dos tenants87- `users` — com colunas: id, username, password_hash, role, restaurante_id88- `produtos` — cardápio por restaurante89- `adicionais` + `adicional_categoria` — extras dos produtos90- `pedidos_delivery` — pedidos com status e entregador91- `mesas` + `historico_mesas` — gestão de mesas92- `configuracoes` — configs por restaurante (taxa entrega, WhatsApp etc)93- `caixa_sessoes` + `caixa_fechamentos` — controle de caixa94- `clientes_cache` — cache de clientes por restaurante95- `schema_migrations` — controle de versão do banco9697**Regras:**98- Migrations numeradas sequencialmente: `001_`, `002_`, etc.99- Toda nova tabela ou coluna = nova migration, nunca alterar migration existente100- Usar apenas MySQL — sem SQLite em produção101102---103104## 🐍 Padrões de Código Python105106```python107# Estrutura padrão de rota Flask108@app.route('/admin/exemplo')109@login_required110def exemplo():111 try:112 restaurante_id = session['restaurante_id']113 dados = repository.buscar_dados(restaurante_id)114 return render_template('exemplo.html', dados=dados)115 except Exception as e:116 app.logger.error(f"Erro em /admin/exemplo: {e}")117 return jsonify({'erro': 'Erro interno'}), 500118```119120- Toda lógica de banco vai em `repository.py` — não inline no `app.py`121- Usar `try/except` em toda rota122- Logar erros com `app.logger.error()` — não usar `print()` em produção123- Retornar JSON para rotas `/api/` e HTML para rotas de página124125---126127## 🎨 Frontend128129- CSS já está definido e funcional — **não alterar** sem pedido explícito130- Templates Jinja2 em `/templates/`131- JS de polling do painel delivery em `static/js/painel.js`132- Não adicionar bibliotecas externas sem aprovação133134---135136## 🚀 Deploy e Ambiente137138**Variáveis de ambiente obrigatórias no Coolify:**139```140DATABASE_URL=mysql+pymysql://mysql:SENHA@HOST:3306/default141SECRET_KEY=<chave forte gerada>142FLASK_ENV=production143```144145**Fluxo de deploy:**1461. Push para `main` no GitHub1472. Coolify detecta e rebuilda automaticamente1483. Verificar logs no Coolify após deploy149150**NUNCA** reiniciar containers manualmente sem saber o impacto.151152---153154## ✅ Checklist antes de qualquer alteração155156- [ ] Li o AGENTS.md completo157- [ ] A mudança filtra por `restaurante_id`?158- [ ] Tem `try/except` na rota?159- [ ] Não estou alterando CSS sem pedido?160- [ ] Não estou commitando `.env`?161- [ ] Se mudou banco → criei migration nova?162- [ ] Testei localmente antes de sugerir o deploy?163164---165166## 🐛 Problemas conhecidos (atualizar conforme resolver)167168- [ ] `/api/dashboard/resumo` retorna 500 — causa: query com erro ou tabela faltando169- [ ] `/admin/adicionais` retorna 500 — mesma causa provável170- [ ] Logs de DEBUG no `app.py` e `repository.py` — remover após estabilizar171- [ ] `SESSION_COOKIE_SECURE` desativado temporariamente — reativar após HTTPS estável172173---174175*Última atualização: 27/04/2026*176
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| SkeneTechnologies/skene-cookbookAGENTS.md · 51 | AGENTS.md | setupbuildtestlint-format+7 | 100/100 | 2 days ago | |
| wpscanteam/wpscanAGENTS.md · 9.7k | AGENTS.md | setupbuildteststyle+6 | 100/100 | 2 days ago | |
| OnlyTerp/prompt-cache-skillsAGENTS.md · 112 | AGENTS.md | setupbuildtestlint-format+5 | 100/100 | 3 days ago | |
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 199k | AGENTS.md | buildteststylearch+3 | 100/100 | 3 days ago | |
| aaif-goose/gooseAGENTS.md · 52k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 3 days ago | |
| vllm-project/vllmAGENTS.md · 88k | AGENTS.md | setuptestlint-formatstyle+5 | 100/100 | 3 days ago | |
| ethereum/go-ethereumAGENTS.md · 51k | AGENTS.md | buildtestlint-formatgit+1 | 100/100 | 3 days ago | |
| bagisto/bagistoAGENTS.md · 28k | AGENTS.md | setupbuildteststyle+7 | 100/100 | 3 days ago |
