You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Five sentences still call ManifestSchema an open object after #14192 closed it — stack.zod.ts, compile.ts, core artifact-packages.ts, the strictness ledger's own prose, and the main describe's loose ADR-0025 citation #14721
Follow-up filed by the domain:spec seat from the contract review of PR #14714 (#14192, ManifestSchema → strictObject). Filed unassigned and unlabelled for triage. All five sites were measured on the PR head 1efaac767 by the isolated reviewer and are text only — no accept/reject behaviour is involved.
packages/cli/src/commands/compile.ts:82-83 — "ManifestSchema is an open object". False.
packages/core/src/artifact-packages.ts:79-81 — "…and Zod strips undeclared keys, so registering a parsed clone…" — the strip clause is now false (the defaults clause still holds). Owner lane: whichever lane owns packages/core.
docs/audits/2026-07-unknown-key-strictness-ledger.md:1618 — "api/, system/, kernel/ and cloud/ are wire surface by construction" — contradicted by the ledger's own kernel/ row two hundred lines up (now mixed · manifest.zod.ts authorable, the rest wire) and by the api/ row before it.
packages/spec/src/kernel/manifest.zod.ts — the new main key's describe/JSDoc cites "ADR-0025 §3.4"; docs/adr/0025-plugin-package-distribution.md never names main (grep: zero hits). The honest wording is "honoured by os plugin build (ADR-0025 §3.4 pipeline: the CLI reads main off objectstack.plugin.json to pick the entry and writes main: 'dist/index.mjs' into the compiled manifest)". This describe projects into nine generated reference-page rows, so the fix is source + check:generated --fix.
Also: content/docs/protocol/kernel/plugin-spec.mdx's new callout lists the closed blocks as "the manifest root and inside contributes, engine and engines" and omits contributes.kinds[], which #14192 also closed.
Shape
Doc/comment-only sweep across three packages and one audit file; no schema, no test behaviour. Sites 1 and 2 wait for #14124 to land (same file / same lane); sites 3–5 are free now.
Follow-up filed by the
domain:specseat from the contract review of PR #14714 (#14192,ManifestSchema→strictObject). Filed unassigned and unlabelled for triage. All five sites were measured on the PR head1efaac767by the isolated reviewer and are text only — no accept/reject behaviour is involved.The five sites
packages/spec/src/stack.zod.ts:1023— theAssembledPackageBodySchemadocblock: "NOTstrictObject:ManifestSchemais an open object". False afterManifestSchemastrips unknown keys silently — anamespacetypo insidemanifest:parses green and the namespace comes outundefined#14192 (.extend()inherits the closed posture on zod 4.4.3 — measured on the PR).stack.zod.tswas read-only forManifestSchemastrips unknown keys silently — anamespacetypo insidemanifest:parses green and the namespace comes outundefined#14192 becausedefineStackaccepts two actions sharing onenamewithout a word — including two GLOBAL ones, where the<object>:<name>handler map then silently shadows one #14124 (PR feat(spec): defineStack refuses two actions that resolve to one scope-qualified runtime key #14686) owned it; that PR is in the merge queue at filing time.packages/cli/src/commands/compile.ts:82-83— "ManifestSchemais an open object". False.packages/core/src/artifact-packages.ts:79-81— "…and Zod strips undeclared keys, so registering a parsed clone…" — the strip clause is now false (the defaults clause still holds). Owner lane: whichever lane ownspackages/core.docs/audits/2026-07-unknown-key-strictness-ledger.md:1618— "api/,system/,kernel/andcloud/are wire surface by construction" — contradicted by the ledger's ownkernel/row two hundred lines up (nowmixed · manifest.zod.ts authorable, the rest wire) and by theapi/row before it.packages/spec/src/kernel/manifest.zod.ts— the newmainkey's describe/JSDoc cites "ADR-0025 §3.4";docs/adr/0025-plugin-package-distribution.mdnever namesmain(grep: zero hits). The honest wording is "honoured byos plugin build(ADR-0025 §3.4 pipeline: the CLI readsmainoffobjectstack.plugin.jsonto pick the entry and writesmain: 'dist/index.mjs'into the compiled manifest)". This describe projects into nine generated reference-page rows, so the fix is source +check:generated --fix.Also:
content/docs/protocol/kernel/plugin-spec.mdx's new callout lists the closed blocks as "the manifest root and insidecontributes,engineandengines" and omitscontributes.kinds[], which #14192 also closed.Shape
Doc/comment-only sweep across three packages and one audit file; no schema, no test behaviour. Sites 1 and 2 wait for #14124 to land (same file / same lane); sites 3–5 are free now.