Repository navigation
docs(qa): wave-3 held checklist items — scope notes leave negative[], Studio save status, initialStates gap, capped bulk banner, locked settings row - #28551
Merged
Conversation
Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ihL2gLghEqeDKTbDTC7Zd
…p, capped banner and locked-row negative Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ihL2gLghEqeDKTbDTC7Zd
…ve3-held-items Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ihL2gLghEqeDKTbDTC7Zd
…ve[], top-bar exclusion on acceptance[0], bulk banner card named Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ihL2gLghEqeDKTbDTC7Zd
Contributor
Author
|
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd 席位核对 — ACCEPT ·
|
This was referenced Nov 1, 2026
[Decision] wave-3 checklist: five held items need a ruling before their ledger edits (#27377)
#28345
Closed
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 田騏 · project thread
Fixes #28345
Clause-②: no
Metadata-protocol: none
维护者速读
source[];Studio 顶栏「已保存」不算写入反馈;Studio 不能填initialStates,该判据移出验收;批量全选超过 5000 条时横幅必须写明上限;组织管理员保存已锁定的设置应被拒。docs/qa/platform-checklist/areas/records-forms.json的records-forms.bulk-select-all-matching新增 acceptance[5];platform-core.json的platform-core.settings-organization-isolation-and-platform-rung新增 negative[0];studio-authoring.json的validation-rules-authoring。pnpm check:platform-checklist,预期最后一行是check-platform-checklist: OK — 16 areas, 352 items。What changes
Ruling-ref: 6545938831
Five checklist area files, no product code. Every edited item bumps
revisionby one and appends exactly onehistoryrow, dated 2026-11-01,ref#28345, naming wave anchor #27377. Main's history stays an exact prefix of each item's history. This was checked structurally: each file was re-parsed and compared with the original object plus the intended edit.① Scope-note negatives move out of
negative[](28 items). Each moved entry was its item's last negative, so no other negative index shifts. Each lands as the item's new lastsource[]row, the field sibling items already use for cross-refs (the #27651 precedent). A leadingSCOPE:label now readscross-ref:. The rest of each text is unchanged.studio-authoring.json: all 24 active items whose last negative beganSCOPE:.platform-core.notification-centernegative[3] (cross-ref:).access-security.permission-matrix-edit-loopnegative[2] (cross-ref:).access-security.record-view-read-auditnegative[2] (cross-ref access-security.audit-log-browser …). Itsautomated.refcalled negative[2] a cross-reference, so that note now points at source[4].records-forms.import-transform-matrixnegative[3] (cross-ref guard: …).②
ux-conventions.write-feedbackacceptance[1].verify. The Studio top bar's save status ('Saved' / 「已保存」) names no item, so it is not write feedback. A Studio row passes only on a toast or inline text naming the item or package. A row whose only feedback is that status scores FAIL. The clause wording is unchanged.③
studio-authoring.validation-rules-authoring. acceptance[3] no longer namesinvalid_initial_state, and steps[2] no longer asks for an initial state. A newfixtures.knownGaps[0]says why: Studio's Validations tab has noinitialStatesinput, so the state can only be written through the API.ObjectValidationsPanel.tsxcarries noinitialStatesat base 3718424. The insert-time code is still covered byrecords-forms.validation-rule-type-matrixvariants[0]. This item's history merges its ① and ③ edits into one row.④
records-forms.bulk-select-all-matching. Adds acceptance[5] (dom oracle), steps[7] (a cap leg of more than 5000 scratch rows throughcreateMany, at most 200 per call) andfixtures.knownGaps[1]. The new clause: past HARD_CAP 5000, the cross-page offer, the all-selected line and the selected count name the cap, for example 「将处理前 5000 条」. They must never present the uncapped total as the set the action processes. The clause is an expected FAIL today. The product defect card is owed, and the seat files it. No existing clause changed.⑤
platform-core.settings-organization-isolation-and-platform-rung. Adds the item's firstnegative[]. LOCKED means platform-locked. After steps[2]'s lock, A's organization administrator saving the same key again must be refused, with the value unchanged and the row still locked on re-read. A 2xx is a security FAIL. It is a walled leg,blocked(fixture)when unprovisioned, like acceptance[2] and [3]. steps[2] now drives it. The live measure the ruling asks for was run, and its result went to the seat thread.Tests
Docs only: no package changed, so no build closure is owed and no package tests run. Local gates on head
5e7c1c9e, with each exit code captured before any pipe:dispatch-gates --commands (16 families), every one run
--ranreconciliation:✓ dispatch-gates --ran: 16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED (a DERIVED zero — all 16 recorded an exit code and none of them is 3).check-platform-checklist: OK — 16 areas, 352 items (347 active, 1 planned); coverage: 40 kinds mapped, 3 waived; traps: 19 documented, 19 in use; …check-platform-checklist --changed-from origin/main: OK — 1 anchored file(s) in the change set, 1 anchor(s) judged, 0 lost.Acceptance notes
negative[]on purpose, for the seat to rule on:access-security.platform-owner-email-anchornegative[3] ("out of scope here …"). Itsautomated.refcites it by index.approvals.pending-count-surfacesnegative[1]. It carries a tracked product defect, objectui#4074, which fitsknownGapsrather than a cross-ref.ux-conventions.disabled-control-reasonnegative[1] andux-conventions.labels-over-machine-namesnegative[1]. These are carve-outs of their own criterion rather than pointers to a sibling item.dashboards.report-schedule-dispatch-deliverynegative[3] andaccess-security.packaged-permission-set-lifecyclenegative[3]. A retired item never runs.SCOPE:/cross-ref:string in the six files. The records-forms 7 and automation 3, and one of the dashboards 2, are alreadysource[]rows, so there was nothing to move there.studio-authoring.expression-editorsmechanical fixes (vitest cwd, card refs,record.FORMULA_FIELDbinding) are not taken. The census comment does not quote the exact text of its rows, so they stay with the seat's follow-up batch.Verification
Each moved entry was diffed against its new
source[]row: the same bytes apart from theSCOPE:→cross-ref:label. Every history row was checked: one#28345row per item, equal torevision, citing #27377.🤖 Generated with Claude Code