Changelog
Historico de versoes do advpl-specialist
Todas as mudancas notaveis deste projeto sao documentadas neste arquivo.
O formato e baseado no Keep a Changelog, e este projeto segue o Semantic Versioning.
[1.3.0] - 2026-06-18
Adicionado
- Nova base de conhecimento
skills/query-builder/— decisao Workarea vs SQL, binding de parametros comFWPreparedStatement, consciencia de indices SIX e queries cross-database (PostgreSQL/MSSQL/Oracle). - Nova base de conhecimento
skills/protheus-locks-deadlocks/— semantica de locks (RecLock/MsUnlock/DBAccess), padroes de leak, regras de prevencao (BEGIN SEQUENCE/RECOVER,SoftLock, escopo de transacao) e diagnostico de deadlocks.
Alterado
/advpl-specialist:sxgene a referenciasx-configurationagora cobrem tambem SX2 (dicionario de tabelas), SXG (grupos de campos), SXA (pastas) e SXB (consultas F3), alem de SX3/SIX/SX1/SX5/SX7.
[1.2.0] - 2026-06-18
Adicionado
- Nova base de conhecimento
skills/advpr-test-automation/documentando a ferramenta interna TOTVS ADVPR (Advanced Protheus Robot) para automacao de testes sem interface: conceito/execucao, estrutura de scripts (TestSuite/TestGroup/TestCase), boas praticas, a referencia completa da APIFWTestHelper(~113 metodos), e guias de padrao para MVC, ExecAuto, preparacao de rotina, relatorios (TOTVS Report/R3/FWMSPrinter/Smart View), processamento, Mensagem Unica (EAI), Webservice (REST/SOAP/Portal) e SmartLink, alem da ferramenta GPS de Testes. Novo comando/advpl-specialist:advprgera scripts ADVPR TestSuite/TestGroup/TestCase.
[1.1.4] - 2026-05-29
Adicionado
- Nova referencia
skills/advpl-code-generation/patterns-fwmsprinter.md— guia completo para gerar relatorios PDF por coordenadas comFWMSPrinter. Cobre o constructor (assinatura de 12 parametros comIMP_PDF,cPathPDF,SetResolution), metodos de setup (SetLandscape,SetPaperSize,SetMargin), primitivas de desenho (SayAligncom constantesPAD_LEFT/RIGHT/CENTER/JUSTIFY,Line,FillRectviaTBrush,SayBitmap), classes de apoio (TFontcom altura negativa,TBrushcomEnd()obrigatorio), estrategias de layout (array de colunas cumulativo, guarda de quebra de pagina, layout de duas linhas por registro), tabela de larguras em pixels para A4 paisagem, exemplo completo funcional (query comBeginSQL/EndSQL, tratamento de erros comBegin Sequence/Recover,FWGetArea/FWRestArea, cabecalhosProtheus.doc, helperfFillRect), 5 padroes comuns (cabecalho colorido, zebra striping, campos em branco, linha de totais, cabecalhos em dois niveis) e tabela de referencia de erros de runtime com correcoes. Todas as assinaturas verificadas contra o build Protheus 7.00.240223P. Contribuicao de Henrique Patriota (@suportem3, M3 Case) via PR #12.
[1.1.3] - 2026-05-06
Adicionado
- Conversao automatica UTF-8 → CP1252 (Windows-1252) para arquivos ADVPL/TLPP escritos ou editados pelo plugin, via hook
PostToolUseemWrite|Edit|MultiEdit. Cobre.prw,.tlpp,.prx,.ch,.prg,.apw,.aph,.tlh. Conversao usaiconvcomWINDOWS-1252//TRANSLIT(ex:→vira->); caracteres incompativeis (emojis, kanji) geram warning no stderr e o arquivo permanece UTF-8 — o hook nunca bloqueia o fluxo do Claude. Remove BOM UTF-8 quando presente. Idempotente (rodar de novo em arquivo CP1252 e no-op). Requericonvno PATH (nativo em macOS, Linux, WSL, Git Bash). - Nova lib de encoding
hooks/lib/convert-encoding.shcom cinco funcoes publicas (is_advpl_file,is_utf8,strip_bom,convert_to_cp1252,process_file) e gravacao atomica (tmp + mv) para seguranca. - Entrypoint do hook
hooks/post-tool-use-encodingque extraitool_input.file_pathdo payload JSON do harness (jq com fallback para sed) e delega para a lib. - Runner de testes baseado em fixtures
examples/encoding-tests/run-tests.shstandalone com 24 asserts cobrindo 8 cenarios (ASCII, acentos PT-BR, simbolos com translit, caracteres incompativeis, ja CP1252, UTF-8 com BOM, extensao nao-ADVPL, classe TLPP), mais deteccao portavel de charset (file -bIpara macOS /file -bipara Linux).
[1.1.2] - 2026-04-18
Adicionado
- Diretorio
examples/com 6 cenarios end-to-end (geracao MVC, migracao, diagnostico de lock, endpoint REST, revisao de performance, geracao de dicionario SX). Inclui dois arquivos de apoio (FATA001-antes.prweexemplo-lento.prw) como input para os exemplos de migracao e review. - Novo catalogo
skills/advpl-code-generation/catalogo-top-50-pes.mdcom 20 pontos de entrada nos modulos COM, FAT, EST e FIN (nome do PE, rotina chamadora, modulo, momento, PARAMIXB, retorno esperado, link TDN). - Workflow
validate-plugin.ymldo GitHub Actions — valida sintaxe JSON, alinhamento de versoes entreplugin.jsonemarketplace.json, frontmatter YAML em commands e agents, limite de tamanho dosreference.mddas skills (≤ 500 linhas), sintaxe de shell scripts e integridade de links internos em todo push/PR paramain.
Alterado
/generate ponto-entradaagora consulta o catalogo local de PEs (Tier 1) antes de cair no TDN, reduzindo latencia em ~70% para PEs comuns. A estrategia TDN continua como fallback para garantir correcao.- Skill
tdn-lookupagora documenta um Tier 1 (cache local por dominio) explicito antes dos 4 tiers online, com tabela mapeando cada dominio de conhecimento (pontos de entrada, funcoes nativas, SX, erros comuns, etc.) ao arquivo de cache local correspondente. skills/advpl-code-generation/patterns-pontos-entrada.mdreescrito para referenciar o novo catalogo primeiro e tratar a secao "Always search TDN first" como fallback, em vez de exigir busca TDN em toda geracao.- README atualizado com nova secao "Exemplos" (ligada a partir do indice) resumindo os 6 cenarios.
[1.1.1] - 2026-04-16
Corrigido
- Corrigido desalinhamento de versao entre
plugin.json(1.1.0) emarketplace.json(1.0.9). Ambos agora alinhados em 1.1.1. - Corrigido path quebrado do cache cleanup em
hooks/session-start— liamarketplace.jsondois diretorios acima da raiz do cache, resultando emCURRENT_VERSIONvazio e cleanup nunca rodando. Agora usa$CLAUDE_PLUGIN_ROOTcorretamente. - Corrigido
allowed-toolsdecommands/process.mdlistando ferramentasbrowser_*sem prefixo MCP. Agora usamcp__playwright__browser_*.
Alterado
- Adicionado frontmatter
tools:emodel:explicitos em todos os 10 agents. Agents read-only (code-reviewer,debugger,docs-reference,process-consultant) agora declaram conjuntos minimos de ferramentas, reduzindo superficie de ataque e melhorando qualidade da revisao. - Adicionado campo
versionno nivel raiz demarketplace.jsonpara melhor compatibilidade de invalidacao de cache.
[1.1.0] - 2026-04-14
Alterado
- Skills agora sao referencias internas — nao aparecem mais como entradas duplicadas na lista de skills do Claude Code
- Renomeado
SKILL.mdparareference.mdem todos os 14 diretorios de skills - Removido
Skilldeallowed-toolsem todos os 12 commands - Atualizados 10 agents para usar
Readno carregamento de referencias - Renomeada secao "Skills" do README para "Referencia Interna"
- Adicionada referencia
tdn-lookupao README e ao site de documentacao
Adicionado
- Validacao de nomes de campos v2 (data-driven): agent agora valida nomes de campos SX3 contra
sx3-common-fields.md(21 tabelas, ~323 campos do SempreJu). Para campos nao encontrados na referencia local, busca automaticamente no SempreJu. So pergunta ao usuario como ultimo recurso. Nunca inventa nomes de campos.
Removido
- Guardrail de validacao de contexto em pontos de entrada: removido — a abordagem comportamental com verificacoes defensivas
Type()era muito generica e gerava codigo verboso sem resolver o problema real.
[1.0.9] - 2026-04-13
Adicionado
- Persistencia automatica de planos: todos os 8 agents com fases de planejamento/geracao agora salvam os planos aprovados em
docs/plans/YYYY-MM-DD-<comando>-<descricao>.mdautomaticamente apos a aprovacao do usuario - Nova estrategia de busca no TDN usando API REST do Confluence (4 tiers online de fallback): WebFetch API → Playwright API JSON → WebSearch + Playwright → Playwright busca visual — reduz consumo de tokens em 70-90% comparado a scraping de HTML
- Skill centralizada
tdn-lookupsubstituindo blocos duplicados de busca no TDN em 8 agents (259 delecoes, 133 insercoes)
[1.0.8] - 2026-04-07
Corrigido
- Corrigida geracao de codigo usando palavra-chave
Functionpura em vez deUser Functionem RPOs de cliente — palavra-chaveFunctionpura e reservada para o RPO core da TOTVS e falha ao compilar em ambientes de cliente - Corrigido
/generatevarrendo todos os arquivos-fonte do projeto a cada invocacao — o plugin e baseado em templates e nao precisa ler fontes.prw/.tlppdo cliente para gerar codigo
Adicionado
- Declaracao obrigatoria de
namespace custom.<agrupador>.<servico>para todo arquivo.tlppgerado (endpoints REST, classes, jobs) — inferido de--module+ nome do servico, ou perguntado ao usuario durante a Fase de Planejamento - Nova regra de revisao
[BP-009]: detecta palavra-chaveFunctionpura em codigo de cliente e sugere conversao paraUser Function/Static Function/Methodde classe - Nova regra de revisao
[BP-010]: detecta nomes de identificadores que excedem o limite efetivo de tamanho (User Function ≤ 8 chars, Static Function ≤ 10 chars, TLPP com namespace ≤ 255 chars) - Validacao bloqueante de tamanho de identificador na Fase de Planejamento do
/generatecom fluxo de duas opcoes: (A) encurtar nome seguindo convencoes Protheus ou (B) mudar para TLPP com namespace (disponivel a partir do release 12.1.2410 do Protheus) - Proibicao explicita de varredura de fontes do projeto no
/generate—Glob/Grep/Readem arquivos.prw/.tlppdo cliente nao e mais permitido (apenas arquivos internos do plugin, arquivo unico referenciado pelo usuario, ou escrita do arquivo final) - Documentacao sobre limites de tamanho de identificador, workaround legado
longnameclass, e TLPP com namespace como substituicao moderna
[1.0.7] - 2026-03-26
Adicionado
- Documentacao completa do TDN para 74+ classes e funcoes em 5 fases no native-functions.md
- Fase 1: 9 classes UI/Browse (FwBrowse, FWMarkBrowse, FWBrwColumn, FWBrwRelation, FWLegend, FWGridProcess, tNewProcess, FWCalendar, FWSimpEdit)
- Fase 2: 20 funcoes utilitarias de uso diario (FwGetArea, FwRestArea, FwGetUserName, UsrRetName, FWMsgRun, FWInputBox, FWFreeObj, FWFreeVar, Fw8601ToDate, FWDateTo8601, FWHttpEncode, FWURIDecode, MayIUseCode, MPCriaNumS, MsGetDAuto, SaveInter, RestInter, FWX3Titulo, FWX2CHAVE, FWX2Unico)
- Fase 3: 8 classes de seguranca/autenticacao (FWoAuth2Client, FWoAuth2Url, FWSafeVault, FWSecretVault, FwProtectedDataUtil, FwPDFieldRepository, FwPDFieldDetailRepository, FwPDGroupRepository)
- Fase 4: 12 funcoes de empresa/filial e scheduling (FWLoadSM0, FWModeAccess, FwListBranches, FWJoinFilial, FwCallApp, FWSchdAvaiable, FWSchdByFunction, FWSchdEmpFil, FwExecLocaliz, FwExistLocaliz, FwBranAltInf, FwComAltInf)
- Fase 5: 25+ classes e funcoes de nicho (FwChartFactory, XTree, ApWizard, FWCarolWizard, FWMsPrinter, PrinterVersion, FWBulk, FWQueryCache, FWExecCachedQuery, FWSX9Util, FWSM0Util, FWSXGUtil, FWUIWorkarea, MSProject, TKeyboard, FWBmpRep, MPFilesBinary, AddMashupAlias, AmIIn, ChkAdvplSyntax, MakeSqlExpr, PesqBrw)
- Integracao do Google Analytics 4 no site de documentacao
- Workflow de coleta diaria de metricas de trafego
Corrigido
- Corrigida geracao de codigo criando metodos inexistentes do JsonObject para iteracao case-insensitive de headers — agora usa padrao
GetNames()+Upper()(obrigado @edusfc15 por reportar #3) - Movidas todas as declaracoes Local para o topo das funcoes
[1.0.6] - 2026-03-23
Adicionado
- Nova regra de revisao
[BP-008]: detecta uso de variaveis reservadas do sistema (cFilial,cFilAnt,cEmpAnt) como Local/Static, com alternativas recomendadas (cCodFil,cCodEmp) - Nova regra de seguranca
[SEC-005]: detecta uso de 195+ funcoes, classes e variaveis restritas/internas da TOTVS com alternativas suportadas - Novo arquivo de referencia
restricted-functions.mdcom lista completa de funcoes de propriedade interna da TOTVS (fonte: Central de Atendimento TOTVS) - Nova secao
Company/Branch Management Functions (FW*)com 10 funcoes documentadas:FWCodFil,FWCodEmp,FWFilial,FWCompany,FWGrpCompany,FWUnitBusiness,FWAllCompany,FWAllFilial,FWAllGrpCompany,FWSizeFilial
Corrigido
- Substituido
cFilialporcCodFilecEmpresaporcCodEmpem todos os exemplos de codigo (nomes de variaveis Private reservadas nao podem ser usados como variaveis Local) - Atualizada documentacao do
StaticCall()para refletir status de compilacao bloqueada desde a release 12.1.33 - Adicionados avisos sobre variaveis reservadas na documentacao de
xFilial()eRpcSetEnv()
[1.0.5] - 2026-03-18
Corrigido
- Substituido acesso direto aos dicionarios SX (
DbSelectArea("SX1/SX2/SX3/SX5/SX6/SIX")) pelas classes recomendadas pela TOTVS:FWSX1Util,FWSX2Util,FWSX3Util,FWSX6Util,FWSIXUtil,FWGetSX5(),FwPutSX5()(obrigado @wesleywwf por reportar #1)
Adicionado
- Disclaimer TOTVS no rodape do site de documentacao (sem vinculo com a TOTVS S.A.)
- Imagem OG para preview de compartilhamento em redes sociais (1200x630px)
- Traducoes em portugues (pt-BR) para a UI do Fumadocs (pesquisa, sumario, navegacao, tema)
- Traduzidas todas as 10 paginas de documentacao de agentes para portugues
[1.0.4] - 2026-03-17
Adicionado
- Novo comando
/explainpara explicacao de codigo em 3 niveis de audiencia (junior, senior, funcional) - Novo comando
/refactorcom agentrefactorere skilladvpl-refactoring(6 padroes de refatoracao com before/after) - Novo comando
/documentcom agentdoc-generatore skilldocumentation-patterns(cabecalho Protheus.doc, documentacao completa, documentacao de API) - Novo comando
/changelogcom agentchangelog-generatore skillchangelog-patterns - Novo comando
/sxgencom agentsx-configuratore skillsx-configuration(scripts de dicionario SX3, SIX, SX1, SX5, SX7 a partir de linguagem natural) - Nova skill
code-explanationcom metodologia de 3 niveis para explicacao de codigo - Site de documentacao construido com Fumadocs (Next.js + MDX) hospedado no GitHub Pages
- Documentacao completa cobrindo todos os 12 comandos, 10 agentes, 14 skills, referencia e processos de negocio
Corrigido
- Removida chave
bugsnao suportada do manifesto plugin.json
[1.0.3] - 2026-03-11
Adicionado
- Novo comando
/reviewpara analise de qualidade de codigo (boas praticas, performance, seguranca, modernizacao) - Novo comando
/testpara geracao de testes unitarios ProBat (apenas TLPP) - Novo comando
/processpara consulta de processos de negocio ERP - Novo agent
code-reviewerpara analise de codigo ADVPL/TLPP com 21 regras de revisao - Novo agent
process-consultantpara processos de negocio ERP - Nova skill
advpl-code-reviewcom 4 categorias de regras (BP, PERF, SEC, MOD) - Nova skill
probat-testingcom referencia ProBat API e padroes de testes unitarios (validado no TDN) - Nova skill
protheus-businesscom referencia de 8 modulos ERP (COM, EST, FAT, FIN, CTB, FIS, PCP, MNT) - 4 novos padroes de geracao de codigo: TReport, FWFormBrowse, Jobs/Scheduler, Workflow/BPM
- 16 novas funcoes nativas validadas no TDN (TReport, FWFormBrowse, Jobs, classes de Email)
- 93 parametros MV_* validados em 8 modulos via TDN e Terminal de Informacao
- Anotacoes ProBat validadas via repositorio oficial TOTVS tlpp-probat-samples
Corrigido
- Removidos 90+ parametros MV_* fabricados das skills de modulos de negocio
- Corrigidos nomes de parametros incorretos (MV_ESTNEGA para MV_ESTNEG, MV_SPESSION para MV_USASPED, etc.)
- Removidos campos fabricados da tabela SC2 (C2_TESSION/C2_TESSION2) da skill PCP
[1.0.2] - 2026-03-09
Adicionado
- Fallback via Playwright MCP para todo acesso web a documentacao (agents: docs-reference, debugger, code-generator; skill: protheus-reference)
- Quando WebSearch ou WebFetch falham, os agents agora utilizam as ferramentas Playwright como fallback (browser_navigate, browser_snapshot, browser_take_screenshot)
- Abordagem hibrida: tenta snapshot de texto primeiro, usa screenshot para conteudo visual complexo
- Recomendacao de instalacao do Playwright MCP no hook session-start
[1.0.1] - 2026-03-05
Adicionado
- Padroes de Web Service SOAP (
patterns-soap.md) com WsService e TWsdlManager - Recomendacao do plugin superpowers no hook session-start e README
- Modo planejamento obrigatorio para os comandos
generateemigrate - Indicador 50+ no hook session-start quando a contagem de arquivos atinge o limite
- Convencoes oficiais de nomenclatura TLPP da TOTVS do TDN
- Deteccao de idioma em todos os comandos (responde no idioma do usuario)
- Skill de Embedded SQL com padroes BeginSQL/EndSQL e macros
Corrigido
- Substituido o obsoleto
#Include "Protheus.ch"por#Include "TOTVS.CH"em 10 arquivos - Corrigido includes TLPP para usar arquivos
.th(tlpp-core.th,tlpp-rest.th) em vez deTOTVS.CH - Removido
using namespace tlpp.*incorreto (tlpp.core,tlpp.rest,tlpp.log,tlpp.data) de todos os exemplos - Corrigido alvo de migracao para usar includes
.them vez deTOTVS.CH - Resolvido texto ambiguo em todo o repositorio
- Adicionado
SkilleBashfaltantes em allowed-tools de todos os comandos - Corrigido posicionamento de declaracoes de variaveis Local nos exemplos de native-functions
[1.0.0] - 2026-03-04
Adicionado
- Lancamento inicial
- 4 comandos:
generate,migrate,diagnose,docs - 4 agents:
code-generator,migrator,debugger,docs-reference - 5 skills:
advpl-code-generation,advpl-to-tlpp-migration,advpl-debugging,embedded-sql,protheus-reference - Hook SessionStart com deteccao automatica de projeto ADVPL/TLPP
- 165+ funcoes nativas documentadas
- Referencia de 9 tabelas SX
- Padroes de REST API (FWRest e WsRestFul)
- 50 erros comuns com causa e solucao
- 10 categorias de otimizacao de performance
- 16 pontos de entrada mais usados por modulo
- Templates de classes TLPP (Service, Repository, DTO)
- Padroes MVC completos (MenuDef, ModelDef, ViewDef, FWMVCRotAuto)
- Suporte ao Marketplace via
marketplace.json