junta-leiloeiros — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited junta-leiloeiros (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Coleta e consulta dados de leiloeiros oficiais de todas as 27 Juntas Comerciais do Brasil. Scraper multi-UF, banco SQLite, API FastAPI e exportacao CSV/JSON.
Coleta dados públicos de leiloeiros oficiais de todas as 27 Juntas Comerciais estaduais, persiste em banco SQLite local e oferece API REST e exportação em múltiplos formatos.
C:\Users\renat\skills\junta-leiloeiros\
├── scripts/
│ ├── scraper/
│ │ ├── base_scraper.py ← classe abstrata
│ │ ├── states.py ← registro dos 27 scrapers
│ │ ├── jucesp.py / jucerja.py / jucemg.py / jucec.py / jucis_df.py
│ │ └── generic_scraper.py ← usado pelos 22 estados restantes
│ ├── db.py ← banco SQLite
│ ├── run_all.py ← orquestrador de scraping
│ ├── serve_api.py ← API FastAPI
│ ├── export.py ← exportação
│ └── requirements.txt
├── references/
│ ├── juntas_urls.md ← URLs e status de todas as 27 juntas
│ ├── schema.md ← schema do banco
│ └── legal.md ← base legal
└── data/
├── leiloeiros.db ← banco SQLite (criado no primeiro run)
├── scraping_log.json ← log de cada coleta
└── exports/ ← arquivos exportadospip install -r C:\Users\renat\skills\junta-leiloeiros\scripts\requirements.txt
## Para Sites Com Javascript:
playwright install chromium
## Todos Os 27 Estados
python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py
## Estados Específicos
python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py --estado SP RJ MG
## Ver O Que Seria Coletado Sem Executar
python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py --dry-run
## Controlar Paralelismo (Default: 5)
python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py --concurrency 3python C:\Users\renat\skills\junta-leiloeiros\scripts\db.py
sqlite3 C:\Users\renat\skills\junta-leiloeiros\data\leiloeiros.db \ "SELECT estado, COUNT(*) FROM leiloeiros GROUP BY estado"
## Servir Api Rest
python C:\Users\renat\skills\junta-leiloeiros\scripts\serve_api.py
**Endpoints:**
- `GET /leiloeiros?estado=SP&situacao=ATIVO&nome=silva&limit=100`
- `GET /leiloeiros/{estado}` — ex: `/leiloeiros/SP`
- `GET /busca?q=texto`
- `GET /stats`
- `GET /export/json`
- `GET /export/csv`
## Exportar Dados
python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format csv python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format json python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format all python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format csv --estado SP
## Usar Em Código Python
import sys sys.path.insert(0, r"C:\Users\renat\skills\junta-leiloeiros\scripts") from db import Database
db = Database() db.init()
leiloeiros = db.get_all(estado="SP", situacao="ATIVO")
resultados = db.search("silva")
stats = db.get_stats()
## Adicionar Scraper Customizado
Se um estado precisar de lógica específica (ex: site usa JavaScript):
from .base_scraper import AbstractJuntaScraper, Leiloeiro from typing import List
class MeuEstadoScraper(AbstractJuntaScraper): estado = "XX" junta = "JUCEX" url = "https://www.jucex.xx.gov.br/leiloeiros"
async def parse_leiloeiros(self) -> List[Leiloeiro]: soup = await self.fetch_page() if not soup: return []
return [self.make_leiloeiro(nome="...", matricula="...")]
Registrar em `scripts/scraper/states.py`:from .meu_estado import MeuEstadoScraper SCRAPERS["XX"] = MeuEstadoScraper
## Referências
- URLs de todas as juntas: `references/juntas_urls.md`
- Schema do banco: `references/schema.md`
- Base legal da coleta: `references/legal.md`
- Log de coleta: `data/scraping_log.json`
## Best Practices
- Provide clear, specific context about your project and requirements
- Review all suggestions before applying them~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.