Communitygithub.com

Plone Ecosystem Expert

Compétence de référence évaluée qui fait de Claude et ChatGPT/Codex des experts de l’écosystème Plone CMS (Plone 6, Volto, Classic UI, Zope, ZODB, plone.restapi) — 85 % contre 42 % de précision sur des faits d’or, jugée par des experts externes.

Qu'est-ce que Plone Ecosystem Expert ?

Cette compétence transforme un assistant IA (Claude, ChatGPT, Codex) en expert certifié de l’écosystème Plone CMS. Elle fournit une base de connaissances distillé et sourcé, construite à partir de la documentation officielle, des formations, des dépôts source et des discussions communautaires. L'avantage clé est sa précision sur les faits : des tests ont montré 85 % de précision sur des faits d'or, contre 42 % pour la mémoire seule du modèle, grâce à une distinction claire entre les connaissances durables (patterns d'architecture, décisions de conception) et les faits volatils (versions, dates de fin de vie). La compétence couvre l'ensemble de l'écosystème : Plone 6, Volto (frontend React), Classic UI (rendu serveur), Zope, ZODB, plone.restapi, et les outils de développement. Elle guide l'utilisateur vers la pile appropriée (Volto vs Classic UI) et fournit un routeur de tâches pointant vers des fichiers de référence spécifiques pour chaque domaine (backend, frontend, déploiement, mises à jour). Les règles de base évitent les erreurs courantes : ne jamais deviner les faits dépendant des versions, utiliser plone.api en priorité, respecter la discipline des transactions, et citer les sources. Un corpus local optionnel permet des recherches avancées dans le code source complet.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add FarooqAlaulddin/plone-skill

Demander à votre IA préférée

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

Documentation

Expert de l'Écosystème Plone

Vous disposez d'une base de connaissances distillée, sourcée par des citations, pour l'écosystème Plone CMS dans references/. Elle a été construite le 2026-07-16 à partir de la documentation officielle, des formations, des dépôts source et des discussions communautaires. Préférez-la à la mémoire du modèle — Plone évolue vite et les connaissances populaires à son sujet sont chronologiquement obsolètes.

Comment cette compétence reste correcte à travers les versions : les références enseignent l'architecture, les cadres de décision et les modèles qui ont perduré à travers les versions majeures de Plone ; les faits volatils liés aux versions (versions actuelles, dates de fin de vie, feuille de route) sont délibérément concentrés dans le tableau daté ci-dessous et dans ecosystem-directions.md — traitez tout ce qui porte un numéro de version ou une date comme « à vérifier si obsolète », et tout le reste comme durable. Lorsque vous conseillez, enseignez le modèle et nommez la version que vos spécificités ciblent.

Orientation (30 secondes)

Plone est un CMS d'entreprise Python (créé en 2001) construit sur Zope (serveur d'application WSGI) et ZODB (base de données objet). Depuis Plone 6, il est API-first : le backend expose tout via plone.restapi, et le frontend par défaut est Volto (SPA/SSR React). Le Classic UI (rendu serveur, templates de page, thèmes diazo) reste entièrement pris en charge et est désormais empaqueté comme plone.classicui. Le développement Python se concentre sur les types de contenu Dexterity, l'architecture de composants Zope (adaptateurs/utilitaires/événements), les profils GenericSetup et plone.api comme façade conviviale. Les projets sont générés avec cookieplone ; des images Docker officielles existent pour le backend et le frontend. Deux organisations GitHub sont importantes : plone (cœur) et collective (extensions communautaires).

Faits de version vérifiés (au 2026-07-16)

ComposantVersionNotes
Plone6.2.16.2.0 publiée le 2026-05-19 ; toutes les versions 6.x bénéficient d'un support de sécurité jusqu'au 2027-12-31
Plone 6.1 / 6.06.1.5 / 6.0.15La maintenance active de 6.1 a pris fin le 2026-05-26
Plone 5.25.2.15Fin de vie depuis le 2024-10-31 (la dernière ligne compatible Python 2 était le support 2.7 de 5.2)
Volto19.1.6Node ^22 ou ^24 ; toujours React 18 + react-router 5 + Redux (aucune réécriture livrée)
Volto 18 LTS18.35.1Reçoit encore des mises à jour ; s'associe à Plone 6.1
plone.restapi10.0.2
plone.api3.0.2
Zope6.1Zope 6.0 publié le 2026-03-04 ; Plone 6.2.1 épingle Zope 6.1
plone.classicui2.0.0Classic UI est devenu sa propre distribution dans 6.1 ; 2.0.0 est la ligne 6.2 / PEP 420
Python3.10–3.14pour Plone 6.2
zc.buildout5.2.0buildout toujours supporté ; cookieplone/pip est le chemin préconisé

Épingles exactes pour toute version : https://dist.plone.org/release/<version>/constraints.txt. Si aujourd'hui est sensiblement plus tard que le 2026-07-16, vérifiez à nouveau les versions avant de conseiller (calendrier des versions : https://plone.org/download/release-schedule, https://endoflife.date/plone).

Première décision pour toute tâche : quelle pile ?

  • Volto (par défaut pour les nouveaux sites) : frontend React, édition par blocs, communique avec le backend via REST. Le travail frontend = JS/TS dans une extension ; le backend reste Python.
  • Classic UI : rendu serveur, Bootstrap 5 barceloneta, thèmes diazo, z3c.form. Choisissez pour les intranets riches en formulaires, les budgets serrés, les équipes Python uniquement, ou les sites Classic existants.
  • Demandez quel frontend un utilisateur utilise avant de répondre aux questions d'interface utilisateur — les réponses diffèrent complètement.
  • Les questions backend (types de contenu, workflow, catalogue, sécurité, REST) sont les mêmes pour les deux.

Routeur de tâches — lisez la référence correspondante avant de répondre

La tâche implique…Lisez
Carte de l'écosystème, comment les pièces s'emboîtent, paysage des paquetsreferences/orientation.md
Décisions d'architecture, « quelle est la bonne manière de… », revue de code, anti-patronsreferences/best-practices.md
Nouveau projet, cookieplone, installation (pip/uv/buildout/docker), environnement de développementreferences/project-setup.md
Types de contenu, comportements, ZCA, vues, GenericSetup, registre, catalogue, workflow, sécurité, événements/fuseaux horairesreferences/backend-development.md
Python au quotidien : créer/rechercher/déplacer du contenu, utilisateurs, rôles, registre — vérifiez toujours d'abordreferences/plone-api.md
Points de terminaison REST, authentification JWT, sérialiseurs, services personnalisés, expansionsreferences/rest-api.md
Architecture de Volto, registre de configuration, extensions, shadowing, thèmes, SSR, mises à niveaureferences/volto.md
Créer/éditer des blocs Volto, variations, styles, blocs de liste/recherchereferences/volto-blocks.md
Classic UI : templates, TAL, viewlets, portlets, diazo, barceloneta, registre de ressourcesreferences/classic-ui.md
Zope/ZODB : transactions, ConflictError, ZEO, compaction, blobs, VHM, zconsole, ZMIreferences/zope-zodb.md
Production : images Docker, piles compose, nginx/varnish, mise en cache, sauvegardes, passage à l'échellereferences/deployment.md
Mises à niveau (sur place), migrations (exportimport), 4/5→6, Classic→Volto, Volto 18→19references/migrations-upgrades.md
Tests (backend/frontend), linting, plone/meta, CI, processus core-dev/PLIPreferences/testing-qa.md
« Existe-t-il une extension pour… ? », formulaires, SSO, recherche, multilinguisme, SEOreferences/addons-ecosystem.md
Feuille de route, plans de fonctionnalités, Plone 7, avenir de Volto, avenir de Classic, sentiment communautairereferences/ecosystem-directions.md
Erreurs : ConflictError, POSKeyError, CSRF, CORS, échecs de construction, contenu mixtereferences/troubleshooting.md
Où est documenté X ? Quelle formation couvre Y ? Liens canoniquesreferences/docs-map.md, references/resources.md

Règles de base (les enfreindre, c'est ainsi que les conseils Plone tournent mal)

  1. Ne devinez jamais les faits dépendant des versions. Vérifiez le tableau des versions ci-dessus, le fichier de référence ou le corpus. Les réponses Plone 4/5 (Archetypes, portal_skins, Grok, plone.app.theming TTW hacks, Python 2) nuisent activement aux utilisateurs de Plone 6.
  2. Utilisez plone.api en premier dans le code backend ; ne recourez aux API CMF/Zope que lorsqu'il manque de capacité.
  3. Toute configuration persistante appartient aux profils GenericSetup + étapes de mise à niveau (ou à une plone.distribution), jamais de modifications ad-hoc via le web en production.
  4. Respectez la discipline des transactions : les scripts doivent faire transaction.commit() ; n'écrivez jamais sur GET ; attendez-vous à ConflictError sous concurrence et gérez-la.
  5. Ne réinventez pas ce qu'une extension établie fait — vérifiez d'abord la référence des extensions et l'organisation collective.
  6. Les personnalisations Volto vont dans une extension (shadowing/config), jamais en éditant node_modules ou en forquant le cœur de Volto.
  7. Migrations : préférez export/import au sur place pour tout ce qui est plus ancien que 5.2 ou fortement personnalisé ; ne migrez jamais sans un essai à blanc sur une copie.
  8. Citez la documentation : lorsque vous conseillez, indiquez aux utilisateurs la page exacte (modèles d'URL dans references/resources.md) afin qu'ils puissent vérifier.
  9. Préférez la réponse durable : recommandez le modèle architectural (point d'extension, profil, extension) plutôt que les incantations API exactes lorsque les deux fonctionnent — les modèles survivent aux mises à niveau ; les incantations pourrissent. best-practices.md est le guide de jeu.

Corpus local optionnel (ancrage profond)

Si le corpus source complet est disponible (env PLONE_SKILL_CORPUS, ou le répertoire sources/ d'un checkout de dépôt de construction plone-skill), vous pouvez grep l'ensemble de la documentation officielle, des formations et du code source de chaque paquet cœur :

scripts/search.sh "IBlockFieldSerializationTransformer"      # corpus entier
scripts/search.sh -d volto "addonsLoaders"                    # un dépôt
scripts/search.sh -d documentation "upgrade step"             # documentation Plone 6 uniquement

Utilisez-le pour vérifier tout fait que cette compétence ne couvre pas, citer du code exact ou vérifier les versions actuelles (sources/web/misc/ contient les données de version/fin de vie). Sans le corpus, utilisez les URL en direct dans references/resources.md.

Skills associés