Onboarding : sous-sections dans DocsContent et guides d'export CSV par banque (Desjardins, Tangerine, RBC, BNC, BMO) #355

Closed
opened 2026-09-26 12:24:30 +00:00 by maximus · 0 comments
Owner

Vague planned-2026-10-03-onboarding-phase1 (séance /plan-run du 2026-10-03, spec + /review-spec du 2026-09-25, verdict APPROUVÉ après intégration). Les fichiers spec-decisions-onboarding-phase1.md / spec-plan-onboarding-phase1.md sont ignorés par git : ce corps est auto-suffisant, ne pas chercher le spec. Analyse d'origine : docs/analyse-onboarding-2026-09.md.

Règles de la vague : pile linéaire (chaque PR part de la précédente) ; ne pas toucher CHANGELOG.md / CHANGELOG.fr.md avant #357 qui les centralise ; FR + EN pour toute clé i18n (.claude/rules/i18n.md) ; aucune migration DB ; aucune chaîne en dur dans les composants.

Objectif

Le guide explique comment obtenir un CSV chez les banques reconnues, dans une sous-section du chapitre Import, avec un statut de vérification par banque. Un cinquième bloc BMO reste à remplir par Max (#371, hors autopilot).

Tâches

  • src/components/settings/DocsSubsections.tsx (nouveau, pur, seul hook useTranslation) : props { sectionKey, registerRef: (id, el) => void } ; lit docs.<sectionKey>.subsections (returnObjects) = [{ id, title, status?, steps: string[], note? }] ; rend rien si absent ; sinon un bloc par entrée : <div id={id} ref=...>, h4 titre, ligne de statut en italique si présente, <ol> des étapes, note en fin
  • DocsContent.tsx : insérer <DocsSubsections> après le bloc « Comment faire » et avant les astuces (:160-200) ; registerRef écrit dans sectionRefs.current[id], ce qui étend la navigation par hash existante (:64-74) aux ancres de sous-sections. DocsContent lui-même (useLocation, useRef, useState, useEffect) n'est pas testable par appel direct : ne pas écrire de test dessus
  • fr.json + en.json : docs.import.subsections avec six entrées, id = import-export, import-desjardins, import-tangerine, import-rbc, import-bnc, import-bmo ; contenu ci-dessous
  • docs/guide-utilisateur.md chapitre 4 : même sous-section (mêmes six blocs, même avertissement BNC) ; « Démarrage rapide » (chapitre 1) réécrit sur les six étapes de la liste de démarrage dans le même ordre et avec les mêmes mots que onboarding.checklist.items.* ; mention du bouton « Créer un dossier d'exemple » dans « Comment faire » du chapitre 4

Contenu des blocs (FR ; EN = traduction fidèle)

  • import-export — « Exporter un CSV depuis votre banque » : un sous-dossier par compte dans le dossier d'import ; choisir la plage de dates la plus large offerte ; garder le fichier tel quel (ne pas l'ouvrir ni le réenregistrer dans un tableur) ; relancer l'export chaque mois et déposer le nouveau fichier dans le même sous-dossier.
  • import-desjardins — statut : « Procédure reconstituée depuis des guides tiers, à confirmer sur un compte réel ». Étapes : AccèsD (site, pas l'app) → Comptes → choisir le folio → onglet Relevés (ou Transactions / Historique selon la version) → choisir la période → Télécharger ou Exporter → format CSV. Note : l'export ne couvre que l'activité récente du folio ; pour une carte de crédit Desjardins, le CSV n'est pas garanti (certaines cartes n'offrent que le PDF).
  • import-tangerine — statut : « Étapes confirmées par la FAQ officielle de Tangerine ». Étapes : se connecter sur tangerine.ca (pas l'app mobile) → Transactions → bouton « Download Transactions » / « Télécharger les transactions » → choisir le compte et la plage → format CSV → Download. Note : l'historique disponible peut être limité à quelques mois ; relancer régulièrement.
  • import-rbc — statut : « Procédure reconstituée depuis des guides tiers, à confirmer sur un compte réel ». Étapes : Banque en direct RBC → Mes comptes → choisir le compte → bouton Télécharger (au-dessus du tableau des opérations) → format CSV → Continuer → enregistrer. Note : les cartes de crédit n'offrent qu'environ trois mois d'historique.
  • import-bnc — statut : « Aucune procédure publique trouvée pour les particuliers ». Contenu : l'app attend un fichier Date;Description;Catégorie;Débit;Crédit;Solde ; si votre export BNC a une autre forme, envoyez-nous uniquement la ligne d'en-tête et une ou deux lignes aux valeurs fictives via Paramètres → Systèmes → Rétroaction. Ne collez jamais un numéro de compte, un solde ni une transaction réelle : la rétroaction est un message texte envoyé à un serveur, c'est la seule exception au fonctionnement local de l'application.
  • import-bmo — statut : « Procédure reconstituée (fournie par Max le 2026-10-03, d'après une description générale), à confirmer sur un compte réel ; format de fichier non encore reconnu (#371) ». Étapes : Services bancaires en ligne BMO sur bmo.com (site, pas l'app) → cliquer le compte dans le sommaire (chèques, épargne ou Mastercard) → au-dessus de la liste des transactions, « Télécharger » (ou « Exporter ») → choisir le format CSV (les autres options visent QuickBooks, Quicken, Simply Accounting, Microsoft Money) → choisir la période → télécharger. Notes : l'historique téléchargeable est limité à 123 jours au maximum, et à environ trois mois plus les transactions non facturées pour une Mastercard, d'où l'intérêt d'exporter chaque mois ; prêts, hypothèques et marges de crédit ne s'exportent pas (relevés PDF seulement, conservés 7 ans) ; les colonnes diffèrent entre les comptes de dépôt et la carte de crédit. BMO n'a pas encore de format reconnu par l'app : la détection générique lit la plupart des exports à montants signés ; si l'aperçu signale des entrées et des sorties inversées, utilisez « Inverser les signes ». Même avertissement que BNC pour l'envoi d'un en-tête.

Fichiers concernés

  • src/components/settings/DocsSubsections.tsx (nouveau) + DocsSubsections.test.tsx (nouveau, pattern src/components/reports/FilterPanel.test.tsx)
  • src/components/settings/DocsContent.tsx
  • src/i18n/locales/fr.json, src/i18n/locales/en.json
  • docs/guide-utilisateur.md

Depends on

(aucune)

Critères d'acceptation

  • DocsSubsections.test.tsx : section sans subsections → rend null ; section avec → un bloc par entrée, id posés, ligne de statut rendue quand présente, absente sinon
  • /settings/users#import-export et #import-bnc défilent vers le bloc visé après chargement
  • Les six blocs existent en FR et en EN, textes identiques en sens ; le bloc BNC et le bloc BMO contiennent l'avertissement « ne collez jamais… »
  • Les onze autres sections du guide rendent exactement comme avant (aucune clé subsections ajoutée ailleurs)
  • docs/guide-utilisateur.md : « Démarrage rapide » = six étapes alignées sur onboarding.checklist.items.*
  • npm test, npm run build verts

Review caveats

  • (TECHNIQUE, résolu) Rendu extrait dans DocsSubsections pur ; pas de test par appel direct sur DocsContent.
  • (SECURITE, résolu) Bloc BNC sans relevé réel, avertissement explicite dans les trois copies.
  • (TECHNIQUE, hors périmètre, décidé le 2026-10-03) Pas de second scrollIntoView après le chargement des cartes Compte/Licence ; si l'ancre atterrit hors écran chez les testeurs, ouvrir une issue.

Décisions prises en planification

  • Case 5 de la liste = « une transaction classée à la main » (is_manually_categorized = 1) et non « règle créée » ni « transactions catégorisées » : le seed IPC met 180 mots-clés dans tout profil neuf et le wizard catégorise pendant l'import (useImportWizard.ts:1016).
  • Ordre des vagues : planned-2026-09-24-paiements s'exécute avant celle-ci (fichiers partagés : fr.json, en.json, CHANGELOG, architecture.md, guide-utilisateur.md) ; partir d'un main qui contient déjà ses clés.
  • Max est client BMO, pas d'une des quatre banques : le critère de release « une banque validée sur compte réel » porte sur BMO et vit dans #371 (hors autopilot) ; les quatre autres blocs gardent leur statut « à confirmer ». Le 2026-10-03, Max a fourni une procédure BMO générale (voir le commentaire de #371) : le bloc est rédigé « reconstitué, à confirmer », la signature d'import attend toujours la ligne d'en-tête réelle.
  • Sources de la recherche du 2026-09-25 : FAQ Tangerine (officielle), Prosperi / Piastro / FlowVista (Desjardins), Prosperi / Neontra / CapyParse (RBC), centre d'aide entreprises BNC seulement.

Spec source

spec-plan-onboarding-phase1.md (local, ignoré par git)

Vague `planned-2026-10-03-onboarding-phase1` (séance `/plan-run` du 2026-10-03, spec + `/review-spec` du 2026-09-25, verdict APPROUVÉ après intégration). Les fichiers `spec-decisions-onboarding-phase1.md` / `spec-plan-onboarding-phase1.md` sont **ignorés par git** : ce corps est auto-suffisant, ne pas chercher le spec. Analyse d'origine : `docs/analyse-onboarding-2026-09.md`. Règles de la vague : pile linéaire (chaque PR part de la précédente) ; **ne pas toucher `CHANGELOG.md` / `CHANGELOG.fr.md`** avant #357 qui les centralise ; FR + EN pour toute clé i18n (`.claude/rules/i18n.md`) ; aucune migration DB ; aucune chaîne en dur dans les composants. ## Objectif Le guide explique comment obtenir un CSV chez les banques reconnues, dans une sous-section du chapitre Import, avec un statut de vérification par banque. Un cinquième bloc BMO reste à remplir par Max (#371, hors autopilot). ## Tâches - [ ] `src/components/settings/DocsSubsections.tsx` (nouveau, **pur**, seul hook `useTranslation`) : props `{ sectionKey, registerRef: (id, el) => void }` ; lit `docs.<sectionKey>.subsections` (`returnObjects`) = `[{ id, title, status?, steps: string[], note? }]` ; rend rien si absent ; sinon un bloc par entrée : `<div id={id} ref=...>`, `h4` titre, ligne de statut en italique si présente, `<ol>` des étapes, note en fin - [ ] `DocsContent.tsx` : insérer `<DocsSubsections>` après le bloc « Comment faire » et avant les astuces (`:160-200`) ; `registerRef` écrit dans `sectionRefs.current[id]`, ce qui étend la navigation par hash existante (`:64-74`) aux ancres de sous-sections. `DocsContent` lui-même (`useLocation`, `useRef`, `useState`, `useEffect`) n'est pas testable par appel direct : ne pas écrire de test dessus - [ ] `fr.json` + `en.json` : `docs.import.subsections` avec six entrées, `id` = `import-export`, `import-desjardins`, `import-tangerine`, `import-rbc`, `import-bnc`, `import-bmo` ; contenu ci-dessous - [ ] `docs/guide-utilisateur.md` chapitre 4 : même sous-section (mêmes six blocs, même avertissement BNC) ; « Démarrage rapide » (chapitre 1) réécrit sur les six étapes de la liste de démarrage dans le même ordre et avec les mêmes mots que `onboarding.checklist.items.*` ; mention du bouton « Créer un dossier d'exemple » dans « Comment faire » du chapitre 4 ## Contenu des blocs (FR ; EN = traduction fidèle) - `import-export` — « Exporter un CSV depuis votre banque » : un sous-dossier par compte dans le dossier d'import ; choisir la plage de dates la plus large offerte ; garder le fichier tel quel (ne pas l'ouvrir ni le réenregistrer dans un tableur) ; relancer l'export chaque mois et déposer le nouveau fichier dans le même sous-dossier. - `import-desjardins` — statut : « Procédure reconstituée depuis des guides tiers, à confirmer sur un compte réel ». Étapes : AccèsD (site, pas l'app) → Comptes → choisir le folio → onglet Relevés (ou Transactions / Historique selon la version) → choisir la période → Télécharger ou Exporter → format CSV. Note : l'export ne couvre que l'activité récente du folio ; pour une carte de crédit Desjardins, le CSV n'est pas garanti (certaines cartes n'offrent que le PDF). - `import-tangerine` — statut : « Étapes confirmées par la FAQ officielle de Tangerine ». Étapes : se connecter sur tangerine.ca (pas l'app mobile) → Transactions → bouton « Download Transactions » / « Télécharger les transactions » → choisir le compte et la plage → format CSV → Download. Note : l'historique disponible peut être limité à quelques mois ; relancer régulièrement. - `import-rbc` — statut : « Procédure reconstituée depuis des guides tiers, à confirmer sur un compte réel ». Étapes : Banque en direct RBC → Mes comptes → choisir le compte → bouton Télécharger (au-dessus du tableau des opérations) → format CSV → Continuer → enregistrer. Note : les cartes de crédit n'offrent qu'environ trois mois d'historique. - `import-bnc` — statut : « Aucune procédure publique trouvée pour les particuliers ». Contenu : l'app attend un fichier `Date;Description;Catégorie;Débit;Crédit;Solde` ; si votre export BNC a une autre forme, envoyez-nous **uniquement la ligne d'en-tête et une ou deux lignes aux valeurs fictives** via Paramètres → Systèmes → Rétroaction. **Ne collez jamais un numéro de compte, un solde ni une transaction réelle** : la rétroaction est un message texte envoyé à un serveur, c'est la seule exception au fonctionnement local de l'application. - `import-bmo` — statut : « Procédure reconstituée (fournie par Max le 2026-10-03, d'après une description générale), à confirmer sur un compte réel ; format de fichier non encore reconnu (#371) ». Étapes : Services bancaires en ligne BMO sur bmo.com (site, pas l'app) → cliquer le compte dans le sommaire (chèques, épargne ou Mastercard) → au-dessus de la liste des transactions, « Télécharger » (ou « Exporter ») → choisir le format CSV (les autres options visent QuickBooks, Quicken, Simply Accounting, Microsoft Money) → choisir la période → télécharger. Notes : l'historique téléchargeable est limité à **123 jours** au maximum, et à environ **trois mois plus les transactions non facturées** pour une Mastercard, d'où l'intérêt d'exporter chaque mois ; prêts, hypothèques et marges de crédit ne s'exportent pas (relevés PDF seulement, conservés 7 ans) ; les colonnes diffèrent entre les comptes de dépôt et la carte de crédit. BMO n'a pas encore de format reconnu par l'app : la détection générique lit la plupart des exports à montants signés ; si l'aperçu signale des entrées et des sorties inversées, utilisez « Inverser les signes ». Même avertissement que BNC pour l'envoi d'un en-tête. ## Fichiers concernés - `src/components/settings/DocsSubsections.tsx` (nouveau) + `DocsSubsections.test.tsx` (nouveau, pattern `src/components/reports/FilterPanel.test.tsx`) - `src/components/settings/DocsContent.tsx` - `src/i18n/locales/fr.json`, `src/i18n/locales/en.json` - `docs/guide-utilisateur.md` ## Depends on (aucune) ## Critères d'acceptation - [ ] `DocsSubsections.test.tsx` : section sans `subsections` → rend `null` ; section avec → un bloc par entrée, `id` posés, ligne de statut rendue quand présente, absente sinon - [ ] `/settings/users#import-export` et `#import-bnc` défilent vers le bloc visé après chargement - [ ] Les six blocs existent en FR et en EN, textes identiques en sens ; le bloc BNC et le bloc BMO contiennent l'avertissement « ne collez jamais… » - [ ] Les onze autres sections du guide rendent exactement comme avant (aucune clé `subsections` ajoutée ailleurs) - [ ] `docs/guide-utilisateur.md` : « Démarrage rapide » = six étapes alignées sur `onboarding.checklist.items.*` - [ ] `npm test`, `npm run build` verts ## Review caveats - (TECHNIQUE, résolu) Rendu extrait dans `DocsSubsections` pur ; pas de test par appel direct sur `DocsContent`. - (SECURITE, résolu) Bloc BNC sans relevé réel, avertissement explicite dans les trois copies. - (TECHNIQUE, hors périmètre, décidé le 2026-10-03) Pas de second `scrollIntoView` après le chargement des cartes Compte/Licence ; si l'ancre atterrit hors écran chez les testeurs, ouvrir une issue. ## Décisions prises en planification - Case 5 de la liste = « une transaction classée à la main » (`is_manually_categorized = 1`) et non « règle créée » ni « transactions catégorisées » : le seed IPC met 180 mots-clés dans tout profil neuf et le wizard catégorise pendant l'import (`useImportWizard.ts:1016`). - Ordre des vagues : `planned-2026-09-24-paiements` s'exécute **avant** celle-ci (fichiers partagés : `fr.json`, `en.json`, CHANGELOG, `architecture.md`, `guide-utilisateur.md`) ; partir d'un `main` qui contient déjà ses clés. - Max est client BMO, pas d'une des quatre banques : le critère de release « une banque validée sur compte réel » porte sur BMO et vit dans #371 (hors autopilot) ; les quatre autres blocs gardent leur statut « à confirmer ». Le 2026-10-03, Max a fourni une procédure BMO générale (voir le commentaire de #371) : le bloc est rédigé « reconstitué, à confirmer », la signature d'import attend toujours la ligne d'en-tête réelle. - Sources de la recherche du 2026-09-25 : FAQ Tangerine (officielle), Prosperi / Piastro / FlowVista (Desjardins), Prosperi / Neontra / CapyParse (RBC), centre d'aide entreprises BNC seulement. ## Spec source spec-plan-onboarding-phase1.md (local, ignoré par git)
maximus added this to the planned-2026-10-03-onboarding-phase1 milestone 2026-09-26 12:24:30 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-09-26 12:24:30 +00:00
maximus changed title from Onboarding: sub-sections in DocsContent and bank CSV export guides (Desjardins, Tangerine, RBC, BNC) to Onboarding : sous-sections dans DocsContent et guides d'export CSV par banque (Desjardins, Tangerine, RBC, BNC, BMO) 2026-10-03 14:09:46 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-10-03 23:55:02 +00:00
maximus added
status:review
and removed
status:in-progress
labels 2026-10-04 00:01:04 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-10-04 00:02:16 +00:00
maximus removed the
status:approved
label 2026-10-04 12:52:52 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#355
No description provided.