Repository navigation
Description
domain:spec#3 · os-support-ai · session_01WGufzfgvGexKn9vLHsy89K
Ruled: 6624208841 · letter A
Ruling-ref: 6624208841
Filing gate: ② a decision the maintainer made. In the project thread "Discuss pending spec rulings", the maintainer answered 「以上同意」 at 2026-11-04T06:22:07Z to an A (refuse) / B (keep) question that recommended A. The question came from the review of PR #29869 (#29844), record 6599507683, which found two more doors outside the #29844 ruling: action:icon and the action:group / action:menu member rows. The ruling text is recorded as this card's first comment. ⛔ Not a claim. Suggested-grade: p3 (the same family as #29844 and #29383).
Business reason. A page action that carries both confirmText and an array params shows the user a confirm dialog first and a param dialog second, two dialogs for one decision. ActionSchema, InlineActionSchema and, since PR #29869, action:button refuse that pair. action:icon and the members of action:group / action:menu still accept it. Reader: the domain:spec seat (packages/spec/src/ui/component.zod.ts).
What the code does (at origin/main eee41490)
ActionIconPropsSchema(packages/spec/src/ui/component.zod.ts≈:4055) carriesdescription,params: z.unknown()andconfirmText, with no pair rule.actionContainerMemberShape()(≈:4212), shared by theaction:groupmember (≈:4328) and theaction:menumember (≈:4349), carriesparams(an array is the inputs to collect; a non-array is refused except on atype: 'api'member, where it is the request payload) andconfirmText, with no pair rule.- The shared predicate and message are
declaresConfirmBesideParams/CONFIRM_BESIDE_PARAMS_REFUSALinpackages/spec/src/ui/action-confirm-beside-params.ts, already used byaction:button(≈:4010).
Wanted (ruling A)
ActionIconPropsSchemaand theaction:group/action:menumember rows refuseconfirmTextbeside a NON-EMPTY ARRAYparams, at path['confirmText'], with the same predicate and message family. On the members, refine once on the shared shape's consumers so both containers carry it, with the item index in the path.- Still accepted:
confirmTextwith noparams, besideparams: [], and beside an object-formparams(atype: 'api'member's payload). - Before building, census in-repo carriers with both keys:
examples/,packages/**,ui/**,skills/**, templates, cloud fixtures. Zero shipped carriers were known at ruling time. - Declarations:
Clause-②: no (narrowing),Metadata-protocol: narrowed,@objectstack/specminor, and an ADR-0087 disposition (precedent: PR fix(spec)!: anaction:buttonrefusesconfirmTextbeside a non-empty arrayparams, as the two action doors do #29869).
Serial: after PR #29869 (merged). One S PR.
Cross-references: #29844 (the action:button door), #29383 (the inline door), PR #29869 review record 6599507683.
Dedupe: searched action:icon confirmText params and action:menu confirmText params. The only hits are #29844 and #29383. New.
Body updated by the seat with the ruling line: 2026-11-04T06:27Z
Activity
objectstack-fleet commentedon Nov 4, 2026
domain:spec#3 · os-support-ai · session_01WGufzfgvGexKn9vLHsy89K
Ruling: decision thread "Discuss pending spec rulings" · letter A · maintainer 「以上同意」
The maintainer was asked whether
action:iconand theaction:group/action:menumember rows should also refuseconfirmTextbeside a non-empty arrayparams(A, recommended) or keep accepting it (B). They answered 「以上同意」 at 2026-11-04T06:22Z, which covers this item among three, all taken as recommended. This card's letter is A.What the ruling binds (letter A):
ActionIconPropsSchemaand theaction:group/action:menumember row (packages/spec/src/ui/component.zod.ts,actionContainerMemberShape) refuseconfirmTextbeside a NON-EMPTY ARRAYparams, with the same predicate, message family and scope limits as spec(ui): an action:button component accepts confirmText beside an array params, the two-dialog pair ActionSchema and InlineActionSchema refuse #29844.paramsandparams: [].confirmTexton a param-less row stays correct.Recorded 2026-11-04T06:24Z.
objectstack-fleet commentedon Nov 4, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p3 kept ·
domain:speckept ·pm:queuekept · 2026-11-04T06:55Z⛔ Not a claim.
action:iconand theaction:group/action:menumember rows refuseconfirmTextbeside a non-empty arrayparams, asaction:buttonalready does. A two-dialog UX rule on doors no shipped carrier uses, so p3 kept, as spec(ui): an action:button component accepts confirmText beside an array params, the two-dialog pair ActionSchema and InlineActionSchema refuse #29844.Generated by Claude Code