docs(approvals): name delegated_admin in the org-membership tier vocabulary - #152
Merged
Merged
Conversation
…bulary `sys_member.role` enforces four values (ADR-0108), and the approver picker offers exactly those four: `APPROVER_VALUE_BINDINGS.org_membership_level` sources from `ORG_MEMBERSHIP_LEVELS`, which is `BUILTIN_MEMBERSHIP_ROLES` itself rather than a hand-spelled copy. Both places this page spells the tier listed only three, so a reader who set someone to Delegated Admin in Setup could not find that tier here. Adds the fourth value in display order at both sites, preserving the `role` deprecated-alias note intact. The callout is reflowed to the file's ~80-column prose wrap. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VFwZj1a84ZxFUcWAi5H8S5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #131
content/docs/build/automation/approvals.mdxspelled the org-membership tier as a three-value set in two places.sys_member.roleenforces four. A reader who set someone to Delegated Admin in Setup and came here to route an approval to that tier did not find it.The fork in the card is resolved as drift — measured, not inherited
The card left one question open: whether the table row at
:77was correct as the approver picker's narrower vocabulary, with only the parenthetical (which describes the column) wrong. That rested onAPPROVER_VALUE_BINDINGS.org_membership_levelsourcing its options from a three-value constant.It no longer does. On
objectstackorigin/main(072d072d2):BUILTIN_MEMBERSHIP_ROLESis[owner, admin, delegated_admin, member]— "the WHOLE vocabulary, in display order (ADR-0108)". So the picker's vocabulary and the column's vocabulary are the same four values, by derivation rather than by a copy that can drift. The declaration's own comment records why:Both sites are therefore wrong in the same way, and both take the fourth value.
Changes
Both in
content/docs/build/automation/approvals.mdx, the only file touched::77— theapproverstype table row now reads(`owner` / `admin` / `delegated_admin` / `member`).:88— theposition-vs-tier warning callout now readsowner`/`admin`/`delegated_admin`/`member. Theroledeprecated-alias note is preserved verbatim; the callout is reflowed to the file's ~80-column prose wrap, which is why six lines show in the diff for one inserted value.Values are in ADR-0108 display order at both sites.
No gloss and no link, deliberately
The fourth value is listed, not explained. Three reasons:
content/docs/configure/notifications.mdx:137— the page ruled correct, and the reference this card is bringingapprovals.mdxup to — lists the same four tiers bare. Matching it is the consistency fix.permissions/permission-sets#delegated-administration, documents the permission-setadminScopemechanism, which is a different thing. Upstream is explicit that the tier carries no authority by construction and that the two must not be merged ("Three facts that look like one — do not merge them",membership-role.ts). A link there would teach the conflation the spec warns against.Verification
Gate union re-run at
955c359, the final commit, with a clean working tree:build(required) —turbo run type-check build testTasks: 3 successful, 3 total·Cached: 0 cached, 3 totalNode floor✅ Every declared floor clears what the dependency tree requires, and the declarations agree.Node floorself-test✓ self-test: 14 rule case(s) and 18 range case(s)This PR touches 0 translation artifact(s) and 1 other file(s).✓ translations gate passedEvery turbo task ran under
--force(cache bypass, force executing,0 cached):AGENTS.mdwarns the turbo cache is shared across worktrees in this container, so a replayed green could have come from a sibling tree. None of these greens is replayed.Rendered output, not just a green build. The prerendered HTML at
.next/server/app/en/docs/build/automation/approvals.htmlreads:Per
AGENTS.md§2 I should say so plainly: this was verified against the built HTML, not by driving a browser. For a prose-only MDX change with no component involved, the prerendered output is the stronger check, but it is not a browser run.The stale locale sibling is intentional
content/docs/build/automation/approvals.zh-Hans.mdx:63carries the identical wrong three-value list and is not touched here.AGENTS.mdreserves locale files for the translation account; the freshness gate reports them non-blockingly. That file was already stale onmainbefore this PR, so nothing new is broken — it is now stale for one more reason, and the next translation pass fixes it.No changeset: this repo has no changeset flow.
Generated by Claude Code