AI skills
1Presentation
Temma ships a set of skills for AI coding agents. A skill teaches an agent the conventions and mechanisms of Temma, so that it produces idiomatic code when it builds a site or an API based on the framework.
The skills follow the Agent Skills open standard: one directory per skill, each containing a SKILL.md file. They are written in English and prefixed with temma-. They work with Claude Code, OpenAI Codex, and any tool that supports the standard.
Temma provides 18 skills, delivered in the digicreon/temma-lib Composer package (directory vendor/digicreon/temma-lib/skills/):
| Skill | Role |
|---|---|
| temma-site-guide | Step-by-step guide: from the skeleton to a production site |
| temma-controller | Controllers, actions, routing, execution flow, attributes |
| temma-dao | Data model: DAO, criteria, raw SQL |
| temma-view | Views and Smarty templates; JSON/CSV/RSS/iCal/INI/PHP as references |
| temma-api | JSON endpoints, API plugin, API keys |
| temma-plugin | Pre/post plugins |
| temma-cli | Comma CLI commands, Ansi and Term helpers |
| temma-datasource | Data sources: DSN, unified API, connectors |
| temma-auth | Passwordless authentication, Auth attribute, sessions |
| temma-validation | Validation contracts (input, output, programmatic) |
| temma-ai | LLMs through the AI datasource |
| temma-email | Sending emails, SMTP relay |
| temma-tests | Integration tests with \Temma\Web\Test and PHPUnit |
| temma-asynk | Asynchronous processing |
| temma-sse | Server-sent events |
| temma-attribute | Creating custom PHP attributes |
| temma-log | Logging, levels, log managers |
| temma-security | Security audit checklist |
2Creating a project with an AI agent
You don't have to create your project by hand. If you work with a coding agent (Claude Code, OpenAI Codex, GitHub Copilot…), just give it this sentence:
Create a website using Temma (temma.net/go) |
The temma.net/go address redirects to the llms-install.md file, an executable installation guide, written to be read by an agent. It tells the agent what to do, step by step:
- check the prerequisites (PHP 8.3 or later, Composer), and install them if needed;
- ask the initial questions: website or API, project name, how to serve it locally (development server, Apache or Nginx), database engine;
- create the project with composer create-project;
- create the database and check the connection;
- start the site and check that the home page responds;
- read the temma-site-guide skill, then ask what to build first.
By the end of the installation, the skills presented above are already in place in the project: the agent moves straight on to development, following the framework conventions.
3Installation
3.1New projects
For a project created with composer create-project digicreon/temma-project-web (or temma-project-api), there is nothing to do: the skills are installed automatically when the project is created, then kept up to date on every composer install and composer update (hooks are declared in the skeleton's composer.json).
3.2Existing projects
First update the library:
$ composer update digicreon/temma-lib
Then either run the synchronization manually:
$ php vendor/digicreon/temma-lib/skills/sync.php
or (recommended) add the hooks to your project's composer.json, so that skills are kept up to date automatically:
"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.3What synchronization does
Synchronization creates one relative symlink per skill, pointing to the vendored directory, in both .claude/skills/ (Claude Code) and .agents/skills/ (OpenAI Codex and compatible tools). The directories are created when needed.
- your own skills are never touched: you can create your own (real directories) next to the symlinks;
- only dead symlinks pointing to vendor/digicreon/temma-lib/skills/ are removed (a skill removed or renamed on the framework side); any other link or directory is preserved.
4Usage
Agents discover the skills automatically (their metadata is loaded at the start of a session) and activate them when the task calls for it. In Claude Code, a skill can also be invoked explicitly, for example /temma-controller or /temma-security.
The temma-site-guide skill is the entry point: it guides the construction of a site step by step and points to the specialized skills along the way.
Changes (an updated library, an added skill) are taken into account on the fly by Claude Code; only the initial creation of the .claude/skills/ directory requires restarting the session.
5Customization
You can create your own skills (real directories) in .claude/skills/ or .agents/skills/, alongside the provided symlinks: they are never touched by synchronization.
Overriding a provided skill: a real directory bearing the same name as a provided skill takes precedence. The provided skill is then not installed, and a warning is printed.
Exclusions and disabling: in your project's composer.json, the extra.temma-skills section lets you exclude some skills or disable synchronization entirely:
"extra": {
"temma-skills": {
"exclude": ["temma-ai", "temma-sse"],
"disabled": false
}
}
- exclude: removes the listed skills (and their existing symlink).
- disabled: set to true to disable all synchronization.
Without such an opt-out, a symlink deleted by hand is recreated on the next composer update.
6Limitations
- Windows: if creating symlinks fails (insufficient privileges), the skills are copied instead. Those copies are then never updated automatically; to refresh them, delete the copied directory and run synchronization again.
- Tools with "user"-level discovery (such as Gemini CLI or Antigravity, which read a directory in the home folder rather than in the project): manual installation, for example by copying or linking the skills from vendor/digicreon/temma-lib/skills/ to the directory expected by the tool.
- The Agent Skills standard defines the format, not the location: .claude/skills/ and .agents/skills/ cover Claude Code, Codex and compatible tools; other tools may require a specific configuration.