Configuration
Lore utilise un système de configuration en cascade.
Fichiers de configuration
| Fichier | Rôle | Git |
|---|---|---|
.lorerc |
Configuration partagée du projet | Committé |
.lorerc.local |
Surcharges personnelles (clés API) | Gitignore (chmod 600) |
LORE_* env vars |
Surcharges CI/automation | — |
--language flag |
Surcharge CLI | — |
Ordre de résolution (priorité décroissante) : flags CLI > env vars > .lorerc.local > .lorerc > défauts.
Référence complète
# .lorerc — config partagée
language: "fr" # "en" ou "fr" — langue de l'interface
ai:
provider: "" # "anthropic", "openai", "ollama", ou "" (zéro-API)
model: "" # Nom du modèle
# api_key: "" # Clé API (préférer set-key ou env var LORE_AI_API_KEY)
# endpoint: "" # URL endpoint custom (pour Ollama, Groq, Together, etc.)
# timeout: 60s # Timeout pour les appels API IA
angela:
# mode: draft # DÉPRÉCIÉ — aucun effet à l'exécution. Choisissez le mode via la sous-commande : `lore angela draft|polish|review`
# max_tokens: 8192 # Optionnel : surcharge le max tokens auto-calculé (défaut : dynamique par mode)
polish:
backup:
enabled: true # Crée un backup pré-polish du source avant chaque écriture
path: polish-backups # Sous-répertoire sous le state dir
retention_days: 30 # Supprime les backups plus vieux que N jours (0 = garder pour toujours)
log:
retention_days: 30 # polish.log : garde les entrées des N derniers jours (0 = désactive filtre date)
max_size_mb: 10 # polish.log : trim des plus anciennes pour rester sous ce cap (0 = désactive cap)
gc:
corrupt_quarantine:
retention_days: 14 # Supprime les fichiers state *.corrupt-<ts> plus vieux que N jours (0 = garder pour toujours)
hooks:
post_commit: true # Activer le hook post-commit
star_prompt: true # Afficher le prompt star
star_prompt_after: 5 # Afficher le prompt star après N commits documentés (0 = désactivé)
amend_prompt: true # Demander "Documenter ce changement ?" lors de git commit --amend
notification:
mode: auto # auto, terminal, dialog, notify, silent
disabled_envs: [] # Environnements à ignorer (ex. ["vim"])
amend: true # Activer les notifications pour les amend commits
decision:
threshold_full: 60 # Score >= 60 : questionnaire complet
threshold_reduced: 35 # Score 35-59 : questions réduites
threshold_suggest: 15 # Score 15-34 : suggestion de skip (confirmation)
always_ask: [feat, breaking] # Toujours demander pour ces types de commit
always_skip: [docs, style, ci, build] # Auto-skip pour ces types
learning: true # Activer l'apprentissage LKS
learning_min_commits: 20 # Minimum de commits avant activation du learning
templates:
dir: .lore/templates
output:
format: markdown
dir: .lore/docs
Branch Awareness (branche git)
Depuis l'Angela Enhancement Sprint, lore capture la branche git et le scope du commit conventionnel au moment du commit et les stocke dans le front matter du document :
---
type: feature
date: 2026-04-01
commit: a1b2c3d
branch: feature/auth # branche git courante
scope: auth # parsé depuis "feat(auth): ..."
---
Les deux champs se propagent dans tout le pipeline — hook → question flow → template → stockage → LKS store — et apparaissent dans les dialogs de notification pour que vous voyiez à quelle branche appartient un commit en attente.
Désactivation
Branch et scope utilisent omitempty dans la sortie YAML : les docs créés sur une HEAD détachée ou depuis des commits sans scope conventionnel les omettent simplement. Aucune configuration nécessaire.
Impact sur le workflow amend
Quand vous faites git commit --amend et qu'un doc existe déjà pour le commit pré-amend, lore demande Document this change? [Y/n] (Question 0) puis propose [U]pdate / [C]reate / [S]kip. Configurable :
hooks:
amend_prompt: true # Mettre à false pour ignorer la Question 0
notification:
amend: true # Activer les notifications pour les commits amend
Voir Détection contextuelle pour le comportement complet.
Surcharges personnelles
# .lorerc.local — personnel, gitignore, chmod 600
ai:
provider: "anthropic"
model: "claude-sonnet-4-20250514"
api_key: "sk-ant-..." # Stockée ici ou dans le trousseau OS
Variables d'environnement
| Variable | Équivalent |
|---|---|
LORE_LANGUAGE |
language |
LORE_AI_PROVIDER |
ai.provider |
LORE_AI_API_KEY |
ai.api_key |
Valider la configuration
lore doctor --config
Vérifie les fautes de frappe, clés inconnues, et suggère des corrections via distance de Levenshtein.
Configurations typiques
Développeur solo (minimaliste)
# .lorerc — juste l'essentiel
hooks:
post_commit: true
output:
dir: .lore/docs
Pas d'IA, pas de config de langue. Anglais par défaut, mode zéro-API.
Projet open source
# .lorerc — committé dans le repo
language: "en"
hooks:
post_commit: true
star_prompt_after: 5
decision:
always_ask: [feat, breaking]
always_skip: [docs, style, ci]
output:
dir: .lore/docs
Le prompt star encourage les contributeurs à mettre une étoile. Le Decision Engine ignore les commits triviaux automatiquement.
Équipe avec IA
# .lorerc — config partagée (committée)
language: "en"
ai:
provider: "anthropic"
model: "claude-sonnet-4-20250514"
hooks:
post_commit: true
angela:
max_tokens: 8192
# .lorerc.local — personnel (gitignore, chmod 600)
ai:
api_key: "sk-ant-..."
Chaque membre de l'équipe stocke sa propre clé API. La config partagée définit le fournisseur et le modèle.
angela.max_tokens— Quand défini, cette valeur remplace la limite auto-calculée. Par défaut, Angela calculemax_tokensdynamiquement selon la taille du document (word_count × 1.3 × 1.8, plafonné à 8192, plancher 512). Si vous définissezangela.max_tokens: 10000dans.lorerc, cette valeur est toujours utilisée. Augmentez-la si Angela avertit que « l'entrée dépasse la sortie max » ou si les réponses sont tronquées.
Clés de sûreté & rétention polish
| Clé | Défaut | Ce qu'elle contrôle |
|---|---|---|
angela.polish.backup.enabled |
true |
Si polish écrit un backup pré-polish dans polish-backups/ avant de toucher la source. Désactiver échange sûreté contre vitesse ; un avertissement « première fois désactivé » est affiché une seule fois par state dir. |
angela.polish.backup.path |
polish-backups |
Sous-répertoire sous le state dir où les backups atterrissent. |
angela.polish.backup.retention_days |
30 |
Les backups plus vieux que N jours sont supprimés par lore doctor --prune (et en side-effect de chaque run polish). 0 = garder pour toujours. |
angela.polish.log.retention_days |
30 |
Les entrées polish.log plus vieilles que N jours sont droppées au prune. 0 = désactive le filtre date. |
angela.polish.log.max_size_mb |
10 |
Après le filtre date, si polish.log dépasse ce cap, les plus anciennes entrées sont trimmées jusqu'à passer sous. 0 = désactive le cap. |
angela.gc.corrupt_quarantine.retention_days |
14 |
Les fichiers de state quarantinés *.corrupt-<ts> plus vieux que N jours sont supprimés au prune. Symlinks et fichiers non-réguliers sont toujours ignorés. 0 = garder pour toujours. |
Lancez lore doctor --prune --dry-run pour prévisualiser l'effet de votre policy de rétention avant de l'appliquer. Voir lore doctor pour la référence complète de la commande.
Projet bilingue (FR/EN)
# .lorerc
language: "fr"
hooks:
post_commit: true
Tous les messages UI, prompts, badges et messages de renforcement passent en français. "Lore" devient "L'or."
Configuration du fournisseur IA
Les commandes polish et review d'Angela nécessitent un fournisseur IA. Trois fournisseurs sont supportés, chacun avec des compromis différents.
Anthropic (Claude)
Meilleure qualité pour la documentation technique. Nécessite des crédits API achetés séparément d'un abonnement chat Claude.ai.
Étape 1 — Obtenir une clé API :
- Allez sur console.anthropic.com et inscrivez-vous (ou connectez-vous)
- Naviguez vers Settings → API Keys → Create Key
- Copiez la clé (commence par
sk-ant-...) - Ajoutez des crédits : Settings → Plans & Billing → Add Credits (minimum $5)
Important : Un abonnement chat Claude.ai (Pro, Team) n'inclut PAS de crédits API. L'API est un produit séparé facturé sur console.anthropic.com. Vous avez besoin de crédits même si vous payez pour Claude.ai.
Étape 2 — Configurer lore :
# .lorerc
ai:
provider: "anthropic"
model: "claude-sonnet-4-20250514" # ou claude-haiku-4-5-20251001 (moins cher)
# Stocker la clé API dans le trousseau OS
lore config set-key anthropic
# → Entrez la clé API : sk-ant-...
Étape 3 — Tester :
lore angela draft --all # gratuit, pas d'API
lore angela polish <votre-doc>.md --dry-run # 1 appel API, aperçu seulement
lore angela review # 1 appel API, analyse du corpus
| Élément | Détail |
|---|---|
| Inscription | console.anthropic.com |
| Clés API | Settings → API Keys → Create Key |
| Ajouter des crédits | Settings → Plans & Billing → Add Credits ($5 minimum) |
| Coût par polish | ~$0.01–0.05 (Sonnet), ~$0.001 (Haiku) |
| Endpoint | https://api.anthropic.com/v1/messages (automatique) |
| Modèles | claude-sonnet-4-20250514 (recommandé), claude-haiku-4-5-20251001 (le moins cher) |
OpenAI (GPT)
Étape 1 — Obtenir une clé API :
- Allez sur platform.openai.com/api-keys et inscrivez-vous (ou connectez-vous)
- Cliquez Create new secret key, nommez-la (ex : "lore")
- Copiez la clé (commence par
sk-...) - Ajoutez des crédits : Settings → Billing → Add payment method puis Add credits ($5 minimum)
Note : Un compte API OpenAI est séparé d'un abonnement ChatGPT. L'API utilise des crédits prépayés — pas de facturation récurrente sauf si vous activez l'auto-recharge.
Étape 2 — Configurer lore :
# .lorerc
ai:
provider: "openai"
model: "gpt-4o-mini" # le moins cher, ou gpt-4o pour la meilleure qualité
# Stocker la clé API dans le trousseau OS
lore config set-key openai
# → Entrez la clé API : sk-...
Étape 3 — Tester :
lore angela polish <votre-doc>.md --dry-run # aperçu des changements
lore angela review # analyse du corpus
| Élément | Détail |
|---|---|
| Inscription | platform.openai.com |
| Clés API | platform.openai.com/api-keys |
| Ajouter des crédits | Settings → Billing → Add credits ($5 minimum) |
| Coût par polish | ~$0.001 (gpt-4o-mini), ~$0.01–0.05 (gpt-4o) |
| Endpoint | https://api.openai.com/v1/chat/completions (automatique) |
| Endpoint custom | Définir ai.endpoint pour APIs compatibles (Azure OpenAI, Ollama — voir ci-dessous) |
| Modèles | gpt-4o-mini (le moins cher), gpt-4o (meilleure qualité), gpt-4.1-mini, gpt-4.1 |
Ollama (Local — Gratuit)
Tourne entièrement sur votre machine. Pas de clé API, pas de coût, aucune donnée envoyée.
Étape 1 — Installer Ollama :
brew install ollama
curl -fsSL https://ollama.com/install.sh | sh
Téléchargez l'installateur depuis ollama.com/download
Étape 2 — Télécharger un modèle et démarrer :
ollama serve & # démarrer le serveur (port 11434)
ollama pull llama3.2 # télécharger un modèle (~2Go)
Autres modèles recommandés :
| Modèle | Taille | Qualité | Vitesse |
|---|---|---|---|
llama3.2 |
2Go | Bon pour les docs courtes | Rapide |
llama3.1:8b |
4.7Go | Meilleure qualité | Moyen |
llama3.1:70b |
40Go | Proche de GPT-4o | Lent (nécessite 64Go RAM) |
mistral |
4.1Go | Bon polyvalent | Rapide |
codellama |
3.8Go | Meilleur pour les docs avec code | Rapide |
gemma2 |
5.4Go | Bon pour l'écriture technique | Moyen |
Étape 3 — Configurer lore :
# .lorerc
ai:
provider: "ollama"
model: "llama3.2" # ou tout modèle de `ollama list`
Pas besoin de lore config set-key — Ollama n'a pas d'authentification.
Étape 4 — Tester :
ollama list # vérifier que le modèle est installé
lore doctor --config # vérifier que le fournisseur est détecté
lore angela polish <votre-doc>.md --dry-run # tester polish
lore angela review # tester review
| Élément | Détail |
|---|---|
| Télécharger | ollama.com/download ou brew install ollama |
| Coût | Gratuit (tourne sur votre matériel) |
| Endpoint | http://localhost:11434 (automatique) |
| Parcourir les modèles | ollama.com/library |
| Lister les installés | ollama list |
| Télécharger un modèle | ollama pull <nom-du-modèle> |
Conseil qualité : Les petits modèles (llama3.2, phi3) peuvent halluciner ou produire du texte générique. Pour de meilleurs résultats, utilisez un modèle d'au moins 8B paramètres (llama3.1:8b, mistral) et écrivez des premiers brouillons détaillés avant de polir.
Tester le code path OpenAI via Ollama (gratuit)
Ollama expose une API compatible OpenAI sur /v1/chat/completions. Cela permet de tester le fournisseur openai sans payer de crédits OpenAI :
# .lorerc.local
ai:
provider: "openai"
model: "llama3.2"
endpoint: "http://localhost:11434/v1/chat/completions"
api_key: "unused" # Ollama ignore les clés API, mais le champ doit être non-vide
# Vérifier que ça marche
ollama serve &
lore angela polish <votre-doc>.md --dry-run
Note : Cela fonctionne uniquement pour le fournisseur
openai. Le fournisseuranthropicutilise un format de requête différent qu'Ollama ne supporte pas.
Comparaison des fournisseurs
| Anthropic | OpenAI | Ollama | |
|---|---|---|---|
| Qualité | Meilleure pour les docs techniques | Très bonne | Dépend de la taille du modèle |
| Coût | ~$0.01–0.05/appel | ~$0.001–0.01/appel | Gratuit |
| Vie privée | Données envoyées à l'API | Données envoyées à l'API | 100% local |
| Temps de setup | 5 min (inscription + crédits) | 5 min (inscription + crédits) | 2 min (installer + pull) |
| Hors ligne | Non | Non | Oui |
| Vitesse | Rapide (~3s) | Rapide (~3s) | Dépend du matériel (5-30s) |
| Inscription | console.anthropic.com | platform.openai.com | Pas de compte nécessaire |
Pas d'IA ? Pas de problème
lore angela draft et lore angela draft --all fonctionnent 100% hors ligne sans aucune configuration. Ils analysent la structure des documents, les sections manquantes, la cohérence de style et les références croisées — tout localement.
Pour polish/review sans credits API, voir le workflow manuel via le chat Claude.ai dans la FAQ.
Dépannage
"Mon changement de config n'a aucun effet"
Vérifiez l'ordre de la cascade — une source de priorité plus élevée peut surcharger votre changement :
Flag CLI (--language fr) ← priorité la plus haute
↓
Environnement (LORE_LANGUAGE)
↓
.lorerc.local
↓
.lorerc ← vous avez édité ici
↓
Défauts ← priorité la plus basse
Lancez lore doctor --config pour voir la configuration résolue.
"Avertissement de clé inconnue"
lore doctor --config
# ✗ clé inconnue "ai.providr" — vouliez-vous dire "ai.provider" ?
lore utilise la distance de Levenshtein pour suggérer des corrections de fautes de frappe.
Voir aussi
lore config— Voir et modifier la configlore doctor --config— Valider la config