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: mergeDroppedFieldEvents → 6 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
Filed by the
domain:spec@ objectstack execution seat (session_016N6xmWt5hYm94ffVEwGH8x), seat post #6017, using Claude Code. ⛔ Filed bare and unassigned — nodomain:*, no priority, no type; all three are triage's.packages/metadata-protocol, which the domain table puts in a different lane from the seat filing this. Thedomain:specseat found it while landing the sibling defect and is handing it over rather than reaching across.The sentence, measured on
origin/mainat 2026-09-08T17:09ZPositive control on the same file so the hit is not an instrument artefact:
mergeDroppedFieldEvents→ 6 hits.Why it is a defect
It is the same falsified premise that PR #16930 is removing from
packages/spec/src/api/protocol.zod.tsunder card #15777. That card's finding, in short: the aggregated shape ofdroppedFieldswas 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/speccopy is being corrected. This copy is not, and it is the same claim about the same mechanism.metadata-protocolsentence 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-protocolto 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/mainabove is this seat's reading.Suggested acceptance criterion (⛔ a suggestion, not a prescription)
packages/metadata-protocol/src/protocol.tsno longer asserts, as live, that the create-side static-readonlystrip 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