Repository navigation
docs(adr-0131): the D14 execution-plan note — one cutover, the C7 split, C12 on 18.x, and the D2/D3 reading - #22650
Conversation
…it, C12 on 18.x, and the D2/D3 reading Records the maintainer's rulings of 2026-10-10 beside the decisions they stage, changing none of them: - the cutover (record 6094045326): C2's remaining reader switch and C3 land as one cutover batch, still before C7; under `single` a position name is unique per deployment, and a same-name pair is reported as `conflicting` (D10 fate 4); - the C7 split (record 6094175435): C7a (inventory, read-only --plan, completion-marker design) starts at once; C7b (--apply, post-check, boot refusal) keeps the dependency on the cutover, C4 and C5; - the C12 move (record 6094183024): D6's template install mode leaves the v18.0 release-blocking set for the 18.x line; D6 is unchanged; - the D2/D3 reading (record 6094985249): the organization admin's authority over the catalog is read-only; Setup authoring under `single` requires manage_metadata; D3's "no Studio capability is required" is withdrawn. The note sits at the end of D14; section 8's intro points to it, and D2 and D3 carry a one-line pointer at the sentences the reading corrects. No section 8 row, no decision and D14's fence are unchanged. Claude-Session: https://claude.ai/code/session_01RdnZdPZH9ByduzPRWuH9tN Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewServed-tier: Skills seat 1 (seat post #7623), ① Derived judgments
② Semver levelNothing publishes ( ③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
维护者速读(终稿)skills 席 1(#7623)· 改了什么:ADR-0131 一个文件,+39/−2。D14 末尾加一段带日期的「执行计划注记」,四项各引记录 id:① C2 余下的读端切换(S8a/S8b/S9)与 C3 合成一次切换批(短窗口内若干 PR,各自绿、 为什么改:四份裁决(6094045326、6094175435、6094183024、6094985249)都要求把结论写进 ADR;不写,照 ADR 干活的人与 AI 仍会让 C7 整块等切换、让 C12 卡住 v18.0,并沿用 D3 那句已被代码证伪、且已误导过一次席位记录的话。 风险与代价(含回滚):纯文档,不碰运行时与发版;回滚 = revert 这一个提交。超出派发建议的只有 D2/D3 两处一行指针——席位判定保留:撤回的那句若不原地标注,下一位读者仍会被它带偏。三个代码锚点由 席位意见:建议批准。席位逐句对照了四条记录与指针 6095030570:四项与记录一致、引文逐字,无任何决定被改,§8 各行字节不变;契约复审 PASS 已记在本 PR。CI 在 你要做的:在本 PR 上 Approve(Tier H 治理面)。批准后您自己 ready + 入队,或留给席位落地,都可。 Generated by Claude Code |
Fixes #22619
Clause-②: no
Records the maintainer's 2026-10-10 rulings in ADR-0131 as one dated execution-plan note at the end of D14. No decision changes. D6 stays, D14's fence stays, and every §8 table row stays as written.
What the diff does
One file:
docs/adr/0131-total-organization-ownership-no-null-organization-id.md(+39 / −2).6094045326. C2's remaining reader switch (S8a, S8b, S9) and C3 land as one cutover batch: a sequence of PRs merged in a short window, each one green and leavingmainusable, with no transition piece. The batch still lands before C7. Undersingle, a position name is unique per deployment (sub-question Q (a)). The migration reports an existing same-name pair asconflicting(D10 fate 4).6094175435. C7a (inventory, read-only--plan, completion-marker design) does not wait for the cutover. C7b (--apply, post-check, boot refusal) keeps the dependency on the cutover, C4 and C5.6094183024. D6's template install mode leaves the v18.0 release-blocking set and lands on the 18.x line. D6 itself is unchanged.6094985249, per ruling pointer6095030570. The organization admin's authority over the catalog is read-only (the anti-escalation rule). Setup authoring undersinglerequiresmanage_metadata, which the platform administrator holds throughadmin_full_access. D7's wording is the accurate one, and D3's "no Studio capability is required" is withdrawn.The note names three code symbols. Each one is written as a checked symbol or file anchor, so
check-adr-symbol-anchorsturns red if it rots:packages/plugins/plugin-security/src/objects/default-permission-sets.tspackages/metadata-core/src/meta-write-capability.ts#metaWriteCapabilityVerdictpackages/spec/src/identity/eval-user.zod.ts#ADMIN_FULL_ACCESS_CAPABILITIESGates (run at
ee140c18, the PR head)dispatch-gates --repo objectstack-ai/objectstackwas re-derived with no paths against this change and derived 19 commands, the same set the dispatch named. All 19 exited 0. Reconciliation:--ranreports19 derived famil(ies) accounted for — 19 run, 0 NOT-MEASURED (a DERIVED zero — all 19 recorded an exit code and none of them is 3).node scripts/check-adr-links.mjs(+--self-test)715 relative link destination(s) under docs/adr/ resolvenode scripts/check-adr-symbol-anchors.mjs(+--self-test)2252 anchors across 141 records resolve … 0 line anchors survivepnpm check:adr-anchorsOK (64 anchored file(s), every governing ADR still referenced …)pnpm check:doc-authoring18069 customer-facing string(s) across 1326 spec sources cleanpnpm check:nul-bytesOK (scanned 10645 text file(s) … no raw ASCII control bytes)node scripts/check-closing-keyword-parity.mjs(+--self-test)OK (3 parsers agree on all 9 keywords …)pnpm --filter @objectstack/lint run check:doc-formula-expressions22 record-scoped formula example(s) … judged cleannode scripts/check-ci-filter-parity.mjs,node scripts/check-comment-mask-corpus.mjs,pnpm check:cross-package-test-inputs,check:driver-memory-census,check:gitlink-declared,check:pm-governed-merges,check:pm-prior-rulings,check:refd-timer-probe,check:watch-hint-literalcheck:doc-formula-expressionsfirst exited 3 withPREREQUISITE NOT MET:@objectstack/formulaand@objectstack/lintwere not built. That run measured nothing, so it is not counted as a result. I built both under the verify lock (VERDICT command-exit 0) and re-ran the gate, which exited 0.Acceptance notes
6094985249records that this same sentence misled a seat record before. No D2/D3 text is deleted and no decision changes. If you want the note alone, drop those two hunks.cc305a3c, which is origin/main and the base).execution-planhad 0 hits and each of the four record ids had 0. After: 6094045326 ×1, 6094175435 ×1, 6094183024 ×1, 6094985249 ×3 (the note plus the two pointers).singlefor capability holders" each occur once, verbatim. Two of them span a line wrap. The note quotes them as the ADR has them.Amendment (2026-09-17answered 2, not 1: the status line and the heading.:669(D14) and:878(§8) were as stated. The file had not changed since8c5aa502.organization_admin's anti-escalation entries namesys_position,sys_permission_set,sys_position_permission_setand the two assignment tables. They do not namesys_capability.'*'wildcard grants create, edit and delete, andsys_capabilitydeclares norequiredPermissions. Reading the code, an organization admin could create a non-curated capability row today. Such a row is a catalog flag with no authorization effect, and the curated-name gate refuses platform names.singleand refused under a wall (ADR-0131 D2/D3/D5/D13) #15204), which retiressys_capability. Raised as an open question in the dev report.os migrate --plan, and the design of the ceremony's completion marker #22617 (C7a) has since landed via feat(cli): os migrate organization-ownership — the ADR-0131 D10 inventory and the read-only ceremony plan (C7a) #22643 atcc305a3c. The note records the ruling ("starts at once"), not progress.target:v18to the 18.x target once this lands) belongs to triage and is not part of this PR.维护者速读(草稿)
改了什么:在 ADR-0131 的 D14 末尾加了一段带日期的「执行计划注记」,把 10 月 10 日的四份裁决记录写进 ADR:
manage_metadata的平台管理员才能新建和编辑。§8 开头加了一行指针。D2、D3 被纠正的那两句旁边各加了一行指针。没有改任何决定,也没有动 §8 表格的任何一行。
为什么改:这几份裁决都要求在 ADR 里留下说明。不写的话,照 ADR 干活的人(包括 AI)仍会让 C7 整块等切换、让 C12 卡住 v18.0。他们还会以为「组织管理员不需要 Studio 能力就能在 Setup 编辑目录」,而这已经被证实与代码不符,并且误导过一次排期。
风险与代价(含回滚):纯文档改动,不影响运行时,也不影响发版。回滚只需 revert 这一个提交。需要您留意的一点:D2、D3 旁边的两处指针超出了派发建议的「一段注记加 §8 一行」。如果您只要那一段,删掉这两处即可。
席位意见:
你要做的:审阅本 PR,同意就点 Approve。这是 Tier H 治理面,需要您批准才能落地。
Generated by Claude Code