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

SkillRole
temma-site-guideStep-by-step guide: from the skeleton to a production site
temma-controllerControllers, actions, routing, execution flow, attributes
temma-daoData model: DAO, criteria, raw SQL
temma-viewViews and Smarty templates; JSON/CSV/RSS/iCal/INI/PHP as references
temma-apiJSON endpoints, API plugin, API keys
temma-pluginPre/post plugins
temma-cliComma CLI commands, Ansi and Term helpers
temma-datasourceData sources: DSN, unified API, connectors
temma-authPasswordless authentication, Auth attribute, sessions
temma-validationValidation contracts (input, output, programmatic)
temma-aiLLMs through the AI datasource
temma-emailSending emails, SMTP relay
temma-testsIntegration tests with \Temma\Web\Test and PHPUnit
temma-asynkAsynchronous processing
temma-sseServer-sent events
temma-attributeCreating custom PHP attributes
temma-logLogging, levels, log managers
temma-securitySecurity 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.

The website also publishes an llms.txt file, which introduces Temma and lists the documentation pages with a summary of their content. It is the entry point an agent uses to find its way around the documentation while working on a Temma project.

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.

Synchronization is safe by design and never breaks Composer (it only prints warnings):
  • 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.