Découverte des Skills et Agents

Apprenez comment TeamDay découvre et fusionne automatiquement les skills, agents et configurations MCP depuis plusieurs sources pour une utilisation par vos agents IA.

Table des matières

Ce que vous allez apprendre

À la fin de ce guide, vous saurez comment :

  • ✅ Comprendre comment TeamDay découvre les skills, agents et MCPs
  • ✅ Créer des skills dans les répertoires .claude/skills/
  • ✅ Créer des agents dans les répertoires .claude/agents/
  • ✅ Configurer les MCPs en utilisant des fichiers .mcp.json
  • ✅ Consulter tous les éléments découverts dans l’interface du Space
  • ✅ Comprendre l’ordre de priorité et la déduplication

Temps nécessaire : 20-30 minutes

Comprendre la découverte multi-sources

Les agents TeamDay peuvent utiliser des skills (capacités invocables), des subagents (agents spécialisés) et des MCPs (intégrations d’outils externes) depuis plusieurs sources :

┌─────────────────────────────────────────────────────────────────────────┐
│                    SOURCES DE DÉCOUVERTE                                 │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  SOURCE 1: Firebase         SOURCE 2: Space .claude/   SOURCE 3: Repos  │
│  ┌──────────────────┐      ┌──────────────────┐      ┌────────────────┐ │
│  │ Créé par util.   │      │ Créé par agent   │      │ Dépôts clonés  │ │
│  │ Marketplace      │      │ space/.claude/   │      │ repo/.claude/  │ │
│  │ Assigné à char   │      │ (modifiable)     │      │ (synchro git)  │ │
│  └────────┬─────────┘      └────────┬─────────┘      └───────┬────────┘ │
│           │                         │                         │          │
│           └─────────────────────────┼─────────────────────────┘          │
│                                     ▼                                    │
│                   ┌───────────────────────────────┐                      │
│                   │ Découverte + Déduplication    │                      │
│                   │ - Priorité: Space > Firebase  │                      │
│                   │ - Repos préfixés avec chemin  │                      │
│                   └───────────────┬───────────────┘                      │
│                                   ▼                                      │
│                       Disponible pour l'Agent                            │
└─────────────────────────────────────────────────────────────────────────┘

Pourquoi plusieurs sources ?

  • Firebase : Skills/agents organisés que vous gérez via l’interface
  • Space .claude/ : Éléments créés par les agents pendant l’exécution
  • Dépôts clonés : Skills/agents qui accompagnent vos bases de code

Cela vous permet de :

  • Importer des skills depuis des dépôts Git
  • Laisser les agents créer de nouveaux skills pendant leur travail
  • Gérer des skills organisés via le marketplace
  • Partager des skills entre les spaces via des dépôts

Sources de découverte

1. Firebase (Géré)

Les skills et agents stockés dans Firebase sont explicitement assignés à des personnages ou des spaces.

Caractéristiques :

  • Créé via l’interface ou l’API
  • Assigné à des personnages/spaces
  • Contrôles de visibilité (privé/org/public)
  • Stocké avec les identifiants pour les MCPs

Exemples :

  • Skills depuis le marketplace
  • Skills personnalisés que vous créez
  • Instances MCP que vous configurez

2. Répertoire .claude/ du Space

Le répertoire .claude/ à la racine du space contient les éléments créés directement dans l’espace de travail.

Emplacement :

/sandbox/{orgId}/spaces/s-{spaceId}/
├── .claude/
│   ├── skills/
│   │   └── my-skill/
│   │       └── SKILL.md
│   └── agents/
│       └── my-agent.md
├── .mcp.json              # Configuration MCP du Space
└── ...vos fichiers...

Caractéristiques :

  • Priorité la plus élevée (remplace les autres sources)
  • Modifiable - les agents peuvent créer/modifier
  • Persiste entre les exécutions
  • Pas de préfixe (utilise le nom directement)

3. Répertoires .claude/ des dépôts clonés

Lorsque vous clonez un dépôt Git dans votre space, tous les répertoires .claude/ qu’il contient sont automatiquement découverts.

Emplacement :

/sandbox/{orgId}/spaces/s-{spaceId}/
├── my-cloned-repo/
│   ├── .claude/
│   │   ├── skills/
│   │   │   └── repo-skill/
│   │   │       └── SKILL.md
│   │   └── agents/
│   │       └── repo-agent.md
│   └── .mcp.json          # Configuration MCP du dépôt
└── another-repo/
    └── .claude/
        └── skills/
            └── another-skill/
                └── SKILL.md

Caractéristiques :

  • Préfixé avec le chemin du dépôt (ex: my-cloned-repo/repo-skill)
  • Lecture seule du point de vue de l’agent (géré par git)
  • Priorité la plus basse
  • Idéal pour partager des skills via Git

Créer des Skills

Les skills sont des capacités invocables que les agents peuvent utiliser via l’outil Skill.

Structure de fichier Skill

Créez un skill en ajoutant un fichier SKILL.md dans un répertoire de skill :

.claude/skills/
└── blog-writer/
    ├── SKILL.md          # Requis: définition du skill
    └── scripts/          # Optionnel: scripts d'aide
        └── generate.sh

Format SKILL.md

---
description: "Rédiger des articles de blog engageants avec optimisation SEO"
allowed-tools: ["Read", "Write", "WebSearch"]
---

Vous êtes un expert en rédaction de blogs spécialisé dans le contenu technique.

Lors de la rédaction d'articles de blog :
1. Recherchez le sujet en profondeur
2. Créez un plan engageant
3. Écrivez dans un ton conversationnel
4. Incluez des exemples de code lorsque pertinent
5. Optimisez pour le SEO

## Format de sortie

Produisez toujours l'article de blog au format Markdown avec :
- Des titres clairs (H1 pour le titre, H2 pour les sections)
- Des blocs de code avec coloration syntaxique du langage
- Une section "Points clés à retenir" à la fin

Champs de métadonnées (Frontmatter)

ChampRequisDescription
descriptionOuiDescription brève affichée dans la liste des skills
allowed-toolsNonOutils que le skill peut utiliser (tableau)
nameNonNom d’affichage (par défaut : nom du dossier)

Exemple : Skill de recherche

---
description: "Recherche approfondie utilisant la recherche web et l'analyse"
allowed-tools: ["WebSearch", "WebFetch", "Read", "Write"]
---

Vous êtes un assistant de recherche. Lorsqu'on vous demande de rechercher un sujet :

1. **Phase de recherche**
   - Utilisez WebSearch pour trouver des sources pertinentes
   - Rassemblez au moins 5 sources faisant autorité

2. **Phase d'analyse**
   - Lisez et résumez chaque source
   - Identifiez les thèmes et insights clés
   - Notez les informations contradictoires

3. **Phase de synthèse**
   - Rédigez un résumé complet
   - Incluez des citations pour toutes les affirmations
   - Mettez en évidence les domaines nécessitant plus de recherche

## Format de sortie

```markdown
# Recherche : {Sujet}

## Résumé
{Aperçu en 2-3 paragraphes}

## Découvertes clés
- Découverte 1 [Source]
- Découverte 2 [Source]

## Sources
1. {Titre} - {URL}

## Créer des Agents

Les agents (subagents) sont des instances Claude spécialisées qui peuvent être générées via l'outil Task.

### Format de fichier Agent

Créez des agents sous forme de fichiers `.md` dans le répertoire `agents/` :

.claude/agents/ ├── code-reviewer.md ├── test-writer.md └── documentation.md


### Format Markdown de l'agent

```markdown
---
name: code-reviewer
description: "Examine le code pour la qualité, la sécurité et les bonnes pratiques"
tools: Read, Grep, Glob
model: sonnet
---

Vous êtes un expert en révision de code. Lors de l'examen du code :

1. **Vérification de sécurité**
   - Recherchez les vulnérabilités d'injection
   - Vérifiez les secrets codés en dur
   - Vérifiez la validation des entrées

2. **Vérification de qualité**
   - Examinez les conventions de nommage
   - Vérifiez la duplication de code
   - Évaluez la lisibilité

3. **Vérification de performance**
   - Identifiez les goulots d'étranglement potentiels
   - Vérifiez les opérations inutiles
   - Examinez les requêtes de base de données

## Format de sortie

Fournissez des commentaires sous forme de :

```markdown
## Révision de code : {nom_fichier}

### Problèmes de sécurité
- [ ] Description du problème (sévérité : haute/moyenne/basse)

### Suggestions de qualité
- Suggestion avec exemple de code

### Notes de performance
- Observation et recommandation

### Champs de métadonnées

| Champ | Requis | Description |
|-------|----------|-------------|
| `name` | Non | Nom de l'agent (par défaut : nom du fichier) |
| `description` | Oui | Description brève pour la liste des agents |
| `tools` | Non | Liste séparée par virgules des outils autorisés |
| `model` | Non | Modèle à utiliser (sonnet, opus, haiku) |

### Exemple : Agent de rédaction de tests

```markdown
---
name: test-writer
description: "Rédige des tests unitaires et d'intégration complets"
tools: Read, Write, Bash, Glob
---

Vous êtes un spécialiste de la rédaction de tests. Lorsqu'on vous demande d'écrire des tests :

1. **Analyser le code**
   - Lire le fichier source
   - Identifier toutes les fonctions/méthodes publiques
   - Noter les dépendances et cas limites

2. **Planifier les cas de test**
   - Scénarios de chemin heureux
   - Conditions d'erreur
   - Cas limites
   - Valeurs limites

3. **Écrire les tests**
   - Utiliser le framework de test du projet
   - Suivre les modèles de tests existants
   - Inclure des noms de tests descriptifs

4. **Vérifier**
   - Exécuter les tests
   - S'assurer que tous passent
   - Vérifier la couverture

## Normes de test

- Chaque fonction devrait avoir au moins 3 tests
- Les noms de tests doivent décrire le scénario
- Simuler les dépendances externes
- Utiliser des messages d'assertion descriptifs

Configurer les MCPs

Les MCPs (Model Context Protocol) étendent les capacités des agents avec des outils externes. Ils peuvent être configurés via des fichiers .mcp.json.

Emplacement de .mcp.json

Placez .mcp.json à la racine de votre space ou dépôt :

space/
├── .mcp.json              # MCPs au niveau du Space
└── my-repo/
    └── .mcp.json          # MCPs au niveau du dépôt

Format .mcp.json

{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "@package/mcp-server"],
      "env": {
        "API_KEY": "your-key"
      },
      "timeout": 30000
    }
  }
}

Champs de configuration

ChampRequisDescription
commandOuiCommande à exécuter (ex: npx, pipx)
argsNonTableau d’arguments
envNonVariables d’environnement
timeoutNonDélai de démarrage en ms

Exemple : MCP Google Analytics

{
  "mcpServers": {
    "google-analytics": {
      "command": "pipx",
      "args": ["run", "analytics-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_PROJECT_ID": "my-project"
      },
      "timeout": 30000
    }
  }
}

Exemple : Plusieurs MCPs

{
  "mcpServers": {
    "sequential-thinking": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your-brave-api-key"
      }
    }
  }
}

MCPs SSE/HTTP

Pour les MCPs basés sur serveur :

{
  "mcpServers": {
    "remote-mcp": {
      "type": "sse",
      "url": "https://mcp.example.com/sse",
      "headers": {
        "Authorization": "Bearer token"
      }
    }
  }
}

Consulter les éléments découverts

TeamDay fournit une interface pour consulter tous les skills, agents et MCPs découverts dans votre space.

Accéder à la vue de découverte

  1. Ouvrez votre space
  2. Allez dans l’onglet Claude Config (ou similaire)
  3. Consultez les onglets : Skills, Agents, MCPs

Comprendre l’affichage

Les éléments sont regroupés par source :

Section Space

  • Éléments depuis {space}/.claude/
  • Badge : ✨ Space
  • Priorité la plus élevée

Section Gérés

  • Éléments depuis Firebase
  • Badge : 📦 Firebase
  • Configuré par l’utilisateur

Section Dépôts

  • Éléments depuis les dépôts clonés
  • Badge : 📂 {nom-dépôt}
  • Préfixé avec le chemin du dépôt

Exemple de vue

┌─────────────────────────────────────────────────────────────────────┐
│ Claude Config                                                        │
├───────────┬─────────────────────────────────────────────────────────┤
│ [Skills]  │ [Agents] │ [MCPs]                                       │
├───────────┴──────────┴──────────────────────────────────────────────┤
│                                                                      │
│ SPACE                                                                │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ ✨ custom-analyzer          [Space]                    🎯       │ │
│ │ Analyse les modèles de code et suggère des améliorations        │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│                                                                      │
│ GÉRÉS                                                                │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 📦 blog-image-generation    [Firebase]                 🎯       │ │
│ │ Génère des images IA pour les articles de blog                  │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│                                                                      │
│ DÉPÔTS                                                               │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 📂 teamday-cc/research      [teamday-cc]               🎯       │ │
│ │ Recherche approfondie utilisant la recherche web                │ │
│ │ /teamday-cc/.claude/skills/research/SKILL.md                    │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘

Rafraîchir la découverte

Cliquez sur le bouton Actualiser pour réanalyser les nouveaux éléments après :

  • Cloner un nouveau dépôt
  • Créer de nouveaux fichiers skill/agent
  • Modifier .mcp.json

Priorité et déduplication

Lorsque le même skill/agent/MCP existe dans plusieurs sources, TeamDay utilise une déduplication basée sur les priorités.

Ordre de priorité

  1. Space .claude/ - Priorité la plus élevée
  2. Firebase - Priorité moyenne
  3. Dépôt .claude/ - Priorité la plus basse

Comment fonctionne la déduplication

Exemple : le skill "blog-writer" existe à plusieurs endroits

Firebase :           blog-writer (assigné au personnage)
Space :              blog-writer (créé par l'agent)
Dépôt teamday-cc :   blog-writer (depuis le dépôt)

Résultat :
✓ blog-writer         → Utilise la version Space (priorité la plus élevée)
✓ teamday-cc/blog-writer → Version du dépôt disponible avec préfixe

Conventions de nommage

  • Éléments Space/Firebase : Utilisent le nom directement (ex: blog-writer)
  • Éléments dépôt : Préfixés avec le chemin du dépôt (ex: teamday-cc/blog-writer)

Cela garantit que les skills du dépôt ne remplacent pas accidentellement vos skills gérés.

Hash de contenu

TeamDay utilise le hachage de contenu pour identifier les éléments réellement dupliqués :

  • Hash = SHA256(nom + description + prompt)
  • Les éléments avec le même hash de différentes sources sont dédupliqués
  • La version Space a la priorité

Bonnes pratiques

1. Utiliser les dépôts pour les skills partagés

Placez les skills réutilisables dans des dépôts Git :

# Créer un dépôt de skills
mkdir my-skills
cd my-skills
git init
mkdir -p .claude/skills/research
# Ajouter les fichiers SKILL.md
git add .
git commit -m "Add research skill"
git push origin main

Ensuite clonez dans n’importe quel space pour les utiliser.

2. Laisser les agents créer des skills

Les agents peuvent créer de nouveaux skills pendant l’exécution :

Utilisateur : "Créer un skill pour rédiger des notes de version"

Agent : [Crée .claude/skills/release-notes/SKILL.md]

Terminé ! Le skill release-notes est maintenant disponible.

Ceux-ci persistent dans le répertoire .claude/ du space.

3. Garder Firebase pour les identifiants

Utilisez les MCPs Firebase pour les outils nécessitant des identifiants :

  • Tokens OAuth (Google Analytics)
  • Clés API (Brave Search)
  • Comptes de service (BigQuery)

Firebase stocke les identifiants de manière sécurisée.

4. Documenter vos skills

Ajoutez des descriptions claires et des exemples :

---
description: "Génère des rapports d'analyse hebdomadaires avec graphiques et insights"
---

# Générateur de rapport d'analyse

## Utilisation

Invoquez ce skill lorsque vous devez :
- Créer des rapports de performance hebdomadaires
- Analyser les tendances de trafic
- Générer des résumés exécutifs

## Exemple

"Générer le rapport d'analyse hebdomadaire pour la semaine dernière"

5. Contrôle de version avec Git

Gardez vos skills dans Git :

  • Suivre les changements dans le temps
  • Partager au sein de l’équipe
  • Revenir en arrière si nécessaire
  • Examiner les modifications de skills

6. Tester les skills avant déploiement

Testez d’abord dans un space de développement :

Utilisateur : "Tester le nouveau skill de recherche en recherchant 'Fonctionnalités TypeScript 5.0'"

Agent : [Utilise le skill de recherche]
[Fournit une recherche complète]

Utilisateur : "Parfait, commiter ce skill"

7. Utiliser les noms préfixés intentionnellement

Si vous voulez qu’un skill de dépôt remplace les autres :

  1. Copiez-le dans .claude/skills/ du space
  2. Supprimez le préfixe
  3. Il devient priorité la plus élevée

8. Surveiller les configurations MCP

Vérifiez les fichiers .mcp.json pour :

  • Chemins corrects
  • Identifiants valides
  • Délais appropriés
  • Bonnes pratiques de sécurité

Dépannage

Skills n’apparaissent pas

Vérifier :

  1. Le fichier s’appelle SKILL.md (sensible à la casse)
  2. Situé dans .claude/skills/{nom}/SKILL.md
  3. Métadonnées YAML valides
  4. Cliquer sur Actualiser dans l’interface

Agents non découverts

Vérifier :

  1. Le fichier se termine par .md
  2. Situé dans .claude/agents/
  3. A description dans les métadonnées
  4. Syntaxe YAML valide

MCPs ne se chargent pas

Vérifier :

  1. .mcp.json au niveau racine
  2. Syntaxe JSON valide
  3. La commande est installée/disponible
  4. Les variables d’environnement sont définies correctement

Mauvaise version utilisée

Si la mauvaise version d’un skill est utilisée :

  1. Vérifier l’ordre de priorité
  2. Renommer ou supprimer les versions en conflit
  3. Utiliser des noms préfixés explicites

Prochaines étapes