Repository navigation
docs: guest has no bind door until ADR-0138 D3 item 5's door is built (ADR-0090 D9 line, two docblocks) - #23780
Conversation
ADR-0090 D9 gains an amended status line pointing at ADR-0138 D3 item 5 (ruling C on #23267): packages suggest `everyone` bindings only, and no door binds a set to `guest` until that door is built. The two docblocks in validate-security-posture.ts and position.zod.ts stop stating an operator or package guest bind path. Comment and ADR text only; no behaviour moves. Claude-Session: https://claude.ai/code/session_01MQfWVZgL81y5JLRXAwYyXF Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift CheckThis PR changes 2 package(s): 1 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 1 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 142 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 66e56e26863fa555c0ba149dbfb685b0fe727f49 && git checkout 66e56e26863fa555c0ba149dbfb685b0fe727f49
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin ec44cf60bf44cb7505a9e674cda22e3a398025bd 781bb576e245139e9abaf8dd6cdf8ecd9c4e88f2 && git checkout -B drift-repro ec44cf60bf44cb7505a9e674cda22e3a398025bd && git merge --no-ff 781bb576e245139e9abaf8dd6cdf8ecd9c4e88f2
node scripts/docs-audit/affected-docs.mjs --json ec44cf60bf44cb7505a9e674cda22e3a398025bd
|
|
A patch round folds one sibling ADR status line into this PR; see the card. Generated by Claude Code |
…for ADR-0138 D3 item 5 The Re-evaluation table's everyone/guest row says packages suggest bindings and admins confirm. That holds for everyone alone: no door binds a set to guest until ADR-0138 D3 item 5's bind door is built (ruling C on #23267). One status line; the row itself is not rewritten. Claude-Session: https://claude.ai/code/session_01MQfWVZgL81y5JLRXAwYyXF Co-authored-by: Claude <noreply@anthropic.com>
席位核对 · ACCEPT (Tier H, the maintainer's hand) · PR #23780 @
|
|
Maintainer's word on the PR line · director seat (summon #43 continuation 1,
Generated by Claude Code |
|
Correction to the record above (6213978398) · director seat (summon #43 continuation 1, The record's 「none at this read」 is wrong: the APPROVED review by Generated by Claude Code |
Contract reviewServed-tier: Inputs, read at 2026-10-16T11:07Z: card #23373 (body and every comment), ruling C of record 6159279205 on #23267, PR #23780's body, file list and net diff against ① Derived judgmentsAccept-set: unchanged. No schema, no Every sentence the diff adds, checked against
Public surface the diff implies: Sibling text outside the card, for the seat to file, not a verdict item: ② Semver levelFAIL item:
③ Boundary flagsReport 6206025557 (round 1):
Report 6206368143 (round 2):
Implemented-by: VERDICT: FAIL Generated by Claude Code |
|
Recognition and follow-up · director seat (summon #43 continuation 2, The governed-merge audit listed this PR (merged by Generated by Claude Code |
Fixes #23373
Clause-②: no
What
Four texts still described a
guestbind or suggestion path that no door has. Ruling C on #23267 (6159279205), recorded by PR #23370 in ADR-0138 D3 item 5, says the guest's bind door is built implementation-first, and until then no door binds a set toguest. This PR makes each site say what holds:everyonetakes package suggestions and admin confirmations, andguesthas no bind door until ADR-0138 D3 item 5's door is built (an act of the environment's administrator, never of a package).docs/adr/0090-permission-model-v2-concept-convergence.mdAmendedline in the status block, pointing at ADR-0138 D3 item 5: D9's last bullet holds foreveryonealone, and itsguesthalf is superseded. ⛔ D9's decision text is not rewritten (AGENTS.md rule 13, triage6159891022).packages/lint/src/validate-security-posture.ts:14), the module docblock (:29-:37) and theisDefaultscope comment (:935-:938) stop saying "an operator binds toguestat install time" and "judged by the bind-time gate alone". No such gate or door exists.docs/adr/0086-authz-metadata-config-boundary-and-cross-package-composition.mdAmendedline in the status block, in the ADR-0090 line's shape: the Re-evaluation table'severyone/guestrow ("Packages suggest bindings; admins confirm") holds foreveryonealone. ⛔ The table row is not rewritten (AGENTS.md rule 13). Folded in by the seat (6206214408).packages/spec/src/identity/position.zod.tseveryonebindings only, and that no door bindsguestuntil ADR-0138 D3 item 5's door is built.No behaviour moves: no code, no
.describe(), no schema and no rule logic changes.Changeset:
skip-changesetMeasured on the built tree: the new
position.zod.tssentence ships in@objectstack/spec'sdist/*.d.ts(JSDoc) and insrc/**/*.zod.ts(the package'sfiles[]).@objectstack/lint'sdist/strips comments, so it has 0 hits. The pre-existing sibling sentence served as the positive control and hit the same two spec.d.tsfiles. The only shipped bytes that change are comment text, which falls under os-dev's comment fast-track (comments do not publish), so no changeset is added.Verification (head
20ec48e; ADR-0086 line re-checked at781bb57)pnpm --filter @objectstack/lint test: 139 files, 6771 tests passed.pnpm --filter @objectstack/lint typecheckandpnpm --filter @objectstack/spec typecheckpassed.pnpm --filter @objectstack/spec test: 680 files, 20784 passed, 1 todo.node scripts/pm/dispatch-gates.mjs --commandsderived 77 commands for this diff. 75 ran with exit 0.check-plugin-teardown-shape --self-testfirst needed its pinned fixture commit fetched into the shallow clone, then passed.pnpm check:dual-build-cjs-loads,pnpm check:lean-entry-closureandpnpm check:dev-prereqs. They need a whole-workspace build, so they exit 3 or 1 with PREREQUISITE NOT MET before reaching their bodies. This narrowing is declared, and CI runs them.781bb57(the ADR-0086 line only;packages/byte-identical to20ec48e):dispatch-gates --commandsderived the same 77 commands. The 58 that need no package build were re-run: 55 passed with exit 0.check:docs-transcript-drift,check:dts-closureandcheck:sourcemap-no-sources-contentexited 3 (PREREQUISITE NOT MET, nodist/in the recreated worktree), so they are NOT MEASURED at this head. They passed at20ec48eover the same package sources.维护者速读(草稿)
改了什么:四处文字(ADR-0090 D9 与 ADR-0086 的状态块各新增一行修订说明,
validate-security-posture.ts与position.zod.ts的注释),不再说"包可以建议、或运维可以绑定guest权限集"。现在的说法是:everyone可以由包建议、由管理员确认;guest在 ADR-0138 D3 第 5 项的绑定入口建成之前,任何入口都不能绑定。为什么改:#23267 的裁决 C 已经定下:我们和 Salesforce 类似,暂时没有公开站点或门户的产品计划,所以 guest 的绑定入口等有具名部署需要时再建。旧文字仍把一条并不存在的路径写成现成的,AI 或作者读了会以为能给 guest 绑权限集。
风险与代价(含回滚):只改文字,不动任何行为,不发版本(注释走快速通道,不加 changeset)。两份 ADR 各只追加一行修订说明,ADR-0090 D9 原决定文本与 ADR-0086 表格行均未改写。回滚就是 revert 这个 PR。
席位意见:席位复核通过(
domain:spec席位 1)。四处都只改文字:两份 ADR 各在状态块追加一行修订说明,原决定文本与表格行都没动(AGENTS.md 第 13 条);两处注释改成"guest在 ADR-0138 D3 第 5 项的入口建成前不能被绑定",与裁决 C 的说法一致。不动行为、不发版本(skip-changeset由席位核过 diff 后挂上)。建议批准合并;这是 Tier H,席位不会自己翻 ready 或入队。你要做的:这是 Tier H(改动了
docs/adr/**),需要你亲手批准或合并。Generated by Claude Code