Explorer
KNOW-PAT-124

Knowledge Core — Système de connaissances branché à Windsurf

Domaine
ia
Type
pattern
Priorité
P1

Parent : [[INDEX-IA]]

Knowledge Core — Système de connaissances branché à Windsurf

Problème

Une IA (Windsurf/Cascade) ne se souvient pas d'une discussion à l'autre. Sans système externe, chaque conversation repart de zéro — les connaissances métier, les patterns validés, les erreurs connues ne sont jamais réutilisés automatiquement.

Solution

Un dépôt knowledge-core structuré avec des fichiers .md chargés automatiquement par Windsurf via le mécanisme Rules (.windsurf/rules/).

Architecture du système

knowledge-core/
├── .windsurf/
│   ├── rules/           ← Chargées automatiquement par Windsurf selon le contexte
│   │   ├── global.md    ← alwaysApply: true  (toujours chargée)
│   │   ├── fivem.md     ← déclenchée si la conv parle de FiveM/Lua
│   │   ├── cybersecu.md ← déclenchée si la conv parle de sécurité
│   │   ├── site-web.md  ← déclenchée si la conv parle de web/frontend
│   │   └── ia.md        ← déclenchée si la conv parle d'IA/connaissances
│   └── workflows/
│       ├── knowledge-add.md  ← /knowledge-add
│       └── exportk.md        ← /exportk
├── validated/           ← Connaissances validées par domaine
│   ├── fivem/
│   ├── cybersecu/
│   ├── web-uiux/
│   └── ia/
├── inbox/               ← Zone temporaire avant validation
└── meta/
    ├── INDEX.md         ← Catalogue auto-généré
    ├── TAXONOMY.yml     ← Valeurs autorisées (domaines, types, phases...)
    └── validators/
        ├── validate-all.py              ← Pipeline complet en 1 commande
        ├── generate-rules.py            ← Génère .windsurf/rules/ depuis validated/
        ├── extract-from-conversation.py ← Extrait connaissances depuis une conv
        ├── check-consistency.py
        ├── check-duplicates.py
        ├── check-expired.py
        ├── check-orphans.py
        └── update-index.py

Comment Windsurf charge les connaissances

Chaque fichier dans .windsurf/rules/ a un frontmatter YAML :

---
description: "FiveM Lua - scripts serveur ESX QBCore anti-cheat inventory"
alwaysApply: false
---
  • alwaysApply: true → chargé dans toutes les discussions
  • alwaysApply: false → Windsurf décide selon la description et le contexte de la conv

La description contient les mots-clés déclencheurs. Si tu parles de fivem, lua, esxfivem.md est injecté dans le contexte.

Pipeline de mise à jour (1 commande)

python meta\validators\validate-all.py

Enchaîne automatiquement :

  1. Vérification schémas
  2. Détection doublons
  3. Vérification expirations
  4. Mise à jour INDEX.md
  5. Régénération des .windsurf/rules/*.md

Flux pour ajouter une connaissance

Nouvelle connaissance
      ↓
Créer fichier .md dans validated/{domaine}/{type}/
      ↓
python meta\validators\validate-all.py
      ↓
Rules Windsurf régénérées automatiquement
      ↓
Dispo dans la prochaine discussion

Flux pour extraire depuis une conversation

Copier conv dans inbox/conv-export.txt
      ↓
python meta\validators\extract-from-conversation.py inbox\conv-export.txt --domain fivem
      ↓
Fichiers générés dans inbox/raw/ (avec checklist de validation)
      ↓
Review manuelle → déplacer vers validated/
      ↓
python meta\validators\validate-all.py

Commandes disponibles dans Windsurf

Commande Action
/knowledge-add Ajouter une connaissance guidée
/exportk Extraire connaissances depuis une conversation

Règles strictes

  • Chaque connaissance : ID unique KNOW-{TYPE}-{NNN}
  • Date d'expiration max 6 mois
  • inbox/raw/ vidé chaque semaine
  • Tout ajout passe par validate-all.py