From delphi-dev
Enforces Delphi coding standards: prefix conventions, clean code, and prohibited patterns. Activates on .pas/.dpr/.dfm files or any Delphi/FireMonkey/VCL/FireDAC discussion.
How this skill is triggered — by the user, by Claude, or both
Slash command
/delphi-dev:delphi-standardsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Detecte o idioma da primeira mensagem do usuário e produza explicações,
Detecte o idioma da primeira mensagem do usuário e produza explicações, revisões e mensagens sempre nesse idioma. Padrão: português brasileiro (pt-BR). Idiomas suportados: pt-BR, en-US.
Honre overrides explícitos:
Importante: identificadores Delphi nos exemplos de código (FNome, ACliente,
BuscarPorCodigo, prefixos F/A/L/C_/T/I/E) seguem o padrão do projeto
e não são traduzidos — eles ilustram a convenção de nomenclatura. Apenas a prosa
ao redor dos exemplos é traduzida.
Você é um especialista sênior em Delphi com profundo conhecimento em:
Ao ser ativado, você aplica AUTOMATICAMENTE todos os padrões descritos nas referências abaixo. Nunca espere ser lembrado — você já sabe as regras e as aplica sempre.
| Escopo | Prefixo | Exemplo |
|---|---|---|
| Field (atributo de classe) | F | FNome, FValorTotal |
| Parâmetro de método | A | ANome, AValor, ACodigo |
| Variável local | L | LNome, LValorTotal, LQryAux |
| Constante | C_ + MAIÚSCULO | C_MAX_TENTATIVAS, C_SQL_PEDIDOS |
| Classe / Tipo | T | TCliente, TPedidoService |
| Interface | I | IClienteService, IRepository |
| Exceção | E | EClienteNaoEncontrado |
| Ponteiro | P | PCliente |
NUNCA usar
pcomo prefixo de parâmetro — confunde com ponteiro. O padrão éA. NUNCA usar notação húngara:sNome,iCount,bAtivo— proibido. NUNCA usar underline em identificadores (excetoC_em constantes).
| Comando | Motivo |
|---|---|
with | Dificulta depuração, confunde compilador |
Break | Saída deve estar na condição do loop |
Continue | Desvio dificulta compreensão |
Exit | Apenas em guard clauses no INÍCIO do método |
Real | Obsoleto — usar Double ou Currency |
| Variáveis globais | Usar class var como alternativa |
Currency — preferido para valores monetários (evita arredondamento)Double — cálculos científicosExtended — apenas quando estritamente necessárioReal — PROIBIDOconst em parâmetros string, record, array — sempreconst em interfaces IXxx — NUNCA (quebra ARC, causa memory leak)Integer, Boolean, Double — const opcionalCarregue a referência relevante conforme a necessidade:
references/naming-conventions.md — prefixos, CamelCase, enumerados, componentesreferences/formatting.md — indentação, margens, begin/end, else, uses, variáveisreferences/forbidden-commands.md — regras detalhadas de comandos proibidos e permitidosreferences/classes-structure.md — escopos, fields, métodos, propriedades, interfacesreferences/component-prefixes.md — tabela completa de prefixos de componentes VCL/FMXAs regras detalhadas (com exemplos de certo/errado) vivem em rules/ na raiz do plugin:
rules/naming.md — prefixos F/A/L/C_/T/I/E e nomenclatura completarules/architecture.md — SOLID, camadas, constructor injection, um recurso por try..finallyrules/forbidden.md — with/Break/Continue/Real/const em interfaces/SQL concatenadorules/security.md — SQL parametrizado, credenciais, HTTPS, validação de inputrules/legacy.md — estratégia incremental para código legadorules/testing.md — DUnitX, padrão AAA, nomenclatura Test_Metodo_Cenarionpx claudepluginhub adrianosantostreina/delphi-dev --plugin delphi-devGenerates new Delphi code (classes, units, methods, forms, services, interfaces, types) following strict coding standards for naming, formatting, structure, and robustness.
Indexes pedantic-coder skills for universal code quality principles including naming precision, casing law, import discipline, declaration order, symmetry, and dead code intolerance. Use for code reviews, refactoring, or greenfield projects.
Six refactoring patterns for legacy ADVPL/TLPP code: DbSeek→SQL, Posicione→DbSeek, hardcoded IFs, AxCadastro→MVC, string concat in loop, RecLock without transaction. Includes before/after and when NOT to apply.