# Jour 1 — Ta première conversation avec Claude Code

[Retour au Jour 0 (configuration)](../day0/README.md)

---

Tu as installé Claude Code. Et maintenant ? Ce guide te présente trois niveaux d'utilisation — chacun te donne plus de contrôle sur **comment** Claude fait son travail.

Pense à ça comme à l'embauche de quelqu'un :
1. **Prompting** = demander ton chemin à un inconnu dans la rue
2. **Agents** = engager un spécialiste qui fait toujours les choses d'une certaine manière
3. **Skills** = ce spécialiste a reçu une formation spécifique pour des tâches précises

---

## Niveau 1 : Prompting (demande simplement)

> 🧠 **Pense à ça comme** envoyer un message à un ami qui sait beaucoup de choses. Tu demandes « quelle est la météo à Karachi ? » et il te donnera *une* réponse — mais tu ne sais pas s'il a consulté une app météo, regardé par la fenêtre ou deviné depuis sa mémoire.

Ouvre ton terminal et tape `claude`. Tu es maintenant dans une conversation. Essaie de taper :

```
what is the weather in Karachi?
```

Claude répondra — mais **comment** il répond est imprévisible. Il pourrait :
- S'appuyer sur ses données d'entraînement (qui peuvent être obsolètes)
- Chercher sur le web (si des outils web sont disponibles)
- Donner une réponse générale plutôt que des données temps réel

C'est parfaitement acceptable pour les questions rapides ! Mais si tu as besoin de **résultats cohérents et fiables**, le prompting seul ne suffit pas.

### Quand le prompting fonctionne très bien

- Poser des questions sur ta codebase (« que fait ce fichier ? »)
- Rédiger ou modifier des documents (« réécris cet email pour qu'il soit plus professionnel »)
- Brainstormer des idées (« donne-moi 5 objets pour cette campagne »)
- Expliquer des choses (« explique ce message d'erreur comme si je n'étais pas développeur »)

### La limite

Chaque fois que tu demandes « quelle est la météo ? », Claude peut récupérer les données différemment — ou ne pas récupérer de vraies données du tout. Rien ne garantit qu'il utilise deux fois la même source ou la même méthode.

---

## Niveau 2 : Agents (le spécialiste)

Un **agent** est Claude qui joue un rôle spécifique — comme attribuer un intitulé de poste.

> 🧠 **Pense à ça comme** une cuisine de restaurant. Sans agent, tu entres dans une cuisine au hasard et tu cries « fais-moi des pâtes ! » — la personne qui t'entend peut faire bouillir des nouilles instantanées ou préparer un menu italien en cinq services. Avec un agent, tu engages un **chef pasta** dont la fiche de poste dit : *« utilise toujours des ingrédients frais, cuis toujours al dente, présente toujours de la même façon. »* Maintenant tu sais exactement ce que tu obtiens, à chaque fois.

Voici la même idée appliquée à Claude :

> **Sans agent :** tu demandes à Claude « What's the weather in Dubai? »
> Il peut consulter ses données d'entraînement, chercher sur le web ou faire une meilleure estimation. Tu ne sais pas ce qu'il va faire.
>
> **Avec agent :** un `weather-agent` a une fiche de poste claire :
> *« Toujours consulter l'API Open-Meteo pour Dubaï. Toujours retourner la température dans un format précis. »*
> Même question, même approche, à chaque fois.

### Exemple réel depuis ce repo

Ce repo contient un `weather-agent` — son unique travail est de récupérer la température à Dubaï. Voici ce qui le distingue du simple prompting :

| | Prompting | Agent |
|---|---|---|
| **Source** | Pourrait être n'importe où | Toujours API Open-Meteo |
| **Lieu** | Ce que Claude choisit | Toujours Dubaï (lat: 25.2, lon: 55.3) |
| **Format** | Paragraphe aléatoire | Température + unité propres |
| **Cohérence** | Différent à chaque fois | Même méthode, à chaque fois |

### À retenir

Les agents te donnent de la **prédictibilité**. Même question → même approche → même qualité. C'est l'avantage — non pas que les agents soient plus intelligents, mais qu'ils soient **cohérents**.

---

## Niveau 3 : Skills (la formation)

Un **skill** est une capacité spécifique qu'un agent (ou Claude lui-même) peut utiliser.

> 🧠 **Pense à ça comme** le manuel de formation d'un nouvel employé. Quand quelqu'un rejoint ton équipe, il a un rôle (agent), mais il suit aussi des modules de formation spécifiques — comment utiliser le CRM, comment écrire une proposition, comment animer un standup. Chaque module de formation est un **skill**. Le rôle dit *ce qu'il est* ; les skills disent *comment* faire des choses précises.

Maintenant pense à une vraie personne :

> **Shayan** a beaucoup de skills :
> - Skill d'ingénierie — peut écrire du code
> - Skill de jeu — connaît les mécaniques de jeu
> - Skill de lecture — peut digérer et résumer de longs documents
>
> Chaque skill a ses propres connaissances et méthodes. Shayan utilise le bon skill pour la bonne tâche.

Claude fonctionne de la même façon. Le `weather-agent` a un skill appelé `weather-fetcher` :

- L'**agent** (`weather-agent`) = la personne avec l'intitulé "Weather Reporter"
- Le **skill** (`weather-fetcher`) = la formation spécifique sur *comment* récupérer des données météo

Le skill contient des instructions exactes :
1. Appeler cette URL d'API précise
2. Extraire la température depuis ce champ précis de la réponse
3. La retourner dans ce format précis

### Pourquoi séparer agents et skills ?

Parce qu'**un agent peut avoir plusieurs skills**, et **un skill peut être utilisé par plusieurs agents**.

Par exemple, imagine que tu crées :
- Un `daily-report-agent` qui résume ta journée
- Il pourrait utiliser un skill `weather-fetcher` (pour la météo) + un skill `calendar-reader` (pour les réunions) + un skill `email-summarizer` (pour les points clés des emails)

Les skills sont des briques réutilisables. Les agents sont les personnes qui les utilisent.

---

## Tout assembler

Voici l'image complète :

```
Niveau 1 : PROMPTING
Toi → "What's the weather?" → Claude trouve comme il peut
                                (méthode imprévisible)

Niveau 2 : AGENTS
Toi → Weather Agent → Utilise toujours la même approche
                      (méthode prévisible)

Niveau 3 : SKILLS
Toi → Weather Agent → Utilise le skill weather-fetcher
                      (méthode prévisible avec instructions spécifiques)
```

Chaque niveau ajoute plus de contrôle :

| Niveau | Ce que tu contrôles | Idéal pour |
|--------|---------------------|------------|
| **Prompting** | La question | Questions rapides et ponctuelles |
| **Agents** | La question + qui répond | Tâches répétables |
| **Skills** | La question + qui répond + comment il le fait | Workflows critiques |

---

## Et ensuite ?

Pour l'instant, passe du temps au **niveau 1** — prompt simplement. Habitue-toi à poser des questions à Claude dans le terminal. Plus tu l'utiliseras, plus tu remarqueras les tâches qui bénéficieraient d'un agent.

---

[Retour au Jour 0 (configuration)](../day0/README.md)
