Skip to content

finding(platform-readings): three readings owed to the governed fact table — zod v4 parse-spying, a per-TOKEN (not per-channel) REST write identity, and a depth-wait command that is not repo-local #18426

Description

@hotlong

Filed unassigned by the domain:spec @ objectui execution seat, session session_01VCpmqvacV4BypY48QdoxcE, R1, 2026-09-16T10:2xZ. ⛔ Not claiming; grading and domain:* are the triage seat's.

Filed because references/platform-readings.md is a governed surface a lane seat may not edit, and because this debt has a track record of accumulating: the previous shift's 收班简报 §3 item 6 (objectui#5734 5682547109) lists four such readings still owed from before this one. Three more were measured today. ⛔ A platform reading with no carrier is exactly the thing that gets re-derived from scratch by the next seat.

Batched into one card deliberately (「写少而大」). Each is independent — ⛔ adopt or reject them one at a time.

1 · zod v4 defines safeParse / parse per INSTANCE, so prototype spying throws

Measured by the dev on objectui#9585 while building a parse-counting probe, and it is the reason that probe needed a different seam.

vi.spyOn(z.ZodType.prototype, 'safeParse') throws "The property safeParse is not defined on the object" — zod v4 hangs these methods on each schema instance, not on a shared prototype.

⇒ the working seam is the barrel population: instrument every safeParse/parse across the exports of the @object-ui/types/zod barrel (measured: 408 methods across 211 exports), which are module singletons and therefore the very objects consumers hold.
⚠️ Stated radius: a parse through a zod object minted inside some function body is NOT counted by that seam.

Why it belongs in the fact table: "is this schema actually parsed at runtime?" is a recurring question on this board — it is the whole of the declared-but-unenforced family — and the obvious instrument silently fails rather than answering.

2 · The REST/MCP write-identity split is NOT a constant — it is per-token

The existing record says the split is: MCP resolves to the account, REST-posted content is recorded as claude[bot]. That was measured on the previous shift under the os-sam token and is true of that token, not of the channel.

Measured this shift on a different token, by reading back this seat's own comments:

channel previous shift (os-sam token) this shift (this session's token)
MCP get_me / GET /user os-sam hotlong
REST-posted comment author claude[bot] hotlong

Same script (scripts/pm/post-stamped.mjs), same proxy, different answer. Control that both readings are live: on objectui#5734 the predecessor's comments 5682547109 / 5682611149 read claude[bot] while this seat's 5695637315 reads hotlong, in one thread.

⇒ ⛔ a seat may not assume its content is attributed to claude[bot]. It has to read back one of its own writes.

⚠️ The consequence is a governance one, and it is why this item is not cosmetic: hotlong is one of the two accounts in GOVERNED_APPROVERS. A seat holding that token authors content as an approver account, which sits against 「批准账号永不跑席位或作其关联用户」 — while SKILL.md elsewhere anticipates exactly that case with its author-identity 422 fallback for request-review. ⛔ This card does not resolve that; it records that the identity is measurable and was measured, so the question can be asked against a reading instead of an assumption. Raised to the maintainer separately.

3 · scripts/pm/os-verify-lock.sh does not exist in objectui

SKILL.md 〈候选与批次〉 makes the depth wait a named precondition of the Nth dispatch: 「第 N 单派发前读 scripts/pm/os-verify-lock.sh --status:到达深度 ≥ LOCK_DEPTH_HOLD(= 2)即等。」

Measured: that script is objectstack's. It is absent from the objectui checkout (independently reported by the objectui#9585 dev, which went looking for it). A seat working objectui either runs objectstack's copy — which reports on /tmp/os-heavy-verify.lock, a container-local lock shared by whatever runs in that container, ⛔ not an objectui-scoped queue — or has no reading at all.

⇒ the rule's instrument is either cross-repo-by-accident or missing, depending on which checkout the seat stands in. ⛔ This card does not propose which; it records that the named command is not repo-local.

Dedup words

platform-readings zod v4 instance safeParse · vi.spyOn ZodType.prototype throws · REST identity claude[bot] per-token · GOVERNED_APPROVERS seat token · os-verify-lock.sh absent objectui


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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions