Skip to content

07 — Exercices

07 — Exercices

Objectif : ancrer les réflexes d’ingénieur par la pratique. Faites les exercices dans l’ordre, sans regarder la solution avant d’essayer.

Pour chaque exercice, le résultat attendu est listé — et la « compétence ingénieur » visée est précisée.

flowchart LR
A[Ex. 1<br/>Prise en main<br/>15 min] --> B[Ex. 2<br/>Spécifier<br/>20 min]
B --> C[Ex. 3<br/>Agent de revue<br/>20 min]
C --> D[Ex. 4<br/>Automatiser<br/>15 min]
D --> E[Ex. 5<br/>TDD<br/>25 min]
E --> F[Ex. 6<br/>Projet complet<br/>40 min]
style A fill:#eef2ff,stroke:#4f46e5,color:#312e81
style B fill:#ecfeff,stroke:#0891b2,color:#164e63
style C fill:#f5f3ff,stroke:#7c3aed,color:#4c1d95
style D fill:#f0fdf4,stroke:#16a34a,color:#14532d
style E fill:#fff7ed,stroke:#ea580c,color:#7c2d12
style F fill:#fdf4ff,stroke:#c026d3,color:#701a75

Exercice 1 — Prise en main (15 min)

Objectif : démarrer un projet et poser les fondations.

  1. Créez un dossier vierge et initialisez-le avec git init.
  2. Lancez opencode dans ce dossier.
  3. Lancez /init et committez le AGENTS.md généré.
  4. Créez un petit fichier (src/hello.ts) et demandez à Opencode de vous expliquer ce que fait le fichier.
  5. Demandez à Opencode de planifier (Plan mode) une fonctionnalité « ajouter deux nombres », puis implémentez-la en Build mode.

Compétences visées : prise en main, plan/build, @fichier, /undo.


Exercice 2 — Spécifier correctement (20 min)

Objectif : apprendre à formuler une demande d’ingénieur.

  1. Écrivez une mauvaise demande : « Ajoute une pagination ».
  2. Regardez ce qu’Opencode produit.
  3. Écrivez la bonne demande avec : contexte, comportement attendu, cas limites, fichier de référence (@).
  4. Comparez la qualité des deux résultats. Notez la différence.

Compétences visées : spécification, contexte, cas limites.


Exercice 3 — Créer un agent de revue (20 min)

Objectif : créer son premier subagent.

  1. Créez .opencode/agents/code-reviewer.md avec :
    • description claire
    • mode: subagent
    • permission: edit: deny
    • temperature: 0.1
    • un prompt exigeant bugs, sécurité, performance, lisibilité
  2. Redémarrez Opencode.
  3. Implémentez une petite fonction volontairement buggée, puis demandez :
    @code-reviewer Passe en revue @src/ma-fonction.ts
  4. Vérifiez qu’il a bien trouvé le bug et qu’il n’a pas modifié le fichier.

Compétences visées : agents, permissions, délégation.


Exercice 4 — Automatiser (15 min)

Objectif : créer une commande réutilisable.

  1. Créez .opencode/command/review.md qui fait relire le diff par l’agent code-reviewer.
  2. Redémarrez et tapez /review.
  3. Faites un changement, puis /review pour vérifier.

Compétences visées : commandes, $ARGUMENTS, agent dans une commande.


Exercice 5 — Méthode TDD (25 min)

Objectif : appliquer rouge-vert-refactor.

  1. Copiez le skill test-driven-dev dans votre projet.
  2. Demandez à Opencode d’ajouter une fonction (ex. isPalindrome) en suivant le skill :
    Ajoute une fonction isPalindrome en suivant le skill test-driven-dev.
  3. Vérifiez que les tests ont été écrits avant l’implémentation, puis lancés.
  4. Lancez npm run test (ou l’équivalent) vous-même pour confirmer.

Compétences visées : TDD, skills, vérification.


Exercice 6 — Projet complet (40 min)

Objectif : tout assembler sur un mini-projet.

Cahier des charges : une TODO list en ligne de commande qui gère des tâches avec statuts (todo / done).

  1. Spécifiez (méthode de l’exercice 2) : commandes, stockage (fichier JSON), format de sortie.
  2. Planifiez en Plan mode, découpez en 3 incréments.
  3. Implémentez en Build mode, incrément par incrément, tests à chaque étape (skill TDD).
  4. Relisez avec /review.
  5. Sécurisez : interdisez les commandes rm pour l’agent build.
  6. Commitez un message propre rédigé par Opencode.

Compétences visées : méthode complète (spécifier → planifier → itérer → tester → revoir → committer).


Solutions et corrigés

Exercice 3 — Exemple d’agent de revue

---
description: Reviews code for bugs, security and quality issues without editing.
mode: subagent
temperature: 0.1
permission:
edit: deny
---
You are a senior code reviewer. Analyze the requested code or diff and report:
- bugs and edge cases
- security vulnerabilities
- performance concerns
- readability and maintainability issues
For each finding: severity, location, explanation, and a concrete suggested fix.
Never modify files. If the code is fine, say so clearly.

Exercice 4 — Exemple de commande

---
description: Reviews the current diff using the code-reviewer agent.
agent: code-reviewer
---
Review the current uncommitted changes. Report bugs, security issues and
style violations. $ARGUMENTS

Exercice 5 — Skill TDD (fourni, voir exemples/)

Le skill test-driven-dev guide le cycle rouge-vert-refactor. Installez-le :

Terminal window
mkdir -p .opencode/skills
cp -r exemples/.opencode/skills/test-driven-dev .opencode/skills/

Exercice 6 — Exemple de spécification

Crée une TODO list CLI en Node.js/TypeScript sans dépendance externe.
Fonctionnalités :
- `todo add "texte"` — ajoute une tâche (statut: todo)
- `todo list` — affiche toutes les tâches (id, statut, texte)
- `todo done <id>` — marque une tâche done
- `todo delete <id>` — supprime une tâche
- Persistance : fichier JSON dans le répertoire courant (ex. todo.json)
Contraintes :
- chaque commande a un test unitaire
- gérer les erreurs (id inexistant, arguments manquants) avec un message clair
- suivre la convention de style du projet (ESLint + Prettier)

Félicitations 🎉

Vous avez bouclé le parcours. Pour continuer à progresser :

  • Rendez vos agents plus pointus avec des modèles dédiés et des permissions fines.
  • Ajoutez des skills métier à votre équipe (tests, déploiement, audit).
  • Explorez MCP pour connecter vos outils (Playwright, GitHub).
  • Écrivez votre propre AGENTS.md riche pour chaque projet.
  • Partagez vos commandes et agents avec votre équipe.