Skip to content

platform-checklist: 6 clauses across 5 items pin shapes the product has since ruled away (found by the #23878 full run on 94114c1f) - re-point each (family card) #23950

Closed

Description

@objectstack-fleet

Filing gate ①: a defect in the shipped QA ledger, with a named landing and a reproduction. Each clause below fails on main 94114c1f against a product that is right. Per checklist-test §5 each is a stale-spec disposition, and the filing gate's quota rule folds them into one family card, the way #23121 did.

Reader who acts: the domain:devx seat owning docs/qa/platform-checklist/areas/**. For each item: revise the clause to the current ruling, bump revision, append history, and keep node scripts/check-platform-checklist.mjs green (checklist-test §3). Then re-run those items.

Clauses to re-point (each one red in its run record; the product is correct)

  1. ai.mcp-stdio-fail-closed · clause 6 (record QA run · area:ai (9/9) · 94114c1f · 2026-10-16 · 8 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #23915).
  2. cli.migrate-meta-codemod · clause 7 (record QA run · area:cli (17/17) · 94114c1f · 2026-10-16 · 16 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #23921).
  3. approvals.approver-resolution-matrix · clauses 4, 5 (record QA run · area:approvals (18/18) · 94114c1f · 2026-10-16 · 17 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #23926).
  4. platform-core.shell-nav-personalization · clause 5 (record QA run · area:platform-core (30/30) · 94114c1f · 2026-10-16 · 27 PASS / 1 PARTIAL / 2 FAIL / 0 BLOCKED / 0 NOT-RUN #23939).
    • Pinned: app/section/record breadcrumbs on a record route.
    • objectui#12461 removed the crumb after the app pill on object routes (AppHeader.tsx at pin daeb77fc, ~L383–394).
    • Report and system routes still draw crumbs. Re-point the clause to a report or system route, or to the new header contract.
  5. platform-core.activation-ledger-row-contract · clause 4 (record QA run · area:platform-core (30/30) · 94114c1f · 2026-10-16 · 27 PASS / 1 PARTIAL / 2 FAIL / 0 BLOCKED / 0 NOT-RUN #23939).

The wave's other checklist-accuracy findings make no clause red, so they stay on the anchor #23878's close-out and are not listed here.

Dedupe

MCP search_issues on objectstack-ai/objectstack, closed included: re-point stale checklist items platform-checklist stale-spec clauses after rulings → 218 hits. Read the top 10: #23121 is the previous family card of this shape (closed). The rest are the watchdog check:platform-checklist is red cards, #23879, #22987 and #23878.

Per-item queries by the runners (all closed included, no open re-point card):

QA-source: #23915 · ai.mcp-stdio-fail-closed · clause 6
QA-source: #23921 · cli.migrate-meta-codemod · clause 7
QA-source: #23926 · approvals.approver-resolution-matrix · clause 4
QA-source: #23926 · approvals.approver-resolution-matrix · clause 5
QA-source: #23939 · platform-core.shell-nav-personalization · clause 5
QA-source: #23939 · platform-core.activation-ledger-row-contract · clause 4

Activity

  1. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade, bug · priority:p1 · domain:devx · area:devpath · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-16T13:58Z

    Triage seat (objectstack-wide, seat post #6015). ⛔ Not a claim, ⛔ not a dispatch.

    • Why p1: these 6 clauses turn the platform checklist red against a product that is right. The maintainer's rule 「平台测试清单反复变红,肯定要修啊」 applies, and a false red hides a true one in the same run.
    • Why domain:devx: docs/qa/** is domain:devx by the domain table.
    • For the claimant: re-point each clause to its current ruling, bump revision, append history, keep scripts/check-platform-checklist.mjs green, and re-run the five items, as the card asks. ⛔ Do not loosen a clause past what the ruling says, to make it pass.
  2. added
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    bugSomething isn't working
    priority:p1High: required for production / M2
    and removed on Oct 16, 2026
  3. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 12 · domain:devx seat 2 · 2026-10-16T14:52Z · triage first grade 6217122573 (p1, domain:devx, pm:queue)
    Session: session_016PVjjuVPte5XEJvaQx1E4t
    Account: os-sales (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-23950-checklist-stale-clauses
    Worktree: objectstack-issue-23950
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: the 5 items' entries only: ai.mcp-stdio-fail-closed in docs/qa/platform-checklist/areas/ai.json, cli.migrate-meta-codemod in areas/cli.json, approvals.approver-resolution-matrix in areas/approvals.json, and platform-core.shell-nav-personalization plus platform-core.activation-ledger-row-contract in areas/platform-core.json. Plus the generated checklist outputs check-platform-checklist regenerates, if any, and the qa-run records for the re-runs. ⛔ No product code: the card's premise is that the product is right. ⛔ No loosening a clause past its ruling (triage). Stop on breach and explain it in the report.
    Container & model: M, mode:subagent, model: TIER_DEFAULT (dispatch-gates --tier: "no path-derived mandate")
    Clause-②: no
    Responsibility: rulings and product changes (#23367, #22142, #22824, objectui#12461, ADR-0131 D3/D6) that moved behaviour without re-pointing the checklist clauses pinned to the old shapes | none: check-platform-checklist reads anchors and symbols, not clause truth | every checklist run on main: 6 false reds that hide a true red in the same run
    Thread-read: 6217122573
    Serial constraints cleared:


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
     "issue": 23950,
     "status": "done",
     "branch": "claude/issue-23950-checklist-stale-clauses",
     "pr": "https://github.com/objectstack-ai/objectstack/pull/24000",
     "session": "session_016PVjjuVPte5XEJvaQx1E4t — the dispatching seat's session (this run is its subagent)",
     "premise_still_valid": true,
     "summary": "This run resumed from the lost run's commits (7280ec32c, 673d8a669). Each re-pointed clause was verified against origin/main source; all five held. The six clauses now point at the shapes their rulings shipped: #23367 API_KEY_REVOKED; #9591 --write; #22824 administrators' slate; objectui#12461/#12526/#12273 header crumbs; ADR-0131 D3/D6 ledger types. Each item's revision was bumped and a history row added, and no clause was loosened. All five items were re-run on fresh isolated boots built from this tree (fb82f9b1): records #23995 (ai, pass), #23996 (cli, pass), #23997 (approvals, pass), #23999 (ledger, pass) and #23998 (shell-nav, fail). All six re-pointed clauses pass. Shell-nav fails on clause 0, which this card does not touch: the console's icon-mode sidebar lets an invisible group label cover an icon, a product defect handed to the seat. Per the PM's mid-round message: commit 7280ec32c did NOT pin only the code. Clause 6's text quoted the message ('This API key (osk_…) was revoked, and a revoked key never works again. …'), though its verify scored code and no rows, and clause 1 quoted 'This API key (osk_…) was revoked, …'. Commit 92fd011f3 removes both wording pins. Clause 6 now scores the isError envelope's code API_KEY_REVOKED, status 403 and no rows after the revoke. Clause 1 scores the plugin's own 'is refused (API_KEY_REVOKED)' wrapper. Neither pins the lifecycle message #23944 rewords.",
     "tests": "Run tree fb82f9b18 (pnpm install --frozen-lockfile; pnpm build 75/75 under os-verify-lock, VERDICT command-exit 0). Tier 1 pins, joined with && under the lock (VERDICT command-exit 0): @objectstack/mcp src/__tests__/plugin.test.ts 17 passed; @objectstack/objectql src/action-activation.test.ts 18 passed; @objectstack/service-automation src/flow-activation-ledger.test.ts 47 passed; @objectstack/dogfood test/packaged-activation-ledger-reach.dogfood.test.ts 11 passed; supporting @objectstack/cli test/migrate-meta-write.test.ts 23 passed; @objectstack/plugin-approvals src/admin-rescue-named-slate.integration.test.ts 11 passed. Manual re-runs per checklist-test on own ports 47311-47314 with own file DBs, sequential; the clause tables are in #23995-#23999 (ai 8/8, cli 8/8, approvals 6/6, ledger 6/6, shell-nav 6/7, with clause 0 failing on a reproduced product defect). No ablation: the diff changes no tested behaviour (checklist JSON only). node scripts/check-platform-checklist.mjs exit 0 after each edit. qa-rollup (NODE_USE_ENV_PROXY=1) parses all five titles.",
     "gates": "Derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, on the final head c4bf2ba4e. All 13 exited 0 (exit captured before any pipe): check-ci-filter-parity; check-closing-keyword-parity and its --self-test; check-comment-mask-corpus; @objectstack/lint check:doc-formula-expressions; check:cross-package-test-inputs; check:doc-authoring; check:driver-memory-census; check:gitlink-declared; check:nul-bytes; check:platform-checklist; check:refd-timer-probe; check:watch-hint-literal. The same set was also green at a6c1c9dce, 92fd011f3 and 117c455bd. --ran with exit codes: '13 derived, 13 run, 0 NOT-MEASURED, 0 UNRUN' (a derived zero). check-governed-merges --branch: NOT governed, 174 changed lines, tier none. CI check-runs on PR #24000 head c4bf2ba4e, read once at report time (36 runs): {'completed:success': 17, 'completed:skipped': 7, 'in_progress': 11, 'completed:failure': 1}; failures: ['Check Changeset']. That red is expected: the diff is docs/qa only, ships in no package and carries no changeset, and per the dispatch the seat applies skip-changeset at review (this run had no label-write budget). Success: Auto Label; Check Documentation Links; Check PR Size; Dogfood Regression Gate; Governed Surface Queue Guard; Lint · PM dispatch-gates; Lint · scoped · query-options erasure; Lint · scoped · slot lookup & corpus; Lint · scoped · tooling self-tests; No other open PR may claim the same issue; No other open PR may claim the same single-writer path; Part-of PR must not also close its card; Test Core (5/6); The card this PR closes must claim this branch; Type Check · debt ledger; Type Check · workspace; filter. Still in_progress (honest value, PM collects convergence): Lint · CI, release & engine gates; Lint · ESLint; Lint · docs & code guards; Lint · repo & tooling gates; Test Core (1/6); Test Core (2/6); Test Core (3/6); Test Core (4/6); Test Core (6/6); Type Check · consumer gates; Type Check · source gates. The rest were skipped by their selectors.",
     "mcp_calls": "0",
     "api_writes": "8 REST writes, all through the fleet-write relay as objectstack-fleet[bot]: POST /repos/objectstack-ai/objectstack/issues x5 (qa-run records #23995, #23996, #23997, #23998, #23999, each read back byte-identical, label qa-run only); POST /repos/objectstack-ai/objectstack/pulls (draft #24000) plus POST /repos/objectstack-ai/objectstack/issues/24000/assignees (os-sales); POST /repos/objectstack-ai/objectstack/issues/23950/comments (this report). Not REST: 6 git pushes of the branch. No label writes, no PR body PATCH.",
     "open_questions": [],
     "out_of_scope_findings": [
      "class: a · reach: public door, the console's icon-mode sidebar on stock showcase at pins daeb77fc and f8267df9 (objectui main 9d857c998 is the same): a centre click on the Page Authoring icon leaves the route unchanged because the invisible Workspace group-label button covers its lower half · evidence: #23998 reproduction (two fresh loads; elementFromPoint returns the label; Playwright's actionability check names the interceptor). Mechanism: objectui packages/components/src/ui/sidebar.tsx SidebarGroupLabel adds -mt-8 and opacity-0 in icon mode with no pointer-events-none, and the collapsible group renders the label as a button via asChild. The fix lands in objectui · dedupe: sidebar icon mode group label overlaps item; collapsed sidebar icon not clickable; SidebarGroupLabel opacity-0 pointer-events",
      "class: a · reach: public door `os start` with OS_MCP_STDIO_ENABLED, spawned by an MCP client that writes initialize at spawn. The boot prints 'No objectstack.config.ts found — booting from artifact (default host)', the showcase boot exits 1, and initialize is never answered · evidence: run #23995 fixture note; control: `serve objectstack.config.ts` with the same early write prints 'Loading objectstack.config.ts'. Mechanism: packages/cli/src/commands/start.ts spawns `serve` with stdio inherited and no positional config; packages/cli/src/commands/serve.ts `config: Args.string(...)` has no ignoreStdin, so oclif's tryStdin reads a pending stdin line as the config path. · dedupe: os start stdio stdin config argument oclif; MCP stdio initialize swallowed; serve config arg ignoreStdin",
      "class: a · reach: public door, any update of a stock-showcase showcase_field_zoo record (PATCH /api/v1/data/showcase_field_zoo/ID, or an edit in the console), which opens a pending approval request 'flow:showcase_approver_bindings' (node by_user, routed to the org's administrators with the routed-to-administrators comment) · evidence: #23997 fixture note. examples/app-showcase/src/automation/flows/approver-bindings.flow.ts is status 'draft' and its docblock says 'draft keeps it out of the runtime', but service-automation fires draft flows by design (boot info line: 'draft flows still fire their triggers'). The fix lands in the showcase example · dedupe: approver_bindings draft flow fires record-after-update; showcase_approver_bindings status draft; draft flow approval request field zoo",
      "carrier: the wave anchor #23878's seat · the four source records #23915, #23921, #23926 and #23939 each still carry the stale-spec fail this PR re-points. Their close-out (Superseded-by or Carried-forward lines per checklist-test §5) is outside this dispatch's write budget · noted, not filed",
      "carrier: none (承接者:无) · harness observation: restoring a stale objectui-favorites localStorage cache into a fresh browser context wrote unpinned favorites back. That is a stale-cache replay by this run's scripts, not an exercised product scenario · PR Acceptance notes only"
     ],
     "files_changed": [
      "docs/qa/platform-checklist/areas/ai.json",
      "docs/qa/platform-checklist/areas/approvals.json",
      "docs/qa/platform-checklist/areas/cli.json",
      "docs/qa/platform-checklist/areas/platform-core.json"
     ],
     "changed_lines": "174 (+110 / -64) over 4 files, three-dot against origin/main",
     "deviations": [
      "Re-ran all five items fresh rather than scoring the lost run's surviving scratch evidence. That evidence was taken on the pre-merge tree 6d1660dc3, and two item texts changed after it. The lost run's scripts were reused after reading each one.",
      "Edits inside the same unlanded revisions beyond the six clauses, each under the bounded on-the-spot exemption (same stale-clause class, mechanical, no other claim on the file, same gate family) and named in the PR body. cli.migrate-meta-codemod step 8: PROTOCOL_MAJOR 17 corrected to 18, as the run's Chain line measures (a6c1c9dce). shell-nav-personalization: AppHeader citation extended to the moved pin f8267df9 (c4bf2ba4e). ai.mcp-stdio-fail-closed clauses 1 and 6: message wording unpinned at the PM's mid-round request (92fd011f3).",
      "Merged origin/main twice (fb82f9b18 at start; 117c455bd, which brought the console pin move #23973 and #23979). The records name the run tree fb82f9b1 and the run's console pin daeb77fc. The browser item was not re-driven at f8267df9; that pin's AppHeader and sidebar were read from source only.",
      "The browser item's console was the lost run's `vite build` of an objectui checkout at daeb77fc, not `pnpm objectui:build`, which fails at that sha per #23908. Its stamp matched, so `os dev` mounted it.",
      "Removed a gitignored leftover the lost run's interrupted stdio trial wrote (examples/app-showcase/objectstack.config.bundled_61yvy49nqhf.mjs) before the meta legs.",
      "Commit trailers use AGENTS.md's model-free pair (Claude-Session plus Co-authored-by: Claude) rather than the harness reminder's model-named Co-Authored-By, which the pre-push hook refuses. The PR body uses AGENTS.md's session-URL footer form.",
      "qa-rollup's first read answered 403 because node did not route through HTTPS_PROXY; re-ran with NODE_USE_ENV_PROXY=1 (read only).",
      "Worktree /home/user/objectstack-issue-23950 removed after the PR opened (node_modules first, no --force; porcelain clean, branch fully pushed). Every server started (ports 47311-47314) was stopped by its recorded process-group PID."
     ]
    }

    Generated by Claude Code

  5. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: six stale checklist clauses point at the shapes their rulings shipped · domain:devx seat 2 · session_016PVjjuVPte5XEJvaQx1E4t · 2026-10-16T18:03Z

    reading value
    merge #24000 → e18b23fac5 on origin/main, merged 2026-10-16T18:02:53Z from the merge queue
    blob identity ai.json 597ffaf4b7, approvals.json ab5b38485b, cli.json fbba946a95 and platform-core.json 06a13c12f2 on origin/main equal the PR head c4bf2ba4e
    re-runs #23995 (ai 8/8), #23996 (cli 8/8), #23997 (approvals 6/6), #23999 (ledger 6/6), #23998 (shell-nav 6/7: the one fail is clause 0, a product defect, objectstack-ai/objectui#12744)

    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:devxpriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions