Passer au contenu principal

Skills

Les Skills sont des modules de prompt réutilisables. Vous chargez un SKILL.md pour ajouter à la session des instructions dédiées à un domaine.

Vue d’ensemble

  • Réutilisez des connaissances métier sous forme de skills
  • Partagez le même comportement entre plusieurs projets
  • Activez/désactivez par session
Dans la version Laravel, cela se configure via skillDirectories et disabledSkills de SessionConfig.

Utilisation de base

Dans skillDirectories, indiquez un répertoire parent : le SKILL.md de chaque sous-répertoire est chargé.
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\SessionConfig;

Copilot::start(function (CopilotSession $session) {
    $response = $session->sendAndWait(prompt: 'この差分をセキュリティ観点でレビューして');

    dump($response->content());
}, config: new SessionConfig(
    skillDirectories: [
        base_path('skills'),
    ],
));
Vous pouvez aussi passer un tableau.
Copilot::run(
    prompt: 'READMEの改善案を出して',
    config: [
        'skillDirectories' => [base_path('skills')],
    ],
);

Désactiver des skills

disabledSkills permet de désactiver certains skills déjà chargés.
$config = new SessionConfig(
    skillDirectories: [base_path('skills')],
    disabledSkills: ['experimental-feature', 'deprecated-tool'],
);

Structure des dossiers

skills/
├── code-review/
│   └── SKILL.md
└── documentation/
    └── SKILL.md
Dans skillDirectories, indiquez le répertoire parent (skills/).

Format de SKILL.md

SKILL.md est un Markdown avec un frontmatter YAML optionnel.
---
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
Principaux champs du frontmatter :
  • name : identifiant du skill (nom utilisé dans disabledSkills)
  • description : description courte du skill
Si name est omis, le nom du répertoire est utilisé.

Combiner avec des Custom Agents

En précisant des noms de skills dans customAgents[].skills, ces skills sont chargés au démarrage de l’agent concerné.
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'],
        ],
    ],
);
Si skills est omis, le contenu des skills n’est pas injecté dans l’agent.

Inspection et contrôle via RPC

La découverte et l’activation/désactivation des skills sont également possibles via RPC.
// Détecte les skills au niveau serveur
$result = Copilot::client()->rpc()->skills()->discover();

// Liste les skills dans la session
$session->rpc()->skills()->list();

// Active/désactive un skill au sein de la session
$session->rpc()->skills()->enable(['name' => 'security-scan']);
$session->rpc()->skills()->disable(['name' => 'security-scan']);

Bonnes pratiques

  • Séparez les skills par domaine (skills/security, skills/testing, etc.)
  • Renseignez name et description dans le frontmatter
  • En cas d’instructions conflictuelles, excluez explicitement via disabledSkills
  • Testez d’abord chaque skill isolément avant de les combiner

Voir aussi

Dernière modification le 13 juillet 2026