plugadvpl-index-usage
Skill1 starsChanged 6 months agoMITView on GitHub
Como usar o índice plugadvpl para consultar metadados ADVPL antes de ler fontes inteiros. Use SEMPRE que analisar projeto com .plugadvpl/.
In this repository29 other files it gives its agents.
- advpl-advancedSkill
- advpl-code-reviewSkill
- advpl-dicionario-sxSkill
- advpl-embedded-sqlSkill
- advpl-encodingSkill
- advpl-fundamentalsSkill
- advpl-jobs-rpcSkill
- advpl-matxfisSkill
- advpl-mvc-avancadoSkill
- advpl-mvcSkill
- advpl-pontos-entradaSkill
- advpl-tlppSkill
- advpl-webserviceSkill
- advpl-webSkill
- archSkill
- calleesSkill
- callersSkill
- doctorSkill
- findSkill
- grepSkill
- helpSkill
- ingestSkill
- initSkill
- lintSkill
- paramSkill
- reindexSkill
- setupSkill
- statusSkill
- tablesSkill
The file
Files
plugadvpl-index-usage — Skill-chefe
Quando o projeto tem .plugadvpl/index.db, Claude DEVE consultar o índice antes de qualquer Read em fonte ADVPL. Fontes Protheus têm tipicamente 1.000–10.000 linhas — abrir cru queima contexto, escala mal e produz respostas vagas.
Quando usar
Esta skill ativa sempre que:
- O projeto atual contém
.plugadvpl/(detectado pelo fragment<!-- BEGIN plugadvpl -->emCLAUDE.md). - O usuário pergunta sobre arquivos
.prw,.prx,.tlpp(ou pede análise/edição). - Antes de qualquer chamada
Readem fonte ADVPL — sem exceção. - Para localizar funções, callers/callees, uso de tabelas, parâmetros MV_, SQL embarcado.
Regra de decisão — qual ferramenta usar
| Pergunta do usuário | Comando primeiro |
| "O que faz o fonte X?" | /plugadvpl:arch X |
| "Onde está a função Y?" | /plugadvpl:find function Y |
| "Quem chama Y?" | /plugadvpl:callers Y |
| "O que Y chama por dentro?" | /plugadvpl:callees Y |
| "Quem lê/grava na tabela SA1?" | /plugadvpl:tables SA1 |
| "Onde MV_LOCALIZA é usado?" | /plugadvpl:param MV_LOCALIZA |
| "Mostre SQL de update em SC5" | /plugadvpl:sql --op update --table SC5 |
| "Tem erro de boas práticas em X?" | /plugadvpl:lint X |
| "Achar função que faz <descrição>" | /plugadvpl:grep "<termo>" |
| "Essa função é nativa do TOTVS?" | /plugadvpl:find function <nome> |
"Posso usar StaticCall?" | Consulte funcoes_restritas (catalogada) |
Quando É permitido Read no .prw cru
Só depois de localizar a linha exata via índice. Exemplos válidos:
Read FATA050.prwcomoffset=234, limit=46(intervalo 234–280 identificado emsql_refs).Read MATA461.prwcomlimit=50(apenas header/cabeçalho).
NUNCA abra o arquivo inteiro sem range — isso queima ~50k tokens por fonte médio e desperdiça contexto que poderia caber 10 arquivos analisados via índice.
Workflow recomendado
- Receba a pergunta do usuário.
- Mapeie para um comando da tabela acima.
- Rode o slash command (resultado limitado a 20 entradas por default).
- Refine com
--module/--table/--pathse vier "... e mais N resultados". - Só então, se ainda precisar do código exato, faça
Readcomoffset+limitapontando para a linha retornada.
Output budget
Todo comando retorna no máximo 20 resultados (--limit 20). Se a saída indicar
"... e mais N resultados; refine com --table/--module/--path", refine com filtros, não peça mais resultados sem critério. Comandos suportam --compact para uma-linha-por-registro.
Saúde do índice
Antes de confiar em consultas, em sessão nova rode /plugadvpl:status para conferir contagens e última ingestão. Se arquivos foram editados fora do Claude (IDE, git pull), execute /plugadvpl:reindex <arquivo> ou /plugadvpl:ingest --incremental.
Anti-padrões
- Ler
.prwcru "para entender o contexto" — proibido. Usearchprimeiro. - Pedir ao usuário para colar trechos do fonte — o índice já tem os metadados.
- Usar
Grepdireto no diretório com regex genérica em vez defind/grepdo plugadvpl (que retorna chunks/funções, não linhas soltas). - Ignorar
--limit: pedir todos os resultados em base com 24k fontes é estouro de contexto garantido.
Referência rápida
| Tabela do índice | Para que serve |
sources | Lista de fontes ingestos, encoding, mtime |
simbolos | Funções, classes, métodos, includes |
calls | Quem chama quem (caller × callee) |
tabelas | Uso de tabelas ERP (SA1, SC5, etc.) |
params | Uso de parâmetros MV_/AcessaCpo |
sql_refs | SQL embarcado (BeginSQL/TCQuery) |
ws_services + ws_structures | WSRESTFUL/WSSERVICE |
mvc_hooks | Hooks MVC (bCommit, bTudoOk, etc.) |
lint_findings | Achados do lint (24 regras catalogadas) |
Comandos plugadvpl relacionados
/plugadvpl:arch, /plugadvpl:find, /plugadvpl:callers, /plugadvpl:callees,
/plugadvpl:tables, /plugadvpl:param, /plugadvpl:lint, /plugadvpl:status,
/plugadvpl:ingest, /plugadvpl:reindex, /plugadvpl:grep, /plugadvpl:doctor,
/plugadvpl:help.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

