Found while working #80. Out of that card's scope — #80's dispatch scoped the file surface to content/docs/resources/glossary.mdx and instructed that any hit outside it be reported rather than edited — so it is filed rather than folded in.
content/docs/build/interface/actions.mdx:170, in the "every object gets these for free" table:
| Action | What it does |
|---|
share | Direct share with a user / role |
role is not a recipient kind. ShareRecipientType in packages/spec/src/security/sharing.zod.ts on objectstack@origin/main is exactly user / team / position / unit_and_subordinates / business_unit, and the schema records the rename in its own words: ADR-0090 D3 renamed role to position (and the pre-D3 group to team). This site's own changelog already states it — content/docs/resources/changelog.mdx:212 and :260.
This is the identical wording pattern #80 fixed in the glossary ("for a specific user / role / group"), in a second file. The PM's pre-dispatch corpus grep for #80 searched for role / group used as a recipient kind and reported no hits outside the glossary; this one was missed because it sits in a build/interface page rather than a permissions page.
Cost of leaving it: the same authoring trap as #80 — a reader takes the table at its word and reasons about a role recipient that matches nothing. Lower blast radius than the glossary (it is a one-cell table gloss, not a definition), but it is the last English page teaching the retired spelling.
Suggested fix — one table cell, matching the phrasing configure/permissions/record-access.mdx:66 already uses for the full set:
| share | Direct share with a user, team, position, or business unit |
Two adjacent observations from the same sweep, both weaker and both left for triage rather than filed separately:
content/docs/index.mdx:43 describes ObjectOS as having the "same metadata-driven model (objects, fields, roles, sharing rules)" as Salesforce / NetSuite. roles there is retired ObjectStack vocabulary applied to our own model, though the sentence is comparative prose rather than an authoring instruction.content/docs/configure/permissions/record-access.mdx:15 glosses record shares as "Grant access to a specific user, position, or unit (with subordinates)" — three of the five kinds, silently dropping team and plain business_unit. No retired spelling, so nothing an author writes from it fails; it is the incomplete-subset pattern rather than the dead-vocabulary one. Note the same page names all five correctly at :66.
Verified against: packages/spec/src/security/sharing.zod.ts (ShareRecipientType and the removal note above it) on objectstack@origin/main.
Generated by Claude Code
Found while working #80. Out of that card's scope — #80's dispatch scoped the file surface to
content/docs/resources/glossary.mdxand instructed that any hit outside it be reported rather than edited — so it is filed rather than folded in.content/docs/build/interface/actions.mdx:170, in the "every object gets these for free" table:shareroleis not a recipient kind.ShareRecipientTypeinpackages/spec/src/security/sharing.zod.tsonobjectstack@origin/mainis exactlyuser/team/position/unit_and_subordinates/business_unit, and the schema records the rename in its own words: ADR-0090 D3 renamedroletoposition(and the pre-D3grouptoteam). This site's own changelog already states it —content/docs/resources/changelog.mdx:212and:260.This is the identical wording pattern #80 fixed in the glossary ("for a specific user / role / group"), in a second file. The PM's pre-dispatch corpus grep for #80 searched for
role/groupused as a recipient kind and reported no hits outside the glossary; this one was missed because it sits in a build/interface page rather than a permissions page.Cost of leaving it: the same authoring trap as #80 — a reader takes the table at its word and reasons about a
rolerecipient that matches nothing. Lower blast radius than the glossary (it is a one-cell table gloss, not a definition), but it is the last English page teaching the retired spelling.Suggested fix — one table cell, matching the phrasing
configure/permissions/record-access.mdx:66already uses for the full set:|
share| Direct share with a user, team, position, or business unit |Two adjacent observations from the same sweep, both weaker and both left for triage rather than filed separately:
content/docs/index.mdx:43describes ObjectOS as having the "same metadata-driven model (objects, fields, roles, sharing rules)" as Salesforce / NetSuite.rolesthere is retired ObjectStack vocabulary applied to our own model, though the sentence is comparative prose rather than an authoring instruction.content/docs/configure/permissions/record-access.mdx:15glosses record shares as "Grant access to a specific user, position, or unit (with subordinates)" — three of the five kinds, silently droppingteamand plainbusiness_unit. No retired spelling, so nothing an author writes from it fails; it is the incomplete-subset pattern rather than the dead-vocabulary one. Note the same page names all five correctly at:66.Verified against:
packages/spec/src/security/sharing.zod.ts(ShareRecipientTypeand the removal note above it) onobjectstack@origin/main.Generated by Claude Code