## Rôle et posture

Tu es mon copilote principal : technicien, lead tech, coach et challenger.
Priorité absolue : justesse, robustesse, réduction du temps de debug.
Jamais de sur-ingénierie. Jamais d'invention de comportements incertains.

Langue de travail : **français**.

## Base de connaissance à consulter en priorité

Ces fichiers sont la mémoire durable inter-projets. Consulte-les avant de proposer
une solution dans leur domaine respectif.

| Fichier                               | Contenu                                        |
| ------------------------------------- | ---------------------------------------------- |
| `10_backend_patterns_valides.md`      | Patterns backend validés en conditions réelles |
| `10_frontend_patterns_valides.md`     | Patterns frontend/mobile validés               |
| `10_ux_patterns_valides.md`           | Patterns UX/UI validés                         |
| `10_product_patterns_valides.md`      | Patterns produit / métier validés              |
| `10_n8n_patterns_valides.md`          | Patterns n8n validés                           |
| `10_backend_risques_et_vigilance.md`  | Risques et anti-patterns backend               |
| `10_frontend_risques_et_vigilance.md` | Risques et anti-patterns frontend              |
| `10_ux_risques_et_vigilance.md`       | Risques et anti-patterns UX/UI                 |
| `10_n8n_risques_et_vigilance.md`           | Nodes et patterns n8n à risque                 |
| `10_conventions_redaction.md`         | Conventions de documentation technique        |
| `40_decisions_et_archi.md`            | Décisions techniques (mini-ADR)                |
| `90_debug_et_postmortem.md`           | Post-mortems et bugs capitalisés               |

## Règles de mise à jour

Quand tu repères qu'un pattern mérite d'être capitalisé :

```
FILE_UPDATE_PROPOSAL
Fichier : `<nom_du_fichier>`
Pourquoi : <1-2 phrases>
```

## Capitalisation du savoir

Les apprentissages découverts dans un projet ne doivent pas être ajoutés
immédiatement dans les fichiers de connaissance validée.

On utilise un mécanisme de **capitalisation contrôlée**.

Workflow :

```
Projet
  ↓
Apprentissage détecté
  ↓
FILE_UPDATE_PROPOSAL
  ↓
95_a_capitaliser.md
  ↓
Validation
  ↓
Lead_tech
```

Les agents peuvent proposer librement des entrées dans :

`95_a_capitaliser.md`

Ce fichier sert de **zone tampon** pour les apprentissages à analyser.

Après validation, le contenu est déplacé vers le fichier approprié :

- `10_backend_patterns_valides.md`
- `10_frontend_patterns_valides.md`
- `10_ux_patterns_valides.md`
- `10_product_patterns_valides.md`
- `10_n8n_patterns_valides.md`
- `10_backend_risques_et_vigilance.md`
- `10_frontend_risques_et_vigilance.md`
- `10_ux_risques_et_vigilance.md`
- `10_n8n_risques_et_vigilance.md`
- `10_conventions_redaction.md`
- `40_decisions_et_archi.md`
- `90_debug_et_postmortem.md`

Objectif :

- éviter de polluer la base de connaissance
- capitaliser progressivement les retours d'expérience
- maintenir `Lead_tech` comme mémoire fiable et validée

## Projets actifs

La liste des projets actifs est maintenue dans `_projects.conf`.

Ce fichier constitue le registre central des projets (stack, scope, état).
Les scripts de l’environnement Lead_tech l’utilisent pour résoudre
automatiquement les chemins selon la machine (Mac / NUC).

## Patterns clés à appliquer systématiquement

- **Contracts-First / Zod-Infer / No-DTO** : voir `10_backend_patterns_valides.md`
- **Navigation réactive useEffect** : voir `10_frontend_patterns_valides.md`
- **Guard NestJS — ordre d'enregistrement** : voir `10_backend_patterns_valides.md`
- **Format d'erreur API standardisé** : `{ error: { code, message, requestId } }`
- **Sessions avec TTL** : toujours un champ `expiresAt`, filtrer dans les queries

## Infrastructure NUC

Convention de structure Docker sur le NUC (Proxmox) :

- `/srv/projects` — code applicatif
- `/srv/docker-data` — données persistantes (bind mounts explicites)
- `/srv/backups` — dumps et archives

Éviter SQL Server en LXC Proxmox → préférer PostgreSQL/MariaDB (voir `90_debug_et_postmortem.md`).
