Skills de IA
1Presentación
Temma incluye un conjunto de skills para agentes de codificación con IA. Un skill enseña a un agente las convenciones y los mecanismos de Temma, para que produzca código idiomático al construir un sitio o una API basados en el framework.
Los skills siguen el estándar abierto Agent Skills: un directorio por skill, cada uno con un archivo SKILL.md. Están escritos en inglés y tienen el prefijo temma-. Funcionan con Claude Code, OpenAI Codex, y cualquier herramienta compatible con el estándar.
Temma proporciona 18 skills, distribuidos en el paquete Composer digicreon/temma-lib (directorio vendor/digicreon/temma-lib/skills/):
| Skill | Función |
|---|---|
| temma-site-guide | Guía paso a paso: del esqueleto a un sitio en producción |
| temma-controller | Controladores, acciones, enrutamiento, flujo de ejecución, atributos |
| temma-dao | Modelo de datos: DAO, criterios, SQL sin procesar |
| temma-view | Vistas y plantillas Smarty; JSON/CSV/RSS/iCal/INI/PHP como referencias |
| temma-api | Endpoints JSON, plugin API, claves de API |
| temma-plugin | Pre/post plugins |
| temma-cli | Comandos CLI de Comma, helpers Ansi y Term |
| temma-datasource | Fuentes de datos: DSN, API unificada, conectores |
| temma-auth | Autenticación sin contraseña, atributo Auth, sesiones |
| temma-validation | Contratos de validación (entrada, salida, programática) |
| temma-ai | LLMs a través de la fuente de datos AI |
| temma-email | Envío de correos electrónicos, relay SMTP |
| temma-tests | Pruebas de integración con \Temma\Web\Test y PHPUnit |
| temma-asynk | Procesamiento asíncrono |
| temma-sse | Eventos enviados por el servidor |
| temma-attribute | Creación de atributos PHP personalizados |
| temma-log | Logging, niveles, gestores de log |
| temma-security | Lista de verificación de auditoría de seguridad |
2Crear un proyecto con un agente de IA
No hace falta crear el proyecto a mano. Si trabajas con un agente de programación (Claude Code, OpenAI Codex, GitHub Copilot…), basta con darle esta frase:
Crea un sitio web usando Temma (temma.net/go) |
La dirección temma.net/go redirige al fichero llms-install.md, una guía de instalación ejecutable, escrita para que la lea un agente. Le indica qué hacer, paso a paso:
- comprobar los requisitos (PHP 8.3 o superior, Composer) e instalarlos si es necesario;
- plantear las preguntas iniciales: sitio web o API, nombre del proyecto, cómo servirlo en local (servidor de desarrollo, Apache o Nginx), motor de base de datos;
- crear el proyecto con composer create-project;
- crear la base de datos y comprobar la conexión;
- arrancar el sitio y comprobar que la página de inicio responde;
- leer el skill temma-site-guide y preguntar qué construir primero.
Al terminar la instalación, los skills presentados arriba ya están en el proyecto: el agente pasa directamente al desarrollo, siguiendo las convenciones del framework.
3Instalación
3.1Proyectos nuevos
Para un proyecto creado con composer create-project digicreon/temma-project-web (o temma-project-api), no hay nada que hacer: los skills se instalan automáticamente al crear el proyecto, y luego se mantienen actualizados en cada composer install y composer update (los hooks están declarados en el composer.json del esqueleto).
3.2Proyectos existentes
Primero actualiza la biblioteca:
$ composer update digicreon/temma-lib
Luego, ejecuta la sincronización manualmente:
$ php vendor/digicreon/temma-lib/skills/sync.php
o bien (recomendado) añade los hooks al composer.json de tu proyecto, para que los skills se mantengan actualizados automáticamente:
"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"]
}
3.3Qué hace la sincronización
La sincronización crea un enlace simbólico relativo por skill, apuntando al directorio vendored, tanto en .claude/skills/ (Claude Code) como en .agents/skills/ (OpenAI Codex y herramientas compatibles). Los directorios se crean cuando es necesario.
- tus propios skills nunca se tocan: puedes crear los tuyos (directorios reales) junto a los enlaces simbólicos;
- solo se eliminan los enlaces simbólicos rotos que apuntan a vendor/digicreon/temma-lib/skills/ (un skill eliminado o renombrado en el lado del framework); cualquier otro enlace o directorio se conserva.
4Uso
Los agentes descubren los skills automáticamente (sus metadatos se cargan al inicio de una sesión) y los activan cuando la tarea lo requiere. En Claude Code, un skill también puede invocarse explícitamente, por ejemplo /temma-controller o /temma-security.
El skill temma-site-guide es el punto de entrada: guía la construcción de un sitio paso a paso y señala los skills especializados a lo largo del camino.
Los cambios (una biblioteca actualizada, un skill añadido) son tenidos en cuenta al vuelo por Claude Code; solo la creación inicial del directorio .claude/skills/ requiere reiniciar la sesión.
5Personalización
Puedes crear tus propios skills (directorios reales) en .claude/skills/ o .agents/skills/, junto a los enlaces simbólicos proporcionados: la sincronización nunca los toca.
Anular un skill proporcionado: un directorio real con el mismo nombre que un skill proporcionado tiene prioridad. El skill proporcionado entonces no se instala, y se imprime una advertencia.
Exclusiones y desactivación: en el composer.json de tu proyecto, la sección extra.temma-skills te permite excluir algunos skills o desactivar la sincronización por completo:
"extra": {
"temma-skills": {
"exclude": ["temma-ai", "temma-sse"],
"disabled": false
}
}
- exclude: elimina los skills indicados (y su enlace simbólico existente).
- disabled: se establece en true para desactivar toda la sincronización.
Sin esta exclusión, un enlace simbólico eliminado manualmente se vuelve a crear en el siguiente composer update.
6Limitaciones
- Windows: si la creación de enlaces simbólicos falla (privilegios insuficientes), los skills se copian en su lugar. Esas copias nunca se actualizan automáticamente; para actualizarlas, elimina el directorio copiado y vuelve a ejecutar la sincronización.
- Herramientas con descubrimiento a nivel de "usuario" (como Gemini CLI o Antigravity, que leen un directorio en la carpeta personal en lugar de en el proyecto): instalación manual, por ejemplo copiando o enlazando los skills desde vendor/digicreon/temma-lib/skills/ al directorio esperado por la herramienta.
- El estándar Agent Skills define el formato, no la ubicación: .claude/skills/ y .agents/skills/ cubren Claude Code, Codex y herramientas compatibles; otras herramientas pueden requerir una configuración específica.