Repository navigation
docs(adr): ADR-0090 D12 status line and ADR-0086 row — the binding and env-set authoring rights retired (#23488) - #23602
Conversation
…d env-set authoring rights retired (#23488) Claude-Session: https://claude.ai/code/session_01LFqdRsuM5nkqoJdHd5ztVk Co-authored-by: Claude <noreply@anthropic.com>
维护者速读改了什么
为什么改
风险与代价(含回滚)
席位意见
你要做的 席位核对
|
Contract reviewServed-tier: PR #23602, ① Derived judgments
② Semver levelNo package's ③ Boundary flagsOrdering: the ADR text records a decision whose code half is PR #23601 (draft, +1016/−112, 38 files, not yet landed). An ADR amendment records the ruling, not the tree, so it may land before, with or after #23601 without contradiction; if #23601 were withdrawn the ruling of record would still stand and the line would still be true. No repository, app/platform or published-contract boundary is crossed. The dev raised no open question. NOT MEASURED: nothing; the record is read-only. Implemented-by: VERDICT: PASS |
|
Maintainer's word on batch #348 (the governed-draft line for this PR: 「批准并合并,不必等代码主 PR #23601」): 「同意」, 2026-10-15T05:03Z. Director seat, summon #37 (continuation 2), Recorded on the PR as the protocol asks. The four pieces are complete: the final 维护者速读 and 席位核对 (6184515986), the contract review at |
Part of #23488
Ruling of record 6181988435 on #23488 (letter A), item 5: the ADR-0090 D12 status line and the ADR-0086 row go as one Tier H docs PR for the maintainer's merge. The code half (the two tombstones, the D2 conversion, the containment change, the docs and showcase text) is the main PR, #23601. #23488 remains open until that main PR lands; this PR only records the decision in the ADRs.
What changes
Amendedline. D12's position-to-set binding right and its environment-set authoring right are retired (AdminScope.manageBindingsandAdminScope.authorEnvironmentSets, ADR-0049 enforce-or-remove). A position's sets and a permission set's body are environment definitions, and the definition write ismanage_metadata's per ADR-0131 D3, never a delegate scope's. D12's what is user-to-position assignments (and direct set grants) inside the subtree; the line tells the reader to take D12's bindings and authoring clauses as superseded.adminScoperow of the metadata/config table (line 446): the clause "authorEnvironmentSetskeeps package-managed rows publish-only per this ADR" becomes: the scope assigns and grants and never authors a set;authorEnvironmentSetsis retired (2026-10-15, this ruling) because a permission set is an environment definition whose write ismanage_metadata's (ADR-0131 D3); package-managed sets stay publish-only per ADR-0086.D9 needs no new carrier (ADR-0138 D3 item 5 and its pinned absence), as the ruling states, so ADR-0138 is untouched.
Verification
Diff: 2 files, +2 / -1, both under
docs/adr/. Gate families derived withnode scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackatc45ec439d(merge base32e03d2fd): 19 commands, each run with its exit code captured before any pipe. All 19 exit 0.pnpm --filter @objectstack/lint run check:doc-formula-expressionsfirst exited 3 (PREREQUISITE NOT MET:@objectstack/formulanot built in this worktree, so nothing was measured); afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lintit exited 0.Tier H: every path is
docs/adr/**. This PR stays draft and is landed by the maintainer. It carriesskip-changeset: nothing underdocs/adr/is published.维护者速读(草稿)
改了什么
两份 ADR 各改一处文字,不动任何代码。ADR-0090 的状态区加一行「已修订」:委派管理范围里的两项权限「管理岗位与权限集的绑定」和「编写环境权限集」退役。ADR-0086 权限归属表里
adminScope那一行,删掉「authorEnvironmentSets保持包内权限集只能发布」的说法,改为:委派范围只负责分配和授予,从不编写权限集。为什么改
这两项权限早已没有任何入口在执行:它们管的「绑定行」和「权限集行」已随 ADR-0131 D3 退役,现在岗位包含哪些权限集、权限集里写什么,都是环境元数据定义,只有持有
manage_metadata的管理员能改,委派范围根本读不到。管理员勾上这两个开关,被委派的人什么也得不到。您已批准裁决 A(退役);代码那半在主 PR 里,这份 PR 只是把决定写进 ADR,让以后读 ADR 的人不再以为分公司管理员可以改岗位定义。风险与代价(含回滚)
纯文字,零运行风险。如果主 PR 最终没有落地,这两行就会和代码不一致,所以最好在主 PR 落地前后合并。回滚就是 revert 这一个提交。
席位意见
你要做的
看一眼这两行措辞是否准确;没问题就批准并合并(Tier H,只能由您落地)。建议与主 PR 同一批次处理。
Generated by Claude Code