Install
$ agentstack add skill-totvs-fluig-agent-skills-fluig-optimize-performance ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Otimização de Performance de Frontend Fluig
Esta skill otimiza a performance de código frontend Fluig; ela não duplica convenções — os arquivos de context/ são a fonte de verdade, referenciada abaixo.
Objetivo
Otimizar, com responsabilidade única, a performance de código frontend Fluig — DOM, eventos, requisições e carga de dados — aplicando boas práticas públicas sem alterar o comportamento observável, a i18n nem a compatibilidade com a plataforma.
Quando Usar
- Quando um widget ou Custom Element está lento, travando ou com reflows/repaints excessivos.
- Quando há muitos listeners de evento ou eventos de alta frequência (scroll, resize, input) sem controle.
- Quando o código faz muitas requisições ou carrega dados desnecessários de uma só vez.
- Antes de evoluir um artefato existente, para eliminar gargalos de renderização e de rede.
Entradas Esperadas
| Entrada | Descrição | Obrigatória | |---------|-----------|-------------| | Código alvo | Trecho ou arquivo frontend a otimizar (widget ou Custom Element) | sim | | Sintoma de performance observado | O que foi notado (ex.: lentidão ao renderizar lista, travamento no scroll, muitas chamadas REST) | não | | Contexto do artefato | Tipo do artefato em que o código roda e onde o gargalo aparece | não |
Contexto de Referência (Fonte de Verdade)
Leia antes de executar — não reproduza o conteúdo aqui:
- [conventions.md](../../context/conventions.md) — manipulação de DOM, ES6+ e
async/await, REST a endpoints internos viaWCMAPI/FLUIGC.ajax, bindings de widget, i18n, segurança e CSS responsivo e funções CSS modernas (calc/var/rgba/hsla/min/max/clamp/minmax, media e container queries). - [style-guide.md](../../context/style-guide.md) — reutilização de componentes/helpers/grid do Fluig Style Guide em vez de soluções próprias mais custosas.
Regras Aplicáveis (Resumo Executivo)
Somente o mínimo para orientar a otimização; o detalhe está no contexto. Boas práticas públicas e genéricas:
- Agrupar alterações de DOM em uma única operação; montar nós em um
DocumentFragmente inserir de uma vez → verconventions.md. - Minimizar reflow/repaint: evitar ler e escrever layout de forma intercalada dentro de laços.
- Evitar seletores repetidos: cachear a referência do elemento em uma variável em vez de reconsultar o DOM.
- Event delegation: um listener no container em vez de muitos listeners individuais → ver
conventions.md(bindings de widget). - Debounce/throttle em eventos de alta frequência (scroll, resize, input/keyup).
- Carregar dados sob demanda (paginação/lazy load) e tratar o assíncrono com
async/awaitemtry/catch→ verconventions.md. - REST a endpoints internos via
WCMAPI/FLUIGC.ajax(nuncafetch/$.ajaxdireto) → verconventions.md. - Reutilizar componentes do Style Guide em vez de recriar comportamentos custosos → ver
style-guide.md. - CSS responsivo e funções CSS modernas: preferir funções nativas (
calc/var/rgba/hsla/min/max/clamp/minmax) e media/container queries para layouts fluidos e eficientes em vez de valores fixos repetidos → verconventions.md(CSS responsivo e moderno). - Liberar recursos: remover listeners/timers ao destruir o widget para evitar vazamentos.
Procedimento
- Medir/identificar o gargalo a partir do sintoma e da leitura do código (DOM em laço, seletores repetidos, excesso de listeners, requisições redundantes, evento de alta frequência sem controle).
- Selecionar a otimização adequada do catálogo acima para cada gargalo encontrado.
- Aplicar a otimização preservando o comportamento observável e a i18n (
${i18n.getTranslation('chave')}). - Garantir que chamadas REST internas continuem via
WCMAPI/FLUIGC.ajaxe que o assíncrono seja tratado comtry/catch. - Validar o resultado com o checklist abaixo antes de entregar, anotando as otimizações aplicadas.
Saída Esperada
Código otimizado, com o comportamento original preservado e uma nota curta das otimizações aplicadas (qual gargalo foi tratado e como), mantendo i18n e compatibilidade com a plataforma.
Exemplo de Uso
Trecho ilustrativo: agrupar escritas de DOM com DocumentFragment em vez de inserir item a item.
// Antes — insere no DOM dentro do laço (reflow a cada iteração)
const list = document.querySelector(`#MyWidget_${this.instanceId} .items`);
items.forEach((item) => {
list.insertAdjacentHTML('beforeend', `${item.name}`);
});
// Depois — monta em DocumentFragment e insere uma única vez
const list = document.querySelector(`#MyWidget_${this.instanceId} .items`);
const fragment = document.createDocumentFragment();
items.forEach((item) => {
const li = document.createElement('li');
li.textContent = item.name;
fragment.appendChild(li);
});
list.appendChild(fragment);
Checklist de Validação
- [ ] Alterações de DOM agrupadas (ex.:
DocumentFragment); sem inserções repetidas em laço. - [ ] Sem seletores redundantes — referências de elementos cacheadas.
- [ ] Eventos de alta frequência com debounce/throttle e/ou delegação de eventos.
- [ ] Assíncrono tratado com
async/awaitemtry/catch; dados carregados sob demanda. - [ ] Chamadas REST a endpoints internos via
WCMAPI/FLUIGC.ajax. - [ ] Comportamento original e i18n preservados.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: totvs
- Source: totvs/fluig-agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.