Repository navigation
docs(qa): re-point the eight stale platform-checklist anchors at what the files declare now - #23651
Conversation
…at the files declare now attachments-storage.attach-requires-parent-edit (revision 6): the source anchor names mayEditParent, the one parent-EDIT composition that replaced the sharing shape's canEdit member in ce3d0ad. The area's anchor floor holds at 28 again. search.rls-both-personas (revision 7): clause 2 is re-authored to the counted total of a paged search (55382dc deleted the countable exception and its page-local estimate), and its source anchor names findData. Claude-Session: https://claude.ai/code/session_01ESFcvW3staenyBCGq7kcDH Co-authored-by: Claude <noreply@anthropic.com>
…the layers main has Revision 2. ADR-0131 retired the organization layer every clause of revision 1 composed against: the /meta doors hand the protocol no organization, b389e43 deleted the intake-specific organization refusals and the env-wide row anchor this item cited, the sys_metadata family declares no organization column, and the anonymous doors read the environment alone. The stock end-to-end half now follows the re-authored dogfood pin (an organization-active administrator's save is environment-wide and its withdrawal closes both doors; the open control lands in the organization). The package layers are scored from the rest, metadata-protocol and metadata-core pins that replaced the deleted cases, and the anchors name what the files declare now. Claude-Session: https://claude.ai/code/session_01ESFcvW3staenyBCGq7kcDH Co-authored-by: Claude <noreply@anthropic.com>
…ad before it is attributed Claude-Session: https://claude.ai/code/session_01ESFcvW3staenyBCGq7kcDH Co-authored-by: Claude <noreply@anthropic.com>
…ecklist-anchors Claude-Session: https://claude.ai/code/session_01ESFcvW3staenyBCGq7kcDH Co-authored-by: Claude <noreply@anthropic.com>
席位核对 ·
|
| Removed symbol | Removed by |
|---|---|
anonymousFormIntakeReopenRefusal |
b389e4355 (feat(metadata-protocol,runtime,service-automation,spec)!: the protocol refuses every organization-scoped write; an uninstall is environment-wide (ADR-0131 D6/D12) #22515, ADR-0131 D6/D12) |
countable |
55382dc02 (fix(objectql,metadata-protocol,spec): a paged search reports the counted total #22857) |
canEdit |
ce3d0ad41 (fix(service-storage,plugin-audit,plugin-security)!: the attachment and comment parent gates judge a controlled_by_parent parent through its master #22513) |
The new anchors exist on the tree: attachment-access-hooks.ts mayEditParent, protocol.ts organizationScopedWriteRefusal and findData.
Item lifecycle per the README.
attachments-storage.attach-requires-parent-editrev 5 → 6, re-pointed, assertions unchanged.search.rls-both-personasrev 6 → 7. Clause 2 is re-authored to the counted total.access-security.public-form-withdrawal-layersrev 1 → 2. It is re-authored because its organization-overlay clauses describe a layer ADR-0131 retired.- Each revision carries a dated change entry naming the removing commit. The data is changed because the behaviour changed, not to green the gate.
Floor. attachments-storage.json is back to 28 of 28 through the re-point, with no unrelated anchor added and no floor lowered.
b7774745e).
- All 43 runs are success or skipped, including
Lint & Repo Gates,TypeScript Type Check,Test CoreandGoverned Surface Queue Guard.check-expected-skips --pr 23651: OK, 11 skips, every one on the roster. check:platform-checklistis out of per-PR CI by decision, so the seat's own exit 0 above is its pre-merge reading.main's last two hourly full runs (08:01Z, 09:01Z) are green.
- The re-authored public-form item scores one clause revision 1 had deferred (a withdrawal in any package's body closes the name in every package), inside the claimed item.
- The dogfood pin for its stock half is NOT MEASURED locally (full showcase boot);
main's full battery runs it.
- Docs drift in
content/docs/ui/public-data-collection.mdxsection 4: Acceptance notes, carrier none. - The attachments
controlled_by_parentlimb has no clause yet: Acceptance notes, carrier none. - The recurrence proposal (the report's open question, option A) is the "why it keeps coming back" triage asked for on the card. It proposes a path-scoped mode on the existing checklist gate plus one derivation input, measured:
dispatch-gates --commandsnames the checklist 0 times forprotocol.ts, and 344 files are anchored. It touches the frozendispatch-gates, so it is filed as its own card for triage to grade, not built here.
51 2 * * * UTC) is the card's second Done reading.Generated by Claude Code
Fixes #23593
Clause-②: no
What
pnpm check:platform-checklistwas red onmain(42718df38) with exactly the 8 problems the watchdog card lists, in three area files. Each cited symbol was removed by a refactor. For each one this PR read the item's steps againstmain, then moved the citation to the code that holds the behaviour now. Where the behaviour itself had moved, the item was re-authored. Nothing underpackages/**,scripts/symbol-anchors.mjsorscripts/checklist-symbol-anchor-baseline.jsonchanges, and no floor is lowered.access-security.json:protocol.ts#anonymousFormIntakeOrgScopeRefusal(x1)b389e4355(PR #22515, ADR-0131 D6 stage S4)access-security.public-form-withdrawal-layersre-authored, revision 1 to 2access-security.json:protocol.ts#anonymousFormIntakeReopenRefusal(x2)b389e4355: every organization-scoped write is now refused byorganizationScopedWriteRefusalorganizationScopedWriteRefusalaccess-security.json:protocol.ts#envWideRawViewRows(x2)b389e4355getMetaItems, and the package-less stand-in namesservedViewExpansionattachments-storage.json:attachment-access-hooks.ts#canEditce3d0ad41(PR #22513): the gate reads the tri-statecheckEditthrough one composition#mayEditParent, revision 5 to 6attachments-storage.json: floor 27 of 28search.json:protocol.ts#countable55382dc02(PR #22857): a paged search now counts its totalsearch.rls-both-personasre-authored, anchor#findData, revision 6 to 7Why the public-form item is re-authored, not re-pointed
Every clause of revision 1 composed a withdrawal against an organization overlay. ADR-0131 retired that layer:
/metadoors hand the protocol no organization (PR feat(metadata-core,rest,runtime,plugin-email,spec)!: the /meta doors carry no organization; organization-admin metadata authoring closes (ADR-0131 D6, #15206 S3) #22447);b389e4355deleted the three symbols the item anchored;sys_metadatafamily declares no organization column (PR feat(metadata-core,metadata-protocol)!: the sys_metadata family declares no organization column; indexes re-keyed (ADR-0131 D6/D7, C7b S2) #23469);So revision 1's steps 4 to 10 PUT saves that now land environment-wide. Its clauses 0, 1 and 3 describe a layer that can no longer be written. A re-point by name alone would have kept those clauses reading as live.
Revision 2 keeps the capability the id names: a withdrawal that no other layer re-opens. It states that capability on the layers
mainhas.api). It follows the dogfood pin, which the ADR-0131 PRs had already re-authored. An organization-active administrator's save is environment-wide, and its withdrawal closes both doors. The open control lands in the organization.test, no stock fixture). These are one item per package of a view name in the environment's list, a package's shippedfalse, and the package-less copy as the switch. They are scored from therest,metadata-protocolandmetadata-corepins that replaced the deleted cases.knownGapsas retired, not as a gap.The alternative, retiring the item, was weighed and not taken (see the report on the card). It would drop checklist coverage of rules that are live and pinned on
main.Verification (head
b7774745e, which mergesorigin/mainc5dd7fce3)pnpm check:platform-checklistexit 0. The verdict line, trimmed:check-platform-checklist: OK — 16 areas, 279 items (274 active, 1 planned); … symbol anchors: 732/742 resolved by symbol-anchors.mjs … 10 on the named #16898 residual, 18 file floors held. On the base it exited 1 with the 8 problems.--anchor-census), base to head:access-security.json62 to 69 (floor 44),attachments-storage.json27 to 28 (floor 28),search.json17 to 18 (floor 14).dispatch-gates --commands --repo objectstack-ai/objectstack, change set from the merge base): 13 derived, and each was run with its exit captured before any pipe. All 13 exit 0.--ranreports 13 run, 0 NOT-MEASURED, 0 UNRUN.check:doc-formula-expressionsexited 3 (PREREQUISITE NOT MET: theformulaandlintdist were not built). It was rebuilt under the verify lock and re-run: exit 0.metadata-coreanonymous-form-intake.test.ts: 46 passed;metadata-protocolprotocol.org-scoped-write-refused.test.ts: 297 passed;restpublic-form-withdrawal.test.tswithlist-search-total-door.test.ts: 33 passed.showcase-public-form-withdrawal-layers.dogfood.test.ts. Reason: its closure is the full showcase boot, andmain's full battery runs it. Its three cases were read at this head, and the item's end-to-end clauses follow them.docs/qa/**ships in no package'sfiles[], so there is no changeset, and this PR takesskip-changeset.Acceptance notes
content/docs/ui/public-data-collection.mdxsection 4 still describes the anonymous doors as reading the Default Organization's legacy copy, including its "Known limit: legacy copies".rest-server.tsregisterFormEndpointsand the pin[ADR-0131 C7] no view read names an organization, whatever the tenancy answers: one environment read per doorsay that read was deleted. This is docs drift and is not filed: no public door returns a wrong answer from it. The re-authored item'ssourceentry says so. Carrier: none.attachments-storage.attach-requires-parent-edithas no clause for the limb PR fix(service-storage,plugin-audit,plugin-security)!: the attachment and comment parent gates judge a controlled_by_parent parent through its master #22513 added: an abstaining parent is judged by its master's write check (controlled_by_parent). This is a coverage observation for a laterchecklist-authorsweep, not a defect. Carrier: none.Generated by Claude Code