Repository navigation
docs(qa): crud-permission-matrix records the guest-anchor clause as a ruled product limit - #26923
Merged
Merged
Conversation
… ruled product limit No door binds a set to the guest anchor (ADR-0138 D3 item 5, ruling C on #23267), so no provisioning recipe can bind it. knownGaps[2], steps[5] and automated.ref now record acceptance[5] blocked(dependency, #23267) instead of blocked(fixture); revision 10 records the live REST re-drive on a stock showcase boot (PUT /meta/position/guest 403 NOT_OVERRIDABLE, no guest suggestion row, anonymous data create and read 401). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JQwxbYtweo3WYSXaFn71a5
Contributor
Author
维护者速读
席位核对ACCEPT ·
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Warren · project thread
Fixes #26623
Clause-②: no
Metadata-protocol: none
维护者速读
crud-permission-matrix的 acceptance[5](guest 只建不读)不再记作 blocked(fixture),改记 blocked(dependency, security: no door can bind a permission set to theguestanchor — ADR-0138 D3 item 5 has no enforcer (PUT /meta/position/guestanswers 403 NOT_OVERRIDABLE; guest suggestions are refused) #23267);knownGaps[2]、steps[5]、automated.ref 末句随之改写,revision 9 → 10 加一行 history。guestanchor — ADR-0138 D3 item 5 has no enforcer (PUT /meta/position/guestanswers 403 NOT_OVERRIDABLE; guest suggestions are refused) #23267 裁定 C(维护者:暂无公开站点或门户的产品计划)把绑定门推迟到有具体部署需要时再建。这是已裁定的产品限制,不是缺测试数据。PUT /api/v1/meta/position/guest返回 403 NOT_OVERRIDABLE,建议绑定列表里没有 guest 行,匿名建和读 inquiry 都是 401。node scripts/check-platform-checklist.mjs,预期 OK。What changes
docs/qa/platform-checklist/areas/access-security.json, itemaccess-security.crud-permission-matrixonly:fixtures.knownGaps[2]now records clause 5 as a ruled product limit, not a fixture gap: record itblocked(dependency)with ref security: no door can bind a permission set to theguestanchor — ADR-0138 D3 item 5 has no enforcer (PUT /meta/position/guestanswers 403 NOT_OVERRIDABLE; guest suggestions are refused) #23267. It cites ADR-0138 D3 item 5 as amended by ruling C on security: no door can bind a permission set to theguestanchor — ADR-0138 D3 item 5 has no enforcer (PUT /meta/position/guestanswers 403 NOT_OVERRIDABLE; guest suggestions are refused) #23267 (6159279205), and lists every route that is refused:PUT /api/v1/meta/position/guest403NOT_OVERRIDABLE(pinned inpackages/qa/dogfood/test/guest-grants-channel.dogfood.test.ts),confirmAudienceBindingSuggestionrefusing a guest row, and the package door refusing a built-in position name. It keeps the member-persona and public-form reasons, adds that ADR-0138 D2 keeps/api/v1/dataat 401 for anonymous callers even with the anchor bound, and names the in-process guest-channel cases that hold the clause's shape on an inline fixture (which score nothing here). Its last sentence says to write the recipe once the security: no door can bind a permission set to theguestanchor — ADR-0138 D3 item 5 has no enforcer (PUT /meta/position/guestanswers 403 NOT_OVERRIDABLE; guest suggestions are refused) #23267 door exists.steps[5]saysblocked(dependency, #23267)and why.automated.refsayblocked(dependency), #23267instead ofblocked(fixture).revision9 → 10, plus ahistoryrow citing qa(checklist): access-security — provisioning recipe for a bound guest anchor (unblocks crud-permission-matrix c5) #26623 that records the live re-drive below.No area-level recipe and no
fixtures.provisioningreference were added. A provisioning recipe needs a door a runner can replay, andcheck:platform-checklistrefuses a recipe that no item references. No new card was filed: the product card for the missing door is #23267, which already exists and is ruled (closed, ruling C). Item-levelblockedstays absent, since the other six clauses can be run on a stock boot.Why
Card #26623 asked for a recipe that binds the guest anchor so acceptance[5] can be scored. Its Done-when 4 covers this case: a gap that turns out to be a product limit stays blocked, with that limit's card as the ref. The old knownGaps[2] blamed the stock showcase ("the guest anchor ships unbound … binding is an admin action"). That reading sends every wave looking for a fixture that cannot exist, so the ledger now gives the real reason.
Verification
acceptance[5] was re-driven once, REST only, on a fresh stock showcase boot (full
turbo run buildat main 1708115, thenpnpm dev -- --fresh -p 4310, no env posture), as the dev admin:Nothing was written, so there was nothing to tear down. The boot's temp DB was discarded.
Local gates on head e197a55 (main 5782008 merged in), derived by
node scripts/pm/dispatch-gates.mjs --commands: 16 families, all exit 0;--ranreconciles 16 derived, 16 run, 0 NOT-MEASURED.check:platform-checklistprintsOK — 16 areas, 329 items … 8/8 recipes referenced.Gate run
CI families outside the derived list are left to the PR's check-runs.
Acceptance notes
automated.refwere changed too (blocked(fixture)→blocked(dependency), #23267, one phrase), so the item does not contradict itself. Nothing else in the item and no other item was touched.origin/mainand re-runscheck-platform-checklist.Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (no linted file touched)main, one pull request.skip-changeset)packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.🤖 Generated with Claude Code
https://claude.ai/code/session_01JQwxbYtweo3WYSXaFn71a5