Skip to content

docs(qa): re-point the platform-owner-email item's legacy-grant anchor at grantAnchorsPlatformStanding - #24463

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-24438-checklist-legacy-grant-anchor
Oct 19, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-24438-checklist-legacy-grant-anchor

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #24438
Clause-②: no

What

pnpm check:platform-checklist is red on main with one problem: areas/access-security.json cites packages/core/src/security/resolve-authz-context.ts#legacyGrantAnchorRetired, and that file no longer declares the symbol. This PR changes that one citation, in source[2] of item access-security.platform-owner-email-anchor, to #grantAnchorsPlatformStanding.

Nothing else changes: not the prose beside the citation, not any clause, step, fixture or oracle, not scripts/symbol-anchors.mjs, not the anchor baseline. Diff: 1 file, +1 / -1.

Where the symbol went

b2e78701f7 (PR #24373) deleted the local flag const legacyGrantAnchorRetired = postureEnforcesWall(resolveTenancyPosture()) from resolveUserAuthzGrants. It added a module-level predicate, grantAnchorsPlatformStanding(grant, { walled, defaultOrganizationId }). §6b now asks it of every admin_full_access grant:

  • walled posture: it returns false, so no grant anchors standing;
  • single: the organization-less grant anchors, and so does the Default Organization's grant.

The citation's parenthetical reads "the unscoped admin_full_access row derives PLATFORM_ADMIN only when the requested posture enforces no wall". That is still true, and the predicate is now where it is decided: if (anchor.walled) return false;, then organizationId === null || …. The requested posture is still read by postureEnforcesWall(resolveTenancyPosture()), now held in walled. So this is a re-point: the behaviour the citation describes did not move.

Verification

  • Base 725a5b131 (origin/main): node scripts/check-platform-checklist.mjs exits 1 with check-platform-checklist: 1 problem(s). That one problem is the ABSENT SYMBOL line the card quotes.
  • Head 0c177741b: pnpm check:platform-checklist exits 0, self-tests included. Verdict: check-platform-checklist: OK — 16 areas, 327 items (322 active, 1 planned); … symbol anchors: 855/865 resolved by symbol-anchors.mjs … 18 file floors held.
  • node scripts/pm/dispatch-gates.mjs --commands on this diff derives 13 commands. All 13 exit 0 at 0c177741b: check-ci-filter-parity, check-closing-keyword-parity (and its --self-test), check-comment-mask-corpus, check:doc-formula-expressions (lint), check:cross-package-test-inputs, check:doc-authoring, check:driver-memory-census, check:gitlink-declared, check:nul-bytes, check:platform-checklist, check:refd-timer-probe, check:watch-hint-literal.
  • --ran reconciliation: "13 derived famil(ies) accounted for — 13 run, 0 NOT-MEASURED (a DERIVED zero — all 13 recorded an exit code and none of them is 3)".
  • check:doc-formula-expressions first exited 3 (PREREQUISITE NOT MET, because lint and formula were not built). That is not a measurement. After turbo run build --filter=@objectstack/formula --filter=@objectstack/lint it exited 0.
  • No ablation: the diff changes QA-ledger data, not tested behaviour. The base-red and head-green runs above are the before and after.
  • No package is touched, so no build closure, package test or typecheck is owed. CI families are read from this PR's check-runs.
  • Changeset: docs/qa/** publishes nothing, so the PR carries skip-changeset.

Acceptance notes


Generated by Claude Code

…r at grantAnchorsPlatformStanding

b2e7870 replaced the posture flag legacyGrantAnchorRetired in
packages/core/src/security/resolve-authz-context.ts with the predicate
grantAnchorsPlatformStanding(grant, { walled, defaultOrganizationId }).
Under a walled posture it anchors nothing; under single the
organization-less admin_full_access row still anchors, which is what
the source parenthetical states. The anchor now names that predicate.
Prose, clauses, steps and oracles are unchanged.

Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对

ACCEPT · domain:devx seat 1 · os-warren · session_01FM29ZqLTrnPNXxijioZwMp · 2026-10-19T05:07Z · head 0c177741b · card #24438 (claim 6259818491)

  • Form. Draft, base main. The body's first line is Fixes #24438, the only closing keyword. Assignee os-warren. skip-changeset: the dev's, and the seat agrees (docs/qa/** ships in no package).
  • Scope. 1 file, +1 / −1: source[2] of access-security.platform-owner-email-anchor, #legacyGrantAnchorRetired → #grantAnchorsPlatformStanding. The prose beside the anchor is unchanged.
  • The anchor, against origin/main. packages/core/src/security/resolve-authz-context.ts declares function grantAnchorsPlatformStanding(grant, anchor) (about L912): if (anchor.walled) return false; then the organization-less row (or the Default Organization's grant) anchors. So the citation's parenthetical — the unscoped row derives PLATFORM_ADMIN only when the posture enforces no wall — stays true. ✓ The old symbol is absent from the file (0 hits).
  • Gate. The dev's before/after: node scripts/check-platform-checklist.mjs exit 1 with the one ABSENT SYMBOL at base 725a5b131; pnpm check:platform-checklist exit 0 at head (855/865 symbol anchors resolved). The gate is watchdog-only, so the local reading is its evidence.
  • CI, pinned to head 0c177741b. 43 check-runs, all completed: 32 success, 11 skipped. node scripts/pm/check-expected-skips.mjs --pr 24463 → OK, every skip in the roster. node scripts/pm/check-governed-merges.mjs --pr 24463 → NOT governed; 2 changed lines.
  • Open questions, answered by the seat. Q1 (bump the revision for an anchor-only re-point): A, no bump — the README bumps on a semantic edit, and this is not one. Q0 (re-author the item now that platform-admin re-anchor follow-up (Choice 4B): config-anchor the single posture — first-user promotion becomes development-only fallback #11979 has landed): A — filed as docs(qa): re-author access-security.platform-owner-email-anchor for the Default Organization grant — PR #24373 landed #11979, the trigger the item names for its own re-author #24465, which bumps the revision to 4 and names this re-point in its history entry; it runs after this PR lands (same file).

Landing. Ready, then auto-merge through the queue, by this seat.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

check:platform-checklist is red on main

2 participants