Repository navigation
Commit dd4ef38
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
- **ADR-0090, Status block:** one new `Amended` line. D12's
position-to-set binding right and its environment-set authoring right
are retired (`AdminScope.manageBindings` and
`AdminScope.authorEnvironmentSets`, ADR-0049 enforce-or-remove). A
position's sets and a permission set's body are environment definitions,
and the definition write is `manage_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.
- **ADR-0086, the `adminScope` row of the metadata/config table (line
446):** the clause "`authorEnvironmentSets` keeps package-managed rows
publish-only per this ADR" becomes: the scope assigns and grants and
never authors a set; `authorEnvironmentSets` is retired (2026-10-15,
this ruling) because a permission set is an environment definition whose
write is `manage_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
with `node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` at `c45ec439d` (merge base `32e03d2fd`): 19
commands, each run with its exit code captured before any pipe. All 19
exit 0. `pnpm --filter @objectstack/lint run
check:doc-formula-expressions` first exited 3 (PREREQUISITE NOT MET:
`@objectstack/formula` not built in this worktree, so nothing was
measured); after `turbo run build --filter=@objectstack/formula
--filter=@objectstack/lint` it exited 0.
Tier H: every path is `docs/adr/**`. This PR stays draft and is landed
by the maintainer. It carries `skip-changeset`: nothing under
`docs/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](https://claude.ai/code/session_01LFqdRsuM5nkqoJdHd5ztVk)_
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 8d05456 commit dd4ef38
2 files changed
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
443 | 443 | | |
444 | 444 | | |
445 | 445 | | |
446 | | - | |
| 446 | + | |
447 | 447 | | |
448 | 448 | | |
449 | 449 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
0 commit comments