Communitygithub.com

emdash-cms/emdash

Analyser et porter le comportement d'un plugin WordPress, ses types de publication personnalisés, ses shortcodes, ses workflows d'administration et ses données stockées vers les points d'extension actuels d'EmDash. Utilisez-le pour les migrations de plugins WordPress ou pour décider quel comportement appartient à un plugin EmDash, à un schéma de site, à une seed ou à du code Astro. Ne l'utilisez pas pour des portages de thèmes visuels sans fonctionnalité de plugin.

Qu'est-ce que emdash ?

Ce skill guide le processus de migration d'un plugin WordPress vers le système EmDash, en se concentrant sur la préservation du comportement observable et du modèle de données sans traduire le code PHP ligne par ligne. Il aide à décider quelles fonctionnalités doivent être implémentées comme un plugin sandboxé, un plugin natif de confiance, ou simplement comme du schéma de site, des seeds ou du code Astro. Le skill fournit un tableau de correspondance complet entre les responsabilités WordPress (types de publication personnalisés, points d'administration, endpoints REST, événements planifiés, etc.) et leurs équivalents EmDash (collections, schémas, routes, cron, stockage déclaré). Il insiste sur la séparation des autorités, la planification des migrations de données, et la vérification du comportement équivalent pour garantir un portage réussi et fiable. Il est utile pour les développeurs qui migrent des sites WordPress vers EmDash, ou qui évaluent comment mettre en œuvre des fonctionnalités spécifiques de plugins dans l'écosystème EmDash.

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/emdash-cms/emdash/tree/HEAD/skills/wordpress-plugin-to-emdash

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Porter un plugin WordPress vers EmDash

Préservez le comportement visible par l'utilisateur et le modèle de données du plugin sans traduire le PHP ligne par ligne. WordPress et EmDash répartissent les responsabilités différemment, alors décidez d'abord si chaque fonctionnalité appartient au schéma de site, au code Astro, à un plugin sandboxé ou à un plugin natif de confiance.

Chargez creating-plugins avant d'implémenter le code du plugin. Chargez building-emdash-site lorsque le portage modifie des collections, des seeds, des requêtes ou des modèles frontend. Ces compétences définissent les API actuelles ; cette compétence couvre les décisions de migration.

Comprendre la source

Inspectez le code source du plugin, son comportement d'installation, les modifications de base de données, les hooks, les endpoints REST, les tâches planifiées, les écrans d'administration, les shortcodes ou blocs, le rendu frontend, les permissions et les services externes. Identifiez le comportement sur lequel les utilisateurs comptent, séparément de l'implémentation spécifique à WordPress.

Enregistrez :

  • les données de contenu et de configuration requises ;
  • les actions qui modifient ou publient des données ;
  • les limites d'autorisation et de confiance ;
  • le comportement en arrière-plan ou de nouvelle tentative ;
  • les interactions frontend et administrateur ;
  • les besoins d'importation, de migration et de restauration ;
  • les obligations de licence pour les actifs ou le code copiés.

Si la source, le comportement attendu ou l'environnement EmDash cible est manquant, signalez l'écart au lieu d'inventer un équivalent.

Attribuer chaque responsabilité

Responsabilité WordPressDestination EmDash
Type de publication personnalisé, taxonomie ou métadonnéesCollection, taxonomie et champs créés via le schéma de site ou la seed
Paramètre de présentation à l'échelle du siteParamètre de site lu par les modèles Astro
Paramètres utilisateur appartenant au pluginctx.settings ; déclarez les identifiants comme champs secret cryptés
Curseurs, caches ou état interne du pluginStockage ctx.kv dédié au plugin
Enregistrements interrogeables appartenant au pluginStockage ctx.storage.<collection> déclaré
Découverte, traduction ou publication de contenuctx.content et ctx.schema limités par les capacités ; les hooks de politique et les actions ont une autorité séparée
Gestion des taxonomies ou des redirections à l'exécutionctx.taxonomies ou ctx.redirects avec une capacité de lecture/écriture restreinte
Administration des commentairesctx.comments ; les lectures exposent les données personnelles et l'utilisation de la modération avec le statut attendu
Endpoint REST WordPressRoute de plugin déclarée avec méthodes, entrées, en-têtes et mode de réponse explicites
Événement planifiéHook cron et planification ctx.cron
Page ou formulaire d'administrationBlock Kit pour les plugins sandboxés ; React uniquement pour un plugin natif de confiance
Metabox de l'éditeur de publication ou action d'entrée enregistréeadmin.editorPanels ou admin.editorActions sur des routes privées
Recherche d'utilisateur ou d'auteurctx.users avec users:read
Requête HTTP sortantectx.http.fetch() avec network:request et une entrée allowedHosts
Opération sur un médiaAutorités séparées pour les métadonnées, la lecture d'octets, l'écriture de métadonnées et le téléchargement/suppression
WP_Query ou balise de modèleAPI de contenu EmDash dans le code du site Astro
Shortcode ou bloc d'éditeurContenu Portable Text existant lorsque c'est possible ; un bloc Portable Text personnalisé nécessite un plugin natif de confiance
Code head ou scripts brutspage:fragments natif de confiance ; les plugins installés via le registre peuvent seulement contribuer des page:metadata validés

Ne créez pas de collections ou de taxonomies en accédant aux tables système d'EmDash. Utilisez le schéma public, la seed, la CLI ou la limite d'administration. N'utilisez pas de routes REST internes pour imiter une API sandbox qui n'existe pas.

Gardez les autorités séparées : la lecture des métadonnées d'un média n'accorde pas les octets, la modération n'accorde pas la suppression, la politique de publication n'accorde pas les actions de publication, et la restauration de contenu n'accorde pas les lectures de contenu ordinaires.

Choisir le format du plugin

Utilisez un plugin sandboxé par défaut. Il prend en charge les hooks portables, les routes, le stockage déclaré, les médias, l'accès réseau, les outils MCP et l'interface utilisateur d'administration Block Kit via un contrat de confiance à l'installation.

Utilisez un plugin natif de confiance uniquement lorsque la fonctionnalité nécessite un accès au processus hôte, du code d'administration React, des composants de rendu Astro, des fragments de page bruts ou des définitions de blocs Portable Text personnalisées. Indiquez l'autorité supplémentaire et la limitation de distribution dans le plan de migration.

Certains plugins WordPress n'ont pas besoin d'un plugin EmDash. Un type de publication personnalisé avec des modèles frontend peut devenir uniquement un schéma, des données de seed et des pages Astro. N'ajoutez pas d'extension d'exécution lorsque la structure statique du site couvre le comportement.

Planifier le déplacement des données

Décrivez comment mapper les données WordPress existantes avant d'écrire du code d'exécution :

  • mapper les ID de publication, les slugs, les locales, les auteurs, les statuts, les révisions et les dates de publication ;
  • préserver les relations entre les publications, les termes, les médias et les enregistrements appartenant au plugin ;
  • distinguer une importation unique d'une synchronisation continue ;
  • rendre les importations redémarrables et définir comment les doublons sont détectés ;
  • conserver les identifiants sources lorsqu'ils sont nécessaires pour la réconciliation ou les redirections ;
  • identifier le contenu qui ne peut pas être représenté sans une décision produit.

Utilisez les données de seed pour le schéma initial et le contenu d'exemple d'un nouveau site. Utilisez un importateur ou un chemin de migration pour les données de production d'un site existant ; une seed n'est pas un mécanisme de sauvegarde ou de synchronisation continue.

Vérifier le comportement équivalent

Testez à travers la frontière qu'exercent les utilisateurs et l'exécution :

  • assertions sur le schéma et les données importées pour les modifications du modèle de contenu ;
  • tests de plugin en limite de production pour les hooks, routes, stockage et permissions du sandbox ;
  • vérification navigateur pour les parcours d'administration et frontend ;
  • cas de redémarrage, de livraison en double, d'autorisation et d'échec lorsque la fonctionnalité source en dépend.

Comparez le comportement observable, pas la structure interne. Documentez les différences intentionnelles et toute fonctionnalité WordPress qui reste non prise en charge.

Livrer le portage

Fournissez :

  1. un inventaire concis du comportement et des données WordPress ;
  2. la carte des responsabilités et la décision sandboxé/natif ;
  3. le plan de migration des données ou de la seed ;
  4. l'implémentation dans le code du plugin et du site ;
  5. les preuves de vérification et les lacunes connues ;
  6. l'attribution et les avis de licence pour le code ou les actifs réutilisés.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés