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/):

SkillFunción
temma-site-guideGuía paso a paso: del esqueleto a un sitio en producción
temma-controllerControladores, acciones, enrutamiento, flujo de ejecución, atributos
temma-daoModelo de datos: DAO, criterios, SQL sin procesar
temma-viewVistas y plantillas Smarty; JSON/CSV/RSS/iCal/INI/PHP como referencias
temma-apiEndpoints JSON, plugin API, claves de API
temma-pluginPre/post plugins
temma-cliComandos CLI de Comma, helpers Ansi y Term
temma-datasourceFuentes de datos: DSN, API unificada, conectores
temma-authAutenticación sin contraseña, atributo Auth, sesiones
temma-validationContratos de validación (entrada, salida, programática)
temma-aiLLMs a través de la fuente de datos AI
temma-emailEnvío de correos electrónicos, relay SMTP
temma-testsPruebas de integración con \Temma\Web\Test y PHPUnit
temma-asynkProcesamiento asíncrono
temma-sseEventos enviados por el servidor
temma-attributeCreación de atributos PHP personalizados
temma-logLogging, niveles, gestores de log
temma-securityLista 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.

El sitio publica también un fichero llms.txt, que presenta Temma y enumera las páginas de documentación con un resumen de su contenido. Es el punto de entrada que usa un agente para orientarse en la documentación mientras trabaja en un proyecto Temma.

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.

La sincronización es segura por diseño y nunca rompe Composer (solo imprime advertencias):
  • 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.