Uh oh!
There was an error while loading. Please reload this page.
docs(qa): retarget rollup-summary-filter editor half at duplicate route - #11913
Conversation
automation.rollup-summary-filter clause 5 (the visual filter-editor half) was blocked.by:fixture, tracked at #3358. The maintainer ruled NO on a stock writable showcase package (2026-08-19, 「接受你的所有建议」) and directed retargeting at the platform's own runtime path instead: the runner clones the showcase base into a writable target via POST /packages/:id/duplicate (ADR-0070 D4 "duplicate base"). Bumped revision to 3 with a history entry; removed the item-level blocked.by:fixture entry and its matching fixtures.knownGaps line, since the clause is runnable on every boot now. Oracle stays screenshot — the clause specifically exercises the visual editor, corroborated by a meta-API read of the persisted filter. The sibling half (access-security.json, readonly-package-locks-studio) is held by open PR #11780 and stays out of scope here — see the PR body for the card relationship. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ahemw8RcTgqtxrj15PEZx
os-steve
commented
Aug 25, 2026
ACCEPT. Verified against the branch and
The load-bearing Zone-2 claim re-derived independently — this is the one that, if wrong, would have written a confidently-wrong clause into the checklist: and ADR-0070 line 80: "Duplicate: clone a base into a new writable package (the Airtable "duplicate base" gesture)." Control in the same read: a phrase that cannot be in that ADR returned 0. So the route exists, is documented, and genuinely produces a writable base — the ruling rests on something real. Two judgment calls I specifically agree with:
Running The access-security half stays blocked behind PR #11780 and is dispatched separately when that lands. Generated by Claude Code |
Part of #9788.
What
Retargets
automation.rollup-summary-filterclause 5 (the visual filter-editor half,docs/qa/platform-checklist/areas/automation.json) at the platform's supported runtime path, per the maintainer ruling on #9788 (2026-08-19, verbatim: 「接受你的所有建议」): the stock showcase does not boot with a project-scoped writable package. The runner instead clones the showcase base into a writable target viaPOST /packages/:id/duplicate(ADR-0070 D4 "duplicate base") before exercising Studio's visual filter editor.Changes to the item:
steps— the editor-half step now names the duplicate-route call instead of "(editor half, blocked)".acceptanceclause 5 — retargeted wording; oracle staysscreenshot, since the clause specifically tests the visual editor (corroborated by a meta-API read of the persisted filter), not just the API.blocked: {by: "fixture", ref: "#3358 …"}block and the matchingfixtures.knownGapsentry — the clause is runnable on every boot now, not fixture-blocked.fixtures.requiresandsourceentries citing the duplicate route (packages/runtime/src/domains/packages.ts) and ADR-0070 §D4.revision2 → 3, with ahistoryentry recording the retarget and its rationale.Verified before writing
POST /packages/:id/duplicateexists (packages/runtime/src/domains/packages.ts:819) and really produces a writable package — its ownrequireWritablePackagerefusal message names this exact route as the remedy ("duplicate this one into a writable base … and change that"), andprotocol.duplicatePackage(packages/metadata-protocol/src/protocol.ts:16807) explicitly stripsscopefrom the manifest copy because "the whole point of a duplicate is a WRITABLE base." ADR-0070 §D4 names the same gesture ("clone a base into a new writable package — the Airtable 'duplicate base' gesture").automation.jsononorigin/mainfirst: clause 5, theblocked.by:fixtureentry and itsref: #3358were all still present as the card described — premise held, nothing was retargeted already.Scope
Only
docs/qa/platform-checklist/areas/automation.json. The sibling half named in the ruling —docs/qa/platform-checklist/areas/access-security.json→access-security.readonly-package-locks-studio— is out of scope: #11780 already has that file in its changed-file list, so this PR leaves it untouched.Local gates
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack(run against the final commit86c4a39b9) names two matched families for this diff, both green:pnpm check:doc-authoring— "389 files clean — no bare metadata literals."pnpm --filter @objectstack/lint run check:doc-formula-expressions— self-test 50/50, "22 record-scoped formula example(s) … judged clean," "9 @example(s) judged clean," "14 predicate(s) … judged clean; 6 skipped as undeterminable" (documented, unrelated to this diff).check:platform-checklistis not CI-wired (manual cadence by maintainer decision — README), sodispatch-gates.mjsdoes not name it, but the area README asks for it "whenever you touch the checklist," so it was run anyway:check-platform-checklist: OK — 15 areas, 207 items (207 active); coverage: 31 kinds mapped, 0 waived; traps: 19 documented, 19 in use; provisioning: 4 area recipes, 7 item references resolved (1 area-qualified), 4/4 recipes referenced.No changeset — QA-checklist-only change, nothing user-visible or published.
skip-changesetlabel applied.Generated by Claude Code