Skip to content

F3 : téléchargeur PDF des boutiques + contrat d'extraction Codex - #9

Draft
evausesgit wants to merge 1 commit into
mainfrom
f3-boutiques-pdf
Draft

F3 : téléchargeur PDF des boutiques + contrat d'extraction Codex#9
evausesgit wants to merge 1 commit into
mainfrom
f3-boutiques-pdf

Conversation

@evausesgit

Copy link
Copy Markdown
Owner

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é dans docs/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).
  • Scheduler : collecte quotidienne à 05h50 (fenêtre de publication attendue : 5–15 du mois).
  • 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).
  • Collecte réelle testée en direct sur les 7 fonds (5 maisons + Amiral ×2) : 9 documents archivés avec succès.
  • POST /api/fonds/extraction testé 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/sante vérifiés après extraction — rendu correct.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MweyzACWL2eDshY2JvgfCH

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.
@geekette-veyxzer

geekette-veyxzer Bot commented Jul 14, 2026

Copy link
Copy Markdown

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant