Repository navigation
Commit 0951a00
docs(adr): ADR-0073 amendment and ADR-0096 row for the system flow's refused identity-assignment writes (#25587)
<!-- claude-projects-attribution: {"github_login":"os-tesla"} -->
_Requested by **Tesla** · [project
thread](https://claude.ai/code/project/chan_01AXsQkLFKRdQCqQ3RTr6Jao?thread=cmsg_01AXsQkLFKRdQCqQ3RTr6JaoVgqGdGWoJtcHYXUFi5Es7m)_
Part of #25554
The ADR half of ruling 6354966423 (letter B) on #25251, the follow-up of
card #25554. #25483 made a `runAs: 'system'` flow's governed writes to
the four identity-assignment objects refused, and #25564 put that into
the `FlowSchema.runAs` description and the ADR-0087 D3 ledger. Two ADRs
still describe system flows as unconditionally elevated. `docs/adr/**`
is a governed path, so these edits come as their own PR for a maintainer
merge.
## 维护者速读(草稿)
- **改了什么:** 只改两份 ADR 的文字。ADR-0073 新增一节带日期的 Amendment(2026-10-24),写明
`runAs:'system'` 流程对岗位持有、权限集授予、邀请、成员这四张表的写入会被拒绝(`PERMISSION_DENIED`),M2
里「system 始终是 god-mode」一句按这个例外来读;#3760 那节里的 `sys_user_position` 例子补一句指向新
Amendment。ADR-0096 的执行面表格里 system 流程那一行补上这个例外。
- **为什么改:** 运行时(#25483)和 spec 描述(#25564)已经落地这条规则,ADR 还写着 system
流程不受限,三处说法不一致,AI 作者读 ADR 会被误导。
- **风险与代价(含回滚):** 纯文档,不改代码、不发包,无运行时影响。回滚就是 revert 本 PR。
- **席位意见:**
- **你要做的:** 看一下 Amendment 的措辞是否准确,没问题就合并。
## What changed
- **ADR-0073:** a dated `## Amendment:` section (2026-10-24, #25251),
placed above the #3760 amendment, following that section's form. It
names what is refused (the six governed verbs on `sys_user_position`,
`sys_user_permission_set`, `sys_invitation`, `sys_member`, from a
context with `isSystem` and a `flowRunId`), what is unchanged (reads,
other objects, `runAs:'user'`, flow-less platform writers), and the
remedies. The #3760 amendment's note, whose example is "letting them
write `sys_user_position`", gains one trailing clause pointing at it.
- **ADR-0096:** the surface table row `Flow (runAs:'system')` now reads
"explicit elevation, except identity assignment", naming the four
objects and the ADR-0073 amendment.
## Verification
`node scripts/pm/dispatch-gates.mjs --commands` derived 20 families for
this diff. All 20 exit 0, among them `check-adr-links`,
`check-adr-symbol-anchors`, `check:adr-anchors`, `check:doc-authoring`
and `check:pm-governed-merges`. `dispatch-gates --ran`: 20 run, 0
NOT-MEASURED. No changeset: `docs/adr/**` ships in no package.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_013yig39ZouqWBxABRfM5FN4
---
_Generated by [Claude
Code](https://claude.ai/code/session_013yig39ZouqWBxABRfM5FN4)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent cb38a8c commit 0951a00
2 files changed
Lines changed: 16 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
14 | 28 | | |
15 | 29 | | |
16 | 30 | | |
| |||
21 | 35 | | |
22 | 36 | | |
23 | 37 | | |
24 | | - | |
| 38 | + | |
25 | 39 | | |
26 | 40 | | |
27 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
| 56 | + | |
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| |||
0 commit comments