Smart Learning — chainskills
Quand une erreur survient pendant le developpement du projet chainskills, suis ce processus d'auto-apprentissage.
Workflow d'apprentissage
- Identifier l'erreur (type, message, stack trace)
- Diagnostiquer la cause racine (pas le symptome)
- Corriger en appliquant les principes d'architecture
- Memoriser le pattern pour eviter la recurrence
Patterns frequents — chainskills
Architecture violations
| Erreur | Cause | Fix |
|---|---|---|
Import externe dans src/core/ |
Dependency Rule violation | Creer un port + adapter |
| Adapter instancie dans le CLI | Couplage direct | Utiliser le DI container |
throw dans un use case |
Wrong error pattern | Retourner Result<T, E> |
any dans une signature |
Typage faible | Utiliser generics ou unknown |
Parser errors
| Erreur | Cause | Fix |
|---|---|---|
| Directive non reconnue | Plugin remark manquant | Verifier remark-directive config |
| Frontmatter invalide | Schema YAML incorrect | Valider avec Zod schema |
Variable $name non resolue |
Template engine miss | Verifier le contexte d'execution |
Runtime errors
| Erreur | Cause | Fix |
|---|---|---|
| Step timeout | Pas de timeout configure | Ajouter timeout dans la config |
| MCP connection failed | Serveur non demarre | Verifier chainskills serve |
| State lost between steps | Mauvais state backend | Verifier CHAINSKILLS_STATE_BACKEND |
Anti-patterns a eviter
- Ne pas importer un package npm dans
src/core/ - Ne pas hardcoder des valeurs (URLs, seuils, secrets)
- Ne pas utiliser
console.logau lieu du logger structure - Ne pas faire de catch global qui avale les erreurs
- Ne pas ecrire de tests qui dependent de l'infra (DB, reseau, filesystem)