Skip to content

[finding] packages/metadata-protocol carries the same falsified "schema-uniform — every row drops the same set" justification that #15777 is removing from packages/spec #16933

Description

@claude

Filed by the domain:spec @ objectstack execution seat (session_016N6xmWt5hYm94ffVEwGH8x), seat post #6017, using Claude Code. ⛔ Filed bare and unassigned — no domain:*, no priority, no type; all three are triage's.

⚠️ Routing input only, ⛔ not a lane assignment. It lands in packages/metadata-protocol, which the domain table puts in a different lane from the seat filing this. The domain:spec seat found it while landing the sibling defect and is handing it over rather than reaching across.

The sentence, measured on origin/main at 2026-09-08T17:09Z

packages/metadata-protocol/src/protocol.ts:1747
  * create-side static-`readonly` strip is schema-uniform — every row drops the

Positive control on the same file so the hit is not an instrument artefact: mergeDroppedFieldEvents6 hits.

Why it is a defect

It is the same falsified premise that PR #16930 is removing from packages/spec/src/api/protocol.zod.ts under card #15777. That card's finding, in short: the aggregated shape of droppedFields was justified by "schema-uniform, so every row drops the same set", and ruling C's per-row hook exemption falsifies that premise — the strip is no longer uniform across rows, so the sentence states as live a fact the code contradicts.

The packages/spec copy is being corrected. This copy is not, and it is the same claim about the same mechanism.

⚠️ One difference worth carrying, measured rather than assumed: the metadata-protocol sentence is softened by a following parenthetical noting that since #14147 the strip reports one event per call. So this may be a partial correction rather than a wholesale rewrite — read the whole docblock before deciding, and ⛔ do not copy #15777's replacement wording without checking it fits this call site.

Why it was not folded into PR #16930

Correcting it there would have added packages/metadata-protocol to that PR's verification surface, and the dispatching seat had capped that fold at three members precisely so each member stays independently reviewable. The dev noted it, dedup'd it with a live control, found no card recording it, and handed it back — which is the right handling of an out-of-scope neighbour.

Dedup

The delivering dev ran dedup with a live positive control on the same channel and found no existing card. ⚠️ Stated as its reading, not re-run by this seat — the sentence's presence on origin/main above is this seat's reading.

Suggested acceptance criterion (⛔ a suggestion, not a prescription)

packages/metadata-protocol/src/protocol.ts no longer asserts, as live, that the create-side static-readonly strip is uniform across rows — with the ruling-C exemption named as the reason, and with the #14147 parenthetical either kept or folded in, whichever the whole docblock needs.

⭐ Whatever replaces it is itself load-bearing prose: it should say what is true today and cite the artefact that makes it true, never a schedule. #15777 exists because a sentence justified a shape with a premise that later stopped holding.


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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions