poshi-migrate

Par liferay · liferay-portal

Skill Claude opérationnel pour migrer des fichiers Poshi `.testcase` vers Playwright, Jest, JUnit ou Java integration dans le repo liferay-portal.

npx skills add https://github.com/liferay/liferay-portal --skill poshi-migrate

poshi-migrate

Ce skill est un playbook complet destiné à guider Claude dans la migration de suites de tests Poshi (fichiers .testcase) vers les couches de test modernes du projet Liferay DXP. Il s'agit d'un skill fonctionnel et détaillé, hébergé dans le repository liferay/liferay-portal, le dépôt source officiel de la plateforme Liferay DXP.

Ce que fait ce skill

À partir d'un fichier .testcase ou d'un @component-name, le skill orchestre un workflow en cinq phases : feasibility (détection des blockers), inventory (analyse de la couverture existante et routage par couche), plan (génération d'un plan détaillé soumis à validation), implement (écriture des nouveaux tests et nettoyage du fichier source) et validate (vérification des tests contre un backend actif, avec contrôle de flakiness pour Playwright).

Chaque test Poshi est orienté vers la couche appropriée — Playwright pour les flux UI complets, Jest pour la logique frontend JavaScript/React, JUnit unit pour la logique Java pure, et Java integration pour les services OSGi et la persistance. Le skill privilégie systématiquement une initialisation via API plutôt que via l'interface graphique, et propose des endpoints manquants plutôt que de contourner le problème par des interactions UI fragiles.

Configuration et prérequis

Le skill s'appuie sur un fichier config.json local (non commité, à créer à partir de config.example.json) pour mémoriser le composant par défaut, les modules Playwright associés à chaque @component-name, et le dossier de référence pour les patterns Playwright. L'arborescence du repo est supposée propre avant toute exécution : le skill vérifie cela et demande à l'utilisateur de commiter ou stasher ses modifications en cours si nécessaire.

Usage typique

Invoquer le skill avec un @component-name ou le chemin d'un fichier .testcase comme argument. En l'absence d'argument, le skill guide interactivement l'utilisateur dans le choix du composant puis du fichier cible. Chaque phase est validée par l'utilisateur avant de passer à la suivante, et le résultat final est un ensemble de commits atomiques documentant chaque suppression, migration ou ajout de helper.

Skills similaires