MyronCMS Developers Hub Docs sandbox review

Core Concepts

Current Boundaries

Extension v1 is a bounded local SDK. It supports local extension packages, scoped actions, optional isolated migrations, optional isolated admin routes, MIC resolver registration, and mail transport registration. It is not a general plugin marketplace or core override layer.

Human Path

Before authoring an extension, classify the idea:

  • If it can live in local files under app/extensions/{vendor}/, use extension v1.
  • If it can register a namespaced action under /api/v1/x/{vendor}/..., use extension v1.
  • If it can use isolated {vendor}_* storage, use extension v1.
  • If it needs a supported MIC resolver or mail transport registration, use extension v1 with the later content or integrations guides.
  • If it needs marketplace install, dependency resolution, signing, sandboxing, public render hooks, core rail injection, or core table mutation, it does not fit extension v1.

AI Path

An AI coding agent can help classify the idea and author local files for supported surfaces.

An installed MCP client can call loaded exposed actions, but it cannot install packages, grant trust, inject hooks, or create PHP code. If MCP parity for a human/admin workflow is missing or intentionally hidden, document that as a policy boundary or future parity gap rather than inventing an unsupported route.

Stable Current

SurfaceCurrent support
Local extension packageSupported under app/extensions/{vendor}/.
Manifest parsingSupported through ExtensionManifest.php.
Bootstrap payloadSupports actions, MIC resolvers, and mail transports.
Scoped actionsSupported under /api/v1/x/{vendor}/....
Action MCP exposureSupported when exposeToMcp: true and caller scopes allow it.
Scope grantsSupported through Extensions admin surfaces.
Isolated admin routesSupported through manifest adminRoutes.
Isolated migrationsSupported for {vendor}_* tables.
Load error captureSupported through extension_load_errors.
MIC resolver registrationSupported through micElementTypes.
Mail transport registrationSupported through mailTransports.

Future Planned

SurfaceCurrent posture
Marketplace browseReserved for a later release; the current admin button is disabled.
Marketplace installNot implemented in extension v1.
Package review criteriaCan be planned later as marketplace readiness docs.
Compatibility declarations beyond current manifest fieldsFuture marketplace-prep topic.
Webhook/event extension surfaceProduct direction exists, but not a current extension SDK hook.

Prohibited Current

Requested behaviorCurrent statusRationale
PHP event hooksProhibited currentNo extension event hook API exists in v1.
Public render hooksProhibited currentExtensions cannot hook public rendering in v1.
Design token group registrationProhibited currentDesign tokens remain governed by the design system contract.
Snapshot contributionProhibited currentExtensions cannot contribute snapshot sections.
Core admin rail injectionProhibited currentExtension admin routes are isolated; they do not add new core rail sections.
Code signingProhibited currentNo signing contract exists in extension v1.
Sandbox isolationProhibited currentNo sandbox isolation contract exists in extension v1.
Dependency resolutionProhibited currentNo package dependency resolver exists in extension v1.
Core table mutationProhibited currentExtension migrations may modify only {vendor}_* tables.
Core action overrideProhibited currentExtension actions register under /api/v1/x/{vendor}/..., not core API paths.

Parity Gap Candidates

Some human/admin workflows are current but not MCP-callable. Scope grant creation, extension enable/disable, and scope revocation are intentionally human/admin mediated in current docs. If later work proposes MCP or API coverage for those privileged operations, it needs a new Evaluate and Contract cycle because it changes the trust boundary.

Safety Boundary

Do not document future surfaces as workarounds. If a desired extension requires a prohibited-current or future-planned capability, stop at classification. The next step is a new MCD cycle to evaluate whether the platform should grow that surface.

Verification

For current stable surfaces, use:

php app/tests/verify-extension-system-foundation.php

For future or prohibited surfaces, verification is documentary: the page must say the surface is unavailable today and must not include runnable instructions that imply support.