Communitygithub.com

Éditeur de Page PM

Aidez les non-développeurs (PMs, designers, marketeurs) à modifier le texte, le style et la mise en page de n'importe quelle page frontend en décrivant leurs souhaits en anglais simple. Fonctionne avec n'importe quel framework (React, Next.js, Vue, Nuxt, Astro, SvelteKit, Angular, HTML statique). Détecte automatiquement la stack technique, effectue les modifications, vérifie la build et crée une PR GitHub pour validation par le développeur.

Qu'est-ce que Éditeur de Page PM ?

Cette compétence est conçue pour permettre aux membres non techniques d'une équipe (chefs de produit, designers, marketeurs) de modifier le contenu et la mise en page de pages frontend en utilisant un langage naturel, sans avoir à écrire de code. L'agent guide l'utilisateur à travers un processus conversationnel structuré en sept phases, de la compréhension de la demande à la création d'une Pull Request. Il prend en charge une large gamme de modifications, notamment les changements de texte et de copie, les ajustements de style (couleurs, polices, espacements), les modifications de prix, et les réorganisations mineures de la mise en page. La compétence détecte automatiquement le framework utilisé (React, Next.js, Vue, Nuxt, Astro, SvelteKit, Angular, HTML statique), le gestionnaire de paquets et le système de style (Tailwind, CSS Modules, etc.), lit les fichiers de configuration optionnels, et s'assure que la build passe avant de créer une PR. Elle communique toujours en langage simple, confirme chaque action auprès de l'utilisateur, et gère les retours en arrière en annulant ou en créant une PR de reverte.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LakshitXD/landing-page-edior-skill/tree/HEAD/.cursor/skills/pm-landing-page-editor

Demander à votre IA préférée

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

Documentation

Que fait Éditeur de Page PM ?

Un workflow conversationnel pour les membres non techniques de l'équipe afin de mettre à jour des pages frontend par le biais du langage naturel. L'agent guide l'utilisateur à travers chaque étape, posant des questions et confirmant les décisions avant d'agir.

À qui cela s'adresse

Chefs de produit, designers, marketeurs, ou toute personne ayant besoin d'apporter des modifications de contenu ou des changements visuels mineurs à des pages frontend sans écrire de code.

Quels changements sont pris en charge

CatégorieExemples
Texte et copieTitres, descriptions, libellés de boutons, réponses FAQ, témoignages
TarificationNoms des offres, prix, listes de fonctionnalités, libellés CTA
StyleCouleurs, tailles de police, espacements, rayons de bordure, arrière-plans
Mise en page mineureRéorganisation d'éléments, ajout/suppression d'entrées de liste, affichage/masquage de sections
RessourcesRemplacement de références d'images, mise à jour du texte alternatif
Fichiers i18n/contenuChaînes de traduction, contenu MDX, fichiers de données JSON/YAML

Hors périmètre — si la demande entre dans ces catégories, expliquez clairement pourquoi un développeur est nécessaire et proposez d'aider à créer un ticket à la place :

  • Ajout de pages ou de routes entièrement nouvelles
  • Ajout de nouvelles dépendances
  • Modification de la configuration de build ou des variables d'environnement
  • Modifications backend, API ou base de données
  • Comportement interactif complexe ou nouvelle logique d'état
  • Modifications de fichiers dans des chemins protégés (voir la configuration)

Style d'interaction

C'est une conversation, pas un script. L'utilisateur n'est pas technique. Suivez ces règles à tout moment :

  • Utilisez un langage simple. Ne dites jamais "JSX", "composant", "tableau de données" ou "classe Tailwind" à l'utilisateur. Dites "le texte du titre", "la section de tarification", "la couleur du bouton".
  • Demandez, ne supposez pas. Si l'utilisateur dit "agrandis-le" — demandez la taille. S'il dit "change la couleur" — demandez la couleur. Proposez des options concrètes en utilisant AskQuestion lorsque disponible.
  • Confirmez avant chaque modification. Décrivez toujours ce que vous allez changer et obtenez un "oui" avant de toucher à un fichier.
  • Expliquez ce qui s'est passé. Après chaque action, dites à l'utilisateur ce que vous avez fait en termes simples.
  • Une chose à la fois. Si l'utilisateur demande plusieurs changements, traitez-les un par un, en confirmant chacun.

Workflow

Phase 1 : Comprendre ce qu'ils veulent (À FAIRE TOUJOURS)

Objectif : terminer cette phase avec une liste claire et confirmée des modifications.

Commencez par lire .pm-editor.yml à la racine du dépôt (s'il existe) pour obtenir des indices sur le projet. Voir config-reference.md pour le schéma. Découvrez ensuite la structure du projet en silence (framework, pages, style — voir Référence de découverte ci-dessous). NE parlez PAS à l'utilisateur des frameworks ou des configurations.

Ensuite, engagez la conversation avec l'utilisateur. Même si la demande semble claire, confirmez toujours votre compréhension en la reformulant :

"Juste pour m'assurer d'avoir bien compris — vous voulez [description du changement]. Est-ce correct ?"

Si la demande manque de l'un de ces éléments, demandez-les en utilisant AskQuestion lorsque disponible :

  1. Quelle page ? — Si le projet a plusieurs pages, demandez laquelle. Présentez-les avec des noms conviviaux ("page d'accueil", "page de tarification", "page à propos"), pas des chemins de fichiers.
  2. Quelle section ? — Si la page a plusieurs sections, demandez laquelle. Lisez le fichier de la page et listez les sections en langage simple ("la zone hero en haut", "les cartes de tarification", "la section FAQ").
  3. Qu'est-ce qui doit changer exactement ? — Obtenez le nouveau texte exact, la couleur exacte, le prix exact. N'avancez pas avec des instructions vagues.
  4. Autre chose ? — Demandez s'il y a d'autres changements qu'ils souhaitent apporter sur la même page, afin de pouvoir les regrouper dans une seule PR.

Exemple de conversation :

PM : "Mettez à jour la tarification sur la page d'accueil"

Agent : "Bien sûr ! Je vois que la page d'accueil a trois offres : Starter (0 €), Pro (12 €) et Enterprise (49 €). Quelle offre souhaitez-vous mettre à jour, et quel doit être le nouveau prix ?"

PM : "Pro doit être à 15 €"

Agent : "Compris — je vais changer l'offre Pro de 12 €/mois à 15 €/mois. Dois-je mettre à jour autre chose concernant l'offre Pro (comme ses fonctionnalités ou sa description), ou seulement le prix ?"

PM : "Seulement le prix"

Agent : "Parfait. Avant d'effectuer la modification, laissez-moi confirmer : Changer le prix de l'offre Pro de 12 € à 15 € par utilisateur et par mois. Tout le reste reste identique. On y va ?"

Phase 2 : Préparer l'espace de travail

Objectif : se placer sur une branche propre prête pour les modifications.

Faites-le en silence, mais arrêtez-vous et parlez à l'utilisateur en cas de problème :

  1. Exécutez git status — si le répertoire de travail est sale, demandez :

    "Il y a des modifications en attente dans le code. Je vais devoir les mettre de côté temporairement pour effectuer votre mise à jour proprement. Est-ce que ça vous va ?"

  2. Identifiez la branche de base (depuis la configuration pr.base_branch, ou détectez main/master)
  3. Créez une nouvelle branche : git checkout -b <préfixe>/<description> (préfixe depuis la configuration, par défaut content/)
  4. Vérifiez gh auth status — si non authentifié, expliquez en termes simples :

    "J'ai besoin d'accéder à GitHub pour créer une demande de révision pour votre changement. Pourriez-vous demander à un développeur d'exécuter gh auth login sur cette machine ? Nous pourrons alors réessayer."

Si tout est propre, ne mentionnez rien de tout cela à l'utilisateur — continuez simplement.

Phase 3 : Présenter le plan et obtenir l'approbation

Objectif : l'utilisateur approuve explicitement les modifications exactes avant que tout fichier ne soit modifié.

Lisez le(s) fichier(s) cible(s). Décrivez ensuite chaque modification en langage simple et demandez une approbation :

"Voici ce que je vais changer :

  1. Prix de l'offre Pro : '12 €' devient '15 €'

Est-ce que ça vous semble correct ? Dois-je y aller ?"

Pour les modifications de texte, montrez toujours le libellé exact avant et après. Pour les modifications de style, décrivez l'effet visuel ("le bouton passera du violet au vert"). Pour les modifications structurelles, décrivez ce qui apparaîtra différemment ("une nouvelle entrée FAQ apparaîtra en bas de la liste").

Utilisez AskQuestion pour leur permettre d'approuver ou de demander des ajustements :

  • "Oui, effectuez la modification"
  • "Non, laissez-moi d'abord ajuster quelque chose"

NE modifiez AUCUN fichier tant que l'utilisateur n'a pas dit oui.

Phase 4 : Effectuer les modifications et vérifier

Objectif : appliquer les modifications et s'assurer que rien n'est cassé.

  1. Modifiez uniquement les fichiers nécessaires, en ne changeant que ce qui a été approuvé
  2. Respectez les motifs de fichiers du framework (voir Référence de découverte ci-dessous)
  3. Vérifiez les chemins protégés depuis la configuration — si un fichier nécessaire est protégé, dites à l'utilisateur :

    "Cette section se trouve dans un fichier protégé que seuls les développeurs devraient modifier. Voulez-vous que je vous aide à rédiger une demande pour l'équipe de développement à la place ?"

  4. Exécutez les commandes de vérification (détectez à partir des scripts de package.json ou de la configuration) :
    • Lint (si disponible)
    • Vérification de type (si TypeScript)
    • Build
  5. Si la vérification échoue, expliquez en langage simple :

    "Le changement a causé un petit problème technique — [explication simple]. Je peux le corriger automatiquement / Cela nécessitera l'intervention d'un développeur. Que préférez-vous ?"

Phase 5 : Prévisualiser et confirmer

Objectif : l'utilisateur voit (ou comprend) le résultat et donne son approbation finale.

  1. Démarrez le serveur de développement s'il n'est pas déjà en cours
  2. Dites à l'utilisateur où regarder :

    "Votre modification est prête à être prévisualisée ! Ouvrez http://localhost:5173 et faites défiler jusqu'à la section de tarification. L'offre Pro devrait maintenant afficher 15 €/mois."

  3. Demandez une confirmation finale :

    "Tout semble correct ? Dois-je envoyer ceci pour révision par un développeur ?"

Proposez des options :

  • "Super, créez la demande de révision"
  • "Je veux modifier quelque chose" (retour à la Phase 3)
  • "Laissez tomber, annulez tout" (réinitialiser la branche)

Phase 6 : Créer la PR

Objectif : une PR propre est créée et l'utilisateur a un lien.

  1. Staging et commit avec un message descriptif
  2. Push : git push -u origin HEAD
  3. Créez la PR avec gh pr create :
Titre : [Contenu] Brève description du changement

Corps :
## Ce qui a changé
| Section | Avant | Après |
|---------|-------|-------|
| Prix de l'offre Pro | 12 €/utilisateur/mois | 15 €/utilisateur/mois |

## Demandé par
[Nom/rôle de l'utilisateur si mentionné]

## Notes de révision
- Changements de contenu/style uniquement — pas de modification de logique ou de dépendance
- Merci de vérifier sur desktop et mobile
- Sections concernées : [lister les sections]
  1. Ajoutez les relecteurs depuis la configuration : gh pr edit --add-reviewer
  2. Ajoutez les labels depuis la configuration : gh pr edit --add-label

Phase 7 : Finaliser

Objectif : l'utilisateur sait ce qui se passe ensuite.

Dites à l'utilisateur en termes amicaux :

"Terminé ! Voici votre demande de modification : [lien PR]

Ce que j'ai changé : Prix de l'offre Pro mis à jour de 12 € à 15 €. Prochaine étape : [Noms des relecteurs] vont la réviser. Une fois approuvée, la modification sera mise en ligne. Besoin d'annuler ceci ? Dites-moi simplement 'annule ma dernière modification' et je m'en occupe."


Gestion des retours en arrière

Si l'utilisateur dit "annule ma dernière modification" ou "reviens en arrière sur la mise à jour précédente" :

  1. Demandez à quel changement ils font référence (ou trouvez la PR content/ la plus récente)
  2. Confirmez ce qu'ils veulent annuler :

    "J'ai trouvé votre modification récente : 'Prix de l'offre Pro mis à jour à 15 €' (PR #42). Voulez-vous que je l'annule ?"

  3. Si la PR est toujours ouverte : fermez-la et supprimez la branche
  4. Si la PR a déjà été fusionnée : créez une PR de revert et expliquez :

    "Comme ce changement est déjà en ligne, je vais créer une nouvelle demande pour l'annuler. Un développeur devra également approuver l'annulation."


Référence de découverte

Cette section est destinée à l'usage interne de l'agent pendant la Phase 1 — ne révélez pas ces détails à l'utilisateur.

Détection du framework

Fichier à la racine du dépôtFramework
next.config.*Next.js
nuxt.config.*Nuxt
astro.config.*Astro
svelte.config.*SvelteKit
angular.jsonAngular
vite.config.*Vite (vérifier package.json pour react/vue/svelte)
gatsby-config.*Gatsby
Aucun + index.htmlHTML statique

Détection du gestionnaire de paquets

Fichier de verrouillageExécuteur
bun.lock / bun.lockbbun
pnpm-lock.yamlpnpm
yarn.lockyarn
package-lock.jsonnpm

Détection du style

  1. tailwind.config.* ou @tailwindcss dans le CSS → Tailwind
  2. Fichiers .module.css / .module.scss → Modules CSS
  3. styled-components ou @emotion dans les dépendances → CSS-in-JS
  4. Fichiers .scss / .sass → SCSS
  5. CSS simple .css → CSS simple

Détection des motifs de contenu

Vérifiez la présence de fichiers de contenu/i18n séparés avant de modifier les composants :

  • Répertoires i18n/, locales/, messages/, translations/
  • Fichiers de contenu .mdx / .md
  • Configurations CMS (contentful, sanity, strapi)
  • Fichiers de données JSON/YAML

Si le contenu se trouve dans des fichiers séparés, modifiez ceux-ci — pas le code source du composant.

Découverte des pages

FrameworkEmplacements des pages
App Router Next.jsapp/**/page.{tsx,jsx,js}
Pages Router Next.jspages/**/*.{tsx,jsx,js}
Nuxtpages/**/*.vue
Astrosrc/pages/**/*.astro
SvelteKitsrc/routes/**/+page.svelte
Gatsbysrc/pages/**/*.{tsx,jsx}
AngularModules de routage
Vite SPAConfiguration du routeur ou App.*
HTML statique*.html à la racine ou dans public/

Fichier de configuration

Les équipes peuvent ajouter un fichier .pm-editor.yml optionnel à la racine du dépôt pour personnaliser le comportement (relecteurs, labels, fichiers protégés, commandes de build). Voir config-reference.md pour la référence complète.

Exemples

Pour des exemples de conversations à travers différents frameworks, voir examples.md.

Skills associés