Aller au contenu

Référence YAML — project-context.yaml

Schéma complet du fichier de configuration Grimoire Kit v3.

Structure globale

project:
  name: "Mon Projet"
  description: "Description courte"
  type: "webapp"
  metaphor: "forteresse"
  stack:
    - Python
    - FastAPI
    - PostgreSQL
  repos:
    - name: backend
      path: "."
      default_branch: main

user:
  name: "Alice"
  language: "Français"
  document_language: "Français"
  skill_level: "intermediate"

memory:
  backend: "auto"
  collection_prefix: "grimoire"
  embedding_model: ""
  qdrant_url: ""
  ollama_url: ""

agents:
  archetype: "minimal"
  custom_agents:
    - my-custom-agent

Section project

Clé Type Défaut Description
name string requis Nom du projet
description string "" Description courte
type string "webapp" Type de projet (webapp, api, library, infra, etc.)
metaphor string "" Métaphore structurante pour guider les agents
stack list[string] [] Technologies utilisées
repos list[repo] [] Dépôts du projet

Entrée repos

Clé Type Défaut Description
name string requis Nom du dépôt
path string "." Chemin relatif
default_branch string "main" Branche par défaut

Section user

Clé Type Défaut Description
name string "" Nom de l'utilisateur
language string "Français" Langue de communication des agents
document_language string "Français" Langue des documents générés
skill_level enum "intermediate" beginner | intermediate | expert

skill_level adapte la verbosité : beginner = pédagogique, expert = concis.

Section memory

Clé Type Défaut Description
backend enum "auto" Backend mémoire
collection_prefix string "grimoire" Préfixe des collections
embedding_model string "" Modèle d'embedding (optionnel)
qdrant_url string "" URL Qdrant (mode qdrant-server)
weaviate_url string "" URL Weaviate (mode weaviate-server)
neo4j_uri string "" URI Neo4j pour projections graph
ollama_url string "" URL Ollama (mode ollama)

Backends disponibles

Backend Description
auto Détection automatique : Weaviate local, puis Qdrant local, Ollama, local
local Stockage fichier local (pas de dépendance externe)
qdrant-local Qdrant en mode local (in-memory)
qdrant-server Qdrant serveur distant
weaviate-server Weaviate comme store vectoriel durable cible
mempalace Backend MemPalace expérimental
ollama Ollama pour les embeddings

Section agents

Clé Type Défaut Description
archetype string "minimal" Archétype de base
custom_agents list[string] [] Agents personnalisés à charger

Archétypes

Archétype Description
minimal Agents de base (orchestrateur, sentinelle, mémoire)
web-app Stack web avec agents frontend/backend
infra-ops Infrastructure et DevOps
creative-studio Création de contenu
fix-loop Boucle de correction certifiée

Sections supplémentaires

Toute clé non reconnue est préservée dans extra et accessible via le SDK :

# Sections custom — accessibles via config.extra["mon_extension"]
mon_extension:
  option_a: true
  option_b: "valeur"
config = GrimoireConfig.from_yaml("project-context.yaml")
ext = config.extra.get("mon_extension", {})

Validation

# Valider le fichier YAML
grimoire validate

# Validation programmatique
from grimoire.core.validator import validate_config
errors = validate_config(config)
for e in errors:
    print(f"{e.field}: {e.message}")

Synchronisation avec grimoire setup

Les valeurs de la section user (et project.name) servent de source de vérité. La commande grimoire setup propage ces valeurs dans tous les fichiers de configuration du projet :

Fichier cible Champs synchronisés
.github/copilot-instructions.md Project, User, Communication Language, Document Output Language, User Skill Level
# Appliquer la synchronisation
grimoire setup

# Audit sans modification (exit 1 si désynchronisé)
grimoire setup --check

# Passer des valeurs directement
grimoire setup --user "Alice" --lang "English" --skill-level beginner

# Sortie JSON (CI/CD)
grimoire setup --check --json

Bonne pratique : après toute modification de project-context.yaml, lancer grimoire setup pour propager les changements.

Voir aussi