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/):
| Skill | Função |
|---|---|
| temma-site-guide | Guia passo a passo: do esqueleto a um site em produção |
| temma-controller | Controladores, ações, roteamento, fluxo de execução, atributos |
| temma-dao | Modelo de dados: DAO, critérios, SQL bruto |
| temma-view | Visões e templates Smarty; JSON/CSV/RSS/iCal/INI/PHP como referências |
| temma-api | Endpoints JSON, plugin API, chaves de API |
| temma-plugin | Pré-plugins e pós-plugins |
| temma-cli | Comandos CLI do Comma, helpers Ansi e Term |
| temma-datasource | Fontes de dados: DSN, API unificada, conectores |
| temma-auth | Autenticação sem senha, atributo Auth, sessões |
| temma-validation | Contratos de validação (entrada, saída, programática) |
| temma-ai | LLMs por meio da fonte de dados AI |
| temma-email | Envio de e-mails, relay SMTP |
| temma-tests | Testes de integração com \Temma\Web\Test e PHPUnit |
| temma-asynk | Processamento assíncrono |
| temma-sse | Server-sent events |
| temma-attribute | Criação de atributos PHP personalizados |
| temma-log | Logs, níveis, gerenciadores de log |
| temma-security | Checklist 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.
- 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.