Skip to content

os create template manifest fails ManifestSchema — the scaffold in packages/cli/src/commands/create.ts declares neither id nor type #14705

Description

@os-sam

Found while measuring every shipped manifest: block for #14192 (the ManifestSchema unknown-key close). Out of that card's scope — the block fails the OPEN schema, before any strictness question — filed rather than fixed, and unassigned.

Measured, on origin/main bd4aa4e49

The defineStack template that os create <type> [name] writes (packages/cli/src/commands/create.ts, the configContent template around line 130) is:

manifest: {
  name: '${name}',
  version: '0.1.0',
  description: '${name} example application',
},

Parsed through ManifestSchema (source and built dist, identical):

success : false
issues  : invalid_type@id · invalid_value@type

id (reverse-domain package id) and type (app | plugin | …) are required keys; namespace — the key every object name must be prefixed with (ADR-0048) — is absent too. So a project scaffolded by os create refuses at defineStack / os validate on its first run, before the author has written a line.

os create is a live, documented command: content/docs/deployment/cli.mdx lists it (os create <type> [name] — "Create a new package from template"), and content/docs/protocol/kernel/plugin-spec.mdx / content/docs/protocol/kernel/index.mdx show os create plugin …. The three os init templates (packages/cli/src/commands/init.ts) and the create-objectstack blank template all stamp id / namespace / version / type / name / description / engines and parse clean — the create template is the one scaffold that drifted.

Not proposing the fix here

Either the template stamps the same identity block os init stamps (id, namespace, type, engines.protocol), or os create is retired in favour of os init if it is a stale duplicate — which is a decision about the CLI surface, not a one-line patch. A pin that parses every scaffold's manifest: block through ManifestSchema (the init-scaffold-authoring-rules shape) would keep the next drift from shipping.

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions