Skills de IA


1Apresentação

O Temma fornece um conjunto de skills para agentes de codificação com IA. Uma skill ensina a um agente as convenções e os mecanismos do Temma, para que ele produza código idiomático ao construir um site ou uma API baseados no framework.

As skills seguem o padrão aberto Agent Skills: um diretório por skill, cada um contendo um arquivo SKILL.md. Elas são escritas em inglês e prefixadas com temma-. Funcionam com Claude Code, OpenAI Codex e qualquer ferramenta compatível com o padrão.

O Temma fornece 18 skills, distribuídas no pacote Composer digicreon/temma-lib (diretório vendor/digicreon/temma-lib/skills/):

SkillFunção
temma-site-guideGuia passo a passo: do esqueleto a um site em produção
temma-controllerControladores, ações, roteamento, fluxo de execução, atributos
temma-daoModelo de dados: DAO, critérios, SQL bruto
temma-viewVisões e templates Smarty; JSON/CSV/RSS/iCal/INI/PHP como referências
temma-apiEndpoints JSON, plugin API, chaves de API
temma-pluginPré-plugins e pós-plugins
temma-cliComandos CLI do Comma, helpers Ansi e Term
temma-datasourceFontes de dados: DSN, API unificada, conectores
temma-authAutenticação sem senha, atributo Auth, sessões
temma-validationContratos de validação (entrada, saída, programática)
temma-aiLLMs por meio da fonte de dados AI
temma-emailEnvio de e-mails, relay SMTP
temma-testsTestes de integração com \Temma\Web\Test e PHPUnit
temma-asynkProcessamento assíncrono
temma-sseServer-sent events
temma-attributeCriação de atributos PHP personalizados
temma-logLogs, níveis, gerenciadores de log
temma-securityChecklist de auditoria de segurança

2Instalação

2.1Novos projetos

Para um projeto criado com composer create-project digicreon/temma-project-web (ou temma-project-api), não há nada a fazer: as skills são instaladas automaticamente na criação do projeto, e depois mantidas atualizadas a cada composer install e composer update (os hooks são declarados no composer.json do esqueleto).


2.2Projetos existentes

Primeiro, atualize a biblioteca:

$ composer update digicreon/temma-lib

Em seguida, execute a sincronização manualmente:

$ php vendor/digicreon/temma-lib/skills/sync.php

ou (recomendado) adicione os hooks ao composer.json do seu projeto, para que as skills sejam mantidas atualizadas automaticamente:

"scripts": {
    "temma-skills-sync": "@php -r \"file_exists('vendor/digicreon/temma-lib/skills/sync.php') && include('vendor/digicreon/temma-lib/skills/sync.php');\"",
    "post-install-cmd": ["@temma-skills-sync"],
    "post-update-cmd":  ["@temma-skills-sync"]
}

2.3O que a sincronização faz

A sincronização cria um link simbólico relativo por skill, apontando para o diretório vendorizado, tanto em .claude/skills/ (Claude Code) quanto em .agents/skills/ (OpenAI Codex e ferramentas compatíveis). Os diretórios são criados quando necessário.

A sincronização é segura por design e nunca quebra o Composer (ela apenas exibe avisos):
  • suas próprias skills nunca são tocadas: você pode criar as suas (diretórios reais) ao lado dos links simbólicos;
  • apenas links simbólicos mortos que apontam para vendor/digicreon/temma-lib/skills/ são removidos (uma skill removida ou renomeada do lado do framework); qualquer outro link ou diretório é preservado.

3Uso

Os agentes descobrem as skills automaticamente (seus metadados são carregados no início de uma sessão) e as ativam quando a tarefa exige. No Claude Code, uma skill também pode ser invocada explicitamente, por exemplo /temma-controller ou /temma-security.

A skill temma-site-guide é o ponto de entrada: ela guia a construção de um site passo a passo e aponta para as skills especializadas ao longo do caminho.

Mudanças (uma biblioteca atualizada, uma skill adicionada) são levadas em conta em tempo real pelo Claude Code; apenas a criação inicial do diretório .claude/skills/ exige reiniciar a sessão.


4Personalização

Você pode criar suas próprias skills (diretórios reais) em .claude/skills/ ou .agents/skills/, ao lado dos links simbólicos fornecidos: eles nunca são tocados pela sincronização.

Sobrescrevendo uma skill fornecida: um diretório real com o mesmo nome de uma skill fornecida tem precedência. A skill fornecida então não é instalada, e um aviso é exibido.

Exclusões e desativação: no composer.json do seu projeto, a seção extra.temma-skills permite excluir algumas skills ou desativar a sincronização por completo:

"extra": {
    "temma-skills": {
        "exclude": ["temma-ai", "temma-sse"],
        "disabled": false
    }
}
  • exclude: remove as skills listadas (e seu link simbólico existente).
  • disabled: defina como true para desativar toda a sincronização.

Sem essa opção de exclusão, um link simbólico apagado manualmente é recriado no próximo composer update.


5Limitações

  • Windows: se a criação de links simbólicos falhar (privilégios insuficientes), as skills são copiadas em vez disso. Essas cópias nunca são atualizadas automaticamente; para atualizá-las, apague o diretório copiado e execute a sincronização novamente.
  • Ferramentas com descoberta em nível de "usuário" (como Gemini CLI ou Antigravity, que leem um diretório na pasta pessoal em vez de no projeto): instalação manual, por exemplo copiando ou vinculando as skills de vendor/digicreon/temma-lib/skills/ para o diretório esperado pela ferramenta.
  • O padrão Agent Skills define o formato, não a localização: .claude/skills/ e .agents/skills/ cobrem Claude Code, Codex e ferramentas compatíveis; outras ferramentas podem exigir uma configuração específica.