Roadmap — Tests terrain Forge¶
Roadmap indépendante de la roadmap de construction Forge.
Objectif : tester Forge comme un utilisateur réel l’apprendrait, depuis l’installation jusqu’à l’autonomie.
Convention¶
- Préfixe :
FT - Un ticket terrain teste une action principale observable.
- Un ticket terrain ne corrige pas Forge.
- Chaque ticket détaillé doit respecter le modèle de ticket FT.
- Chaque retour doit respecter le modèle de retour testeur.
FT-00 — Cadre de la campagne terrain¶
Objectif : préparer la méthode, les modèles et les règles.
Tickets¶
FT-00-TEST-CHARTER-001— Définir la charte de test terrain.FT-00-FEEDBACK-TEMPLATE-001— Créer le modèle de retour d’expérience.FT-00-SEVERITY-SCALE-001— Définir les niveaux de gravité S0 à S5.FT-00-GUIDANCE-LEVELS-001— Définir les niveaux de guidage G0 à G3.FT-00-HELP-LEVELS-001— Définir les niveaux d’aide A0 à A5.FT-00-TICKET-FORMAT-001— Verrouiller la structure d’un ticket FT.FT-00-TRIAGE-RULES-001— Définir la transformation des retours en tickets correctifs.FT-00-DOC-ERROR-PROTOCOL-001— Définir la procédure si la documentation officielle est erronée pendant un ticket.FT-00-ENV-MATRIX-001— Définir les environnements de test.FT-00-DEBUG-TOOLS-INTRO-001— Découvrir les outils de diagnostic Forge.
FT-01 — Installation de Forge¶
Objectif : vérifier les parcours d’installation.
Tickets¶
FT-01-INSTALL-PIPX-001— Installer Forge avecpipx.FT-01-INSTALL-VENV-001— Installer Forge dans un environnement virtuel.FT-01-INSTALL-GITHUB-001— Installer Forge depuis GitHub.FT-01-INSTALL-DEV-EDITABLE-001— Installer Forge en mode développement.FT-01-INSTALL-WINDOWS-WSL-001— Installer Forge sous Windows avec WSL.FT-01-INSTALL-DEBIAN-VM-001— Installer Forge sur VM Debian propre.FT-01-INSTALL-VERSION-CHECK-001— Vérifier la version installée.FT-01-INSTALL-UNINSTALL-001— Désinstaller Forge proprement.FT-01-PHASE-REVIEW-001— Revue de phase installation.
FT-02 — Configuration de l’environnement¶
Objectif : vérifier .env, dev/prod, secrets et erreurs de configuration.
Tickets¶
FT-02-ENV-FILES-LOCATE-001— Identifier les fichiers d’environnement.FT-02-ENV-EXAMPLE-COPY-001— Créer une configuration locale depuis l’exemple.FT-02-ENV-REQUIRED-VARS-001— Identifier les variables obligatoires.FT-02-ENV-OPTIONAL-VARS-001— Identifier les variables optionnelles.FT-02-ENV-DEV-MODE-001— Configurer le mode développement.FT-02-ENV-PROD-MODE-READ-001— Lire la configuration production sans l’activer.FT-02-ENV-MISSING-VAR-001— Tester une variable manquante.FT-02-ENV-BAD-VALUE-001— Tester une valeur incorrecte.FT-02-SECRETS-GITIGNORE-001— Vérifier que les secrets ne partent pas dans Git.FT-02-PHASE-REVIEW-001— Revue de phase environnement.
FT-03 — MariaDB système¶
Objectif : préparer MariaDB sans utiliser root comme compte applicatif.
Tickets¶
FT-03-MARIADB-INSTALL-CHECK-001— Vérifier que MariaDB est installé.FT-03-MARIADB-SERVICE-001— Vérifier le service MariaDB.FT-03-MARIADB-ROOT-ACCESS-001— Vérifier l’accès administrateur local.FT-03-MARIADB-DATABASE-CREATE-001— Créer une base dédiée au projet.FT-03-MARIADB-USER-CREATE-001— Créer un utilisateur non-root.FT-03-MARIADB-USER-GRANTS-001— Donner les droits au bon schéma.FT-03-MARIADB-USER-LOGIN-001— Tester la connexion de l’utilisateur dédié.FT-03-MARIADB-BAD-PASSWORD-001— Tester une erreur de mot de passe.FT-03-MARIADB-DATABASE-MISSING-001— Tester une base absente.FT-03-PHASE-REVIEW-001— Revue de phase MariaDB.
FT-04 — Connexion Forge à MariaDB¶
Objectif : relier Forge à la base et tester les erreurs.
Tickets¶
FT-04-FORGE-DB-CONFIG-001— Renseigner la configuration DB côté Forge.FT-04-FORGE-DB-CONNECTION-001— Tester la connexion Forge à MariaDB.FT-04-FORGE-DB-INIT-001— Initialiser la base du projet.FT-04-FORGE-DB-INIT-IDEMPOTENT-001— Relancer l’initialisation.FT-04-FORGE-DB-BAD-HOST-001— Tester un mauvais host.FT-04-FORGE-DB-BAD-LOGIN-001— Tester un mauvais login.FT-04-FORGE-DB-BAD-PASSWORD-001— Tester un mauvais mot de passe.FT-04-FORGE-DB-DOC-CHECK-001— Vérifier la documentation base.FT-04-PHASE-REVIEW-001— Revue de phase connexion DB.
FT-05 — Premier projet Forge¶
Objectif : créer, lancer et observer un projet minimal.
Tickets¶
FT-05-FIRST-PROJECT-CREATE-001— Créer un projet minimal.FT-05-FIRST-PROJECT-FILES-001— Vérifier les fichiers générés.FT-05-FIRST-PROJECT-RUN-001— Lancer le projet.FT-05-FIRST-PROJECT-HOMEPAGE-001— Afficher la page d’accueil.FT-05-FIRST-PROJECT-STOP-RESTART-001— Arrêter et relancer le projet.FT-05-FIRST-PROJECT-DOC-FOLLOW-001— Suivre uniquement la documentation.FT-05-FIRST-PROJECT-GIT-STATUS-001— Observer l’état Git du projet.FT-05-PHASE-REVIEW-001— Revue de phase premier projet.
FT-06 — Architecture du projet¶
Objectif : distinguer framework, application, fichiers générés et fichiers manuels.
Tickets¶
FT-06-ARCH-CORE-MVC-001— Distinguercore/etmvc/.FT-06-ARCH-ROUTES-001— Identifiermvc/routes.py.FT-06-ARCH-CONTROLLERS-001— Identifiermvc/controllers/.FT-06-ARCH-VIEWS-001— Identifiermvc/views/.FT-06-ARCH-MODELS-001— Identifiermvc/models/.FT-06-ARCH-ENTITIES-001— Identifiermvc/entities/.FT-06-ARCH-STATIC-STORAGE-001— Distinguerstatic/etstorage/.FT-06-ARCH-DO-NOT-TOUCH-CORE-001— Vérifier que le core n’est pas modifié.FT-06-PHASE-REVIEW-001— Revue de phase architecture.
FT-07 — Routes applicatives¶
Objectif : tester le routage minimal.
Tickets¶
FT-07-ROUTE-FILE-OPEN-001— Ouvrir et lire le fichier des routes.FT-07-ROUTE-ADD-GET-001— Ajouter une route GET simple.FT-07-ROUTE-NAME-001— Nommer une route.FT-07-ROUTE-IMPORT-CONTROLLER-001— Importer le contrôleur utilisé.FT-07-ROUTE-UNKNOWN-URL-001— Tester une URL non déclarée.FT-07-ROUTE-DUPLICATE-001— Tester une route dupliquée.FT-07-ROUTE-METHOD-NOT-ALLOWED-001— Tester une mauvaise méthode HTTP.FT-07-PHASE-REVIEW-001— Revue de phase routes.
FT-08 — Contrôleurs¶
Objectif : relier une route à une méthode de contrôleur.
Tickets¶
FT-08-CONTROLLER-LOCATE-001— Identifier le dossier des contrôleurs.FT-08-CONTROLLER-CREATE-001— Créer un contrôleur minimal.FT-08-CONTROLLER-METHOD-001— Créer une méthode appelée par la route.FT-08-CONTROLLER-RETURN-TEXT-001— Retourner une réponse texte simple.FT-08-CONTROLLER-RETURN-HTML-001— Retourner une réponse HTML simple.FT-08-CONTROLLER-MISSING-METHOD-001— Tester une méthode absente.FT-08-CONTROLLER-BAD-IMPORT-001— Tester un mauvais import.FT-08-PHASE-REVIEW-001— Revue de phase contrôleurs.
FT-09 — Premier template¶
Objectif : passer d’une réponse texte à une vue HTML.
Tickets¶
FT-09-TEMPLATE-LOCATE-001— Identifier le dossier des templates.FT-09-TEMPLATE-CREATE-001— Créer un template simple.FT-09-TEMPLATE-RENDER-001— Rendre un template depuis un contrôleur.FT-09-TEMPLATE-VARIABLE-001— Passer une variable au template.FT-09-TEMPLATE-MISSING-001— Tester un template absent.FT-09-TEMPLATE-JINJA-ERROR-001— Tester une erreur Jinja simple.FT-09-PHASE-REVIEW-001— Revue de phase premier template.
FT-10 — Templates Jinja¶
Objectif : tester les mécanismes Jinja utilisés par Forge.
Tickets¶
FT-10-JINJA-EXTENDS-001— Utiliser{% extends %}.FT-10-JINJA-BLOCKS-001— Utiliser les blocs Jinja.FT-10-JINJA-INCLUDE-001— Inclure un fragment de template.FT-10-JINJA-LOOP-001— Afficher une liste avec une boucle.FT-10-JINJA-CONDITION-001— Afficher selon une condition.FT-10-JINJA-FILTER-001— Utiliser un filtre Jinja simple.FT-10-JINJA-MACRO-001— Tester une macro si utilisée par Forge.FT-10-JINJA-ESCAPING-001— Vérifier l’échappement HTML.FT-10-JINJA-ERRORS-001— Observer les erreurs Jinja.FT-10-PHASE-REVIEW-001— Revue de phase Jinja.
FT-11 — Layout public¶
Objectif : construire une structure de page publique propre.
Tickets¶
FT-11-LAYOUT-PUBLIC-LOCATE-001— Identifier le layout public.FT-11-LAYOUT-PUBLIC-EDIT-001— Modifier le layout public.FT-11-LAYOUT-NAVIGATION-001— Ajouter une navigation.FT-11-LAYOUT-FOOTER-001— Ajouter un footer.FT-11-LAYOUT-SCRIPTS-BLOCK-001— Tester le bloc scripts si disponible.FT-11-PUBLIC-PAGE-COMPLETE-001— Créer une page publique complète.FT-11-PUBLIC-404-001— Tester une page inexistante.FT-11-PHASE-REVIEW-001— Revue de phase layout public.
FT-12 — Tailwind¶
Objectif : vérifier l’usage visuel simple sans usine front opaque.
Tickets¶
FT-12-TAILWIND-SETUP-CHECK-001— Vérifier comment Tailwind est disponible.FT-12-TAILWIND-CLASS-BASIC-001— Modifier l’apparence avec des classes.FT-12-TAILWIND-BUTTONS-001— Créer boutons et liens stylés.FT-12-TAILWIND-CARD-001— Créer une carte de contenu.FT-12-TAILWIND-FORM-STYLE-001— Styliser un formulaire.FT-12-TAILWIND-RESPONSIVE-001— Tester une mise en page responsive.FT-12-TAILWIND-CUSTOM-CSS-001— Ajouter un CSS complémentaire si nécessaire.FT-12-TAILWIND-DOC-CHECK-001— Vérifier la documentation front.FT-12-PHASE-REVIEW-001— Revue de phase Tailwind.
FT-13 — Formulaire public simple¶
Objectif : traiter une saisie utilisateur sans CRUD.
Tickets¶
FT-13-FORM-GET-001— Afficher un formulaire en GET.FT-13-FORM-POST-001— Recevoir une soumission POST.FT-13-FORM-REQUIRED-FIELD-001— Tester un champ obligatoire.FT-13-FORM-ERROR-DISPLAY-001— Afficher les erreurs utilisateur.FT-13-FORM-SUCCESS-001— Afficher un message de succès.FT-13-FORM-INVALID-DATA-001— Tester des données invalides.FT-13-FORM-REDIRECT-AFTER-POST-001— Tester un retour après POST si prévu.FT-13-PHASE-REVIEW-001— Revue de phase formulaires.
FT-14 — CSRF et formulaires sensibles¶
Objectif : vérifier la protection CSRF.
Tickets¶
FT-14-CSRF-TOKEN-PRESENT-001— Vérifier la présence du token CSRF.FT-14-CSRF-VALID-SUBMIT-001— Soumettre un formulaire valide.FT-14-CSRF-MISSING-001— Soumettre sans token.FT-14-CSRF-INVALID-001— Soumettre avec token invalide.FT-14-CSRF-GET-SENSITIVE-001— Vérifier qu’une action sensible n’est pas en GET.FT-14-CSRF-ERROR-MESSAGE-001— Évaluer le message d’erreur CSRF.FT-14-PHASE-REVIEW-001— Revue de phase CSRF.
FT-15 — HTMX progressif¶
Objectif : tester les interactions HTML partielles.
Tickets¶
FT-15-HTMX-SETUP-CHECK-001— Vérifier la disponibilité de HTMX.FT-15-HTMX-PARTIAL-GET-001— Charger un fragment HTML en GET.FT-15-HTMX-TARGET-SWAP-001— Testerhx-targetethx-swap.FT-15-HTMX-FORM-POST-001— Soumettre un formulaire avec HTMX.FT-15-HTMX-VALIDATION-ERRORS-001— Afficher des erreurs sans rechargement complet.FT-15-HTMX-FALLBACK-001— Vérifier le comportement sans HTMX si prévu.FT-15-HTMX-DOC-CHECK-001— Vérifier la documentation HTMX.FT-15-PHASE-REVIEW-001— Revue de phase HTMX.
FT-16 — Alpine.js optionnel¶
Objectif : vérifier qu’Alpine peut aider sans devenir obligatoire.
Tickets¶
FT-16-ALPINE-SETUP-CHECK-001— Vérifier la disponibilité d’Alpine.FT-16-ALPINE-TOGGLE-001— Créer un affichage masqué/visible.FT-16-ALPINE-DROPDOWN-001— Tester un menu déroulant.FT-16-ALPINE-MODAL-001— Tester une modale simple.FT-16-ALPINE-FORM-STATE-001— Tester un état local de formulaire.FT-16-ALPINE-NO-DEPENDENCY-001— Vérifier qu’Alpine reste optionnel.FT-16-PHASE-REVIEW-001— Revue de phase Alpine.
FT-17 — Mail en développement¶
Objectif : tester le mail sans envoi réel involontaire.
Tickets¶
FT-17-MAIL-CONFIG-FAKE-001— Configurer le transport fake.FT-17-MAIL-CONFIG-LOG-001— Configurer le transport log.FT-17-MAIL-CONTACT-FORM-001— Relier un formulaire de contact au mail.FT-17-MAIL-TEMPLATE-001— Utiliser un template de mail.FT-17-MAIL-CONFIG-ERROR-001— Tester une mauvaise configuration mail.FT-17-MAIL-NO-REAL-SEND-DEV-001— Vérifier l’absence d’envoi réel en dev.FT-17-PHASE-REVIEW-001— Revue de phase mail.
FT-18 — Découverte de la CLI¶
Objectif : comprendre la CLI avant génération.
Tickets¶
FT-18-CLI-HELP-GLOBAL-001— Lire l’aide globale.FT-18-CLI-HELP-COMMAND-001— Lire l’aide d’une commande.FT-18-CLI-UNKNOWN-COMMAND-001— Lancer une commande inconnue.FT-18-CLI-MISSING-ARGUMENT-001— Omettre un argument obligatoire.FT-18-CLI-VERSION-001— Vérifier la version via CLI.FT-18-CLI-LIST-FAMILIES-001— Identifier les familles de commandes.FT-18-PHASE-REVIEW-001— Revue de phase CLI.
FT-19 — Diagnostics CLI¶
Objectif : vérifier que Forge aide à trouver les problèmes.
Tickets¶
FT-19-DOCTOR-CLEAN-PROJECT-001— Lancer doctor sur projet sain.FT-19-DOCTOR-MISSING-FILE-001— Supprimer un fichier attendu.FT-19-DOCTOR-BAD-CONFIG-001— Casser une configuration.FT-19-DOCTOR-BAD-ENTITY-001— Casser une entité JSON.FT-19-DOCTOR-BAD-ROUTE-001— Casser une route.FT-19-PROJECT-CHECK-STRICT-001— Lancer le contrôle strict si disponible.FT-19-PHASE-REVIEW-001— Revue de phase diagnostics.
FT-20 — Routes via CLI¶
Objectif : vérifier que la CLI aide à comprendre le routage.
Tickets¶
FT-20-ROUTES-LIST-001— Lister les routes.FT-20-ROUTES-LIST-NAMED-001— Vérifier les routes nommées.FT-20-ROUTES-LIST-METHODS-001— Vérifier les méthodes HTTP.FT-20-ROUTES-LIST-BROKEN-001— Lister avec route cassée.FT-20-ROUTES-DOC-CHECK-001— Comparer CLI et documentation routes.FT-20-PHASE-REVIEW-001— Revue de phase routes CLI.
FT-21 — Entités JSON¶
Objectif : introduire le modèle de données Forge.
Tickets¶
FT-21-ENTITY-FOLDER-001— Identifier le dossier des entités.FT-21-ENTITY-CREATE-MINIMAL-001— Créer une entité minimale.FT-21-ENTITY-STRING-FIELD-001— Ajouter un champ texte.FT-21-ENTITY-NUMBER-FIELD-001— Ajouter un champ numérique.FT-21-ENTITY-DATE-FIELD-001— Ajouter un champ date.FT-21-ENTITY-BOOLEAN-FIELD-001— Ajouter un champ booléen.FT-21-ENTITY-INVALID-JSON-001— Casser le JSON.FT-21-ENTITY-UNKNOWN-TYPE-001— Utiliser un type inconnu.FT-21-PHASE-REVIEW-001— Revue de phase entités.
FT-22 — Modèles générés et fichiers manuels¶
Objectif : vérifier la séparation généré/manuel.
Tickets¶
FT-22-BUILD-MODEL-001— Générer un modèle depuis l’entité.FT-22-MODEL-BASE-FILE-001— Identifier le fichier_base.py.FT-22-MODEL-MANUAL-FILE-001— Identifier le fichier manuel.FT-22-MODEL-MANUAL-CUSTOM-001— Ajouter une méthode manuelle.FT-22-MODEL-REGENERATE-001— Régénérer après modification d’entité.FT-22-MODEL-DO-NOT-EDIT-BASE-001— Vérifier le risque de modifier_base.py.FT-22-PHASE-REVIEW-001— Revue de phase modèles.
FT-23 — SQL visible¶
Objectif : vérifier que Forge ne cache pas la base.
Tickets¶
FT-23-SQL-GENERATE-001— Générer le SQL d’une entité.FT-23-SQL-FIELD-TYPES-001— Vérifier les types SQL produits.FT-23-SQL-PRIMARY-KEY-001— Vérifier la clé primaire.FT-23-SQL-NOT-NULL-001— Vérifier les contraintes simples.FT-23-SQL-RELATION-PREP-001— Observer la préparation SQL d’une relation simple.FT-23-SQL-REVIEW-BY-TESTER-001— Lire le SQL avant application.FT-23-PHASE-REVIEW-001— Revue de phase SQL.
FT-24 — Migrations¶
Objectif : tester l’évolution de la base.
Tickets¶
FT-24-MIGRATION-MAKE-FIRST-001— Créer une première migration.FT-24-MIGRATION-FILE-READ-001— Lire le fichier de migration.FT-24-MIGRATION-APPLY-001— Appliquer une migration.FT-24-MIGRATION-STATUS-001— Lire l’état des migrations.FT-24-MIGRATION-REAPPLY-001— Relancer une migration appliquée.FT-24-MIGRATION-ADD-FIELD-001— Ajouter un champ et migrer.FT-24-MIGRATION-BROKEN-SQL-001— Tester une migration cassée.FT-24-PHASE-REVIEW-001— Revue de phase migrations.
FT-25 — CRUD : génération¶
Objectif : générer un CRUD simple.
Tickets¶
FT-25-CRUD-PREPARE-ENTITY-001— Préparer une entité CRUD simple.FT-25-CRUD-GENERATE-001— Générer le CRUD.FT-25-CRUD-FILES-CREATED-001— Vérifier les fichiers créés.FT-25-CRUD-ROUTES-CHECK-001— Vérifier les routes CRUD.FT-25-CRUD-TEMPLATES-CHECK-001— Vérifier les templates CRUD.FT-25-CRUD-DO-NOT-TOUCH-CORE-001— Vérifier qu’aucun core n’est modifié.FT-25-PHASE-REVIEW-001— Revue de phase génération CRUD.
FT-26 — CRUD : utilisation¶
Objectif : tester les opérations CRUD de base.
Tickets¶
FT-26-CRUD-INDEX-001— Afficher la liste.FT-26-CRUD-CREATE-FORM-001— Afficher le formulaire de création.FT-26-CRUD-CREATE-SUBMIT-001— Créer un enregistrement.FT-26-CRUD-EDIT-FORM-001— Afficher le formulaire d’édition.FT-26-CRUD-EDIT-SUBMIT-001— Modifier un enregistrement.FT-26-CRUD-DELETE-001— Supprimer un enregistrement.FT-26-CRUD-DETAIL-001— Afficher le détail si disponible.FT-26-PHASE-REVIEW-001— Revue de phase usage CRUD.
FT-27 — CRUD : validation et erreurs¶
Objectif : tester les mauvais usages du CRUD.
Tickets¶
FT-27-CRUD-REQUIRED-FIELD-001— Soumettre un champ obligatoire vide.FT-27-CRUD-BAD-TYPE-001— Soumettre un mauvais type.FT-27-CRUD-UNKNOWN-ID-001— Accéder à un ID inexistant.FT-27-CRUD-DELETE-UNKNOWN-ID-001— Supprimer un ID inexistant.FT-27-CRUD-CSRF-001— Tester CSRF sur actions sensibles.FT-27-CRUD-ERROR-MESSAGES-001— Évaluer les messages utilisateur.FT-27-PHASE-REVIEW-001— Revue de phase erreurs CRUD.
FT-28 — CRUD enrichi : recherche, tri, pagination¶
Objectif : tester l’usage quotidien d’un back-office.
Tickets¶
FT-28-CRUD-SEED-DATA-001— Créer un jeu de données de test.FT-28-CRUD-SEARCH-001— Tester la recherche texte.FT-28-CRUD-SEARCH-EMPTY-001— Tester une recherche sans résultat.FT-28-CRUD-SORT-VALID-001— Tester un tri autorisé.FT-28-CRUD-SORT-INVALID-001— Tester un tri invalide.FT-28-CRUD-PAGINATION-001— Tester la pagination.FT-28-CRUD-QUERY-PARAMS-001— Vérifier la conservation des paramètres.FT-28-PHASE-REVIEW-001— Revue de phase recherche/tri/pagination.
FT-29 — CRUD enrichi : filtres et export¶
Objectif : tester filtres et export CSV.
Tickets¶
FT-29-CRUD-FILTER-SIMPLE-001— Tester un filtre simple.FT-29-CRUD-FILTER-INVALID-001— Tester un filtre invalide.FT-29-CRUD-FILTER-EMPTY-001— Tester filtre sans résultat.FT-29-CRUD-EXPORT-CSV-001— Exporter les données.FT-29-CRUD-EXPORT-SPECIAL-CHARS-001— Exporter des caractères spéciaux.FT-29-CRUD-EXPORT-FORMULA-INJECTION-001— Tester injection CSV potentielle.FT-29-CRUD-EXPORT-WITH-FILTERS-001— Exporter avec filtres actifs.FT-29-PHASE-REVIEW-001— Revue de phase filtres/export.
FT-30 — Relations simples¶
Objectif : tester les relations entre deux entités.
Tickets¶
FT-30-RELATION-PREPARE-ENTITIES-001— Préparer deux entités liées.FT-30-RELATION-MANY-TO-ONE-001— Déclarer une relation many-to-one.FT-30-RELATION-MIGRATION-001— Migrer une relation.FT-30-RELATION-FORM-001— Saisir une relation dans un formulaire.FT-30-RELATION-LIST-LABEL-001— Afficher le libellé lié en liste.FT-30-RELATION-EDIT-001— Modifier une relation.FT-30-RELATION-DELETE-LINKED-001— Supprimer une donnée liée.FT-30-PHASE-REVIEW-001— Revue de phase relations simples.
FT-31 — Relations avancées¶
Objectif : tester les relations complexes si supportées.
Tickets¶
FT-31-RELATION-MANY-TO-MANY-001— Déclarer une relation many-to-many.FT-31-RELATION-PIVOT-SQL-001— Vérifier le SQL pivot.FT-31-RELATION-MANY-FORM-001— Saisir plusieurs relations.FT-31-RELATION-MANY-LIST-001— Afficher plusieurs relations.FT-31-RELATION-MANY-UPDATE-001— Modifier les relations.FT-31-RELATION-MANY-DELETE-001— Tester suppression et intégrité.FT-31-PHASE-REVIEW-001— Revue de phase relations avancées.
FT-32 — Médias et uploads¶
Objectif : tester les fichiers utilisateurs.
Tickets¶
FT-32-UPLOAD-CONFIG-001— Vérifier la configuration upload.FT-32-UPLOAD-FORM-001— Ajouter un champ fichier.FT-32-UPLOAD-SIMPLE-FILE-001— Envoyer un fichier simple.FT-32-UPLOAD-IMAGE-001— Envoyer une image.FT-32-UPLOAD-STORAGE-PATH-001— Vérifier le chemin stocké.FT-32-UPLOAD-DISPLAY-001— Afficher le média.FT-32-UPLOAD-DELETE-001— Supprimer le média.FT-32-PHASE-REVIEW-001— Revue de phase médias.
FT-33 — Sécurité uploads¶
Objectif : tester les garde-fous des fichiers.
Tickets¶
FT-33-UPLOAD-PATH-TRAVERSAL-001— Tester../.FT-33-UPLOAD-WINDOWS-ABSOLUTE-001— Tester chemin Windows absolu.FT-33-UPLOAD-URL-EXTERNAL-001— Tester une URL externe comme chemin.FT-33-UPLOAD-BAD-EXTENSION-001— Tester une extension interdite.FT-33-UPLOAD-DOUBLE-EXTENSION-001— Tester une double extension.FT-33-UPLOAD-LARGE-FILE-001— Tester un fichier trop gros.FT-33-UPLOAD-UNICODE-NAME-001— Tester un nom étrange.FT-33-PHASE-REVIEW-001— Revue de phase sécurité uploads.
FT-34 — Authentification¶
Objectif : tester le flux utilisateur connecté.
Tickets¶
FT-34-AUTH-PREPARE-001— Préparer l’authentification.FT-34-AUTH-USER-CREATE-001— Créer un utilisateur.FT-34-AUTH-LOGIN-FORM-001— Afficher le formulaire login.FT-34-AUTH-LOGIN-SUCCESS-001— Connexion réussie.FT-34-AUTH-LOGIN-BAD-PASSWORD-001— Mot de passe incorrect.FT-34-AUTH-LOGIN-UNKNOWN-USER-001— Utilisateur inconnu.FT-34-AUTH-LOGOUT-001— Déconnexion.FT-34-AUTH-SESSION-AFTER-LOGOUT-001— Accès après logout.FT-34-PHASE-REVIEW-001— Revue de phase auth.
FT-35 — Pages protégées¶
Objectif : vérifier l’accès privé.
Tickets¶
FT-35-PROTECTED-PAGE-CREATE-001— Créer une page privée.FT-35-PROTECTED-ANONYMOUS-001— Accès anonyme refusé.FT-35-PROTECTED-LOGIN-REDIRECT-001— Redirection vers login.FT-35-PROTECTED-CONNECTED-001— Accès connecté autorisé.FT-35-PROTECTED-DIRECT-URL-001— Accès direct par URL.FT-35-PROTECTED-TEMPLATE-LINKS-001— Liens visibles selon connexion.FT-35-PHASE-REVIEW-001— Revue de phase pages protégées.
FT-36 — RBAC¶
Objectif : tester rôles, permissions et autorisation serveur.
Tickets¶
FT-36-RBAC-ROLE-CREATE-001— Créer un rôle.FT-36-RBAC-PERMISSION-CREATE-001— Créer une permission.FT-36-RBAC-ASSIGN-USER-001— Assigner un rôle à un utilisateur.FT-36-RBAC-PROTECT-ROUTE-001— Protéger une route.FT-36-RBAC-PROTECT-CRUD-001— Protéger un CRUD.FT-36-RBAC-FORBIDDEN-001— Accès sans permission.FT-36-RBAC-BYPASS-POST-001— POST manuel sans permission.FT-36-PHASE-REVIEW-001— Revue de phase RBAC.
FT-37 — Diagnostics d’erreurs applicatives¶
Objectif : vérifier que les erreurs sont compréhensibles.
Tickets¶
FT-37-ERROR-404-001— Tester une page absente.FT-37-ERROR-CONTROLLER-001— Casser un contrôleur.FT-37-ERROR-TEMPLATE-001— Casser un template.FT-37-ERROR-SQL-001— Provoquer une erreur SQL.FT-37-ERROR-ENTITY-001— Casser une entité.FT-37-ERROR-LOG-FILE-001— Retrouver l’erreur dans les logs.FT-37-ERROR-NO-SECRETS-001— Vérifier l’absence de secrets dans l’erreur.FT-37-PHASE-REVIEW-001— Revue de phase diagnostics erreurs.
FT-38 — Mode production local¶
Objectif : préparer le passage hors développement.
Tickets¶
FT-38-PROD-CONFIG-001— Configurer un mode production local.FT-38-PROD-DEBUG-OFF-001— Désactiver le debug.FT-38-PROD-SECRET-KEY-001— Vérifier la clé secrète.FT-38-PROD-STATIC-001— Tester les fichiers statiques.FT-38-PROD-MEDIA-001— Tester les médias.FT-38-PROD-HEADERS-001— Vérifier les headers de sécurité.FT-38-PHASE-REVIEW-001— Revue de phase production locale.
FT-39 — Déploiement serveur¶
Objectif : vérifier qu’une application Forge peut être déployée.
Tickets¶
FT-39-DEPLOY-DEBIAN-PREP-001— Préparer une VM Debian.FT-39-DEPLOY-APP-INSTALL-001— Installer l’application Forge.FT-39-DEPLOY-VENV-001— Créer l’environnement Python serveur.FT-39-DEPLOY-ENV-001— Configurer l’environnement serveur.FT-39-DEPLOY-MARIADB-001— Connecter MariaDB serveur.FT-39-DEPLOY-RUN-001— Lancer l’application.FT-39-DEPLOY-LOGS-001— Lire les logs serveur.FT-39-DEPLOY-RESTART-001— Redémarrer l’application.FT-39-PHASE-REVIEW-001— Revue de phase déploiement.
FT-40 — Mise à jour et maintenance¶
Objectif : tester l’évolution d’un projet Forge.
Tickets¶
FT-40-MAINTAIN-ADD-PAGE-001— Ajouter une page après coup.FT-40-MAINTAIN-ADD-FIELD-001— Ajouter un champ à une entité.FT-40-MAINTAIN-REGENERATE-001— Régénérer sans perdre le code manuel.FT-40-MAINTAIN-UPDATE-FORGE-001— Mettre à jour Forge.FT-40-MAINTAIN-ROLLBACK-001— Tester un retour arrière simple.FT-40-MAINTAIN-DOC-GAPS-001— Identifier les manques de documentation maintenance.FT-40-PHASE-REVIEW-001— Revue de phase maintenance.
FT-41 — Mini-projet guidé complet¶
Objectif : assembler les briques dans une application cohérente.
Tickets¶
FT-41-MINIAPP-SCOPE-001— Définir le mini-projet.FT-41-MINIAPP-INSTALL-001— Préparer l’environnement.FT-41-MINIAPP-PUBLIC-001— Créer la partie publique.FT-41-MINIAPP-FORM-001— Ajouter un formulaire public.FT-41-MINIAPP-ENTITIES-001— Créer les entités.FT-41-MINIAPP-MIGRATIONS-001— Appliquer les migrations.FT-41-MINIAPP-CRUD-001— Générer le back-office.FT-41-MINIAPP-RELATIONS-001— Ajouter des relations.FT-41-MINIAPP-MEDIA-001— Ajouter des médias.FT-41-MINIAPP-AUTH-001— Ajouter une zone protégée.FT-41-MINIAPP-REVIEW-001— Faire le bilan guidé.
FT-42 — Projet autonome¶
Objectif : vérifier que le testeur peut utiliser Forge sans procédure détaillée.
Tickets¶
FT-42-AUTONOMOUS-BRIEF-001— Donner un objectif applicatif simple.FT-42-AUTONOMOUS-CREATE-001— Créer le projet.FT-42-AUTONOMOUS-CONFIG-001— Configurer l’environnement.FT-42-AUTONOMOUS-DATA-001— Créer le modèle de données.FT-42-AUTONOMOUS-PAGES-001— Créer les pages nécessaires.FT-42-AUTONOMOUS-CRUD-001— Générer et adapter le CRUD.FT-42-AUTONOMOUS-DEBUG-001— Résoudre une erreur rencontrée.FT-42-AUTONOMOUS-FINAL-REPORT-001— Produire le retour final.
FT-43 — Consolidation des retours terrain¶
Objectif : transformer les retours en décisions exploitables.
Tickets¶
FT-43-FEEDBACK-COLLECT-001— Centraliser tous les retours.FT-43-FEEDBACK-NORMALIZE-001— Normaliser les retours.FT-43-FEEDBACK-SEVERITY-001— Classer par gravité.FT-43-FEEDBACK-DUPLICATES-001— Fusionner les doublons.FT-43-FEEDBACK-BLOCKERS-001— Identifier les bloquants.FT-43-FEEDBACK-DOC-ISSUES-001— Identifier les problèmes documentaires.FT-43-FEEDBACK-OFFICIAL-DOC-ERRORS-001— Isoler les erreurs de documentation officielle bloquantes ou trompeuses.FT-43-FEEDBACK-CORRECTIVE-TICKETS-001— Créer les tickets correctifs.FT-43-PHASE-REVIEW-001— Revue de phase consolidation.
FT-44 — Conversion des tickets validés en tutoriels¶
Objectif : transformer les tickets FT validés en pages tutoriels utilisables dans la documentation Forge.
Tickets¶
FT-44-TUTORIAL-SELECTION-001— Identifier les tickets FT validés pouvant devenir tutoriels.FT-44-TUTORIAL-CONVERSION-RULES-001— Définir la transformation ticket FT vers page tutoriel.FT-44-TUTORIAL-DOC-ERROR-CHECK-001— Vérifier qu’aucune erreur documentaire connue ne passe dans les tutoriels.FT-44-TUTORIAL-INSTALLATION-001— Créer les tutoriels issus des tickets d’installation validés.FT-44-TUTORIAL-CONFIG-DB-001— Créer les tutoriels environnement et MariaDB.FT-44-TUTORIAL-FIRST-PAGES-001— Créer les tutoriels route, contrôleur et template.FT-44-TUTORIAL-FRONT-001— Créer les tutoriels Jinja, Tailwind, HTMX et Alpine.FT-44-TUTORIAL-DATA-CRUD-001— Créer les tutoriels entités, SQL, migrations et CRUD.FT-44-TUTORIAL-AUTH-SECURITY-001— Créer les tutoriels auth, RBAC et sécurité.FT-44-TUTORIAL-DEPLOY-MAINTAIN-001— Créer les tutoriels déploiement et maintenance.FT-44-TUTORIAL-MKDOCS-NAV-001— Ajouter le menu Tutoriels dans MkDocs.FT-44-TUTORIAL-STRICT-BUILD-001— Valider la documentation avecmkdocs build --strict.FT-44-PHASE-REVIEW-001— Revue de phase conversion documentation.
FT-45 — Décision bêta ou stable¶
Objectif : décider objectivement si Forge peut sortir de bêta.
Tickets¶
FT-45-STABLE-CRITERIA-001— Définir les critères de stabilité.FT-45-INSTALL-READINESS-001— Vérifier la maturité installation.FT-45-DOC-READINESS-001— Vérifier la maturité documentation.FT-45-USAGE-READINESS-001— Vérifier la maturité usage réel.FT-45-BLOCKERS-REVIEW-001— Vérifier les bloquants restants.FT-45-BETA-EXTEND-DECISION-001— Décider si la bêta continue.FT-45-STABLE-GO-NOGO-001— Décider stable ou non.
Résumé synthétique¶
FT-00 Cadre de campagne
FT-01 Installation
FT-02 Configuration environnement
FT-03 MariaDB système
FT-04 Connexion Forge à MariaDB
FT-05 Premier projet
FT-06 Architecture projet
FT-07 Routes
FT-08 Contrôleurs
FT-09 Premier template
FT-10 Templates Jinja
FT-11 Layout public
FT-12 Tailwind
FT-13 Formulaires publics
FT-14 CSRF
FT-15 HTMX
FT-16 Alpine.js
FT-17 Mail développement
FT-18 CLI
FT-19 Diagnostics CLI
FT-20 Routes via CLI
FT-21 Entités JSON
FT-22 Modèles générés/manuels
FT-23 SQL visible
FT-24 Migrations
FT-25 CRUD génération
FT-26 CRUD utilisation
FT-27 CRUD validation/erreurs
FT-28 CRUD recherche/tri/pagination
FT-29 CRUD filtres/export
FT-30 Relations simples
FT-31 Relations avancées
FT-32 Médias/uploads
FT-33 Sécurité uploads
FT-34 Authentification
FT-35 Pages protégées
FT-36 RBAC
FT-37 Diagnostics erreurs applicatives
FT-38 Production locale
FT-39 Déploiement serveur
FT-40 Maintenance
FT-41 Mini-projet guidé
FT-42 Projet autonome
FT-43 Consolidation retours
FT-44 Conversion tickets validés en tutoriels
FT-45 Décision bêta/stable