Skip to content

docs(gates): five gates exist only to hold a count re-typed in prose (lockstep "110 packages", route-ledger "105 rows", quick-reference "N of M", overlay-whitelist leg 3, spec-enumerations) — delete or generate the numbers, retire the holders #26441

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. Part of #26431. Reader: domain:devx (docs gates under scripts/; the prose lives in content/docs/** and two script headers).

Measured (origin/main e677770a): scripts/check-lockstep-package-count.mjs holds the prose "110 packages" in content/docs/protocol/backward-compatibility.mdx:199 and scripts/publish-smoke-pack.mjs:36 to .changeset/config.json (the real invariant is check-changeset-fixed.mjs); scripts/check-route-ledger-census.mjs holds the sentence "this list holds 105 rows" at packages/runtime/src/route-ledger.ts:280; scripts/check-quick-reference-counts.mjs holds "(N of M schemas)" headings in content/docs/getting-started/quick-reference.mdx (changed 5× in 30 days); scripts/check-overlay-whitelist-table.mjs leg 3 holds two registry counts in content/docs/concepts/metadata-lifecycle.mdx (legs 1–2 compare the table itself and stay); scripts/check-docs-spec-enumerations.mjs holds hand lists of spec subpaths. All carry --fix, i.e. the prose is already treated as generated output.

Wanted: for each — remove the number from the prose (a sentence that does not state a count cannot drift) or render it at build time from the authority; then retire the holder script, its pnpm check:* entry and its lint.yml step (Tier H for the workflow line: lands by the maintainer's approval). Legs 1–2 of the overlay-whitelist gate stay. Acceptance: none of the five counts appears as a literal in content/docs or a script header; the five check:* scripts are gone from package.json and lint.yml; check-doc-links, docs-audit green. Size: M (one PR, or one per gate). Clause-②: no. Metadata-protocol: none.

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

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

    ⛔ 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-27T05:13Z
    Session: session_01Q4MDXRbEJCNdPAP4SiXwp9 (devx seat 2) · card thread cmsg_01FdL1XeUyvVNxLreh3F4Qi95YovdFSHTxz132KjPG4TAa
    Account: os-steve
    Branch: claude/project-thread-y83svr (the card thread's harness-pinned branch, reset to main after PR #26482 merged; it names no issue, so this claim is the identity record)
    Worktree: objectstack-issue-26441
    Domain: domain:devx
    Seat: domain:devx#2 (seat post #20163)
    File surface: the five holders and their prose: scripts/check-lockstep-package-count.mjs ("110 packages" in content/docs/protocol/backward-compatibility.mdx and the scripts/publish-smoke-pack.mjs header), scripts/check-route-ledger-census.mjs ("105 rows" at packages/runtime/src/route-ledger.ts, comment only), scripts/check-quick-reference-counts.mjs ("(N of M schemas)" headings in content/docs/getting-started/quick-reference.mdx), scripts/check-overlay-whitelist-table.mjs leg 3 only (the two registry counts in content/docs/concepts/metadata-lifecycle.mdx; legs 1–2 stay), scripts/check-docs-spec-enumerations.mjs (hand lists of spec subpaths); root package.json check:* keys and their .github/workflows/lint.yml steps for the retired holders, and any roster/self-test-wired pin that lists them. ⛔ Per the triage line (6434325953), nothing the check proves is weakened: for each holder the PR names what still guards the real invariant (lockstep membership is check-changeset-fixed), and either the count leaves the prose (a sentence with no number cannot drift) or it is generated from its authority. ⛔ No ui/ path, no ci.yml. ⛔ Tier H (.github/workflows/lint.yml): draft until a GOVERNED_APPROVERS approval; the dev neither readies nor arms auto-merge
    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), Part of #26431; triaged p2 at 6434325953
    Thread-read: 6434325953
    Premise: the five holders, their check:* keys (package.json L61–63, L152–153) and their lint.yml steps (L2283, L2305, L2324, L3015, L3032 on c91544a4) exist as the card measured; each carries --fix, i.e. its prose is already treated as generated output (the dev re-reads each first)
    Serial constraints cleared: #26091 (same thread, same lint.yml and package.json) merged as c91544a4; #26443's PR #26488 edits package.json check:shard-attestation only, a different line


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26441,
      "status": "pr_open_draft",
      "branch": "claude/project-thread-y83svr",
      "pr": 26511,
      "session": "https://claude.ai/code/session_01ADHkmQq9EYQdTQwmRutQTS",
      "premise_still_valid": true,
      "summary": "Counts removed from prose (lockstep 110 x3, quick-reference (N of M) x13 + Pages column, overlay 29/five, glossary 15 x4). Retired check-lockstep-package-count and check-quick-reference-counts (script, alias, lint step). Overlay gate: leg 3 removed, legs 1-2 kept. docs-spec-enumerations kept (lists are facts); count floor dropped, heading number optional, sweep kept. route-ledger-census kept after ablation.",
      "tests": "Guardian demos red: changeset-fixed on dropped fixed member; overlay leg 2 on a 6th true type; spec-enumerations on a re-added wrong count; census on a 3-row ablation that runtime/client/dogfood suites all pass. Self-tests green (overlay 12 batteries, spec-enumerations 79 cases). doc-anchors, docs-audit-scope exit 0.",
      "gates": "dispatch-gates --commands 105 derived on 5f82434c; 105/105 exit 0 (spec check:docs and check:skill-examples after spec build); --ran 0 NOT-MEASURED 0 UNRUN; post-merge fffcf347 same derivation, package.json readers rerun green.",
      "line_budget": "+80/-1822 (1356 = two deleted scripts; hand diff ~550)",
      "deviations": [
        "check-route-ledger-census kept: 3-row ablation (GET /meta/types, POST /actions/global/:action, POST /actions/_activation/:object/:action) leaves runtime 6/6, client 3/3, dogfood 8/8 green; only the census reds",
        "check-docs-spec-enumerations kept: holds fact lists; only its glossary count floor removed and heading number made optional",
        "Single PR above ~1500 changed lines: 1356 are whole-file deletions",
        "Historical mentions left: docs/audits, scripts/ui-import/README.md, check-docs-spec-enumerations #16325 list, packages/spec/scripts/check-llms-txt.ts comment (out of file surface)"
      ],
      "files_changed": [
        ".github/workflows/lint.yml",
        "package.json",
        "content/docs/concepts/metadata-lifecycle.mdx",
        "content/docs/getting-started/glossary.mdx",
        "content/docs/getting-started/quick-reference.mdx",
        "content/docs/protocol/backward-compatibility.mdx",
        "scripts/check-changeset-fixed.mjs",
        "scripts/check-docs-spec-enumerations.mjs",
        "scripts/check-lockstep-package-count.mjs (deleted)",
        "scripts/check-overlay-whitelist-table.mjs",
        "scripts/check-quick-reference-counts.mjs (deleted)",
        "scripts/check-route-ledger-census.mjs",
        "scripts/publish-smoke-pack.mjs"
      ],
      "dogfood_battery": "route-ledger-live-mount-parity run on 3 ablations (n/a otherwise)",
      "write_budget": "2 relay writes (pr_create, this comment)",
      "mcp_calls": "0 GitHub MCP writes; 2 reads (issue get, comments)",
      "api_writes": 0,
      "open_questions": [
        "Tier H: needs GOVERNED_APPROVERS approval"
      ],
      "out_of_scope_findings": [
        "packages/runtime route-ledger.conformance.test.ts lacks a route-granularity reverse check: rows absorbed by the ledger union or servedBy specializations can be deleted with every suite green (ties to #17041)"
      ]
    }

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    devx seat 2 · released: PR #26511 (Fixes #26441, Part of #26431) merged as d2ca7079 through the merge queue. Its +/- lines on main match the reviewed head fffcf347 in all 13 files.

    Holder Outcome
    lockstep-package-count retired; the invariant is guarded by check-changeset-fixed
    quick-reference-counts retired; the page states no count, and its links are guarded by check-doc-links
    overlay-whitelist-table leg 3 retired; legs 1–2 stay
    docs-spec-enumerations kept (its lists are facts); the glossary counts are gone
    route-ledger-census kept on measurement: it is the runtime ledger's only per-row deletion guard. The gap is filed as #26513

    pm:dispatched comes off.


    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, iteratedocumentationImprovements or additions to documentationdomain:devxpriority:p2Medium: important, M3tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions