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/mainbd4aa4e49
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
Found while measuring every shipped
manifest:block for #14192 (theManifestSchemaunknown-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/mainbd4aa4e49The
defineStacktemplate thatos create <type> [name]writes (packages/cli/src/commands/create.ts, theconfigContenttemplate around line 130) is:Parsed through
ManifestSchema(source and builtdist, identical):id(reverse-domain package id) andtype(app|plugin| …) are required keys;namespace— the key every object name must be prefixed with (ADR-0048) — is absent too. So a project scaffolded byos createrefuses atdefineStack/os validateon its first run, before the author has written a line.os createis a live, documented command:content/docs/deployment/cli.mdxlists it (os create <type> [name]— "Create a new package from template"), andcontent/docs/protocol/kernel/plugin-spec.mdx/content/docs/protocol/kernel/index.mdxshowos create plugin …. The threeos inittemplates (packages/cli/src/commands/init.ts) and thecreate-objectstackblank template all stampid/namespace/version/type/name/description/enginesand parse clean — thecreatetemplate is the one scaffold that drifted.Not proposing the fix here
Either the template stamps the same identity block
os initstamps (id,namespace,type,engines.protocol), oros createis retired in favour ofos initif it is a stale duplicate — which is a decision about the CLI surface, not a one-line patch. A pin that parses every scaffold'smanifest:block throughManifestSchema(theinit-scaffold-authoring-rulesshape) would keep the next drift from shipping.Generated by Claude Code