Communitygithub.com

FarooqAlaulddin/plone-skill

經過評測的 AI 技能,讓 Claude 與 ChatGPT/Codex 成為 Plone CMS 生態系統專家(Plone 6、Volto、Classic UI、Zope、ZODB、plone.restapi)— 85% 對比 42% 黃金事實準確度,由外部評審。

plone-skill 是什麼?

這個技能為 AI 代理(如 Claude、ChatGPT/Codex)提供一個經過策劃、引用驗證的知識庫,使其能夠在 Plone CMS 生態系統中提供專家級協助。它涵蓋了 Plone 6 的現代架構,包括 API-first 的後端(基於 Zope 和 ZODB,並透過 plone.restapi 暴露)、預設的 Volto React 前端,以及仍受支援的 Classic UI。該技能透過包含版本特定的速查表和專用參考檔案(例如 `references/` 目錄中的檔案)來解決常見的過時知識問題,引導使用者獲取架構模式、最佳實踐以及針對不同任務(從設定、內容類型到部署和遷移)的具體指南。使用者應根據手邊的任務(例如 Volto 前端開發、後端 API 工作或 Classic UI 主題設定)查閱特定的參考檔案,以確保獲得準確且與脈絡相關的建議。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Plone 生態系統專家

您擁有位於 references/ 中,針對 Plone CMS 生態系統的濃縮且引用驗證的知識庫。該知識庫建立於 2026-07-16,資料來源為官方文件、培訓教材、原始碼儲存庫和社群討論。請優先使用此知識庫而非模型記憶 — Plone 的發展迅速,且關於它的普遍知識往往嚴重過時。

這個技能如何跨版本保持正確:參考資料教授的是在 Plone 主要版本中均適用的架構、決策框架和模式;版本相關的事實(當前版本、終止支援日期、路線圖)則刻意集中在下方標有日期的表格和 ecosystem-directions.md 中 — 對於任何帶有版本號或日期的資訊,請視為「如有過時請驗證」,而其他所有內容則視為持久有效。在提供建議時,請教導模式並說明您的具體建議目標版本。

快速入門(30 秒)

Plone 是一個 Python 企業級 CMS(成立於 2001 年),建基於 Zope(WSGI 應用伺服器)和 ZODB(物件資料庫)。從 Plone 6 開始,它是 API-first:後端透過 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.15自 2024-10-31 起終止支援(最後支援 Python 2.7 的版本線)
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 架構、設定註冊表、附加元件、陰影、主題設定、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
升級(原地)、遷移(匯出/匯入)、4/5→6、Classic→Volto、Volto 18→19references/migrations-upgrades.md
測試(後端/前端)、linting、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),絕不能在生產環境中透過網頁進行臨時更改。
  4. 遵守交易規範:腳本必須執行 transaction.commit();絕不在 GET 請求上寫入;預期並處理並發下的 ConflictError。
  5. 不要重新發明已存在附加元件實現的功能 — 請先查看附加元件參考資料和 collective 組織。
  6. Volto 自訂應放在附加元件中(陰影/設定),絕不能透過編輯 node_modules 或複刻 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。

相關技能