plugadvpl
ListedPlugin Claude Code + CLI Python que indexa fontes ADVPL/TLPP do Protheus em SQLite + FTS5. Claude consulta metadados sem queimar tokens lendo .prw inteiro.
Bundles
Everything this plugin ships — skills, agents, commands, hooks, and MCP servers it bundles.
Skills (63)
advpl-advanced
Tópicos avançados ADVPL — transações ACID (Begin Transaction + DisarmTransaction), relatórios TReport (TRSection/TRCell/TRFunction), FWTemporaryTable, manipulação de arquivos (FT_F* família 2 para SPED/EDI), MsNewGetDados, threads (MsRunInThread), OOP em ADVPL clássico (Class/Method/Self), reflection via Type/ValType, NoRound financeiro, anti-padrões legados (AxCadastro/Modelo2/Modelo3). Use quando contexto sair do escopo básico de cadastros/MVC.
advpl-debugging
Top 30 erros comuns em ADVPL/TLPP em produção e métodos de debug. Tabela de sintoma → causa raiz → comando de diagnóstico → fix. Use quando o usuário cola um erro do AppServer.log, descreve "está dando erro" sem detalhe, ou pede ajuda pra investigar bug Protheus.
advpl-dicionario-sx-validacoes
Validações ADVPL embarcadas no dicionário SX (X3_VALID, X3_INIT, X3_WHEN, X3_VLDUSER, X7_REGRA, X1_VALID). Use ao analisar customização de cadastro/dicionário ou rastrear impacto de mudança de campo via `plugadvpl impacto`.
advpl-dicionario-sx
Dicionário SX do Protheus — SX1 (perguntas), SX2 (tabelas), SX3 (campos), SX5 (tabelas genéricas), SX6 (parâmetros MV_*), SX7 (gatilhos), SX8 (numeração sequencial), SX9 (relacionamentos), SXA (pastas/folders), SXB (consultas F3), SXG (grupos de campo), SIX (índices). Use ao criar campo/parâmetro/gatilho/consulta, customizar via dicionário, ou diagnosticar comportamento controlado pelo SX. Para análise cruzada com fontes, use /plugadvpl:impacto e /plugadvpl:gatilho.
advpl-embedded-sql
SQL embarcado em ADVPL/TLPP — BeginSql/EndSql (preferido), TCQuery (legacy), TCSqlExec (DML), MPSysOpenQuery (autosetfield). Macros obrigatórias %notDel%, %xfilial%, %table%, %exp%, %Order%, %top%, %LIMIT%. Use ao gerar/editar query SQL embarcada, refatorar TCQuery+RetSqlName pra BeginSql, ou revisar regras PERF-001/002/003 e SEC-001 do lint.
advpl-encoding
Política de encoding em fontes ADVPL/TLPP — cp1252 (Windows-1252) padrão para .prw/.prx clássico, utf-8 para .tlpp moderno, preserve-by-default. Funções ADVPL EncodeUTF8/DecodeUTF8/STRICONV pra conversão runtime. Use antes de Edit/Write em .prw/.prx/.tlpp, ou quando ver mojibake ("ç", "ã") em qualquer output.
advpl-fundamentals
Fundamentos ADVPL/TLPP — notação húngara (c/n/d/l/a/o/b/x/u), naming convention, escopos Local/Static/Private/Public, limite de 10 chars em .prw/.prx (250 em .tlpp), prefixo de cliente em User Function, ~195 funções restritas. Use antes de gerar/editar QUALQUER função, ao revisar nomes, ou ao decidir se símbolo é nativo/restrito/customer.
advpl-jobs-rpc
JOBs e RPC no Protheus — Main Function, RpcSetType(3)+RpcSetEnv(emp,fil,user,pwd,env,modulo), PREPARE/END ENVIRONMENT, StartJob, MsRunInThread, scheduler via appserver.ini. Funções proibidas em JOB (MsgInfo, Pergunte, Help, FwAlertHelp). FwLogMsg para log estruturado. Use ao trabalhar com processo agendado, integração batch ou RPC.
advpl-matxfis
Família MATXFIS (Faturamento/Fiscal Protheus) — geração de NF-e, SPED, ECF, REINF, integração SF2/SD2/SF3, PEs do módulo fiscal. Use quando o tema for nota fiscal, livro fiscal ou obrigação acessória.
advpl-mvc-avancado
MVC avançado ADVPL/Protheus via PE (Pontos de Entrada) — adicionar grids customizadas em telas MVC padrão (CNTA300/MATA070/MATA440/MATA460/FINA040 via *STRU), AddTrigger em cascata, validações preservando original (bLinePost), SetErrorMessage estruturado, FWSaveRows/FWRestRows para navegação segura, integração MATXFIS dentro de gatilhos MVC, controle de comportamento por status. Use quando customizar MVC TOTVS padrão sem alterar fonte original.
advpl-mvc-tlpp
Use ao criar/editar rotina MVC (browse, ModelDef/ViewDef/MenuDef, cadastro com inclusão) em fonte .tlpp com namespace, migrar MVC de .prw pra .tlpp, ou diagnosticar "browse abre mas Incluir/Visualizar não respondem" / "menu sem opções" em TLPP. Cobre a resolução por namespace (FWLoadModel/ACTION/SetMenuDef recebem namespace.funçãoPrincipal), regras do U_, pré-requisito release 12.1.2410 + LIB 20240520, FWLoadBrw/BrowseDef e FWMVCRotAuto sem StaticCall. Para MVC em .prw clássico use advpl-mvc.
advpl-mvc
Padrões MVC em ADVPL/TLPP — MenuDef/ModelDef/ViewDef, MPFormModel, FWFormStruct, FWMVCMenu pra aRotina automático, FWExecView (tela interativa) vs FWMVCRotAuto (headless), e o padrão MODERNO de hooks via FWModelEvent + InstallEvent (substitui bCommit/bTudoOk descontinuados). Use ao criar/editar cadastros MVC, adicionar validação ou gatilho, ou refatorar AxCadastro/Modelo2/Modelo3 legados.
Show all 63 bundled skills Showing all 63 bundled skills
advpl-pontos-entrada
Pontos de Entrada (PEs) no Protheus — User Function NOME(PARAMIXB[1..N]), naming patterns (MA440LOK/MT100GRV/A300STRU), retorno via Return ou PARAMIXB[última-posição], convenção _pe.prw, ExecBlock/ExistBlock no fonte TOTVS, ~280 PEs catalogadas em pontos_entrada_padrao. Use ao criar/editar PE, refatorar rotina customizada que devia ser PE, ou investigar comportamento estranho em rotina padrão.
advpl-refactoring
6 padrões de refactor comuns em ADVPL/TLPP — DbSeek loop, Posicione repetido, IFs hardcoded, AxCadastro→MVC, string concat em loop, RecLock sem Begin Transaction. Inclui before/after e quando NÃO aplicar. Use quando o usuário pede "melhorar", "refatorar" ou "está lento" um fonte ADVPL.
advpl-tlpp-named-params
TLPP suporta named arguments na chamada via operador `=` (igualdade). Permite ordem livre, omissão de opcionais e código autodocumentado. Liberado em AppServer 20.3.2.0+ (funções/métodos) e 24.3.1.0+ (classes via New()). Use ao escrever ou refatorar chamadas TLPP com 3+ parâmetros, parâmetros opcionais, ou ao modernizar Static Functions legadas.
advpl-tlpp
TLPP (TOTVS Language Plus Productive, também TL++) — sucessor moderno do ADVPL com OO completa, namespaces (custom.<seg>.<svc>), annotations @Get/@Post/@Test, JSON nativo, try/catch/finally, reflection, identificadores até 250 chars (vs 10 em .prw), modificador default PRIVATE (oposto do ADVPL PUBLIC). Use ao trabalhar com arquivos .tlpp/.th, código moderno, REST tlppCore, ou migração ADVPL→TLPP.
advpl-ui-patterns
Patterns visuais do Protheus (SmartClient) — browses (FWMarkBrowse/FWBrowse/FWFormBrowse/MsSelect), janelas MsDialog (MsAdvSize pra maximizar, OWNER, fechamento via TTimer), ParamBox por tipo, atalhos SetKey+VK_*, coloração de linha (AddLegend/SetBlkBackColor/bColor), export Excel via FWMSExcel:GetXMLFile (gera .xml, não .xlsx). Use ao construir/editar UI Protheus server-side fora de MVC, escolher tipo de browse, maximizar diálogo, colorir linha, montar ParamBox, registrar atalho de teclado, ou exportar grid pra Excel.
advpl-web
Interfaces web no Protheus — ADVPL ASP (.APH/.APW), módulos web Webex, métodos HTTP GET/POST/HTTPSESSION/COOKIE, threads pool JOB_WEBEX no appserver.ini, portais multi-empresa com RpcSetEnv (aceitável aqui, diferente de REST), upload/download, PEs APWEBEX. Use ao construir UI web Protheus server-rendered. Para REST/JSON, veja advpl-webservice.
advpl-webservice
Use ao criar/editar API REST ou SOAP no Protheus, escolher entre WSRESTFUL (clássico) e @Get/@Post (notation tlppCore — ~3x mais rápido, suporta @Patch + Swagger), migrar de uma pra outra, configurar PrepareIn + TenantId, validar JWT/OAuth2, ou revisar SEC-001 (RpcSetEnv em REST). Inclui pegadinhas como ::SetResponse cumulativo, WSMETHOD sub-nome, requisitos de versão (notation precisa AppServer 20+).
advpl-word
Use ao gerar/preencher/imprimir documentos do MS Word (carta, contrato, mala direta, .doc/.docx/.rtf/PDF) em ADVPL/TLPP Protheus. A API real de Word é a família de funções OLE_* (OLE_CreateLink/OLE_NewFile/OLE_SetDocumentVar/OLE_UpdateFields/OLE_SaveAsFile/OLE_PrintFile/OLE_CloseFile/OLE_CloseLink) com template .dot/.dotx + DocVariable — mas é CLIENT-SIDE (Word instalado; NÃO roda em REST/JOB/servidor/SmartClient HTML). Para servidor/headless o caminho portável é RTF montado à mão + MemoWrite. NÃO existe MsWord()/FWMSWord/FWGeraWord/FWLerWord/CreateObject("Word.Application") nativo de framework nem writer/reader .docx nativo. Lista funções alucinadas comuns.
arch
Visao arquitetural de um arquivo ADVPL/TLPP (use ANTES de Read - economiza tokens)
callees
Lista o que uma funcao/metodo ADVPL/TLPP chama (call graph direto no indice plugadvpl/Protheus)
callers
Lista quem chama uma funcao/metodo ADVPL/TLPP (call graph reverso no indice plugadvpl/Protheus)
catalog
Consulta catalogo importado (ingest-tsv) - lista/filtra/agrega + decode X3_CBOX + cruza *_FUNCAO com fontes
check-build
Verifica uso de método FW*/Ms* ausente numa build Protheus alvo (catálogo apis_por_build), antes de compilar
cobertura-doc
Cobertura de Protheus.doc agregada por módulo — refactor priority pra documentação (Universo 4 Feature B, v0.6.0+)
coletadb
Extrai o COLETADB.tlpp (componente servidor que dumpa o dicionario SX do Protheus) pra raiz do projeto, na versao casada com o plugin — pra compilar e usar com ingest-protheus
compile
Compila fonte ADVPL via plugadvpl (wrapper sobre advpls TOTVS). Workflow guiado pelo agente.
deploy
Encadeia compile → tq → smoke num único flow guiado para fontes ADVPL/.prw no Protheus. Use quando o usuário pede "deploya esse fonte", "compila e restarta", ou termina edit-prw e quer ver o efeito no AppServer.
diagnose
Avalia os pontos de decisao de um fonte contra um registro (desfecho exato + relativizacao - numero sensivel vira razao)
doc-writer
Gera bloco Protheus.doc canônico TOTVS para função ADVPL/TLPP a partir de flags estruturadas — inverso de /plugadvpl:docs (v0.17.0+)
docs
Catálogo de Protheus.doc agregado por módulo/autor/deprecated + show formatado por função (Universo 3 Feature C, v0.4.2+)
doctor
Diagnostica ambiente plugadvpl (uv, sqlite, FTS5, schema, lookups, permissoes)
edit-prw
Workflow seguro pra editar .prw cp1252 com Claude Code (Read/Edit são UTF-8 only). Use ANTES de qualquer Read/Edit em .prw com acentos.
execauto
Lista chamadas MsExecAuto ADVPL resolvidas (rotina canônica + módulo + tabelas Protheus inferidas via catálogo TOTVS) — Universo 3 Feature B, v0.4.1+
family
Descobre a familia de fontes por prefixo de nome (tipo + LoC + capabilities + descricao do header) numa tabela
find
Pesquisa simbolos (funcoes, classes, metodos) no indice plugadvpl
gatilho
Lista a cadeia de gatilhos SX7 (origem -> destino) a partir de um campo
gen-aplicador-sx
Gera um "aplicador de SXs" (.prw ADVPL) determinístico a partir de um spec JSON, aplicando customizações de dicionário (SX2 tabelas, SX3 campos, SIX índices, SX6 params MV_*, SX7 gatilhos, SX1 perguntas, SXA pastas, SX5 tabelas genéricas) em modo EXCLUSIVO — no lugar de um RecLock ingênuo. Use ao criar/alterar campo, tabela, índice, parâmetro, gatilho ou pergunta via dicionário. NÃO use para gerar fonte de regra de negócio (use advpl-code-generator) nem para diagnosticar SX existente (use advpl-dicionario-sx).
grep
Pesquisa texto/identificador/FTS no conteudo dos fontes ADVPL/.prw indexados pelo plugadvpl (Protheus)
help
Lista comandos plugadvpl disponiveis (help do CLI)
hotspots
Top-N funções ADVPL/TLPP mais chamadas no projeto Protheus — refactor priority por fan-IN (Universo 4 Feature B, v0.6.0+)
impacto
Cruza referencias de um campo SX3 entre fontes, SX3, SX7 e SX1 (killer feature v0.3.0)
ingest-poui
Detecta projetos PO UI (frontend Angular TOTVS) — versão @po-ui/*, Angular exigido e incompatibilidades
ingest-protheus
Indexa Dicionário SX via REST API do COLETADB (Universo 5) — workflow ao vivo, sem CSV manual
ingest-sx
Indexa o Dicionário SX (Universo 2) a partir de CSVs exportados do RPO
ingest-tsv
Importa dump TSV/CSV de tabela-catalogo (Z*/X*) pro indice (o conteudo das regras catalogadas)
ingest
Indexa fontes ADVPL/TLPP do projeto em SQLite + FTS5
ini-audit
Auditar arquivos INI Protheus (appserver, dbaccess, smartclient, tss, broker) contra 487 regras de boas práticas TDN-oficiais.
init
Inicializa plugadvpl no projeto atual (cria .plugadvpl/index.db, fragment CLAUDE.md, atualiza .gitignore)
lint
Roda lint plugadvpl em um arquivo (42 regras); com --target-build inclui BUILD-001 (uso de método FW*/Ms* ausente na build Protheus alvo)
log-diagnose
Diagnosticar logs Protheus (console.log, error.log, profile.log, compila.log) — 19 alert rules + 93 correction tips com URL TDN oficial.
metrics
Métricas por função ADVPL/TLPP (complexidade ciclomática McCabe + LOC + nesting + fan-out + params) para fontes Protheus — Universo 4 Feature B, v0.6.0+
migrate-tlpp
Migrador determinístico ADVPL clássico (.prw cp1252) → TLPP moderno (.tlpp utf-8) com pipeline ts-migrate-style — 4 subcomandos (init/rename/recipes/todos), 11 recipes (6 SAFE default + 5 IDIOMS opt-in), ordem canônica fixa, safety gates (git clean + DB ingest), backup .bak.<timestamp>, rollback cascata (bak → git checkout → abort), auto-validação via plugadvpl compile (v0.18.0+)
param
Lista usos de um parametro MV_ do Protheus (GetMv/PutMv/SuperGetMv) em fontes ADVPL indexados
plugadvpl-index-usage
Como usar o indice plugadvpl para consultar metadados ADVPL antes de ler fontes inteiros. Ative SEMPRE antes de Read em .prw/.prx/.tlpp/.apw, find por funcao, callers/callees, uso de tabela ou MV_, impacto de campo SX3, cadeia de gatilhos SX7, ou lint. Ganho tipico 10-50x em tokens.
reindex
Re-indexa um arquivo especifico no indice plugadvpl
semantica
Mostra a semântica contextual de um campo SX cujo significado muda conforme um discriminador (TIPO/PODER3/STATUS), não óbvia pelo nome nem pelo X3_DESCRIC
setup
Bootstrap completo do plugadvpl. Detecta uv, instala se faltar, faz init + ingest no projeto atual. Use no primeiro uso ou quando quiser reconfigurar.
status
Mostra status do indice plugadvpl (contagem de fontes, simbolos, tamanho do DB, ultima ingest)
sx-status
Conta linhas por tabela do Dicionario SX (apos ingest-sx)
tables
Lista usos de uma tabela ERP (leitura/escrita/reclock) no projeto
tq
Troca Quente (MVP local) — restart do AppServer Protheus + healthcheck HTTP. Use quando precisar restartar o AppServer após `compile` e esperar voltar pra testar.
Agents (6)
Hooks (3)
Quality Score: 54/100
Details
- Author
- JoniPraia
- Repository
- JoniPraia/plugadvpl
- Created
- 1 months ago
- Last Updated
- today
- Language
- Python
- License
- MIT