F3 : téléchargeur PDF des boutiques + contrat d'extraction Codex - #9
Draft
evausesgit wants to merge 1 commit into
Draft
F3 : téléchargeur PDF des boutiques + contrat d'extraction Codex#9evausesgit wants to merge 1 commit into
evausesgit wants to merge 1 commit into
Conversation
Ordre du recensement (Moneta → Indépendance AM → Amiral → Carmignac → LFDE → Comgest), recettes vérifiées en direct sur chaque site. Le contenu est archivé en base (SourceDocument.contenu) avec sha256 : plusieurs maisons publient à une URL stable réécrite chaque mois, seul le contenu permet de détecter un nouveau reporting. /api/fonds/extraction/en-attente + POST /api/fonds/extraction exposent le contrat piloté par l'agent d'extraction (docs/extraction-fonds.md), avec garde-fous (poids du top 10 plausible, citation obligatoire par thèse). Testé de bout en bout sur les 7 fonds réels : 9 documents collectés, extraction + garde-fous vérifiés via l'API.
|
The preview deployment for la-grande-machine:main-zwcfoyudk78h6l5fej6lu8vq is ready. 🟢 Open app | Open Build Logs | Open Application Logs Last updated at: 2026-07-14 08:52:19 CET |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Résumé
Phase F3 du chantier fonds (docs/SPEC-FONDS.md) : la collecte des reportings PDF des 6 boutiques françaises, dans l'ordre recommandé par le recensement F1 (Moneta → Indépendance AM → Amiral → Carmignac → LFDE → Comgest).
app/collectors/fonds_pdf.py: une recette par maison, vérifiée en direct sur chaque site (voir détail des recettes dans le module). Archivage du contenu en base (SourceDocument.contenu, nouvelle colonne) avec sha256 — plusieurs maisons (Amiral, Carmignac, LFDE) publient à une URL stable réécrite chaque mois, seul le contenu permet de détecter un nouveau reporting.GET /api/fonds/extraction/en-attente+POST /api/fonds/extraction: le contrat piloté par l'agent d'extraction (Codex), documenté dansdocs/extraction-fonds.md. Garde-fous : poids du top 10 plausible (15–80 %), citation obligatoire par thèse, rejet en 422 sans écriture partielle.GET /api/fonds/documents/{id}.pdf: sert la copie archivée (pas l'URL d'origine, qui peut avoir été écrasée)./api/sante: compteurs de documents par fonds et par statut (en_attente/extrait/erreur).app/config.py: ISIN manquants ajoutés (Sextant PME/Grand Large, Echiquier Agressor), note Comgest mise à jour (pas de porte d'accès constatée, contrairement à l'hypothèse du recensement F1).Ce PR ne fait que collecter et archiver — l'extraction réelle des positions/thèses reste un chantier séparé (agent Codex suivant le contrat).
Test plan
python -m unittest discover -s tests— 21 tests, tous verts (parsing par maison, dédoublonnage par hash, échec isolé d'une maison).POST /api/fonds/extractiontesté de bout en bout : garde-fou poids (422), garde-fou citation (422), extraction valide (200, snapshot + 10 positions + 1 thèse créés)./fonds,/,/api/santevérifiés après extraction — rendu correct.🤖 Generated with Claude Code
https://claude.ai/code/session_01MweyzACWL2eDshY2JvgfCH