WP-17 Product hardening backlog
Load AGENTS.md and this file. Parent Jira epic: AFIA-15 (Produit livré jusqu'au WP-16).
Group blocked. This package catalogs Jira polish and behaviour issues on the shipped product. It is not a green light to write code.
Do not start implementation from this brief alone. When the user asks for one issue, open that Jira ticket, resolve any Décision requise there, then land a follow-up WP or Owns assignment before coding.
Owns
No code paths. This package owns the catalog of Jira issues under AFIA-15 listed below. Strategic options stay on each ticket.
Must not write
- Feature Java or Flutter from this brief alone
- New HTTP paths without a WP-00 follow-up
- Invented Stitch screens
- Resolving product decisions outside the linked Jira tickets
Depends on
WP-00 through WP-16 landed. Linked Jira issues AFIA-38, AFIA-57 through AFIA-62, and AFIA-70 through AFIA-98. ADR 0013 for NNI.
Done when
- Every issue in the table below has a row with its Jira key and summary.
- Relates to older tickets (AFIA-35, AFIA-36) are noted where they apply.
python3 ai-agent/scripts/check-agent-pack.pyexits 0.cd afia-docs && npm run synchas projected this file underdocs/agent/tasks/.
Do not invent screens
Do not add screens beyond the Stitch export. Harden existing shells and flows only when a later landable brief assigns Owns.
Jira labels (two axes)
module-*— which area / role shell (module-patient,module-clinician,module-admin,module-imaging,module-lab,module-identity,module-platform, …). Not the release horizon.v1— current release = first five CCF modules (polish under this epic).
Filter V1 patient: project = AFIA AND labels = v1 AND labels = module-patient
Polish tickets are agent-takable when the user hands the Jira key (apply Décision retenue / resolve Décision requise on the ticket). This WP file remains an index only — no feature code from this brief alone.
Jira catalog (AFIA-15)
| Key | Type | Summary | Notes |
|---|---|---|---|
| AFIA-38 | Task | NNI sur le profil patient (+ image pièce d’identité optionnelle) | Unblocked by ADR 0013; implement when user asks |
| AFIA-57 | Bug | Persister la langue choisie | |
| AFIA-58 | Bug | Retirer l’indication du code 000000 de l’UI | Relates AFIA-36 |
| AFIA-59 | Task | Rendre validation.md générique (données créées par le testeur) | Product docs |
| AFIA-60 | Story | Feedback toast/SnackBar pour sauvegardes et infos | Décision on ticket |
| AFIA-61 | Bug | Bouton « Check API health » réservé à l’admin | |
| AFIA-62 | Task | Pagination des listes (patients, users, notifications, worklists, visits…) | |
| AFIA-70 | Story | Consentement: page T&C complète; non modifiable après | Relates AFIA-35 |
| AFIA-71 | Bug | Persister les infos à la création de compte patient | |
| AFIA-72 | Story | Interdire la connexion sans parcours d’inscription complet | |
| AFIA-73 | Bug | Supprimer « Réinitialiser l’accès » | |
| AFIA-74 | Story | Suppression de compte: OTP + dangers + motif optionnel | |
| AFIA-75 | Bug | « Tout marquer comme lu »: état cliquable vs désactivé lisible | |
| AFIA-76 | Story | Filtres de recherche RDV (spécialité etc.) + masquer créneaux passés | |
| AFIA-77 | Bug | Titres coupés (ex. Mes rendez-vous) en en/fr/ar | |
| AFIA-78 | Story | Paiement obligatoire avant confirmation de consultation | Décision on ticket |
| AFIA-79 | Story | Partage documents: upload PDF/images (pas liens) | Depends on storage (WP-18 / AFIA-67) |
| AFIA-80 | Story | Télécharger / ouvrir le document réel dans l’app | Depends on storage (WP-18 / AFIA-67) |
| AFIA-81 | Bug | Bouton retour système = même comportement que la flèche UI | |
| AFIA-82 | Story | Alertes santé: dropdowns type de mesure + unité | |
| AFIA-83 | Story | Créneaux: plages rapides, duplication, multi-sélection, horaires paramétrables | |
| AFIA-84 | Story | Créneaux: pauses / déjeuner paramétrables | |
| AFIA-85 | Story | Liste patients clinicien: pagination + filtres | |
| AFIA-86 | Story | Affichage fuseau horaire explicite (structure vs appareil) | Décision on ticket |
| AFIA-87 | Bug | « encounter exists » à l’enregistrement notes / rapport | |
| AFIA-88 | Bug | Clavier qui s’ouvre tout seul (fichier patient) | |
| AFIA-89 | Story | Dropdowns manquants (prescrire un examen, etc.) | |
| AFIA-90 | Story | Admin users: filtres avancés (spécialité…) + pagination | |
| AFIA-91 | Story | Fuseau structure: sélecteur IANA | |
| AFIA-92 | Story | Types d’examens / spécialités via dropdowns | |
| AFIA-93 | Bug | Nouvelle structure: spécialité par défaut non choisie / non retirable | |
| AFIA-94 | Story | Profil admin: édition nom/téléphone; clarifier Paramètres clinique vs Structures | Décision on ticket |
| AFIA-95 | Story | Profil imaging/lab: édition nom/téléphone | |
| AFIA-96 | Bug | IDs d’examens imaging tous affichés A1000000 | |
| AFIA-97 | Story | Upload documents imaging | Depends on storage (WP-18 / AFIA-67) |
| AFIA-98 | Story | Upload documents laboratoire | Depends on storage (WP-18 / AFIA-67) |