Metadata-Version: 2.4
Name: mapfarm-cuisine
Version: 0.8.0
Summary: Ontologie culinaire IAOS — schémas corpus + gates déterministes (génération gouvernée de recettes/menus).
Author: Holding MAPFARM
License: Proprietary
Keywords: culinaire,gates,gouvernance,mapfarm,menus,ontologie
Requires-Python: >=3.12
Requires-Dist: pydantic>=2.6
Requires-Dist: pyyaml>=6.0
Provides-Extra: test
Requires-Dist: pytest>=8; extra == 'test'
Description-Content-Type: text/markdown

# mapfarm-cuisine

**Ontologie culinaire IAOS** — socle déterministe de la génération *gouvernée* de
recettes et menus. Le LLM (dans un CDC ultérieur) n'assemble que des **briques
validées** ; chaque affirmation critique est EVIDENCED_BY un document corpus
`validated`, pinné `id@version`. **Ce dépôt ne contient aucun LLM** : des schémas
et des gates purs, testables au bit.

Spécification complète : [`docs/CDC-ontologie-culinaire-v0.2.md`](docs/CDC-ontologie-culinaire-v0.2.md).

## Contenu (S1)

```
cuisine/
  enums.py       # 14 allergènes INCO, régimes, catégories, familles, profils…
  schemas.py     # 6 types de documents corpus (Pydantic) = validateur de forme (§9.1)
  gates.py       # LES 5 GATES — package importable unique (décision D6)
  allergens.py   # allergenes_derives par fermeture transitive (+ composition/substitution)
  validate.py    # schéma + règles d'état (validated exige source, refs pinnées id@version)
corpus/          # documents reg_* d'amorçage
  reg_allergenes_inco.yaml          # 14 INCO (validated)
  reg_regimes.yaml                  # régimes dérivables + halal/casher à certifier
  reg_temperatures_sanitaires.yaml  # DRAFT volontaire : valeurs à sourcer (règle G3)
gate_vectors.json  # contrat d'exécution des gates, rejoué à l'identique par iaos
```

## Les 5 gates

Fonctions pures `run_gates(recette_composée, contexte) → [GateVerdict]`.

| Gate | BLOCK | WARN |
| ---- | ----- | ---- |
| G1 allergènes | allergène exclu présent (direct) | présence en traces |
| G2 régimes | incompatibilité dérivée | donnée manquante ; **halal/casher (certif requise)** |
| G3 sécurité sanitaire | paramètre sanitaire sans source validée ; doc/version déprécié | — |
| G4 saisonnalité | *jamais* | ingrédient hors saison |
| G5 coût | dépassement > seuil | ≤ seuil ; relevé de coût périmé |

Le compositeur **importe** ce package, ne le réimplémente jamais (une G3 en double
divergerait). `gate_vectors.json` est le test de non-régression partagé.

## Démarrage

```bash
pip install -r requirements.txt
python -m cuisine.validate corpus/     # ✓/✗ par document
pytest && ruff check .
```

## Périmètre

Ce socle **corpus** définit les schémas, les gates et le workflow de validation.
Le **graphe compositeur** (agent, dispatch, menus/`menu_canonique`) et le **front**
font l'objet de CDC ultérieurs qui consomment ce dépôt. Amorçage v1 (démo menu
bourguignon) : 60 ingrédients, 25 techniques, 40 accords, 15 recettes, 3 `reg_*`,
5 priors — validés par le chef partenaire. **Interdit** : ingestion de bases ou
d'ouvrages de recettes sous droits.
