feat: score de confiance et detection lancee d'office #328
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#328
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs:
spec-decisions-import-csv-format.md+spec-plan-import-csv-format.md(racine du repo).Contexte
Deux defauts qui laissent l'utilisateur sans information :
src/components/import/SourceConfigPanel.tsx:69-77). Une source neuve demarre surdefaultConfig(;,DD/MM/YYYY, colonnes 0/1/2), assez plausible pour produire un import faux plutot qu'une erreur franche.autoDetectConfigne teste jamais sa propre configuration sur les donnees. Elle retourne un resultat sans indiquer s'il tient.Troisieme point, cosmetique mais trompeur : le selecteur de convention de signe est affiche en permanence (
SourceConfigPanel.tsx:273-306) alors que le parsing ne l'applique qu'en mode montant unique (useImportWizard.ts:514). En mode debit/credit, l'utilisateur regle un bouton sans effet.Taches
autoDetectConfigrejoue la configuration detectee sur les lignes de l'echantillon et retourne le taux de lignes parsees sans erreurSourceConfigPanel: score (« Format reconnu — 147 des 150 lignes lues ») ou avertissement sous le seuilCriteres d'acceptation
Depends on #327
Revision /review-spec — 2026-08-13
Corrections a appliquer, issues de la revue 3 experts :
mapRow(raw, format), la fonction pure extraite en #325 — ne pas reimplementer la regle de parsing. La regle de mapping (date + montant + signe) vit aujourd'hui dansparseFilesInternal, unuseCallbackdeuseImportWizard.ts:461-557, alors qu'autoDetectConfigest un util pur qui ne recoit querawContent.Fichiers concernes
src/utils/csvAutoDetect.ts— score viamapRowsrc/hooks/useImportWizard.ts— detection lancee d'office sur source non configureesrc/components/import/SourceConfigPanel.tsx— bandeau de resultat, convention masquee en debit/creditsrc/i18n/locales/fr.json+en.jsonDecisions prises en planification
Emplacement du code partage : le codec
formatToRow/formatFromRowetmapRowvivent danssrc/utils/importFormat.ts— meme dossier queamountParser,dateParseretcsvAutoDetect, qui portent deja la logique pure du domaine. Les types restent danssrc/shared/types/.Aucune correction retroactive des transactions deja importees a l'envers : la voie de reparation est
deleteImportWithTransactionspuis re-import. Ne jamais muter des montants deja ecrits.L'import reste entierement en edition Free — aucun gating a ajouter.
Les specs
spec-decisions-import-csv-format.mdetspec-plan-import-csv-format.mdsont committees a la racine (force-add, precedent PR #295) : elles sont lisibles depuis un worktree.Seuil de confiance : 90 % (tranche en planification). Sous 90 % de lignes lues, bandeau d'avertissement avec le score detaille (« 132/150 lignes lues »). Au-dessus, bandeau neutre. L'apercu obligatoire de #329 reste le filet reel quel que soit le score — le seuil ne fait que colorer l'information, il ne bloque rien.
Spec source
spec-plan-import-csv-format.md+spec-decisions-import-csv-format.md(racine du repo, committees).