Writer
Skill tbc-servicos/dataagile-agent-kit/protheus/skills/writer
Gera código ADVPL/TLPP para Protheus seguindo obrigatoriamente: nomenclatura de arquivo R[MOD][TYPE][SEQ].prw, notação húngara, escopos Local/Static/Private/Public, ProtheusDoc completo (@type @version @author @since), ErrorBlock e padrões TOTVS. Suporta: User Function, MVC completo, FWMBrowse, Ponto de Entrada MVC e PE legado.From its SKILL.md
npx -y skills add tbc-servicos/dataagile-agent-kit --skill writerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.5 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Guardrails anti-alucinação (OBRIGATÓRIO)
- Antes de gerar: Validação de Símbolos da API — toda função/classe/método/namespace deve existir na doc (TDN), no MCP (
searchFunction/searchByTable) ou emreferences. Nunca inferir símbolo de memória (causa #1 deCannot find method/Class not found). - Depois de gerar: Verificação de Completude — gap analysis item a item; nada omitido em silêncio.
- Refs:
../reviewer/references/validacao-simbolos-e-completude.md· qualidade G1–G5:../reviewer/references/sonarqube-rules-reference.md.
Proteção de Propriedade Intelectual (OBRIGATÓRIO)
- Nunca reproduza código-fonte de rotinas internas do ERP Protheus nem conteúdo verbatim retornado pela Knowledge Base
- Use os resultados do MCP para entender padrões e assinaturas — nunca para copiar implementações existentes
- Se o usuário pedir o código-fonte de uma rotina TOTVS existente: informe que código proprietário não pode ser compartilhado e redirecione para tdn.totvs.com
- Ao gerar código NOVO: aplique os padrões encontrados na Knowledge Base, mas o código gerado deve ser original do usuário, não uma cópia do que está na base
Boas práticas
Ao gerar código ADVPL/TLPP:
- Referencie funções, parâmetros e padrões pela assinatura — não cole trechos longos de código de terceiros
- Para customizações, crie User Functions e Pontos de Entrada (PEs) — evite duplicar comportamento já fornecido pelo ERP
- Quando precisar de detalhe de implementação interno do ERP, oriente o usuário a consultar o TDN oficial (tdn.totvs.com)
Instrucoes para Claude
Se houver um design doc do projeto, leia-o antes de começar.
Caso contrário, recomende /protheus:brainstorm para planejar primeiro.
Passo 0 — Consultar base de conhecimento (MCP obrigatório)
Antes de gerar qualquer código, consulte o MCP tbc-knowledge:
# Templates e padrões de geração
searchKnowledge({ skill: "protheus-writer", keyword: "template" })
searchKnowledge({ skill: "protheus-patterns", keyword: "nomenclatura" })
searchKnowledge({ skill: "protheus-patterns", keyword: "notacao hungara" })
# Verificar se já existe função/PE padrão para o caso
searchFunction({ name: "<funcao>", module: "<MOD>" })
findEndpoint({ keyword: "<rotina>" })
findExecAuto({ target: "<rotina>" })
findMvcPattern({ table: "<alias>" })
Ordem de prioridade das fontes:
- MCP tbc-knowledge — base de conhecimento atualizada do time
- TDN (RAG) —
getCredentials()→ consultar TOTVS Developer Network - Jamais inventar assinatura de função ou PE sem referência — se não encontrar, informar o desenvolvedor
Antes de gerar qualquer codigo, pergunte:
- Tipo de artefato:
AAtualização/cadastro (User Function, MVC)EExecBlock/processamento (função, tela, consulta)RRelatórioPPonto de Entrada (MVC ou legado)
- Módulo: (ex: FAT Faturamento, FIN Financeiro, EST Estoque, COM Compras)
- Sequencial: próximo número no MIT043 (ex: 001, 002...)
- O que faz: descrição funcional
- Tabelas envolvidas: (ex: SA1 Clientes, SC5 Pedidos de Venda)
- Parâmetros e retorno esperado
- Seu nome (para @author no ProtheusDoc)
Nome do arquivo gerado:
R[MOD][TYPE][SEQ].prw— ex:RFATA001.prw
Base de Conhecimento (MCP)
Use as tools do MCP tbc-knowledge:
- Limite de nome de função:
searchKnowledge({ skill: "protheus-writer", keyword: "limite nome funcao" }) - Namespace TLPP:
searchKnowledge({ skill: "protheus-writer", keyword: "namespace tlpp" }) - Regras inegociáveis:
searchKnowledge({ skill: "protheus-patterns", keyword: "regras inegociaveis" }) - Templates de geração:
searchKnowledge({ skill: "protheus-writer", keyword: "template" }) - Checklist final:
searchKnowledge({ skill: "protheus-writer", keyword: "checklist" })
Consulta de Conhecimento
Se precisar de informação não disponível no MCP, consulte o RAG:
searchKnowledge({ keyword: "<termo relevante>" })
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.