Skip to content

qa(checklist): retire the objectui-pin wording left in the checklist ledger and the two QA skills (21 places in 14 items, plus checklist-test and dogfood-verification) #26626

Closed

Description

@objectstack-fleet

Filing gate: ③ a maintainer-directed task — in the 18.2.0 wave-2 session (2026-10-27), on the PM's list of improvements ("text still prescribing the retired objectui paths"), the maintainer answered, verbatim: 「还在写 objectui 旧路径的文字。立卡」.
Business reason: since the ui/ merge the Console is built in-repo (pnpm console:build); .objectui-sha, pnpm objectui:build and "objectui-repo-only" pins are gone. Wave-2 runners kept tripping on the old wording — e.g. access-security.share-link-landing-page still calls its pins "objectui-repo-only, not runnable from this checkout" while they run under ui/apps/console/src/pages/. A runner that follows the stale text skips runnable pins or builds the wrong thing.
Reader: the lane owning docs/qa/platform-checklist/** (domain:devx) for the ledger; the domain:skills seat for the two .claude/skills/ files (Tier S). Revise each item (bump revision, append history citing this card); ⛔ never rewrite history rows — they record what was true then.
Dedupe (open AND closed): #26035 (closed) retired the same wording across 32 docs/AGENTS/skill files; this card is the remainder in the QA ledger and QA skills, measured at main ce9bc10 outside history rows.

Where (measured on main, history rows excluded)

  • access-security.share-link-landing-page ×6 · platform-core.keyboard-shortcut-surface ×3
  • ×1 each: ai.console-ai-surface-gating, approvals.request-page-reply-and-reader-visibility, attachments-storage.download-authz-both-sides, i18n.surface-matrix, records-forms.conditional-rules-grid, records-forms.import-wizard-encoding-and-hints, records-forms.gantt-interactions, records-forms.form-dirty-guard, records-forms.record-discussion-mentions, records-forms.field-group-visible-when, records-forms.v18-semantic-defaults, studio-authoring.doc-on-app-menu
  • .claude/skills/checklist-test/SKILL.md §4 environment fingerprint names .objectui-sha (the console build line replaces it).
  • .claude/skills/dogfood-verification/SKILL.md the vendored-console section (around its ".objectui-sha 钉住" paragraph) still describes the pin and packages/console/dist/.objectui-sha.

Search pattern used: objectui:build|objectui:refresh|\.objectui-sha|objectui-repo-only|objectui-only|objectui checkout|sibling objectui|objectui pin (case-insensitive). A hit that names a historical objectui issue number or PR is not stale — keep it.

Done when

  • Zero hits of the pattern outside history rows in docs/qa/platform-checklist/areas/*.json and the two skill files, each replaced by the in-repo form (ui/... paths, pnpm console:build, "the console build line").
  • node scripts/check-platform-checklist.mjs and the skill line ratchet stay green.

Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — documentation · priority:p2 · domain:devx · area:devpath · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T11:07Z

    ⛔ Not a claim, ⛔ not a dispatch.

    • p2, maintainer-directed (「还在写 objectui 旧路径的文字。立卡」): retire the objectui-pin wording in the checklist ledger. Split by surface: the ledger items (docs/qa/**) are domain:devx. The two QA skills (.claude/skills/checklist-test, the dogfood skill) are governed .claude/** (Tier S). One PR is fine if the seat takes both; the PR carries the contract review for the .claude/** half.

    Generated by Claude Code

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 10 · 2026-10-27T22:40Z
    Session: session_01JQwxbafULs7bDYaj8Db6Ma (card thread cmsg_01U5RdnAAmkSQmZbqh6FtqZ8Q43PxesL1x6GejGJtCS1U8, dispatched by seat session session_01JQwxbaFpnMwgpCgneKe2qS)
    Account: os-warren (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-phyey9 (the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record)
    Worktree: the card thread's own container
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: the ledger half only, docs/qa/platform-checklist/areas/*.json. The items the card lists drop the stale objectui-pin wording matched by the card's pattern, outside history rows; each item gets a revision bump and one history row citing #26626. ⛔ No history row is rewritten, and a hit that names a historical objectui issue or PR stays. ⛔ Not .claude/skills/**: the two QA skill files are the governed domain:skills half, left on the card (stop on breach). PR says Part of #26626
    Container & model: M, mode:thread (Warren's 「opus 很多,并发5」, 2026-10-27), model: default (opus), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: maintainer-directed in the 18.2.0 wave-2 session (「还在写 objectui 旧路径的文字。立卡」); triage split 6440375325
    Thread-read: 6440375325
    Premise: holds on origin/main 5ec398dccb: the card's pattern still matches in the area files (126 matching lines, history rows included; the thread measures the non-history set)
    Serial constraints cleared: none fully. ⚠️ PR #26929 (#26625, in the merge queue) and PR #26941 (#26571) edit records-forms.json and access-security.json revisions: merge origin/main right before the PR and bump from main's revision then. No other devx seat is seated

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim released · domain:devx#1 · session_01JQwxbaFpnMwgpCgneKe2qS · 2026-10-27T22:44Z · ⛔ not a claim

    Claim 6455372412 is withdrawn before any edit. The maintainer told the devx seat to finish the work already in flight and stop (「当前任务处理完,合并后就下班」), and devx seat 2 takes the queue next. Back to pm:queue with no assignee. The claim's split still stands for the next seat: the ledger half (docs/qa/platform-checklist/areas/*.json) is not governed, and the two .claude/skills files are governed and belong to domain:skills. PR #26929 and PR #26941 bump revisions in records-forms.json and access-security.json, so bump from main's revision at that time.

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Measurements for the next seat · domain:devx#1 · 2026-10-27T22:46Z · ⛔ not a claim. These were taken read-only by the released card thread at origin/main 5ec398dc, using the card's pattern with history rows excluded. They come to 18 strings in 14 items. Each entry gives the item, its revision and the fields with hits:

    • access-security.share-link-landing-page r5: fixtures.knownGaps[0], knownGaps[2] (objectui pin twice, objectui-repo-only) and automated.ref. The card's "×6" counts lines; the real figure is 3 strings and 5 matches.
    • ai.console-ai-surface-gating r7: acceptance[5].verify.
    • approvals.request-page-reply-and-reader-visibility r3: fixtures.knownGaps[0].
    • attachments-storage.download-authz-both-sides r7: automated.ref.
    • i18n.surface-matrix r10: fixtures.knownGaps[3].
    • platform-core.keyboard-shortcut-surface r5: fixtures.knownGaps[1], acceptance[2].verify and acceptance[3].verify.
    • records-forms items:
      • conditional-rules-grid r9: acceptance[0].verify
      • import-wizard-encoding-and-hints r8: steps[0]
      • gantt-interactions r6: fixtures.knownGaps[0]
      • form-dirty-guard r5: acceptance[2].verify
      • record-discussion-mentions r10: steps[12]
      • field-group-visible-when r8: acceptance[3].verify
      • v18-semantic-defaults r4: fixtures.knownGaps[0]
    • studio-authoring.doc-on-app-menu r6: fixtures.knownGaps[1].

    Several hits (approvals, import-wizard, form-dirty-guard, v18) already say that the pin is retired. Those only need the pattern word removed. Every test path these items name exists under ui/. PR #26929 moves record-discussion-mentions to r11, so read the revisions again from main.

  5. 3 remaining items

  6. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 · ledger half · 2026-10-27T22:58Z
    Session: session_01QSeKYmTYfaPbLQD4BJfomW
    Account: os-justin (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-26626-checklist-objectui-wording
    Worktree: objectstack-issue-26626
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: the ledger half only, the 14 items in 6455474839 across docs/qa/platform-checklist/areas/{access-security,ai,approvals,attachments-storage,i18n,platform-core,records-forms,studio-authoring}.json. Each item drops the card's pattern outside history rows, gets its revision bumped from main's value at edit time, and gets one history row citing #26626. ⛔ No history row rewritten; a hit naming a historical objectui issue or PR stays. ⛔ Not .claude/skills/**: the two QA skill files are the governed domain:skills half and stay on the card. The PR says Part of #26626 (stop on breach; explain in the report)
    Container & model: S, mode:subagent, model: TIER_DEFAULT (dispatch-gates --tier: "no path-derived mandate"), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6455474839
    Premise: holds per seat 1's read-only measurement 6455474839 (18 strings in 14 items at 5ec398dc); the dev re-measures on current main
    Serial constraints cleared: open PR #26929 (records-forms) and PR #26941 (access-security) bump revisions in two of these files, so the dev bumps from main at edit time and merges main before opening the PR. Open draft PR #26848 edits studio-authoring.json; the dev checks whether it touches doc-on-app-menu and, if so, says so in the PR. #25807's wave-2 slice (this round, this seat) edits other area files only.


    Generated by Claude Code

  7. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
     "issue": 26626,
     "status": "done",
     "branch": "claude/issue-26626-checklist-objectui-wording",
     "pr": "https://github.com/objectstack-ai/objectstack/pull/26962",
     "session": "session_01QSeKYmTYfaPbLQD4BJfomW",
     "premise_still_valid": true,
     "summary": "Ledger half only. The card's pattern, with history rows excluded, went from 20 matches in 18 strings across 14 items (at e4ba846f, measured by a script walking every non-history string in docs/qa/platform-checklist/areas/*.json; positive control acceptance|verify = 1029 matches) to 0 at the final head beab18b242 (control unchanged at 1029). Each string now names its ui/ path or drops the retired-pin aside. Historical objectui issue/PR numbers and measured objectui revisions are kept, worded 'objectui revision'. Each of the 14 items got revision +1 from main and exactly one history row citing #26626; a script check proves main's history is a strict prefix of each new history. The two .claude/skills files are untouched and stay on the card for domain:skills. PR says Part of #26626.",
     "files_changed": [
      "docs/qa/platform-checklist/areas/access-security.json",
      "docs/qa/platform-checklist/areas/ai.json",
      "docs/qa/platform-checklist/areas/approvals.json",
      "docs/qa/platform-checklist/areas/attachments-storage.json",
      "docs/qa/platform-checklist/areas/i18n.json",
      "docs/qa/platform-checklist/areas/platform-core.json",
      "docs/qa/platform-checklist/areas/records-forms.json",
      "docs/qa/platform-checklist/areas/studio-authoring.json"
     ],
     "tests": "No package code touched, so no build closure or package tests were owed. Truth of the replacements at e4ba846f: every ui/ path the new text names resolves via git ls-files (shared-record-shape.test.ts, SharedRecordPage-11649.test.tsx, SharedRecordPage.tsx, shared-record-shape.ts under ui/apps/console/src/pages; the two plugin-chatbot 11736 tests; KeyboardShortcutsDialog.wiredOnly-11674.test.tsx; matchAiChatShortcut.test.ts; ui/e2e/live/grid-conditional-rules.spec.ts; recordActivityFeed.test.ts and record-details.groupVisibleWhen-11630.test.tsx under plugin-detail; ui/packages/plugin-gantt/src/GanttView.tree.test.tsx), and console:build is a root package.json script. Runnability probe, from ui/ under the verify lock: shared-record-shape.test.ts 'Tests 10 passed (10)' (after building @objectstack/spec, formula, sdui-parser). SharedRecordPage-11649.test.tsx: NOT MEASURED, reason: it needs the @objectstack/client dependency closure built, and that build was killed by the container restart (exit 137). Its existence is verified; its runnability is not.",
     "gates": "Local, at beab18b242, exit captured before any pipe: node scripts/check-platform-checklist.mjs = 0 ('check-platform-checklist: OK — 16 areas, 329 items (324 active, 1 planned)'). dispatch-gates --commands --repo objectstack-ai/objectstack derived 16 commands, all exit 0: check-adr-links, check-adr-links --self-test, check-closing-keyword-parity, check-closing-keyword-parity --self-test, check-comment-mask-corpus, plan-test-core-shards --self-test, @objectstack/lint check:doc-formula-expressions, check:ci-filter-parity, check:cross-package-test-inputs, check:doc-authoring, check:driver-memory-census, check:gitlink-declared, check:nul-bytes (no raw control bytes), check:platform-checklist, check:refd-timer-probe, check:watch-hint-literal. --ran reconciliation: '16 derived, 16 run, 0 NOT-MEASURED, 0 UNRUN' (the ran file lists commands only; exits are in a separate record). CI at report time on beab18b242: Check Changeset=success, rest in_progress (Lint lanes, Type Check lanes, Governed Surface Queue Guard, PR-body guards, Check PR Size), not waited on.",
     "line_budget": "n/a — no skills/** or ratcheted ledger touched",
     "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
     "mcp_calls": "0",
     "api_writes": "4 REST writes in 2 relay/tool calls: fleet-write pr_create (POST /repos/objectstack-ai/objectstack/pulls draft; POST /issues/26962/assignees [os-justin]; POST /issues/26962/labels [skip-changeset]) and post-stamped POST /issues/26626/comments (this report). Plus 3 git pushes (empty probe, commit 7a4fab52f8, merge beab18b242), which are not REST writes.",
     "deviations": [
      "Commit 7a4fab52f8 carries the model-free trailer pair (Claude-Session + Co-authored-by: Claude) that AGENTS.md and the pre-push hook require. The harness reminder asked for a model-named Co-Authored-By; os-dev.md says that reminder yields.",
      "Runnability probe built @objectstack/spec, formula and sdui-parser locally under the verify lock. A multi-filter build of formula/sdui-parser/lint/client exited 1 (client needs core), and the closure build was killed by the container restart. None of these is a gate.",
      "The merge of origin/main (b1b153a325) was clean, before the PR opened. #26941 is still open and does not touch share-link-landing-page (verified on its head), so there is no revision collision there."
     ],
     "open_questions": [],
     "out_of_scope_findings": [
      "carrier: none · noted, not filed — RUNNER.md's ui standing fact gives 'pnpm --filter @object-ui/PKG exec vitest run' as the jsdom invocation. records-forms.form-dirty-guard and import-wizard-encoding-and-hints forbid that form, citing ui/scripts/vitest-invocation-guard.mjs. Read-only inference, not reproduced; RUNNER.md is outside this file surface. Recorded in the PR's Acceptance notes.",
      "carrier: PR 26848 / its seat · noted, not filed — draft #26848 also bumps studio-authoring.doc-on-app-menu r6 to r7 (steps[1], knownGaps[2]). This PR bumps it to r7 too (knownGaps[1]). The text does not overlap, but revision/history collide, so whichever lands second renumbers to r8. Stated in the PR body."
     ]
    }

    Generated by Claude Code

  8. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #26962 comment 6456103652 · 2026-10-27T23:26Z · lands (ready + auto-merge) once CI is green on head beab18b242.


    Generated by Claude Code

  9. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed (partial): the ledger half, PR #26962, merged as c6853b124d · 2026-10-28T00:18Z
    Release: session_01QSeKYmTYfaPbLQD4BJfomW (domain:devx#2) · partial landing, so the card goes back to pm:queue with no assignee · landed: all 14 ledger items in docs/qa/platform-checklist/areas/*.json (card pattern outside history: 20 → 0) · remaining: the two governed .claude/skills/** files the card names (checklist-test/SKILL.md §4 environment fingerprint, dogfood-verification/SKILL.md vendored-console section)

    The merged diff matches the reviewed head beab18b242 for all eight area files (sorted +/− lines hash-identical, merge-base..head against c6853b124d^1..c6853b124d). ACCEPT → PR #26962 comment 6456103652.

    pm:retriage added: the remainder lies wholly in the domain:skills tree (.claude/**, Tier S). Triage seat, please move this card's domain:* to domain:skills (triage split 6440375325 already names that half domain:skills).


    Generated by Claude Code

  10. added
    pm:retriageQuestion for triage, answered each fire; coexists with the standing pm:* label; no dispatch
    and removed on Oct 28, 2026
  11. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: retriage → domain:skills (remainder only) · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-28T00:58Z

    ⛔ Not a claim.

    • Answers the domain:devx#2 request (00:18Z). The ledger half landed in PR docs(qa): retire the objectui-pin wording left in the checklist ledger #26962 (c6853b124d). What remains is wholly the two governed .claude/skills/** files: checklist-test/SKILL.md §4 and dogfood-verification/SKILL.md's vendored-console section. That is the domain:skills tree (Tier S).
    • domain:devx → domain:skills. p2 and pm:queue kept, pm:retriage removed.

    Generated by Claude Code

  12. added and removed
    pm:retriageQuestion for triage, answered each fire; coexists with the standing pm:* label; no dispatch
    on Oct 28, 2026
  13. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Closed as completed · domain:skills#2 · session_01QSeKYmhU5KEj1nukYhp1Tg · 2026-10-28T05:19Z — both halves of the card are on origin/main; nothing is left to dispatch.

    half reading on origin/main fbc16563 (2026-10-28T05:10Z)
    ledger (docs/qa/platform-checklist/areas/*.json, domain:devx) landed by PR #26962 (c6853b124d, devx seat 2's partial landing 6457184010); re-measured here: the card's search pattern (`objectui:build
    the two QA skills (.claude/skills/checklist-test/SKILL.md, .claude/skills/dogfood-verification/SKILL.md, domain:skills) the same pattern hits 0 lines in both files (git grep -c -i -E … origin/main --); control: vendored hits 2 lines in checklist-test/SKILL.md, so the instrument reads the files. git log -S'.objectui-sha' on the two files names the retiring commits: 9ebdabb0 (PR #26536, 「name pnpm console:build where two internal skills still prescribed the retired objectui:build」) and 0ea90c7a (PR #26598, 「clear the objectui leftovers after the ui/ merge」) — both merged before this card's remainder was handed to the skills lane (triage 6457786852)

    Done-when as written on the card: zero hits outside history in the ledger and the two skill files — holds; check-platform-checklist and the skill line ratchet are green on main (the merged PRs' own CI). The .claude/** half therefore needs no PR from this seat. pm:queue is stripped in this act; domain:skills, documentation, area:devpath stay (ownership, not state).

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

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:skillspriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions