JoniPraia
UserPlugin Claude Code + CLI Python que indexa fontes ADVPL/TLPP do Protheus em SQLite + FTS5. Claude consulta metadados sem queimar tokens lendo .prw inteiro.
Categories
Indexed Skills (59)
arch
Visao arquitetural de um arquivo ADVPL/TLPP (use ANTES de Read - economiza tokens)
docs
Catálogo de Protheus.doc agregado por módulo/autor/deprecated + show formatado por função (Universo 3 Feature C, v0.4.2+)
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+
impacto
Cruza referencias de um campo SX3 entre fontes, SX3, SX7 e SX1 (killer feature v0.3.0)
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
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.
log-diagnose
Diagnosticar logs Protheus (console.log, error.log, profile.log, compila.log) — 19 alert rules + 93 correction tips com URL TDN oficial.
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+)
compile
Compila fonte ADVPL via plugadvpl (wrapper sobre advpls TOTVS). Workflow guiado pelo agente.
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.
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.
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+)
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.
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+
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)
find
Pesquisa simbolos (funcoes, classes, metodos) no indice plugadvpl
gatilho
Lista a cadeia de gatilhos SX7 (origem -> destino) a partir de um campo
grep
Pesquisa texto/identificador/FTS no conteudo dos fontes ADVPL/.prw indexados pelo plugadvpl (Protheus)
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)
check-build
Verifica uso de método FW*/Ms* ausente numa build Protheus alvo (catálogo apis_por_build), antes de compilar
catalog
Consulta catalogo importado (ingest-tsv) - lista/filtra/agrega + decode X3_CBOX + cruza *_FUNCAO com fontes
diagnose
Avalia os pontos de decisao de um fonte contra um registro (desfecho exato + relativizacao - numero sensivel vira razao)
family
Descobre a familia de fontes por prefixo de nome (tipo + LoC + capabilities + descricao do header) numa tabela
ingest-tsv
Importa dump TSV/CSV de tabela-catalogo (Z*/X*) pro indice (o conteudo das regras catalogadas)
param
Lista usos de um parametro MV_ do Protheus (GetMv/PutMv/SuperGetMv) em fontes ADVPL indexados
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
cobertura-doc
Cobertura de Protheus.doc agregada por módulo — refactor priority pra documentação (Universo 4 Feature B, v0.6.0+)
tables
Lista usos de uma tabela ERP (leitura/escrita/reclock) no projeto
hotspots
Top-N funções ADVPL/TLPP mais chamadas no projeto Protheus — refactor priority por fan-IN (Universo 4 Feature B, v0.6.0+)
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)
help
Lista comandos plugadvpl disponiveis (help do CLI)
ingest-poui
Detecta projetos PO UI (frontend Angular TOTVS) — versão @po-ui/*, Angular exigido e incompatibilidades
doctor
Diagnostica ambiente plugadvpl (uv, sqlite, FTS5, schema, lookups, permissoes)
init
Inicializa plugadvpl no projeto atual (cria .plugadvpl/index.db, fragment CLAUDE.md, atualiza .gitignore)
sx-status
Conta linhas por tabela do Dicionario SX (apos ingest-sx)
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-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-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-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
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.
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-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.
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.
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-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-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.
Bio shown is the top-scored skill's repo description as a fallback — real GitHub bios land in a future update.