scoring : sous-chaîne (100), sous-séquence (40), tolérance de frappe par distance de Levenshtein (25/15/5)
champs pondérés : nom ×3, titre ×2, description/catégorie/tags ×1
tri par score puis nom ; les correspondances exactes arrivent en premier
am search : « vouliez-vous dire : X, Y ? » quand aucun résultat
✅ Critères d'acceptation
"claude cod" trouve claude-code
"cludecode" trouve claude-code
les correspondances exactes se classent en premier
suggest propose les noms proches (aiderr → aider)
suite complète : 163 tests verts (8 nouveaux)
## 🎯 Objectif
Recherche fuzzy (issue #26) : am search tolère les fautes de frappe et classe par pertinence.
closes #26
## 📦 Contenu
- scoring : sous-chaîne (100), sous-séquence (40), tolérance de frappe par distance de Levenshtein (25/15/5)
- champs pondérés : nom ×3, titre ×2, description/catégorie/tags ×1
- tri par score puis nom ; les correspondances exactes arrivent en premier
- am search : « vouliez-vous dire : X, Y ? » quand aucun résultat
## ✅ Critères d'acceptation
- [x] "claude cod" trouve claude-code
- [x] "cludecode" trouve claude-code
- [x] les correspondances exactes se classent en premier
- [x] suggest propose les noms proches (aiderr → aider)
- [x] suite complète : 163 tests verts (8 nouveaux)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
🎯 Objectif
Recherche fuzzy (issue #26) : am search tolère les fautes de frappe et classe par pertinence.
closes #26
📦 Contenu
✅ Critères d'acceptation