fswp-maintainer

Change stage pour code WordPress existant dans Full-Stack WP Developer. Met à jour, corrige, refactore et fait évoluer des plugins et thèmes existants sans les casser, et construit des extensions pour des produits que vous ne possédez pas (extensions WooCommerce, éléments de page builder, extensions d'autres plugins) en utilisant des hooks plutôt que des modifications directes des fichiers tiers. Couvre la lecture préalable, les listes de conformité, la dépréciation, la compatibilité hébergeur, les chemins de mise à niveau et la livraison de correctifs. Invoqué par fswp-developer après une fiche de modification approuvée ; à consulter directement pour des questions de modification sécurisée ou d'extension.

Qu'est-ce que fswp-maintainer ?

Cette compétence est réservée aux modifications de code WordPress existant (plugins ou thèmes) déjà en production. Elle garantit que les mises à jour, corrections de bugs, refactorisations ou évolutions respectent les conventions du projet d'origine, ne réécrivent pas le style, ne cassent pas la surface publique (hooks, noms de fonctions, routes REST, etc.) et fournissent un chemin de mise à niveau pour les données. Pour les produits que vous ne possédez pas (par exemple une extension WooCommerce ou un module pour un thème tiers), la compétence impose de n'utiliser que l'API publique du produit hôte, de déclarer la dépendance dans l'en-tête du plugin, de charger au bon moment, d'échouer proprement et de ne jamais modifier les fichiers tiers. Elle inclut un passage systématique de sécurité (fswp-security-engineer) sur les zones touchées et produit un livrable (correctif ou zip) avec la checklist de conformité. Supporté par Cursor, Codex et tout agent implémentant Full-Stack WP Developer.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/syncwin/fswp-developer/tree/main/skills/fswp-maintainer

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

FSWP Maintainer

Fondamental (toujours appliqué) : fswp-developer/references/lean-coding.md (écrire moins, réutiliser d'abord), fswp-developer/references/coding-standards.md (normes de codage, documentation, i18n, accessibilité) et fswp-security-engineer (entrée, sortie, autorisation).

Le code existant est la spécification. Exécute une fiche de modification approuvée par fswp-architect (qui a déjà exécuté detect_wp_project.py). Suivez les propres conventions du projet, sauf si elles sont dangereuses ; les modèles maison sont pour les nouveaux projets, pas pour réécrire le style de quelqu'un d'autre.

Mode A : Mettre à jour un plugin ou thème existant

  1. Lire d'abord. Lisez les fichiers que la modification touche, leurs appelants et leurs tests. Notez le préfixe, la dénomination, le style de gestion des erreurs et la manière dont les options et les données sont stockées.
  2. Reproduire. Pour un bogue, écrivez les étapes et le résultat observé ; confirmez l'échec avant de modifier quoi que ce soit. Pour une fonctionnalité, énoncez le critère d'acceptation.
  3. Le plus petit changement qui fonctionne. Corrigez la cause dans le code partagé, pas dans un seul site d'appel. Ne reformatez pas le code non modifié ; les diffs bruités cachent les vraies modifications et brisent le blame.
  4. Protéger la surface publique. Les noms de hooks, les noms de fonctions et de classes, les clés d'options, les clés de meta, les routes REST et leurs formes, les attributs de shortcodes et les surcharges de modèles sont des contrats. Pour en changer un, dépréciez d'abord : gardez l'ancien fonctionnel, appelez _deprecated_function() / _deprecated_hook() (ou _deprecated_argument()), documentez le remplacement et ne supprimez pas avant une version majeure ultérieure.
  5. Chemin de mise à niveau. Si les données ou le schéma changent : augmentez une option de version stockée, exécutez une migration au chargement (pas seulement à l'activation), rendez-la idempotente et testez la mise à niveau à partir des données de la version précédente sans réactiver.
  6. Compatibilité. Respectez les Requires at least et Requires PHP déclarés ; protégez les nouvelles fonctions avec function_exists()/vérifications de version ou augmentez délibérément le minimum et dites-le.
  7. Passage sécurité sur le code touché (fswp-security-engineer) : une correction de bogue ne doit pas ajouter un nouveau point d'entrée sans autorisation, nonce, assainissement et échappement.
  8. Version et journal des modifications. Correction = correctif, fonctionnalité = mineur, rupture = majeur. Faites évoluer la version du plugin/thème, la constante, la balise Stable de readme.txt et le journal des modifications ensemble.
  9. Livrer sous forme de correctif ou de diff pour le dépôt dans lequel l'utilisateur travaille, ou un zip lorsqu'il déploie des fichiers. Incluez le résultat de la checklist de conformité.

Thèmes : préférez un thème enfant ou des modifications de theme.json/variations de style plutôt que d'éditer un thème parent qui reçoit des mises à jour. Les modifications directes sur un parent, et les modifications sur les fichiers de plugins tiers, sont perdues lors de la prochaine mise à jour.

Mode B : Extension pour un produit que vous ne possédez pas

Une extension est un plugin séparé (ou une petite couche de thème) qui étend un hôte. Structurez-la avec fswp-plugin-developer (étapes 1 à 3 et 8), puis appliquez ces règles :

  1. Étendre via l'API publique de l'hôte. Utilisez les actions, filtres, registres et routes REST documentés. Ne modifiez jamais les fichiers de l'hôte et évitez d'appeler des parties internes marquées comme privées ou non documentées ; si vous devez le faire, isolez l'appel dans une classe d'adaptation unique et protégez-la.
  2. Déclarer la dépendance. Ajoutez Requires Plugins: host-slug dans l'en-tête lorsque l'hôte est sur WordPress.org (WordPress 6.5 et ultérieur l'impose). Détectez également à l'exécution : vérifiez la présence d'une classe, fonction ou constante, ou d'une constante de version, pas le chemin du fichier du plugin.
  3. Charger au bon moment. Initialisez sur plugins_loaded (ou le hook ready propre à l'hôte) après avoir confirmé l'existence de l'hôte ; enregistrez-vous sur les hooks de registre de l'hôte, pas avant.
  4. Échouer proprement et clairement. Hôte manquant ou trop ancien : ne faites rien d'autre, affichez une notification d'administration expliquant ce qui est nécessaire et ne provoquez jamais d'erreur fatale.
  5. Plage de versions. Indiquez les versions de l'hôte prises en charge dans le readme et le plan. Testez la plus basse et la plus récente prise en charge.
  6. Déclarations de compatibilité. Certains hôtes vous obligent à déclarer la prise en charge de fonctionnalités. Exemple : WooCommerce attend des extensions qu'elles déclarent leur compatibilité avec le High-Performance Order Storage et le panier et paiement basés sur des blocs. Lisez la documentation développeur de l'hôte pour les appels de déclaration actuels.
  7. Propriété des données. Stockez vos données sous votre propre préfixe ; n'écrivez pas dans les tables ou options de l'hôte. La désinstallation ne supprime que vos données.
  8. Licence et dénomination. Suivez les règles de marque et de nom de l'hôte pour les noms ; utilisez un style descriptif "pour X" plutôt que de suggérer qu'il est officiel.

Vérifier

Remettez à fswp-qa-engineer avec la liste de conformité de la fiche de modification et le tableau de compatibilité comme source de scénario. Le fichier references/safe-change-checklist.md est la liste rapide de pré-livraison.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

fswp-api-developer

Domain skill for WordPress REST API and Abilities API work in Full-Stack WP Developer. Covers registering routes with schemas, argument validation and sanitization, permission callbacks, controller classes, exposing post types and meta, authentication (cookie nonce, application passwords), pagination and errors, and registering abilities with input and output schemas and safety annotations. Use for any custom endpoint or machine-readable capability in a plugin or theme.

fswp-architect

Planning stage of Full-Stack WP Developer. Classifies the work (new plugin, new theme, update to an existing plugin or theme, add-on for another product, or WordPress Core patch), triages existing code with a bundled detection script, asks one round of essential questions, does competitive research, and produces one reviewable PRD or change brief with a single approval gate. Also covers Migration mode and multi-session handoff docs. Invoked by fswp-developer before any code is written; consult directly for PRD, change-brief, or handoff-doc questions.

fswp-block-developer

Domain skill for WordPress block editor work in Full-Stack WP Developer. Covers building custom Gutenberg blocks (block.json, static and dynamic rendering, attributes, supports, InnerBlocks, variations, deprecations, block bindings), block patterns, and the Interactivity API (data-wp directives, stores, server-side state), with the @wordpress/scripts build workflow. Use for any custom block, pattern, or front-end interactivity in a plugin or theme.

fswp-core-contributor

WordPress Core contribution stage of Full-Stack WP Developer. Guides a contributor through finding or filing a Trac ticket, setting up the wordpress-develop checkout and test environment, writing a patch or GitHub pull request that follows Core coding standards, inline documentation, backward compatibility and tests, and preparing the ticket comment; also routes block-editor changes to the Gutenberg repository and security reports to the private process. Invoked by fswp-developer for Core patches; consult directly for Core workflow questions.

fswp-devops-engineer

Domain skill for WordPress development tooling in Full-Stack WP Developer. Covers local environments (wp-env with Docker, WordPress Playground and Blueprints), command-line site operations (plugin and theme management, database export, search-replace, cron, scaffolding), coding standards and static analysis (PHPCS with WordPress standards, PHPStan with WordPress stubs), PHP and JS testing setup, and the @wordpress/scripts toolchain. Use when setting up, running, or automating a WordPress dev or test environment.

fswp-qa-engineer

Verification stage of Full-Stack WP Developer. Runs the mechanical gate for plugins and themes (house-rule scripts, PHP lint, PHPCS with WordPress standards, PHP compatibility, PHPStan with WordPress stubs), the manual checklist, PRD or change-brief scenario tests, and the pre-release check. Reports PASS, FAIL, or NOT RUN and never implies a skipped check passed. Invoked by fswp-developer after a build and again before delivery; consult directly to audit any plugin or theme folder.

fswp-reviewer

Independent review stage of Full-Stack WP Developer. Reviews a finished WordPress plugin, theme, add-on, or Core patch through a security lens (WordPress-specific vulnerabilities, REST and AJAX authorization with an API risk map, AI-generated-code risks), a quality lens (error handling, data and upgrade safety, performance, i18n, accessibility, comment accuracy, test gaps, class and type design, scope), and an optional lean lens for trimming over-engineering, reporting only high-confidence findings in a fixed format. Invoked by fswp-developer after the verify gate, normally through the fswp-code-reviewer agent; consult directly to review or optimize any WordPress code.

fswp-theme-developer

Theme build stage of Full-Stack WP Developer. Builds custom WordPress themes - block themes (theme.json, templates, template parts, patterns, style variations), classic themes (template hierarchy, functions.php, theme supports), hybrids, and child themes - with accessibility, escaping, and directory readiness built in, plus a scaffold script. Invoked by fswp-developer after an approved PRD for a new theme; consult directly for a specific theme pattern. For changes to an existing theme use fswp-maintainer.

syncwin/fswp-plugin-developer

Plugin build stage of Full-Stack WP Developer. House standards and code templates for real WordPress plugins (not shortcode snippets) - folder anatomy, activation/uninstall lifecycle, custom post types and tables, admin UI tiers, front-end output on the Atomic Framework, REST and cron, i18n, distribution, and the Tier 3 React admin stack - plus a scaffold script. Also the base structure for add-ons. Invoked by fswp-developer after an approved PRD; consult directly for a specific plugin build pattern.

Skills associés