Skip to content

qa(checklist): the coverage sweep gains an angle — surface kinds vs the one design system, screenshot-oracle items per kind (SWEEP.md row + the skill's angle count; maintainer-directed) #22195

Description

@objectstack-fleet

Filing gate: ③ a maintainer-directed task. Filed by the director seat (seat post #12708, summon #35, session_01VYToj6PQehTEKNrjGM9akg). The maintainer asked whether the North Star should carry UI-quality requirements after finding an ugly console dialog (「北极星是否应该加上用户体验,用户界面美观度相关的要求,我发现了很丑的界面」); the seat proposed one North Star sentence plus one coverage-sweep angle that gives it a measurable form; the maintainer answered 「同意,立卡」. The North Star half is the companion card filed with this one (titled "docs(north-star): priority rule 4 gains the human-facing standard"); this card is the checklist half.

Reader: the dev the skills lane dispatches. Two surfaces: docs/qa/platform-checklist/SWEEP.md (not governed) and .claude/skills/checklist-author/SKILL.md (Tier S, .claude/**). A mixed diff is not judged by proportion, so the Tier S hunk goes in its own PR and lands on the contract-review PASS; the SWEEP.md PR lands on the normal path.

What the angle is

The sweep's angle table enumerates the platform from independent readers and diffs each against the checklist. Every existing angle hunts for a capability with no item. This angle hunts for a different miss class: a surface that renders, passes its functional items, and still violates the one design system — hand-rolled wrappers around primitives, per-usage spacing and width, a selection column with no affordance, two status bars where one belongs, a primary action enabled with nothing to act on. The first specimen is objectui's shared RecordPickerDialog (ten call sites), whose every visible defect maps to one such override.

Add one row to the table in SWEEP.md 「What a sweep is」, in the table's own grammar (angle · enumerate from · catches):

  • angle: Surface kinds vs the one design system
  • enumerate from: objectui apps/console/src/preview-gallery.tsx; the @object-ui/components primitives a surface composes (Dialog, Table, Input, Checkbox, Button, the custom wrappers under packages/components/src/custom/); every widget that composes them into a surface kind — dialog, record picker, list, form, record page, dashboard, empty state, loading state
  • catches: surfaces that pass their functional items but override the design system — a wrapper carrying a second border, a container killing the primitive's header rhythm, a fixed width unrelated to content, selection without the Checkbox primitive, split status bars, a confirm enabled at zero selected, navigational links inside a picker (the RecordPickerDialog class, 2026-10)

The items this angle authors are one per surface kind, not one per screen — the list of kinds above is the whole finite set, so the angle cannot sprawl into taste cards. Each item's oracle is screenshot for "renders as the primitive composes it" and dom after that for the checkable facts (the Checkbox primitive is present in multi-select rows; exactly one border on the search input; the confirm control carries disabled at zero selected; one footer bar). The reference is the design system's own composition (objectui AGENTS.md rule #3, "serializable Shadcn": follow Shadcn's DOM structure), ⛔ never a reference image checked into the repo — runs/README.md keeps screenshots out of git, and this angle keeps that.

Prose that counts the angles follows the table: 「Five READ-ONLY gap-hunter agents」 and step 2 「Dispatch the five hunters」 in SWEEP.md; five-angle in the skill's description line, 「5 个 hunter」 and 「五个角度」 in .claude/skills/checklist-author/SKILL.md. North Star priority rule 4: a doc or skill written for AI that says the wrong count is a product defect, so the count words change with the row. Row position is not content: the maintainer has a planned sweep instruction for a "four promises" angle (#22172, 「加第六角:四个承诺」); whichever lands first takes the next number.

⛔ Not this card

Landing shape

  • PR 1: docs/qa/platform-checklist/SWEEP.md — the row and the two count words; Fixes this card; skip-changeset; Clause-②: no; node scripts/check-platform-checklist.mjs stays green.
  • PR 2: .claude/skills/checklist-author/SKILL.md — the three count words only; references this card; Tier S: draft until the contract review PASS, then ready → queue; the skill lints (check-skill-line-ratchet, check-skill-id-lint) green.
  • Acceptance: the table has the row above in the table's grammar; every count word in both files agrees with the table; nothing else in either file moves.

Dedupe: the 128 open objectstack issues were listed through the repository endpoint and scanned (title and body) for coverage sweep / sweep angle / 第六角 / 第七角 / 设计师经手 / 美观 / design system: 0. Prior rulings read: recordpickerdialog, design system, 设计系统, 美观, visual baseline, shadcn → 0 hits.

Related: docs/qa/platform-checklist/SWEEP.md · docs/qa/platform-checklist/RUNNER.md (screenshot outranks dom) · .claude/skills/checklist-author/SKILL.md · #22172 · objectui AGENTS.md rule #3 · objectui apps/console/src/preview-gallery.tsx.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions