CERFA Auto (Codex + Claude)
Automatiser la génération de CERFA 16702-01 pour les installations photovoltaïques à partir d’emails structurés.
Centraliser la logique métier (analyse emails, géocodage, cadastre, projection PDF) dans une API FastAPI exploitable par Codex et Claude.
Fournir une base PRO : Docker, CI GitHub Actions, tests et documentation complète.
.
├── app
│ ├── main.py # Entrée FastAPI
│ ├── services/
│ │ ├── email_parser.py # Analyse brute email
│ │ ├── geocoder.py # API adresse.data.gouv.fr
│ │ ├── cadastre.py # API apicarto.ign.fr
│ │ └── cerfa_builder.py # Fusion PyMuPDF + templates
│ └── models/
│ ├── client.py
│ ├── cadastre.py
│ └── project.py
├── templates/ # PDF statiques (CERFA base, overlay)
├── dp_generes/ # CERFA produits
├── tests/ # pytest : API, services, e2e
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── .github/workflows/deploy.yml
Workflow Email → API → CERFA
Email entrant : Codex/Claude poste le corps brut via /api/v1/cerfa.
Parsing : email_parser extrait nom, adresse, panneaux, puissance, scénarios.
Géocodage : geocoder requête api-adresse.data.gouv.fr pour obtenir lon/lat.
Cadastre : cadastre interroge apicarto.ign.fr (point → parcelle) pour sections, superficies, IDU.
Projet : project calcule puissance kWc, description standardisée.
CERFA builder : cerfa_builder applique PyMuPDF + modèle templates/cerfa_overlay_base.pdf, exporte dans dp_generes/.
Réponse API : renvoie JSON (métadonnées) + binaire PDF (ou URL local) prêt à signer/envoyer.
Cloner le dépôt :
git clone git@github.com:yohand-byte/cerfa_auto_codex_claude.git
cd cerfa_auto_codex_claude
(Optionnel) créer un venv puis installer :
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Lancer FastAPI :
uvicorn app.main:app --reload
Documentation interactive : http://localhost:8000/docs
Body multipart :
email_text (str, requis)
coords_map (fichier JSON optionnel pour override overlay)
Réponse 200 :
{
"client" : {... },
"cadastre" : {... },
"project" : {... },
"pdf_path" : " dp_generes/DP_GAUFRETEAU_2025-11-18T18-30-00.pdf"
}
Retourne aussi le fichier PDF (StreamingResponse).
Ping simple (status/service version).
Liste des PDF disponibles dans templates/.
Workflow complet Codex + Claude
Codex récupère l’email client, appelle /api/v1/cerfa avec email_text.
FastAPI déclenche la chaîne complète (parser → geocode → cadastre → builder).
Codex vérifie la réponse, poste lien + résumé dans le ticket.
Claude peut consommer la même API pour générer ou valider les PDF ; instructions :
envoyer l’email brut.
optionnel : fournir coords_map si de nouvelles cases apparaissent.
Stockage : PDF généré dans dp_generes/, versionné si besoin.
Utilisation Codex + Claude
Codex : utiliser curl ou python httpx pour POST. Toujours vérifier les retours d’erreur (400 si parsing impossible, 502 si API Géo indispo).
Claude : même protocole. Ajouter résumé final : puissance, section cadastrale, chemin PDF.
En cas d’erreur API externe, les services lèvent HTTPException explicites (GEOCODER_DOWN, CADASTRE_NOT_FOUND).
dp_generes/ reste versionné (vide par défaut) pour audit.
templates/ doit contenir cerfa_overlay_base.pdf et autres gabarits (placer via SCP ou objet Git LFS si volumineux).
CI GitHub Actions : lint (ruff/flake8), tests, build Docker, push image (placeholder) et job de déploiement personnalisable.