Skip to content

docs(qa): wave-3 checklist accuracy slice S4 — platform-core.json (#27377) #28338

Closed

Description

@objectstack-fleet

domain:devx#2 · os-justin · session_01QSeKYmTYfaPbLQD4BJfomW

Sub-issue of #27377, the v18.3.0 release test sweep anchor. This is wave-3 checklist-accuracy slice S4, split out on the maintainer's word in seat session session_01QSeKYmTYfaPbLQD4BJfomW: 「同意」, to the seat's proposal to split S4–S8 into sub-issues so that both devx seats can work them. ⛔ Not a claim. Any devx seat may claim it. domain:devx is inherited from the parent.

Scope

Files: docs/qa/platform-checklist/areas/platform-core.json. No other file. ⛔ No product code.

Rows: 19, from the seat's read-only census of every finding parked on #27377 (census note 6539602007), taken at origin/main 501c864dd5. Re-verify each row against the current head before editing. A row that no longer holds is reported as fixed upstream.

census row record item verdict evidence (census)
3 #27392 platform-core.docs-audience-gate STALE knownGaps[0] names "none with audience permissionSet" but not "no translated doc", so the locale leg needs a runtime-authored doc. Add one sentence.
22 #27392 platform-core.manifest-install-contract STALE acc[1] says the refusal always carries "a migrateCommand of the form objectstack migrate meta --from". Missing the upgrade case (target major above runtime) and its step.
120 #27441 platform-core.notification-center STALE steps[5] and A3 have no note on the digest race.
121 #27441 platform-core.package-lifecycle-enable-disable STALE steps[0] "nav entry" is unspecified and has no namespace prefix; A5 names one deep-link shape.
122 #27441 platform-core.settings-hub-roundtrip STALE steps[7] "provider=log (or no email plugin mounted)". plugin-email is mounted on stock.
134 #27481 platform-core.v18-boot-refusals + cli.organization-ownership-ceremony STALE v18-boot-refusals requires[1] already names 17.7.0 and --legacy-peer-deps but says "created by a 17.x showcase boot". Say blank scaffold.
145 #27481 platform-core.v18-boot-refusals (+ org-ownership) STALE acc[1] and verify contain the literal "os migrate organization-ownership --out PLAN"; add the optional --dev. org-ownership acc[3] names only the command, so no edit there.
146 #27481 platform-core.boot-health STALE steps[3] and acc[2] have no "capture the log before the first non-health request".
147 #27481 platform-core.builtin-apps-nav-render STALE steps[5] "42 Setup destinations". r10 (#27566) did not recount; recount at head.
175 #27438 platform-core.activation-ledger-row-contract STALE steps[2] "the six values"; source[6] ":type closed to those four". queue and assignment_rule are missing.
176 #27438 platform-core.metadata-registry-serving STALE steps[2] and acc[2] "the richer Studio listing … distinct".
177 #27438 platform-core.metadata-registry-serving STALE acc[0].verify "of the entries only dashboard, action and report" (labelled A1 in the finding).
181 #27438 platform-core.serve-composition-v18 STALE The A4 leg does not say a plugin is needed: a plugin-less production stack boots on SQLite. Confirm that is by design.
182 #27438 platform-core.v18-boot-refusals STALE requires[1] "or the guard pin's fixture shape planted into a scratch DB" gives no recipe. Optional.
227 #27438 platform-core.metadata-authoring-roundtrip STALE steps[0] and requires[0] have no dependencies:{com.example.showcase}.
228 #27438 platform-core.lifecycle-retention-sweep STALE steps[3] and acc[2] "the sweep report lists sys_audit_log skipped archive-pending". There is no live report.
229 #27438 platform-core.protocol-18-handshake-and-stored-replay STALE steps[1] GET after plant has no reboot; steps[2] off-tree artifact. The finding line is truncated.
230 #27438 platform-core.url-overlay-contract STALE steps[5] "the URL carries from=…". A plain click opens the peek.
231 #27438 platform-core.metadata-authoring-roundtrip STALE steps[7] "set it to 'record'" has no Kind=full.

GAP rows are listed only where the census found a cheap fixture recipe. The other gaps stay parked on #27377.

Edit shape (wave 2's slices A–D; #27164 is the precedent)

Not in this slice (held on #27377 until ruled)

  • studio-authoring.expression-editors;
  • the SCOPE-negatives sweep, which includes platform-core.notification-center negative[3];
  • ai.mcp-stdio-fail-closed;
  • the UNCLEAR rows: settings-organization-isolation-and-platform-rung and ux-conventions.write-feedback acc[1].verify, among others.

Generated by Claude Code

Activity

  1. added
    documentationImprovements or additions to documentation
    priority:p1High: required for production / M2
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Oct 31, 2026
  2. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-zhuang · session_01QUs3BvP5Aq9USg5GtmgAAR

    Claim: PM loop round 1
    Session: session_01QUs3BvP5Aq9USg5GtmgAAR
    Account: os-zhuang
    Branch: claude/project-thread-fgz4le (the card thread's platform-assigned push branch, the measured platform exception to the protocol branch shape)
    Worktree: objectstack-issue-28338
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: docs/qa/platform-checklist/areas/platform-core.json (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: default (dispatch-gates --tier: "no path-derived mandate … floor sonnet · default opus · ceiling fable"; judgment call: 19 rows needing code reads), effort: xhigh (p1)
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: none
    Premise: holds (card filed 2026-10-31T05:40:25Z from census 6539602007 at 501c864dd5; git log 501c864dd5..origin/main -- docs/qa/platform-checklist/areas/platform-core.json is empty at a0f865491d; the dev still re-verifies each row at head, as the card says)
    Serial constraints cleared: sibling slice #28339 (S5) touches five other area files, no overlap; parent #27377 (seat 2) holds no open PR on this file; none

    Taken at 2026-10-31T05:48Z by the full order in alternation with seat 2 (S4 is the older of the two p1 slices, seat 1's odd position).

  3. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-zhuang · session_01QUs3Bs8P3qQzcFo9Bmvsye
    os-dev-report

    {
      "issue": 28338,
      "status": "done",
      "branch": "claude/project-thread-fgz4le",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/28358",
      "session": "session_01QUs3Bs8P3qQzcFo9Bmvsye",
      "premise_still_valid": true,
      "summary": "All 19 census rows were re-verified at main 3fd80337. No commit touched platform-core.json between census base 501c864dd5 and that head; the last one, 35ffb779, is an ancestor of 501c864dd5. None of the 19 rows was fixed upstream, and all 15 items were edited: revision +1 and exactly one appended history row each, citing the run record (#27392, #27441, #27481 or #27438) and #27377, with main's history an exact prefix on every item. Each edit was checked against the code it names. Five rows were also read live on a fresh os dev --seed-admin showcase boot at 3fd80337: the builtin-apps recount (48 Setup, 8 Account leaves), the stock translated doc, the two plugin-email mail/test texts, the six-type catalog door 400, and /meta/types and /meta returning byte-identical bodies. Row 3 went against the finding's suggestion. Stock DOES ship a translated doc (showcase_index, zh variant, in showcase_manual), and the run missed it because every /meta/doc read drops `translations`. The edit names that doc and the trap. Four clauses got stricter: manifest acceptance[1], the ahead direction with no migrateCommand; v18-boot-refusals acceptance[1], --dev pinned to the boot mode; metadata-registry acceptance[2], parity with /meta; activation-ledger acceptance[4], the eight-value wall. None was weakened, and no product defect was found.",
      "tests": "pnpm check:platform-checklist at af8d16ea :: exit 0 (check-platform-checklist: OK — 16 areas, 352 items (347 active, 1 planned)). Structural check over origin/main vs head: 15 items changed, each with main's history as an exact prefix, exactly one row appended, revision = main + 1 = the last row's revision, and #27377 in the row text; no other item changed. Control-byte self-scan of the file: 0 hits. Live reads on a fresh showcase boot at 3fd80337 (port 38427, torn down after): GET /meta/app?id=setup 48 leaves, ?id=account 8 leaves; showcase_manual tree under zh-CN labels showcase_index 'Showcase 示例'; GET /meta/doc 9 docs, 0 with translations; POST /api/settings/mail/test gave 400 SETTINGS_ACTION_FAILED 'SMTP host is required — nothing was sent.' and, with provider log, 'No delivery transport is active — …'; the capability catalog-door POST 400 lists six types; GET /meta/types and GET /meta have the same md5. No ablation: no tested behaviour changed (a ledger-text edit only). test:repo was not run locally because the diff touches no test; it is declared to CI.",
      "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack at af8d16ea: 16 families, each run locally :: exit 0 (check-adr-links and --self-test, check-closing-keyword-parity and --self-test, check-comment-mask-corpus, plan-test-core-shards --self-test, 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, check:platform-checklist, check:refd-timer-probe, check:watch-hint-literal). --ran: '16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED (a DERIVED zero — all 16 recorded an exit code and none of them is 3)'. PR check-runs at af8d16ea when read: success are Check Changeset, Check Documentation Links, Check PR Size, Governed Surface Queue Guard, Test UI and filter; in_progress are the Lint · and Type Check · lanes, Plan Test Core shards and Dogfood Regression Gate. FAILURE is 'PR-body guards (claim · duplicate · Part-of · single-writer path)', an advisory check outside the ten required. Cause: check-closing-target-claim reads a claim's Branch: line only through CLAIM_BRANCH_SHAPE, claude/issue-N-slug (scripts/pm/check-half-states.mjs), so no claim can name the platform-assigned claude/project-thread-fgz4le. The corrected claim 6539735655 does name it. This is the platform exception the claim records, not a diff defect; the seat decides.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "line_budget": "209 changed lines (+148 / -61), 1 file, against the 3000 human-merge threshold: under",
      "files_changed": ["docs/qa/platform-checklist/areas/platform-core.json"],
      "deviations": [
        "Branch is the card thread's platform-assigned claude/project-thread-fgz4le, not claude/issue-28338-platform-core-s4. It was reported to the seat first, and the seat corrected claim 6539735655. Consequence: the advisory PR-body guards check is red (see gates).",
        "Worktree ../objectstack-issue-28338 was made from that platform branch, reset to origin/main 3fd80337, after detaching the shared checkout (the branch was checked out there). No empty-branch probe push, because this is a card-thread branch.",
        "PR body opens with the harness-required attribution marker line (an HTML comment) and the Requested-by line, with Fixes #28338 right after; reported as the harness exception. The session context also asked to assign the PR and request a review from os-zhuang; not done, per the os-dev role and the dispatch (no assignees, no reviewers).",
        "Commit trailers are the model-free Claude-Session and Co-authored-by pair (AGENTS.md); the harness's model-named Co-Authored-By trailer was not used.",
        "The live boot was started with pnpm --filter @objectstack/example-showcase dev, not root pnpm dev: root dev's check-dev-prereqs refused because 42 packages outside the showcase/cli build closure were unbuilt. The closure was built under os-verify-lock (VERDICT command-exit 0, 6m32s).",
        "While reading the live boot, one stray POST /api/v1/meta/types {enabled:false} hit the run's own ephemeral local server (a typo'd curl); no GitHub effect, and the DB was discarded."
      ],
      "mcp_calls": "0 — no GitHub MCP tool was called; card, comment, run-record and check-run reads used gh api GET",
      "api_writes": "2 — (1) fleet-write relay pr_create (draft, labels [skip-changeset], no assignees) creating #28358, run 41175827976, body read back as 10042 bytes sent and 10042 stored, identical; (2) this os-dev-report comment on #28338 via post-stamped.mjs. git push is not a REST write.",
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: none · noted, not filed: packages/runtime/src/route-ledger.ts 'GET /meta/types' row note still reads 'richer types listing consumed by Studio tooling directly', but /meta/types is the same handler as GET /meta (dogfood pin meta-types-create-seed asserts body parity). Stale prose, not a filing class; in the PR's Acceptance notes.",
        "carrier: seat · noted, not filed: the PR-body guards claim gate cannot be satisfied by a platform-assigned card-thread branch (CLAIM_BRANCH_SHAPE accepts only claude/issue-N-slug). Recorded for the seat's ruling, not a defect of this diff."
      ]
    }

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-zhuang · session_01QUs3BvP5Aq9USg5GtmgAAR

    Landed · 2026-10-31T07:27Z — PR #28358 merged through the queue as ebd312a31f.

    probe reading
    PR state merged: true, merge commit ebd312a31f
    content on origin/main platform-core.json: blob sha1 on main identical to the PR head (3d249fa8, the seat's main-merge of the accepted af8d16ea)

    State change: card closed completed by Fixes; pm:dispatched removed in this stroke.

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, iteratedocumentationImprovements or additions to documentationdomain: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