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:#701a75Exercice 1 — Prise en main (15 min)
Objectif : démarrer un projet et poser les fondations.
- Créez un dossier vierge et initialisez-le avec
git init. - Lancez
opencodedans ce dossier. - Lancez
/initet committez leAGENTS.mdgénéré. - Créez un petit fichier (
src/hello.ts) et demandez à Opencode de vous expliquer ce que fait le fichier. - 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.
- Écrivez une mauvaise demande : « Ajoute une pagination ».
- Regardez ce qu’Opencode produit.
- Écrivez la bonne demande avec : contexte, comportement attendu, cas limites, fichier de référence (
@). - 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.
- Créez
.opencode/agents/code-reviewer.mdavec :descriptionclairemode: subagentpermission: edit: denytemperature: 0.1- un prompt exigeant bugs, sécurité, performance, lisibilité
- Redémarrez Opencode.
- Implémentez une petite fonction volontairement buggée, puis demandez :
@code-reviewer Passe en revue @src/ma-fonction.ts
- 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.
- Créez
.opencode/command/review.mdqui fait relire le diff par l’agentcode-reviewer. - Redémarrez et tapez
/review. - Faites un changement, puis
/reviewpour vérifier.
Compétences visées : commandes, $ARGUMENTS, agent dans une commande.
Exercice 5 — Méthode TDD (25 min)
Objectif : appliquer rouge-vert-refactor.
- Copiez le skill
test-driven-devdans votre projet. - Demandez à Opencode d’ajouter une fonction (ex.
isPalindrome) en suivant le skill :Ajoute une fonction isPalindrome en suivant le skill test-driven-dev. - Vérifiez que les tests ont été écrits avant l’implémentation, puis lancés.
- 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).
- Spécifiez (méthode de l’exercice 2) : commandes, stockage (fichier JSON), format de sortie.
- Planifiez en Plan mode, découpez en 3 incréments.
- Implémentez en Build mode, incrément par incrément, tests à chaque étape (skill TDD).
- Relisez avec
/review. - Sécurisez : interdisez les commandes
rmpour l’agent build. - 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: subagenttemperature: 0.1permission: 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 andstyle violations. $ARGUMENTSExercice 5 — Skill TDD (fourni, voir exemples/)
Le skill test-driven-dev guide le cycle rouge-vert-refactor. Installez-le :
mkdir -p .opencode/skillscp -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.mdriche pour chaque projet. - Partagez vos commandes et agents avec votre équipe.