Skip to content

docs(changeset): the manifest serializer forwards seven keys per input, not six - #10318

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-10298-manifest-seven-keys-prose
Sep 24, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-10298-manifest-seven-keys-prose

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #10298
Clause-②: no

What changed

Prose only, in the bodies of three pending changesets. Each had "manifestFromConfigs forwards exactly six keys per input" with six keys listed. Each now says seven keys and lists of too. The YAML frontmatter of all three is byte-identical: sha256 of each frontmatter block is the same before and after, and check-changeset-overwrite prints the same "declared at base" and "declares now" line for each file. No code, no test, no new changeset.

pending changeset before after
.changeset/5905-componentinput-inputtype-tombstone.md exactly six keys per input — name, type, required, enum, binding, description exactly seven keys per input — name, type, of, required, enum, binding, description
.changeset/5905-componentinput-retire-constraint-keys.md same six same seven
.changeset/7493-componentinput-retire-label-defaultvalue-advanced.md same six same seven

The diff changes 5 lines across the 3 files. Nothing else in those paragraphs was rewritten.

Why: premise re-checked on origin/main 8b1f0661

  • manifestFromConfigs in packages/sdui-parser/src/index.ts maps each input to exactly these seven keys. Here are the property lines, printed from the tree with the comment block above of omitted:

    name: i.name,
    type: canonicalizeInputType(i.type),
    of: i.of === undefined ? undefined : canonicalizeInputType(i.of),
    required: i.required,
    enum: i.enum,
    binding: i.binding,
    description: i.description,
  • A pin re-derives that list from the serializer source: the test "reads the serializer source and finds the seven, and none of the three" in packages/types/src/__tests__/component-input-retired-keys-7493.test.ts. The published guide content/docs/guide/plugin-development.md already says "the seven keys the manifest forwards".

  • These sentences went false after they were written. The three bodies were true when they landed, in commits 453dbaad42 (2026-08-31), 1ec291c0d7 (2026-09-04) and c6198c27bd (2026-09-06T05:07Z). of landed later that day in cf1d29e2fc (2026-09-06T17:01Z). Its own changeset, .changeset/8067-component-input-member-kind.md, is also pending and says sdui.manifest.json "now carries seven keys per input instead of six". Without this change, the next release notes would contain both statements.

  • Each paragraph's conclusion still holds, re-read whole after the edit:

    • An authored inputType cannot reach sdui.manifest.json.
    • Neither can an authored min, max, step or placeholder.
    • Neither can an authored label, defaultValue or advanced.

    None of those keys is of. In each paragraph the list now has seven entries and the count says seven.

Sweep (dispatch Zone 2 item 2)

  • Pending changesets. I listed every .changeset/*.md with git ls-tree at 8b1f0661 and read each file from the same commit. The bodies that name the serializer (manifestFromConfigs, sdui-parser, "manifest serializer", sdui.manifest, "per input") were checked for a count or a key list of what the serializer forwards per input. Only two kinds of hit came back: the three bodies edited here, and 8067-component-input-member-kind.md, which already says seven. There is no other pending hit.
  • Published doc faces:
    • content/docs/** is correct.
    • skills/objectui/guides/plugin-development.md repeats the stale six-key list. Per the dispatch, it is listed below and not edited.
    • Released CHANGELOG.md files have zero hits for the six-key sentence. As a control, a search for ComponentInput over the same files matches several of them.

Gates, all run locally at HEAD b2df78a3

Each exit code was captured before any pipe, and the line quoted is the gate's own verdict.

command exit verdict line
node scripts/check-changeset-presence.mjs 0 "No source or published contract of a released package changed in this range, so no changeset is owed." (3 files changed, 0 published source, 0 changesets added)
pnpm check:changeset-claims 0 "No pending changeset names a file this change touches." The self-contradiction reading covers 3 changesets this change modifies, all 3 declaring a package, and prints "Every package declared ... is either not negated in its own prose, or negated only in an ASPECT". The born-false reading finds 0 line addresses. No paragraph was flagged.
node scripts/check-changeset-overwrite.mjs (report-only) 0 3 modified, 0 added, 0 deleted. For each file, "declared at base" equals "declares now", so no declaration is lost. This is the deliberate prose-correction case in its header.
pnpm check:pending-changeset-literals 0 "No test source names a pending changeset."
pnpm changeset:check (fixed + no-major) 0 "All workspace packages are in the changeset fixed group." / "No changeset declares a major bump."
pnpm check:control-bytes 0 "check-control-bytes: OK"
pnpm check:new-line-citations 0 "VERDICT new-cross-file-line-citations: 0 new citation(s)"
node scripts/check-governed-queue-guard.mjs --test (the 3 paths) 0 "NOT GOVERNED"
  • node scripts/markdown-test-inputs.mjs --changed - prints all 3 paths. .changeset/** is a test input through scripts/__tests__/check-changeset-no-major.test.ts, per --list, so the ci.yml test job's markdown second stage will run the shards. I ran that test file locally under the verify lock: 1 file, 7 tests passed, VERDICT command-exit 0.
  • Not owed and not run: type-check, package tests and builds. This diff touches no package, only three .changeset/*.md bodies.
  • dispatch-gates.mjs refuses for this repository (exit 2, "asked for objectstack-ai/objectui, but this checkout is objectstack-ai/objectstack"). I derived the gate list by hand from this repo's package.json and .github/workflows/.
  • A red Spec Main Shape Gate on this PR would be the known drift: objectstack main added a doc nav item type (objectui#10287). A repair is in flight as objectui#10315. It is not caused by this diff.

Acceptance notes

  • The same stale six-key list, outside pending changesets. Listed only: not edited and not filed. Each one omits of from what the serializer forwards.

    1. skills/objectui/guides/plugin-development.md, in the os:check example under "ComponentInput types": "the manifest serializer forwards only name, type, required, enum, binding and description". This is a published doc face and a governed surface (skills-catalog). A comment earlier in the same block correctly lists of among the six writable keys.
    2. packages/types/src/widget.ts, in the WidgetInput divergence docblock, clause 2: "sdui-parser's serializer forwards six keys (name, type, required, enum, binding, description)". This is source in a released package, so editing it would owe a changeset.
    3. packages/plugin-markdown/src/index.test.ts, in the test "no longer authors inputType": "The manifest serializer forwards six keys".
    4. packages/types/src/__tests__/component-input-retired-constraint-keys.test.ts, in the file header's "What was measured": "forwards exactly six keys per input".

    packages/types/src/base.ts and component-input-retired-keys-7493.test.ts have already been repaired. They say the serializer forwards "a fixed key list per input, of included since objectui#8067". That wording would work for the four above.

  • AGENTS.md 完善设计器的每一个细节 #9. The edited sentences still contain a number ("exactly seven"). I kept it because the card and the dispatch limit the edit to the count and the list. A changeset is dated by its release heading, and the pin named above is the instrument that re-derives the list.

  • The release PR objectui#5400 includes these three files because it consumes them. It was not touched.

Implemented by a dispatched os-dev run, session session_01BA3nKVUwKQJf8DBxrSVtNC.


Generated by Claude Code

…t, not six

Three pending changeset bodies said `manifestFromConfigs` forwards "exactly
six keys per input" and listed six. The serializer has forwarded a seventh,
`of`, since the member-kind change (objectui#8067), whose own pending
changeset already says "seven keys per input instead of six"; all four
publish in the same release. Each list now names `of` and the count agrees
with it. Frontmatter is byte-identical; each paragraph's conclusion (the
retired key cannot reach sdui.manifest.json) is unchanged, since none of the
retired keys is `of`.

Claude-Session: https://claude.ai/code/session_01BA3nKVUwKQJf8DBxrSVtNC
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review September 24, 2026 18:23
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Sep 24, 2026
Merged via the queue into main with commit c7ab348 Sep 24, 2026
43 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-10298-manifest-seven-keys-prose branch September 24, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant