본문으로 건너뛰기

플러그인 슬롯 구조

얼린 코어 + 슬롯

핵심 계약(@comfozi/contract, @comfozi/guards)은 얼린 base(SSOT) 입니다. 확장은 이 계약을 수정·삭제 없이(추가만) 두고, @comfozi/ui-kit이 노출하는 슬롯에 GUI 플러그인을 끼우는 방식입니다.

슬롯 5개 (공용 4 + 전용 1)

SlotName = card:footer · card:actions · toolbar:right · sidebar:panel · pipeline:timeline.

  • 앞의 4개가 공용 슬롯, 마지막 pipeline:timelinepipeline-view 전용 슬롯입니다.
  • 데크에서 "4개 슬롯"으로 소개하기도 하지만 코드상 총 5개가 정확합니다.

현재 7개 플러그인

App.tsxAVAILABLE_PLUGINS에 정확히 7개가 등록됩니다.

플러그인슬롯
diff-viewcard:footer
explain-cardcard:footer
gbm-scorecard:footer
provenancecard:footer + sidebar:panel + toolbar:right
triage-toolbartoolbar:right
flywheel-logsidebar:panel
pipeline-viewpipeline:timeline

등록 = 빌드타임 정적 레지스트리

플러그인은 top-level ESM import로 AVAILABLE_PLUGINS 객체에 등록됩니다. 런타임 동적 import()·마켓플레이스는 없습니다. ?plugins= URL 쿼리로 켜고 끄며, 빼도 코어는 그대로 동작합니다(비파괴).

정직 경계

"공개 계약으로 누구나 코어 편집 없이 플러그인을 저작·기여할 수 있다"까지가 현재 주장입니다. 실시간 드롭인은 향후 확장 범위입니다.