MyronCMS Developers Hub Docs sandbox review

Marketplace Readiness

Package Shape Proposal

The current extension package is a local directory. A future marketplace package would need an envelope around that directory, but the envelope does not exist in runtime today.

This page defines a proposal vocabulary for future review discussions. It is not a package installer contract.

Current Local Package Shape

Current extension v1 loads this local shape:

app/extensions/{vendor}/
  manifest.json
  bootstrap.php
  actions/
  admin/routes/
  migrations/
  README.md

manifest.json is parsed by MyronExtensionManifest::fromFile(). The parser currently understands:

FieldCurrent status
vendorRequired; snake_case and must match the normalized directory name.
nameRequired.
versionRequired.
requiredScopesList of base extension scopes; defaults to [] when absent.
hasMigrationsBoolean; defaults to false when absent.
adminRoutesList of route objects with key and relative path; defaults to [] when absent.

Future Marketplace Envelope

A future marketplace package could wrap the local package with review and distribution metadata:

my_vendor-extension-package/
  marketplace.json        # proposed future envelope; not current runtime
  extension/
    manifest.json
    bootstrap.php
    actions/
    admin/routes/
    migrations/
    README.md
  docs/
    overview.md
    ai-parity.md
    security.md
  checksums.json          # proposed future integrity record

This shape is intentionally separate from current runtime support. A current MyronCMS install does not read marketplace.json, verify checksums.json, or install from this envelope.

Proposed Envelope Fields

These fields are future proposal fields only:

FieldProposed purposeCurrent runtime support
packageIdStable marketplace package identifier.None.
vendorMust match extension manifest vendor.Enforced only by current manifest for local package loading.
versionMarketplace package version.Current manifest has extension version only.
extensionPathPath to the local extension package inside the envelope.None.
compatibilityLink or object for future compatibility declaration.None.
reviewFuture review status or review metadata.None.
securityFuture security posture declaration.None.
docsPaths to package documentation.None.

Do not put these fields into manifest.json unless a future runtime contract updates ExtensionManifest.php.

Human Path

For current development:

  1. Create the local package under app/extensions/{vendor}/.
  2. Keep the manifest in the current parser-supported shape.
  3. Register and grant the extension through the admin UI.
  4. Use this page only to discuss what a future marketplace envelope may need.

For future package planning, draft a marketplace envelope separately from the current manifest and label it as proposed.

AI Path

An AI coding agent can author the current local package files and can draft a proposed envelope document for review.

An installed MCP client cannot create package envelopes, install package archives, resolve dependencies, verify checksums, or register marketplace packages.

Scopes

Reading or drafting this proposal requires no runtime scope.

Current runtime package behavior still depends on:

  • operator extension grants,
  • manifest requiredScopes,
  • action requiredScope,
  • caller scope during API or MCP calls.

Artifacts

Current artifacts:

  • app/extensions/{vendor}/manifest.json
  • app/extensions/{vendor}/bootstrap.php
  • optional actions/, admin/routes/, migrations/, local README

Proposed future artifacts:

  • marketplace.json
  • package docs folder
  • checksum or integrity record
  • review record
  • compatibility declaration

Safety Boundary

The future envelope must not be documented as loadable by current MyronCMS. Current package code must still obey vendor namespace rules, manifest parser constraints, extension grants, and loader behavior.

Verification

Current package verification remains:

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

Proposal verification is documentary:

  • Proposed fields are labeled future.
  • Current manifest fields are not mixed with future envelope fields.
  • The page does not include install automation instructions.
  • The page does not imply signing, sandboxing, dependency resolution, or checksums are enforced today.

Failure Modes

FailureLikely causeSafe response
marketplace.json is treated as current runtime inputFuture proposal and current manifest were confused.Use manifest.json only for current runtime loading.
Manifest contains proposed envelope fieldsPackage shape proposal drifted into parser contract.Remove unsupported fields or start a runtime contract.
AI client attempts marketplace installInstalled MCP access was overstated.Mark as no current route and use local authoring.
Package assumes dependency resolutionFuture distribution concerns leaked into extension v1.Vendor the local code responsibly or contract dependency support later.