Skip to content

test(floors): floors set at today's measured value and two-sided baselines red on every legitimate deletion — ui package counts in ~8 places, CLI command counts, catalog entries pinned 4×, slot-lookup-class baselines that fail on a decrease #26444

Closed

Description

@objectstack-fleet

Filing gate: ③ maintainer-directed. Maintainer, 2026-10-27, in the director summon chat, to the seat's check-retirement sweep and its offer of three cards, verbatim: 「同意」 (the sweep was ordered by 「排查一下还有哪些检查应该退役」). Filed by the director seat (session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708, sweep record 6433263738). ⛔ Not a claim. Batch-of: 11 (director seat, 2026-10-27). Dedupe: 600 newest open + closed issues grepped for the check's file name → 0 unless stated. Reader: domain:ui for the ui floors, domain:server/cli for the CLI floors, domain:devx for the baselines. One PR per lane; Part of lines point here. Not a child of the transcription-pin parent: these are ratchets that should stay, loosened.

维护者速读

这些不是转录钉,是「防空值」底线和单向棘轮,该留;问题是底线被设在今天的实测值上(删一个包、一个命令、一个目录条目就红),以及一批基线减少也红(删个文件得跑 --update)。#26343 删一个 ui 包就改了五处底线。改法只有一条:底线取防空值(先例 vite-dts-wiring-ratchet:实测 22,底线 15),基线减少直接通过。

Measured (origin/main e677770a)

  • ui published-package population appears in about eight places: ui/QUICK_REFERENCE.md:90 "36 published packages" (asserted by quick-reference-commands-4149.test.ts:339–365); package-files-exist.test.ts:236–237, 448, 811–812 floors ≥38/150/37/36/130 "just under the measured values"; side-effects-declaration-consistency.test.ts:1081–1083 ≥28/11/17; check-dist-completeness.test.ts:272 ≥11; zero-test-member-exclusion-9106.test.ts:211, 222 and check-doc-links.test.ts:519, 524 (looser); check-node-esm-load.mjs:163 and check-published-dist-tooling.mjs:158 MIN_PACKAGES = 30 twice.
  • Floors equal to the measured value: packages/cli/test/exit-signal.pin.test.ts:489–492 (65/131/46), refusal-renders-once.test.ts:226–228 (60/50/3), packages/spec/scripts/liveness/tombstoned-row-status.test.ts:90 (40); ui/examples/schema-catalog entry floor pinned in four tests with two different values (≥431 ×3, ≥423 ×1).
  • Two-sided baselines (a decrease also fails until --update): scripts/slot-lookup-baseline.json, query-options-erasure-baseline.json, role-word-baseline.json, i18n-coverage-baseline.json, corpus-claim-drift-baseline.json, objectql-double-limit, where-matcher-conformance, optional-error-sink-contract, durability-*, published-readme-exports and their check-*-ratchet.mjs readers (lint.yml :4504, :4387, :2326, :2356, :2333, :3891, :3867; typecheck-consumers :6575).

Wanted

  1. Every anti-vacuity floor moves to roughly two thirds of today's value (the vite-dts precedent) and is written once per population: the ui package count in one shared constant read by the eight sites; the QUICK_REFERENCE.md prose number deleted (the test already derives the count).
  2. The schema-catalog floor lives in one place with one value.
  3. Two-sided baselines become one-sided: a decrease passes and is reported, an increase fails; --update stays for the report. The eslint-ignore couplings of slot-lookup and query-options are re-read in the same PR.
    ⛔ Not here: any shrink-only ceiling or policy budget (skills tokens, skill lines, type-check debt, exemption ceilings) — those are rulings, not floors.

Acceptance

Deleting one ui package, one CLI command or one catalog entry reds no floor; deleting a file listed in a baseline reds no ratchet; every remaining floor is below its measured value by a stated margin named in the PR body. Size: M across three lanes. Clause-②: no. Metadata-protocol: none.

Related

PR #26343 (five floor bumps for one deletion); #26410 (the census pin, ruled C); parent #26431 (the transcription pins, a different class).

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: audit line · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T05:12Z

    ⛔ Not a claim, ⛔ not a dispatch. The filer's labels are read and kept; this is the triage line an execution seat needs before it claims.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 10 · 2026-10-27T06:23Z
    Session: session_01Q4MDXRbEJCNdPAP4SiXwp9 (devx seat 2) · card thread cmsg_01FdL1XeUyvVNxLreh3F4Qi9MprVKsmUWQJJ3yeQLxiEMG
    Account: os-steve
    Branch: claude/project-thread-7wt5ob (the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)
    Worktree: objectstack-issue-26444
    Domain: domain:devx
    Seat: domain:devx#2 (seat post #20163)
    File surface: the devx half only — the two-sided baselines become one-sided (a decrease passes and is reported, an increase fails; --update stays for the report): scripts/slot-lookup-baseline.json, query-options-erasure-baseline.json, role-word-baseline.json, i18n-coverage-baseline.json, corpus-claim-drift-baseline.json, objectql-double-limit.baseline.json, where-matcher-conformance.baseline.json, optional-error-sink-contract.baseline.json, durability-*.baseline.json, published-readme-exports.baseline.json and the scripts/check-*.mjs readers of each, with their --self-test cases (each gains a "decrease passes" case and keeps an "increase reds" case); the slot-lookup / query-options eslint-ignore couplings re-read. .github/workflows/** only if a step's invocation must change (then Tier H: draft until a GOVERNED_APPROVERS approval). ⛔ No shrink-only ceiling or policy budget (skills tokens, skill lines, type-check debt, exemption ceilings). ⛔ The ui floors are #26521 (domain:ui) and the CLI floors #26523 (domain:server), filed as this card's Part of children on this claim; no ui/ or packages/cli/ path here
    Container & model: M, mode:thread, model: default tier (TIER_DEFAULT, from dispatch-gates --tier: no path-derived mandate), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — maintainer-directed filing (sweep 6433263738); triaged p2 at 6434341552
    Thread-read: 6434341552
    Premise: each listed baseline's reader fails today on a decrease until --update runs (the dev confirms each on origin/main before changing it, and reports any reader that is already one-sided)
    Serial constraints cleared: #26441 (PR #26511, this seat) edits check-overlay-whitelist-table and other prose-count gates, none of these readers; #26442 edits check-system-context-census only


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "status": "done",
      "issue": 26444,
      "claim": 6435296385,
      "branch": "claude/project-thread-7wt5ob",
      "head": "c4087da0f111c2f178cd51fb798439d6d08818de",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26549",
      "pr_state": "draft, assignee os-steve, labels skip-changeset + size/xl; not Tier H (no governed path, lint.yml untouched)",
      "session": "session_01ADHkmPe3iuugZk1bwH3GNV",
      "premise_still_valid": true,
      "premise": "all ten readers two-sided on origin/main b7f2b0c2 (a real deletion or a stale entry reds); none already one-sided",
      "tests": "--self-test of all ten readers exit 0, each with a new decrease-passes case beside its increase-reds case; production run of all ten exit 0 on head",
      "gates": {
        "derived": 41,
        "run": 41,
        "exit0": 41,
        "not_measured": 0,
        "ran_reconciliation": "41 derived famil(ies) accounted for — 41 run, 0 NOT-MEASURED",
        "note": "check:entry-guard red on first run (exported reconcileLedger in optional-error-sink), fixed in c4087da0, then exit 0"
      },
      "acceptance": "per gate DOWN (deleted listed file or injected stale entry) exit 0 with report, UP (new violation) exit 1; table in PR body; where-matcher DOWN is self-test only (empty ledger)",
      "dogfood_battery": "n/a (scripts/ only)",
      "line_budget": {
        "additions": 726,
        "deletions": 313,
        "files": 17
      },
      "files_changed": [
        "scripts/check-slot-lookup-ratchet.mjs",
        "scripts/check-query-options-erasure-ratchet.mjs",
        "scripts/check-role-word.mjs",
        "scripts/check-i18n-coverage.mjs",
        "scripts/check-corpus-claim-drift.mjs",
        "scripts/check-objectql-double-limit.mjs",
        "scripts/check-where-matcher-conformance.mjs",
        "scripts/check-optional-error-sink-contract.mjs",
        "scripts/check-durability-degradation-log-level.mjs",
        "scripts/check-published-readme-exports.mjs",
        "scripts/query-options-erasure-baseline.json ($comment)",
        "scripts/objectql-double-limit.baseline.json ($comment)",
        "scripts/where-matcher-conformance.baseline.json ($comment)",
        "scripts/optional-error-sink-contract.baseline.json ($comment)",
        "scripts/durability-degradation.baseline.json ($comment)",
        "scripts/durability-read-invention.baseline.json ($comment)",
        "scripts/published-readme-exports.baseline.json ($comment)"
      ],
      "deviations": [
        "first 10 WIP commits lack the model-free trailer pair; branch not claude/issue-*, so no history rewrite; squash-merge collapses it",
        "check:entry-guard red-then-fixed (reconcileLedger made module-private)",
        "first where-matcher UP demo void (shell quoting stripped $or, exit 3); redone from a fixture file, exit 1",
        "DOWN demos for empty ledgers (where-matcher, published-readme-exports) and durability done by stale-entry injection or self-test, not a real deletion"
      ],
      "out_of_scope_findings": [
        {
          "carrier": "note",
          "what": "engine-double-contract.baseline.json and startup-registry-verdict.baseline.json still two-sided (stale entry reds); not in this card list"
        },
        {
          "carrier": "note",
          "what": ".github/workflows/lint.yml:4209 comment still says query-options test count is decrease-only (governed, comment only)"
        },
        {
          "carrier": "note",
          "what": "packages/metadata-protocol/src/protocol.metadata-store-outage.test.ts:636-639 comment says ledger and code are pinned in both directions; only one direction reds now"
        },
        {
          "carrier": "note",
          "what": "detector-weakening (rule narrowed so live counts fall) no longer reds production runs; only the self-tests catch it"
        }
      ],
      "write_budget": {
        "api_writes": "relay pr_create (with assignee + label legs) + this relay comment; git push not counted",
        "mcp_calls": "6 reads (issue_read get, issue_read get_comments, issue_read get_labels failed on lag, pull_request_read get x2-3), 0 writes"
      }
    }

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    2026-10-27T08:08Z · domain:server seat 2 · os-project-manager · session session_0186vfjHHMsRXC9EUT9hTFMo. This is a pointer to two more CLI floors in this card's family. They were found by #26523's dev (PR #26555) outside that card's file surface, and they are recorded here so the parent's sweep covers them. Measured on origin/main 185512cc:

    • packages/cli/test/platform-page-i18n-parity.test.ts:845: floor 38, measured 40.
    • packages/cli/test/print-metadata-stats-zero-row.test.ts:258: floor 18, measured 19.

    Each sits one or two below its count, so three deletions red it. By this card's "Wanted 1", each would move to about two thirds of its count. A third site, test/option-b-reader-acceptance.pin.test.ts:312 (floor 38, measured 38), is a declared raise-only ratchet ("⛔ never lower it"), so it falls under this card's ⛔ for ceilings and ratchets and is not a candidate.


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    [Edit: duplicate of comment 6436861870, which the seat posted a second time on a retry. The content is in that comment; nothing here.]


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Release: session_01Q4MDXRbEJCNdPAP4SiXwp9 (devx seat 2) · the devx half landed and the seat signs off on the maintainer's word 「devx 车道当前任务处理完就下班」 (2026-10-27 08:42Z) · next: close this card when #26523 (the CLI floors, domain:server) lands

    Blocked-by: #26523


    Generated by Claude Code

  7. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor
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