> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills

> Descrive come caricare SKILL.md riutilizzabili e gestire istruzioni specifiche di dominio tramite SessionConfig.

## Skills

Le skill sono moduli di prompt riutilizzabili. Puoi caricare `SKILL.md` per aggiungere alla sessione istruzioni orientate a un dominio specifico.

## Panoramica

* Riutilizzabilità del sapere di dominio come skill
* Condivisione dello stesso comportamento tra progetti
* Attivazione/disattivazione a livello di singola sessione

Nella versione Laravel si configurano tramite `skillDirectories` e `disabledSkills` di `SessionConfig`.

## Uso di base

Se in `skillDirectories` specifichi una directory padre, vengono caricati i `SKILL.md` presenti in ciascuna sottodirectory.

```php theme={null}
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\SessionConfig;

Copilot::start(function (CopilotSession $session) {
    $response = $session->sendAndWait(prompt: 'Rivedi questo diff dal punto di vista della sicurezza');

    dump($response->content());
}, config: new SessionConfig(
    skillDirectories: [
        base_path('skills'),
    ],
));
```

Puoi specificarlo anche come array.

```php theme={null}
Copilot::run(
    prompt: 'Proponi miglioramenti al README',
    config: [
        'skillDirectories' => [base_path('skills')],
    ],
);
```

## Disabilitare skill

Con `disabledSkills` puoi disabilitare solo alcune delle skill caricate.

```php theme={null}
$config = new SessionConfig(
    skillDirectories: [base_path('skills')],
    disabledSkills: ['experimental-feature', 'deprecated-tool'],
);
```

## Struttura della directory

```text theme={null}
skills/
├── code-review/
│   └── SKILL.md
└── documentation/
    └── SKILL.md
```

In `skillDirectories` specifica una directory padre come `skills/`.

## Formato di SKILL.md

`SKILL.md` è Markdown, con YAML frontmatter opzionale.

```markdown theme={null}
---
name: code-review
description: Specialized code review capabilities
---

# Code Review Guidelines

When reviewing code, always check for:

1. Security vulnerabilities
2. Performance issues
3. Code style
4. Test coverage
```

Voci principali del frontmatter:

* `name`: identificatore della skill (nome da usare in `disabledSkills`)
* `description`: breve descrizione della skill

Se ometti `name`, viene usato il nome della directory.

## Combinazione con Custom Agent

Se specifichi un nome di skill in `customAgents[].skills`, il contenuto della skill viene caricato in anticipo all'avvio dell'agente corrispondente.

```php theme={null}
use Revolution\Copilot\Types\SessionConfig;

$config = new SessionConfig(
    skillDirectories: [base_path('skills/security')],
    customAgents: [
        [
            'name' => 'security-auditor',
            'description' => 'Security-focused code reviewer',
            'prompt' => 'Focus on OWASP Top 10 vulnerabilities',
            'skills' => ['security-scan', 'dependency-check'],
        ],
    ],
);
```

> Se ometti `skills`, il contenuto delle skill non viene iniettato nell'agente.

## Verifica e operazioni via RPC

Puoi rilevare le skill e abilitarle/disabilitarle anche tramite RPC.

```php theme={null}
// Rileva le skill a livello di server
$result = Copilot::client()->rpc()->skills()->discover();

// Elenco delle skill nella sessione
$session->rpc()->skills()->list();

// Attiva/disattiva singolarmente all'interno della sessione
$session->rpc()->skills()->enable(['name' => 'security-scan']);
$session->rpc()->skills()->disable(['name' => 'security-scan']);
```

## Best practice

* Suddividi le skill per dominio (`skills/security`, `skills/testing`, ecc.)
* Includi `name` e `description` nel frontmatter
* Se ci sono istruzioni in conflitto, escludile esplicitamente con `disabledSkills`
* Testa prima ciascuna skill singolarmente, poi combinane più insieme

## Riferimenti

* [SessionConfig](/it/packages/laravel-copilot-sdk/session-config)
* [Custom Agents](/it/packages/laravel-copilot-sdk/custom-agents)
* [RPC](/it/packages/laravel-copilot-sdk/rpc)


## Related topics

- [laravel/agent-skills — la raccolta ufficiale di skill per agenti AI di Laravel](/it/blog/agent-skills-introduction.md)
- [Creare un agente personalizzato per Boost](/it/advanced/boost-custom-agent.md)
- [Laravel Boost](/it/boost.md)
- [Laravel e lo sviluppo con AI](/it/ai.md)
- [Eventi di streaming](/it/packages/laravel-copilot-sdk/streaming-events.md)
