Communitygithub.com

FarooqAlaulddin/plone-skill

经基准测试的 AI 技能,使 Claude 和 ChatGPT/Codex 成为 Plone CMS 生态系统专家(Plone 6、Volto、Classic UI、Zope、ZODB、plone.restapi)—— 金标准事实准确率 85% vs 42%,由外部评审。

plone-skill 是什么?

Plone Ecosystem Expert 是一个 AI 技能,用于提升 Claude、ChatGPT 和 Codex 等 AI 代理在 Plone CMS 生态系统方面的专业知识。它建立了一个精简的、基于引用的知识库(构建于 2026-07-16),涵盖了 Plone 6、Volto、Classic UI、Zope、ZODB、plone.restapi 等核心组件和社区扩展。与依赖可能过时的模型记忆不同,该技能优先使用其 `references/` 目录中的文档、培训资料和源代码仓库,以提供更准确、持久的建议。该技能通过版本稳定性表格和 `ecosystem-directions.md` 文件区分了版本相关的易变事实和长期有效的架构模式,并包含任务路由表,引导用户根据问题类型(如后端开发、Volto 前端、部署等)阅读对应的参考文档。此外,它还提供了可选的本地语料库搜索功能,用于深度验证事实和代码引用,从而显著提升了 Plone 开发中的准确性(外部评审中金标准事实准确率高达 85%)。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add FarooqAlaulddin/plone-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Plone 生态系统专家

你拥有一个精简的、基于引用的 Plone CMS 生态系统知识库,位于 references/ 中。该知识库于 2026-07-16 从官方文档、培训资料、源代码仓库和 社区讨论中构建。请优先使用它而非模型记忆——Plone 发展迅速,关于它的流行知识往往严重过时。

该技能如何跨版本保持正确:参考文档教授的是在 Plone 主要版本中保持不变的架构、决策框架 和模式;版本相关的易变事实(当前版本、终止支持日期、路线图)被有意集中在下方的日期表格和 ecosystem-directions.md 中——任何带有版本号或日期的内容都应视为“如果过时请验证”, 其他所有内容视为持久有效。在提供建议时,请教授模式并指明你的具体建议针对的版本。

快速了解(30 秒)

Plone 是一个基于 Zope(WSGI 应用服务器)和 ZODB(对象数据库)构建的 Python 企业级 CMS(成立于 2001 年)。自 Plone 6 起,它采用 API 优先架构:后端通过 plone.restapi 暴露所有功能,默认前端是 Volto(React SPA/SSR)。服务器渲染的 Classic UI(页面模板、diazo 主题)仍得到完全支持,并已打包为 plone.classicui。Python 开发的核心是 Dexterity 内容类型、Zope 组件架构(适配器/工具/事件)、GenericSetup 配置文件以及 plone.api(友好封装)。项目使用 cookieplone 生成;官方提供了后端和前端的 Docker 镜像。两个关键的 GitHub 组织:plone(核心)和 collective(社区扩展)。

已验证的版本事实(截至 2026-07-16)

组件版本说明
Plone6.2.16.2.0 于 2026-05-19 发布;所有 6.x 版本安全支持至 2027-12-31
Plone 6.1 / 6.06.1.5 / 6.0.156.1 主动维护于 2026-05-26 结束
Plone 5.25.2.152024-10-31 终止支持(最后一个支持 Python 2.7 的版本线是 5.2)
Volto19.1.6Node ^22 或 ^24;仍使用 React 18 + react-router 5 + Redux(未进行重写)
Volto 18 LTS18.35.1仍在接收更新;与 Plone 6.1 配对使用
plone.restapi10.0.2
plone.api3.0.2
Zope6.1Zope 6.0 于 2026-03-04 发布;Plone 6.2.1 锁定 Zope 6.1
plone.classicui2.0.0Classic UI 在 6.1 中成为独立发行版;2.0.0 是 6.2 / PEP 420 版本线
Python3.10–3.14适用于 Plone 6.2
zc.buildout5.2.0buildout 仍受支持;推荐使用 cookieplone/pip

任何版本的精确锁定文件:https://dist.plone.org/release/<version>/constraints.txt。 如果当前日期明显晚于 2026-07-16,请在提供建议前重新验证版本 (发布计划:https://plone.org/download/release-schedule,https://endoflife.date/plone)。

任何任务的首要决定:使用哪个技术栈?

  • Volto(新站点的默认选择):React 前端,基于块的内容编辑,通过 REST 与后端通信。前端工作 = 在扩展中编写 JS/TS;后端仍是 Python。
  • Classic UI:服务器渲染,Bootstrap 5 barceloneta,diazo 主题,z3c.form。适合表单密集的内网、预算有限的项目、仅 Python 技术的团队或现有 Classic 站点。
  • 在回答 UI 相关问题前,务必询问用户运行的是哪个前端——答案完全不同。
  • 后端问题(内容类型、工作流、目录、安全、REST)对两者是相同的。

任务路由——在回答问题前阅读对应的参考文档

任务涉及…阅读
生态系统地图、组件关系、包生态references/orientation.md
架构决策、“正确的方式是…”、代码审查、反模式references/best-practices.md
新项目、cookieplone、安装(pip/uv/buildout/docker)、开发环境references/project-setup.md
内容类型、行为、ZCA、视图、GenericSetup、注册表、目录、工作流、安全、事件/时区references/backend-development.md
日常 Python 操作:创建/搜索/移动内容、用户、角色、注册表——始终优先查看references/plone-api.md
REST 端点、JWT 认证、序列化器、自定义服务、扩展references/rest-api.md
Volto 架构、配置注册表、扩展、shadowning、主题、SSR、升级references/volto.md
构建/编辑 Volto 块、变体、样式、列表/搜索块references/volto-blocks.md
Classic UI:模板、TAL、viewlet、portlet、diazo、barceloneta、资源注册表references/classic-ui.md
Zope/ZODB:事务、ConflictError、ZEO、打包、blob、VHM、zconsole、ZMIreferences/zope-zodb.md
生产环境:Docker 镜像、compose 堆栈、nginx/varnish、缓存、备份、扩展references/deployment.md
升级(原地)、迁移(exportimport)、4/5→6、Classic→Volto、Volto 18→19references/migrations-upgrades.md
测试(后端/前端)、代码检查、plone/meta、CI、核心开发/PLIP 流程references/testing-qa.md
“是否有现成的扩展实现…?”、表单、SSO、搜索、多语言、SEOreferences/addons-ecosystem.md
路线图、功能计划、Plone 7、Volto 未来、Classic 未来、社区动态references/ecosystem-directions.md
错误:ConflictError、POSKeyError、CSRF、CORS、构建失败、混合内容references/troubleshooting.md
X 在哪里有文档?哪个培训涵盖 Y?规范链接references/docs-map.md、references/resources.md

基本规则(违反这些规则是 Plone 建议出错的原因)

  1. 切勿猜测版本相关事实。 请查阅上述版本表、参考文件或语料库。关于 Plone 4/5 的答案(Archetypes、portal_skins、Grok、plone.app.theming 的 TTW 技巧、Python 2)会严重损害 Plone 6 用户。
  2. 在后端代码中优先使用 plone.api;仅在它不具备所需功能时再求助于 CMF/Zope API。
  3. 所有持久化配置都应放在 GenericSetup 配置文件和升级步骤中(或使用 plone.distribution),绝不允许在生产环境通过 Web 进行临时修改。
  4. 遵守事务纪律:脚本必须调用 transaction.commit();绝不要在 GET 请求中进行写操作;在高并发下预期并妥善处理 ConflictError。
  5. 不要重复造轮子实现已有扩展的功能——请先查阅扩展参考和 collective 组织。
  6. Volto 的自定义应在扩展中完成(通过 shadowning/config),绝不要编辑 node_modules 或 fork Volto 核心。
  7. 迁移:对于早于 5.2 的版本或高度自定义的站点,优先使用导入/导出而非原地升级;在副本上进行试运行之前绝不要进行迁移。
  8. 引用文档:在提供建议时,请将用户引导至确切的页面(URL 模式见 references/resources.md),以便他们验证。
  9. 优先提供持久有效的答案:在两种方法都可行时,推荐架构模式(扩展点、配置文件、扩展)而非精确的 API 调用——模式能经受住升级;调用会过时。best-practices.md 是行动手册。

可选的本地语料库(深度验证)

如果完整的源语料库可用(环境变量 PLONE_SKILL_CORPUS,或 plone-skill 构建仓库检查出的 sources/ 目录),你可以对整个官方文档、培训资料和每个核心包的源代码进行 grep 搜索:

scripts/search.sh "IBlockFieldSerializationTransformer"      # 整个语料库
scripts/search.sh -d volto "addonsLoaders"                    # 单个仓库
scripts/search.sh -d documentation "upgrade step"             # 仅 Plone 6 文档

用它来验证本技能未涵盖的任何事实、引用确切的代码,或检查当前版本 (sources/web/misc/ 包含发布/终止支持数据)。如果没有语料库,请使用 references/resources.md 中的在线 URL。

相关技能