원클릭으로
cache-auditor
Auditoria completa da infraestrutura de cache dos 3 ambientes — detecta stale, valida coerência, otimiza TTLs
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Auditoria completa da infraestrutura de cache dos 3 ambientes — detecta stale, valida coerência, otimiza TTLs
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Handover para nova sessão — carrega contexto do trabalho em andamento e instrui próximos passos
Protocolo de autodiagnostico contra os 5 problemas mais comuns da IA ao programar. Detecta overengineering, codigo duplicado, reinvencao da roda, falta de documentacao e arquivos monoliticos. Use SEMPRE antes de implementar, ao planejar mudancas, quando criar funcoes novas, ao escrever codigo, para revisar implementacoes. Palavras-chave - simples, duplicado, repetido, existe, separar, modular, documentacao, complexo, refatorar, engenharia demais, roda, reutilizar.
Guardiao de governanca frontend. Checkpoint obrigatorio ANTES de criar ou modificar CSS, HTML, inline styles, componentes visuais ou qualquer codigo de apresentacao. Previne duplicacao, hardcoded colors, keyframes orfaos, inline styles e criacao desgovernada de arquivos. Keywords: blindar frontend, anti-frankenstein, validar CSS, checar antes de criar, governanca CSS, prevenir duplicacao, revisar criacao.
Especialista em Hardening de APIs - Autenticacao, Autorizacao Multi-Tenant, Validacao de Input, Security Headers, Protecao contra Injection, Session Security e Data Exposure Prevention. Adaptado para Node.js/Express/MongoDB do Super Cartola Manager. Keywords: seguranca, security, hardening, vulnerabilidade, injection, IDOR, autenticacao, autorizacao, sessao, session, OWASP, pentest, sanitizar, validar input, exposicao de dados
Agente especialista em revisao de decisoes arquiteturais para o Super Cartola Manager. Analisa isolamento multi-tenant, sistema de modulos, integridade financeira, cache, API design e arquitetura frontend. Keywords: arquitetura, architecture, review, revisao, multi-tenant, liga_id, modulo, cache, performance, seguranca, isolamento, acoplamento, dependencia
Auditoria automatizada de módulos — segurança, UI/UX, performance, financeiro e regras de negócio
| name | cache-auditor |
| description | Auditoria completa da infraestrutura de cache dos 3 ambientes — detecta stale, valida coerência, otimiza TTLs |
Skill especialista que vasculha e audita toda a infraestrutura de cache dos 3 ambientes do Super Cartola Manager. Detecta cache stale/morto, valida coerência com o código mais recente, e otimiza para velocidade suprema.
Filosofia: A verdade absoluta é a última alteração no código. Cache NUNCA sobrepõe a realidade. Alimenta-se de atualizações, descarta antiguidade.
cache_auditorias) para histórico e comparação| Comando | Ambiente | Alvo |
|---|---|---|
/cache-auditor CACHE-APP --participante | PWA Participante | Service Worker + IndexedDB (12 stores) + Memory Cache + Module Caches + App Version |
/cache-auditor CACHE-WEB --admin | Admin Desktop | CacheManager + Ferramentas Cache Admin + MongoDB Caches + Cache Invalidator |
/cache-auditor CACHE-APP --admin | PWA Admin Mobile | Service Worker + Runtime Cache + Pages API |
┌─────────────────────────────────────────────────────────────────────────┐
│ SUPER CARTOLA - CACHE LAYERS │
├──────────────────┬──────────────────────┬──────────────────────────────┤
│ CACHE-APP │ CACHE-WEB │ CACHE-APP │
│ --participante │ --admin │ --admin │
├──────────────────┼──────────────────────┼──────────────────────────────┤
│ Service Worker │ (sem SW) │ Service Worker │
│ v18-copa-sc │ │ scm-admin-v1.0.0 │
├──────────────────┤ ├──────────────────────────────┤
│ IndexedDB │ CacheManager │ Runtime Cache │
│ SuperCartolaOff │ CartolaCache v1 │ scm-admin-runtime │
│ (12 stores) │ (6 stores) │ │
├──────────────────┤ ├──────────────────────────────┤
│ Memory Cache │ Admin Cache Tools │ Direct API Calls │
│ Map + IDB dual │ ferramentas-cache │ (pages/*.js) │
├──────────────────┤ ├──────────────────────────────┤
│ Module Caches │ │ │
│ rodadas/artil/ │ │ │
│ luva/pontos/etc │ │ │
├──────────────────┼──────────────────────┼──────────────────────────────┤
│ SERVER-SIDE (COMPARTILHADO) │
│ MongoDB Caches: extrato, ranking, top10, pontos-corridos, │
│ mata-mata, melhor-mes, capitao │
│ Cache Invalidator: cascata de dependências │
│ Cache Routes: universal + por módulo │
│ App Version: force-update por scope │
└─────────────────────────────────────────────────────────────────────────┘
| Camada | Arquivo | Tecnologia |
|---|---|---|
| Service Worker | public/participante/service-worker.js | Cache API (super-cartola-v18-copa-sc) |
| IndexedDB Offline | public/participante/js/participante-offline-cache.js | IDB SuperCartolaOffline v2 |
| Memory Cache | public/js/core/cache-manager.js | IDB CartolaCache + Map |
| Rodadas Cache | public/js/rodadas/rodadas-cache.js | Map (100 max, 5min) |
| Artilheiro Cache | public/js/artilheiro-campeao/artilheiro-campeao-cache.js | Map (100 max, 50MB) |
| Luva de Ouro Cache | public/js/luva-de-ouro/luva-de-ouro-cache.js | Map |
| Pontos Corridos Cache | public/js/pontos-corridos/pontos-corridos-cache.js | Map |
| Fluxo Financeiro Cache | public/js/fluxo-financeiro/fluxo-financeiro-cache.js | Map + cacheManager |
| App Version | public/js/app/app-version.js | localStorage |
| Camada | Arquivo | Tecnologia |
|---|---|---|
| CacheManager | public/js/core/cache-manager.js | IDB + Map (compartilhado) |
| Admin Cache Tools | public/js/ferramentas/ferramentas-cache-admin.js | Buttons manuais |
| Cache Invalidator | utils/cache-invalidator.js | Server-side cascading |
| Cache Routes | routes/cache-universal-routes.js | Express endpoints |
| Ranking Cache Routes | routes/ranking-geral-cache-routes.js | Express endpoints |
| Extrato Cache Routes | routes/extratoFinanceiroCacheRoutes.js | Express endpoints |
| Collection | Model | Propósito |
|---|---|---|
extratofinanceirocaches | models/ExtratoFinanceiroCache.js | Extrato financeiro consolidado |
rankinggeralcaches | models/RankingGeralCache.js | Ranking geral da liga |
top10caches | models/Top10Cache.js | Top 10 por rodada |
pontoscorridoscaches | models/PontosCorridosCache.js | Classificação pontos corridos |
matamatacaches | models/MataMataCache.js | Torneio mata-mata |
melhor_mes_cache | models/MelhorMesCache.js | Performance mensal |
capitao_caches | models/CapitaoCaches.js | Capitão de luxo |
CACHE_NAME e verificar se corresponde à versão mais recenteSTATIC_ASSETS está completo (comparar com arquivos reais em /participante/)activate limpa caches antigos corretamenteskipWaiting() no evento installmodules-registry.json — detectar stores órfãosTEMPORADA_ENCERRADA usa ParticipanteConfig.SEASON_STATUS corretamenteDB_VERSION foi incrementado quando stores mudaram_initPromise pattern)cleanExpired() roda automaticamente e remove entries > 2x TTLcleanExpired automáticopublic/js/**/*cache*.js — inventariar todos os caches de módulotemporada está nos cache keys (segregação por temporada)CACHE_TTL e CHECK_INTERVAL_MS são razoáveis (mobile: 60s/300s)limparCachesAntigos() identifica nomes de cache SW obsoletosCURRENT_SW_CACHE hardcoded em app-version.js vs CACHE_NAME real no SWversion-scope.json inclui todos os arquivos relevantes do participantetemporada indexadoCACHE_DEPENDENCIES em cache-invalidator.js está completo (todos eventos cobertos)cache_auditorias{
// Identificação
modo: String, // "CACHE-APP-participante" | "CACHE-WEB-admin" | "CACHE-APP-admin"
data_auditoria: Date, // Timestamp da auditoria
// Scores
score_geral: Number, // 0-100
score_por_categoria: {
service_worker: Number, // 0-100 (null se N/A)
indexeddb: Number, // 0-100 (null se N/A)
memory_cache: Number, // 0-100
module_caches: Number, // 0-100
mongodb_caches: Number, // 0-100
invalidation: Number, // 0-100
version_system: Number, // 0-100
performance: Number // 0-100
},
// Status
status: String, // "excelente" | "bom" | "atencao" | "critico"
// Achados
achados: [{
codigo: String, // Ex: "SW-03", "IDB-01"
categoria: String, // "service_worker" | "indexeddb" | "memory_cache" | etc.
severidade: String, // "critico" | "alto" | "medio" | "baixo"
descricao: String, // O que foi encontrado
arquivo: String, // Caminho do arquivo
linha: Number, // Linha (opcional)
acao_recomendada: String, // Correção sugerida
auto_corrigivel: Boolean // A skill pode corrigir automaticamente?
}],
// Inventário (snapshot das camadas de cache)
inventario: {
service_workers: [{
arquivo: String,
cache_name: String,
static_assets_count: Number,
estrategia: String // "network-first" | "cache-first" | "network-only"
}],
indexeddb_stores: [{
db_name: String,
db_version: Number,
stores: [{
nome: String,
ttl_ms: Number,
ttl_legivel: String // "30 minutos"
}]
}],
memory_caches: [{
arquivo: String,
tipo: String, // "Map" | "Object"
max_entries: Number,
ttl_ms: Number
}],
mongodb_caches: [{
collection: String,
model: String,
indices: [String],
temporada_filtrada: Boolean
}]
},
// Cache Morto Detectado
cache_morto: [{
tipo: String, // "orphan_store" | "stale_sw_cache" | "orphan_mongodb" | "dead_entry"
descricao: String,
tamanho_estimado: String, // "~150KB"
acao: String // "remover" | "atualizar" | "investigar"
}],
// Validação de Coerência
coerencia: {
sw_cache_name_sincronizado: Boolean,
indexeddb_stores_match_modules: Boolean,
ttls_consistentes: Boolean,
invalidation_chain_completa: Boolean,
version_system_ativo: Boolean
},
// Metadata
versao_skill: String, // "1.0.0"
duracao_auditoria_ms: Number,
auditor: String, // "cache-auditor"
createdAt: Date,
updatedAt: Date
}
Índice recomendado: { modo: 1, data_auditoria: -1 }
# AUDITORIA DE CACHE: CACHE-APP --participante
**Data:** 05/02/2026 14:30
**Modo:** CACHE-APP --participante
**Score Geral:** 82/100 (Bom)
**Status:** BOM
---
## Resumo por Categoria
| Categoria | Score | Checks | Status |
|-----------|-------|--------|--------|
| Service Worker | 5/6 | 83% | Atenção |
| IndexedDB | 6/6 | 100% | Excelente |
| Memory Cache | 3/4 | 75% | Atenção |
| Module Caches | 4/4 | 100% | Excelente |
| App Version | 3/4 | 75% | Atenção |
| Performance | 2/2 | 100% | Excelente |
---
## Achados
### ATENÇÃO (3 issues)
**[SW-03]** Service Worker: CURRENT_SW_CACHE em app-version.js não sincronizado
- Arquivo: public/js/app/app-version.js
- Valor hardcoded: `super-cartola-v17-module-fix`
- Valor real do SW: `super-cartola-v18-copa-sc`
- Ação: Atualizar CURRENT_SW_CACHE para valor correto
**[CM-02]** CacheManager: overlap com OfflineCache no store "ranking"
- CacheManager TTL: 10min
- OfflineCache TTL: 30min
- Ação: Unificar TTLs ou documentar razão da diferença
**[AV-03]** App Version: CURRENT_SW_CACHE desatualizado
- Mesmo issue do SW-03 (dependência)
---
## Cache Morto Detectado
| Tipo | Descrição | Ação |
|------|-----------|------|
| stale_sw_cache | `super-cartola-v17-module-fix` referenciado mas inexistente | Atualizar referência |
---
## Coerência
| Check | Status |
|-------|--------|
| SW cache name sincronizado | FALHA |
| IndexedDB stores = módulos | OK |
| TTLs consistentes | ATENÇÃO |
| Invalidation chain completa | OK |
| Version system ativo | OK |
---
**Salvo em:** cache_auditorias (MongoDB)
**Skill version:** 1.0.0
**Duração:** 4200ms
| Nível | Critério | Ação |
|---|---|---|
| CRÍTICO | Cache servindo dados incorretos, SW bloqueando atualizações | Corrigir imediatamente |
| ALTO | TTLs muito longos para dados voláteis, invalidation chain quebrada | Corrigir antes do deploy |
| MÉDIO | Overlap de caches, stores órfãos, CDNs deprecados | Corrigir no sprint |
| BAIXO | Otimizações de performance, sugestões de melhoria | Backlog |
/cache-auditor CACHE-APP --participante
/cache-auditor CACHE-WEB --admin
/cache-auditor CACHE-APP --admin
Audite o cache do participante app usando o Cache Auditor skill
Requisito: IA deve ter acesso a Read, Grep, Glob e Bash para executar os checks.
Referencia rapida para decisoes de cache no projeto.
| Cenario | Aplicar Cache? | Exemplo no Projeto |
|---|---|---|
| Dados lidos com frequencia, mudam raramente | SIM | Config de liga, regras, modulos ativos |
| Respostas de APIs externas | SIM | API Cartola (rodadas, mercado, atletas) |
| Computacoes pesadas deterministicas | SIM | Rankings, pontos corridos, extrato |
| Dados financeiros em operacao | NAO | Saldo durante transacao (usar banco) |
| Dados com requisito estrito de consistencia | NAO | Contagem de votos, resultados finais |
| Estrategia | Descricao | Uso no SuperCartola |
|---|---|---|
| Cache-Aside | App busca no cache; se miss, busca no DB e preenche cache | NodeCache backend (rankings, rodadas) |
| TTL-Based | Cache expira apos tempo definido | Rodadas 5min, Rankings 10min, Configs 30min |
| Event-Driven Invalidation | Cache limpo quando evento ocorre | cache-invalidator.js — invalida cascata |
| Stale-While-Revalidate | Serve cache stale enquanto atualiza em background | Service Worker (participante PWA) |
| Tipo de Dado | TTL | Justificativa |
|---|---|---|
| Rodadas | 5 min | Dados mudam durante jogos |
| Rankings | 10 min | Derivado de rodadas |
| Configs | 30 min | Mudam raramente |
| Mercado (API Cartola) | 5 min | Status muda periodicamente |
| Atletas (API Cartola) | 15 min | Escalacoes mudam no dia do jogo |
| Armadilha | Problema | Solucao |
|---|---|---|
| Cache como fonte de verdade | Dado incorreto servido se cache corrompido | Banco SEMPRE prevalece; endpoint de recalculo |
| Thundering herd | Multiplos requests rebuildam cache ao mesmo tempo | Lock no rebuild; stale-while-revalidate |
| Cache sem TTL | Nunca expira, dado stale permanente | SEMPRE definir TTL explicito |
| Invalidacao em cascata falha | Cache de extrato nao atualiza quando ranking muda | Mapear dependencias em cache-invalidator.js |
| Cache por modulo sem liga_id | Dados de uma liga poluem cache de outra | TODA chave de cache inclui liga_id |
# Verificar TTLs configurados no projeto
grep -rn "ttl\|TTL\|maxAge\|max_age" --include="*.js" utils/ services/ config/ | grep -v node_modules
# Verificar chaves de cache sem liga_id
grep -rn "cache\.set\|cache\.get\|cacheKey" --include="*.js" . | grep -v "liga\|ligaId" | grep -v node_modules
# Verificar invalidacao configurada
grep -rn "invalidat\|clearCache\|flushCache" --include="*.js" utils/ services/
Ultima atualizacao: 2026-03-12 Versao: 2.0.0 (Enriquecido com estrategias de cache do agnostic-core) Autor: Sistema Super Cartola Manager