Skip to content

First-Party Plugin Catalogue

Source authoritypackages/plugin-sdk/docs/internal-plugin-inventory.md (S62 D1 baseline) + apps/marketplace-api/src/seed/first-party.ts FIRST_PARTY_PLUGINS (S64 D1 marketplace seed). These two artefacts are pinned to the same 38-row count by parity tests in both packages.

Why 38 and not 30?

Phase-doc-1 §S63 exit criterion reads:

30 first-party plugins all documented as examples.

The phase-doc estimate of 30 was set at the 2026-04-27 freeze. The S62 D1 audit (internal-plugin-inventory.md §“Reality check”) re-counted the repo and found 38 first-party plugins — the 2A+2B element-family expansion added 8 (annotations, dimensions, lighting, plumbing, rooms, schedules, sheets, structural, plan-view, section-view, multiplayer, selection, cross, furniture, toy-cube — minus the 7 that were already in the original 30, by category). Per PHASES-AMENDMENT-2026-04-27-ROBUSTNESS.md §0, the inventory document is the single source of truth and the K3-C parity gate is interpreted as “all 38 must keep working”.

Catalogue

AI plugins (5)

These five plugins already use the descriptor-as-data pattern via plugins/ai-*/src/descriptor.ts. They were the first to migrate to the public SDK at S62 D5.

IDDisplay nameSurfacesNotes
pryzm/ai-floorplanAI Floorplancommand, panelGenerate floorplans from natural-language prompts via L7.5 workflows.
pryzm/ai-generativeAI Generativecommand, panelGenerative geometry seeded by site context and brief.
pryzm/ai-queryAI Querycommand, panelNatural-language queries over the active project.
pryzm/ai-rulesAI Rulescommand, panelRule-checking workflows surfaced as a panel of violations.
pryzm/ai-voiceAI VoicecommandVoice-driven model and view actions.

The full code walk-through for the AI plugin archetype lives at Examples → AI Workflow Plugin.

Element-family plugins (13)

These are statically linked into the editor bundle via apps/editor/src/PluginRegistry.ts’s ALL_PLUGINS array. They continue to use the internal PluginDescriptor interface in PluginRegistry.ts, not the public @pryzm/plugin-sdk PluginManifest schema, per ADR-0038 §C (the “no-migration-needed” class).

IDDisplay nameSurfaces
pryzm/beamBeamelement-type, tool
pryzm/ceilingCeilingelement-type, tool
pryzm/columnColumnelement-type, tool
pryzm/curtain-wallCurtain Wallelement-type, tool
pryzm/doorDoorelement-type, tool
pryzm/gridGridelement-type, tool
pryzm/handrailHandrailelement-type, tool
pryzm/roofRoofelement-type, tool
pryzm/slabSlabelement-type, tool
pryzm/stairStairelement-type, tool
pryzm/viewViewview-template, panel
pryzm/wallWallelement-type, tool
pryzm/windowWindowelement-type, tool

Format plugins (5)

Interop plugins for IFC, BCF, and Rhino. These have no UI surface beyond a command + (optionally) an inspector panel. S64 D2 will wire them as the first round of needs-manifest plugins to migrate to the SDK. The full code walk-through for the format plugin archetype lives at Examples → Format Plugin.

IDDisplay nameSurfaces
pryzm/bcfBCFcommand
pryzm/ifc-exportIFC Exportcommand
pryzm/ifc-importIFC Importcommand
pryzm/ifc-inspectorIFC Inspectorpanel
pryzm/rhino-importRhino Importcommand

Auxiliary, view, annotation, discipline (15)

Added between the 2026-04-27 phase-doc freeze and the S62 D1 audit, so they do not appear in the original phase-doc-1 §S63 “30 first-party” estimate.

IDDisplay nameCategorySurfaces
pryzm/annotationsAnnotationsannotationtool, panel
pryzm/crossCrossauxiliarypanel
pryzm/dimensionsDimensionsannotationtool
pryzm/furnitureFurnitureelement-familyelement-type
pryzm/lightingLightingdisciplineelement-type, panel
pryzm/multiplayerMultiplayerauxiliarypanel
pryzm/plan-viewPlan Viewviewview-template
pryzm/plumbingPlumbingdisciplineelement-type, panel
pryzm/roomsRoomsauxiliarytool, panel
pryzm/schedulesSchedulesviewview-template, command
pryzm/section-viewSection Viewviewview-template, tool
pryzm/selectionSelectionauxiliarytool
pryzm/sheetsSheetsviewview-template, panel
pryzm/structuralStructuraldisciplineelement-type, panel
pryzm/toy-cubeToy Cubedemoelement-type

Aggregate counts

Pinned by marketplace-api/__tests__/marketplace.test.ts and internal-plugin-inventory.md. Drift in either direction is a CI failure.

BucketCount
built-in-no-migration-needed (element-family + auxiliary + view + annotation + discipline + demo)28
already-uses-descriptor-pattern (AI plugins)5
needs-manifest (format plugins)5
Total38

Querying the marketplace API

Once the marketplace API is running locally (pnpm --filter @pryzm/marketplace-api start), the seeded catalogue is browsable:

Terminal window
# All 38 plugins
curl http://localhost:5100/v1/plugins?limit=200
# Filter by category
curl 'http://localhost:5100/v1/plugins?category=ai'
curl 'http://localhost:5100/v1/plugins?category=element-family'
# Substring search across id + displayName + description
curl 'http://localhost:5100/v1/plugins?search=floorplan'
# Detail
curl http://localhost:5100/v1/plugins/pryzm/wall

All endpoints are rate-limited per ADR-018 (60 reads/min + 20 writes/min on the free tier).