[E11-S01] Publish manifest contract #93

Open
opened 2026-08-27 00:02:35 +00:00 by kpcto · 0 comments
Owner

Parent epic: [E11] Extension API v1 (#39)

Intent

Publish the Extension API v1 manifest contract as a TypeScript type, JSON Schema, and developer documentation so extensions declare their identity, version, and contributions in a machine-checkable form.

Acceptance criteria

  • Ships a TypeScript ExtensionManifestV1 type with id, name, version, extensionApiVersion, minimumCoreVersion, type, dependencies, capabilities, settingsSchema, and contributes fields.
  • Ships a JSON Schema that validates a manifest against the published contract.
  • Ships developer documentation describing each manifest field and the required namespaced ID format.
  • Namespaced IDs such as org.eppp.reading are accepted while unqualified IDs such as reading are rejected.

Explicitly out of scope

  • Publishing the extension context object (E11-S02).
  • The compatibility validator (E11-S03).
  • Persisting extension runtime state (E11-S04).

Test plan

  • Compile a valid manifest through the TypeScript type and assert no type errors.
  • Validate a valid manifest and an invalid/unqualified-ID manifest against the JSON Schema.

Rollback note

  • Remove the published type, schema, and docs; no runtime data or migrations are involved.

Owning stream

platform

Risk quadrant

agent-full

> Parent epic: [E11] Extension API v1 (#39) ## Intent Publish the Extension API v1 manifest contract as a TypeScript type, JSON Schema, and developer documentation so extensions declare their identity, version, and contributions in a machine-checkable form. ## Acceptance criteria - Ships a TypeScript `ExtensionManifestV1` type with id, name, version, extensionApiVersion, minimumCoreVersion, type, dependencies, capabilities, settingsSchema, and contributes fields. - Ships a JSON Schema that validates a manifest against the published contract. - Ships developer documentation describing each manifest field and the required namespaced ID format. - Namespaced IDs such as `org.eppp.reading` are accepted while unqualified IDs such as `reading` are rejected. ## Explicitly out of scope - Publishing the extension context object (E11-S02). - The compatibility validator (E11-S03). - Persisting extension runtime state (E11-S04). ## Test plan - Compile a valid manifest through the TypeScript type and assert no type errors. - Validate a valid manifest and an invalid/unqualified-ID manifest against the JSON Schema. ## Rollback note - Remove the published type, schema, and docs; no runtime data or migrations are involved. ### Owning stream platform ### Risk quadrant agent-full
kpcto added this to the Sprint 3 milestone 2026-08-27 00:02:35 +00:00
kpcto added the
status
proposed
kind
story
labels 2026-08-27 00:02:35 +00:00
Sign in to join this conversation.