diff --git a/.agents/skills/php-common-library/SKILL.md b/.agents/skills/php-common-library/SKILL.md
new file mode 100644
index 0000000..e386153
--- /dev/null
+++ b/.agents/skills/php-common-library/SKILL.md
@@ -0,0 +1,190 @@
+---
+name: elixforms-php-common-library
+description: >
+ Documentazione della libreria condivisa PHP common/ del progetto elixForms.
+ Descrive la classe base ElixFormsComponent, i metodi factory per i campi form,
+ ElixFormsElement per il layout, QueryParamHelper per i query parameter,
+ e il pattern di ereditarietà per creare pagine custom.
+ Attiva questa skill quando lavori sui componenti PHP condivisi, crei nuovi tipi di campo,
+ modifichi la classe base, o integri con la piattaforma elixForms in PHP.
+---
+
+# Libreria Common PHP elixForms
+
+## Panoramica
+
+La cartella `php/common/` contiene la libreria condivisa PHP usata da tutte le pagine custom PHP. È basata su **Bootstrap Italia + HTML nativo** e implementa un sistema di form con campi dinamici, analogo alla libreria React in `react/common/`.
+
+## Architettura delle Classi
+
+```
+ElixFormsComponent (classe astratta, PHP 8.0+)
+ └── SceltaCarrieraPage (classe concreta, in scelta-carriera/index.php)
+ └── [AltrePageCustom] (classi concrete nelle sotto-cartelle)
+```
+
+### Namespace
+
+Tutte le classi usano il namespace PSR-4:
+```php
+namespace ElixForms\Common;
+```
+
+Le pagine importano con:
+```php
+require_once __DIR__ . '/../common/ElixFormsComponent.php';
+use ElixForms\Common\ElixFormsComponent;
+```
+
+## File della Libreria
+
+### `ElixFormsComponent.php` (Classe Base Astratta)
+
+Equivalente di `ElixFormsComponentAbstract.tsx` in React.
+
+#### Proprietà
+
+```php
+protected array $properties; // Equivalente di IElixFormsComponentProperties
+```
+
+Chiavi supportate in `$properties`:
+| Chiave | Tipo | Obbligatorio | Descrizione |
+|---|---|---|---|
+| `moduleName` | string | Sì | Nome del modulo nel breadcrumb |
+| `cardTitle` | string | Sì | Titolo della card principale |
+| `userDisplayName` | string | No | Nome utente nell'header |
+| `headerTitle` | string | No | Titolo sotto il breadcrumb |
+| `headerHeroImageSrc` | string | No | URL immagine hero |
+| `cardDescription` | string | No | Descrizione nella card |
+| `alertInfoTitle` | string | No | Titolo alert informativo |
+| `alertInfoMessage` | string | No | Messaggio alert informativo |
+| `instructionsTitle` | string | No | Titolo istruzioni |
+| `instructionsMessage` | string | No | Messaggio istruzioni |
+| `submitText` | string | No | Testo bottone submit (default: 'INVIA') |
+| `additionalFieldsJson` | string | No | JSON schema per campi dinamici |
+| `isDarkTheme` | bool | No | Tema scuro (riservato per uso futuro) |
+
+#### Metodi Factory (Campi Form)
+
+| Metodo | Tipo Campo | HTML Output |
+|---|---|---|
+| `createTextInput($name, $label, $required)` | Testo | `` |
+| `createTextAreaInput($name, $label, $required)` | Textarea | `