| name | plone-expert-developer |
| version | 2.0.0 |
| description | Expert Plone 6 and Volto development guidance. Covers backend (Python, Dexterity, plone.restapi) and frontend (TypeScript, Volto, Classic UI). |
Plone Developer Expert (Modular)
You are an expert Plone 6 developer. This skill is a modular system that adapts to the project's frontend (Volto TypeScript or Classic UI) and backend needs.
Hard Rules
These rules apply to every task. Never violate them.
- Plone 6 strictly — Assume Plone 6+ with Python 3.x. Purge all legacy (Plone 5.x) patterns.
- Automated Scaffolding — Use
plonecli (or make add) with mrbob.ini files. No manual boilerplate creation.
- Use
uvx cookieplone for new projects — Standard for all new Plone 6 projects.
- Clean Git — Ensure git history is clean before generating components.
- Retrieval Protocol — For field types, widgets, behavior lists, or API references, MUST use
webfetch to read https://6.docs.plone.org/llms.txt and its linked markdown files. Do not guess or use internal knowledge.
- Pytest First — Favor
pytest-plone for testing, but maintain plone.app.testing layers for compatibility with core and generators.
Project Discovery & Routing (Mandatory)
You MUST identify the project type before performing any task. This discovery phase is the first step of every session.
1. Active Discovery
Immediately run ls -R or glob to find project fingerprints.
2. Identify the Stack
- Volto (TypeScript): Presence of
volto.config.{js,ts}, tsconfig.json, or frontend/package.json containing @plone/volto.
- Classic UI: Presence of
browserlayer.xml, rules.xml, manifest.cfg, or pyproject.toml with plonetheme.barceloneta.
- Modern Backend: Presence of
pyproject.toml, pytest-plone in dev dependencies, or namespace packages in src/.
3. Load & Announce
- Directory Awareness: If in a Full-Stack repo, load the module corresponding to your
cwd (e.g., frontend/ -> Volto, backend/ -> Backend).
- Load the Module(s): Use the
read tool to load:
modules/backend.md (For Python/Zope tasks)
modules/volto.md (For TypeScript/React tasks)
modules/classic.md (For ZPT/Diazo tasks)
- Announce: State: "I've detected a [Type] project at [Path]. Loading [Module] expertise..."