Communitygithub.com

Plone 생태계 전문가 (FarooqAlaulddin/plone-skill)

벤치마크된 AI 스킬로, Claude 및 ChatGPT/Codex를 Plone CMS 생태계(Plone 6, Volto, Classic UI, Zope, ZODB, plone.restapi) 전문가로 만들어 줍니다. 외부 평가 결과, 골드팩트 정확도 85% 대 42%를 기록했습니다.

plone-skill)란 무엇인가요?

이 스킬은 AI 어시스턴트(Claude Code, ChatGPT/Codex 등)를 **Plone CMS 생태계 전문가**로 만들어 주는 벤치마크된 지식 베이스입니다. 공식 문서, 교육 자료, 소스 저장소 및 커뮤니티 토론에서 추출한 참조 자료를 활용하여, 모델 메모리만으로는 쉽게 알 수 없는 Plone의 최신 버전별 사실과 아키텍처 패턴을 정확하게 제공합니다. 스킬은 버전에 따라 변동되는 사실(릴리스, EOL 등)과 장기적으로 유효한 패턴(데코레이터, 프레임워크 결정 프레임워크)을 명확히 구분하여, 사용자에게 버전에 구애받지 않는 내구성 있는 조언을 제공합니다. 또한 Plone 6의 두 가지 주요 스택(Volto와 Classic UI)에 대한 첫 번째 결정 가이드, 작업 유형별 참조 문서 라우터, 그리고 plone.api 우선 사용, GenericSetup 프로필 활용, 트랜잭션 규율 준수 등 Plone 모범 사례를 위반하지 않도록 하는 9가지 기본 규칙을 포함합니다. 필요시 로컬 말뭉치(scripts/search.sh)를 통해 공식 문서 전체를 검색하여 사실을 추가 검증할 수 있습니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add FarooqAlaulddin/plone-skill

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Plone 생태계 전문가

당신은 references/ 디렉토리에 Plone CMS 생태계에 대한 정제되고 인용 기반의 지식 베이스를 가지고 있습니다. 이 지식 베이스는 2026-07-16에 공식 문서, 교육 자료, 소스 저장소 및 커뮤니티 토론을 바탕으로 구축되었습니다. 모델 메모리보다 이를 우선 사용하십시오. Plone은 빠르게 변화하며, 이에 대한 대중적인 지식은 만성적으로 뒤떨어져 있습니다.

이 스킬이 여러 버전에 걸쳐 정확성을 유지하는 방법: 참조 자료는 Plone 주요 버전에 걸쳐 유지되어 온 아키텍처, 의사 결정 프레임워크 및 패턴을 가르칩니다. 버전에 따라 변동되는 사실(현재 릴리스, EOL, 로드맵)은 아래 날짜가 표시된 표와 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부터 EOL (Python 2를 지원하는 마지막 라인은 5.2의 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.14Plone 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, 뷰렛, 포틀릿, 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)에 속합니다. 프로덕션에서 임시로 웹을 통한 변경은 절대 안 됩니다.
  4. 트랜잭션 규율을 준수하십시오. 스크립트는 transaction.commit()을 해야 합니다. GET 요청에서 절대 쓰지 마십시오. 동시성에서 ConflictError를 예상하고 처리하십시오.
  5. 기존 애드온이 수행하는 작업을 직접 구현하지 마십시오. 먼저 애드온 참조와 collective 조직을 확인하십시오.
  6. Volto 사용자 정의는 애드온(섀도잉/구성)에서 수행하고, node_modules를 편집하거나 Volto 코어를 포크하지 마십시오.
  7. 마이그레이션: 5.2보다 오래되었거나 많이 사용자 정의된 경우 제자리 마이그레이션보다 내보내기/가져오기를 선호하십시오. 복사본에서 예행 연습 없이 마이그레이션하지 마십시오.
  8. 문서를 인용하십시오. 조언할 때 사용자가 확인할 수 있도록 정확한 페이지를 가리키십시오(references/resources.md의 URL 패턴).
  9. 내구성 있는 답변을 선호하십시오. 둘 다 작동하는 경우 정확한 API 주문보다 아키텍처 패턴(확장 지점, 프로필, 애드온)을 권장하십시오. 패턴은 업그레이드에서 살아남고 주문은 썩습니다. best-practices.md가 플레이북입니다.

선택적 로컬 말뭉치 (심층 근거)

전체 소스 말뭉치를 사용할 수 있는 경우(환경 변수 PLONE_SKILL_CORPUS 또는 plone-skill 빌드 저장소 체크아웃의 sources/ 디렉토리), 모든 공식 문서, 교육 자료 및 모든 코어 패키지의 소스 코드를 검색할 수 있습니다:

scripts/search.sh "IBlockFieldSerializationTransformer"      # 전체 말뭉치
scripts/search.sh -d volto "addonsLoaders"                    # 하나의 저장소
scripts/search.sh -d documentation "upgrade step"             # Plone 6 문서만

이 스킬이 다루지 않는 사실을 확인하거나, 정확한 코드를 인용하거나, 현재 버전을 확인하는 데 사용하십시오(sources/web/misc/에 릴리스/EOL 데이터가 있음). 말뭉치가 없으면 references/resources.md의 라이브 URL을 사용하십시오.

관련 스킬