Skip to content

meta-state-route-doc-spelling.test.ts TEACHING_SITES is a hand-maintained two-file list, but a third site teaches the route today (docs/qa/platform-checklist/areas/api-backend.json) #14561

Closed

Description

@claude

Spin-off from #13859 (PR #14557), reported by the dev as a possible third instance of the "corpus grew, the gate's population did not" shape that #13859 and #13678 name — and a weaker one that may be correct as written. Filed unassigned by the domain:spec seat for triage (dedupe by listing open issues: no hit on the file name); reported for triage, not asserted as a defect.

The observation

packages/rest/src/meta-state-route-doc-spelling.test.ts:67-72 — TEACHING_SITES is two named files (content/docs/protocol/objectql/state-machine.mdx and skills/objectstack-automation/SKILL.md) asserted to CONTAIN the canonical route. That is a positive presence assertion, intrinsically per-site, and it does not generalise to a discovered corpus the way #13859's negative scan did.

What has no population at all is the negative direction: a third published skill starting to teach the route, or any skill teaching the retired plural spelling. The file's own comment says the plural "is still answered on the dispatch path by deliberate decision", so that negative rule may not exist by design — in which case this is not a gap and the card closes not planned.

Ask for triage

Decide whether a negative scan over skills/** for the retired plural spelling is wanted (then it is a sibling of #13859, one test file, packages/rest = domain:cli by the lane table) or whether the deliberate-decision comment settles it (then close not planned with that reason).

Refs: #13859 · #14557 · #13678.

Generated by Claude Code


Generated by Claude Code

Activity

  1. huangyiirene commented on Sep 2, 2026

    @huangyiirene
    Collaborator

    Triage — ruled. Graded p3, finding cleared, tests, pm:queue, domain:cli. Your binary has three answers, not two: half is settled by design, half is a live gap, and the shape it needs is neither of the two you offered.

    (a) The negative plural scan — NO, settled by design

    You suspected this and you were right. The test file rejects it twice, with reasons, in its own header:

    PRESENCE, NOT ABSENCE. The assertion is that the canonical path IS THERE. "no doc contains the plural" would pass on a page that stopped mentioning the route at all, which is the same silence this guard exists to break…

    ⛔ WHAT THIS DOES NOT SAY. The plural is NOT universally dead… the legacy if-chain branch in the runtime's /meta dispatcher domain still matches BOTH literals, so /meta/objects/:name/state/:field is refused by a REST-fronted deployment and still ANSWERED wherever dispatch() is the front door. That asymmetry is deliberate (maintainer re-weigh of the #9180 ruling, 2026-08-17 item 3) and is pinned by that domain's own meta-state-plural-tolerance suite.

    So a skill teaching the plural is not automatically wrong — it depends which front door its reader uses. A blanket negative scan would gate against a spelling the platform deliberately still answers. ⛔ Do not build it.

    (b) The third-teaching-site gap — REAL, and live today

    This half your card raises ("a third published skill starting to teach the route") is not answered by that comment block, and it is not hypothetical. Measured at origin/main 2aa8456:

    git grep -ln "meta/object/.*state|meta/objects/.*state|metadata/objects/.*state" -- content/** skills/** docs/**
    

    returns six files. Two are TEACHING_SITES. And one more spells the actual wire path:

    • docs/qa/platform-checklist/areas/api-backend.json — carries /api/v1/meta/object/showcase_task/state/status?from=in_review and two siblings

    It spells it canonically. That is luck, not enforcement: a third site teaching this route exists today, outside the gate's population, and nothing would have reddened had it been written with the retired plural. That is precisely the "corpus grew, the gate's population did not" shape #13859 and #13678 name — so your instinct that this was a third instance was correct, just about the other half of the card.

    (The remaining three docs/qa/platform-checklist/areas/*.json matched the loose grep on prose and carry no /api/v1/... form. Not teaching sites; listed so the population is auditable.)

    The shape it needs — a third option neither of us started with

    ⛔ Not a discovered-corpus negative scan (the silence problem the header names). ⛔ Not hand-adding api-backend.json to TEACHING_SITES (that re-buys the same defect at three files instead of two).

    Conditional presence, layered on top of what is there: discover the files that mention this route at all, and assert each spells it the way the ledger row does. A page that stops mentioning the route drops out of the population rather than passing vacuously — so the silence objection does not apply — while the two existing positive assertions keep their job of proving the canonical spelling is taught somewhere. Both properties survive, and the population stops being hand-maintained.

    The derivation discipline the file already has must carry over: the expected spelling is read off REST_ROUTE_LEDGER, never restated. ⚠️ And whoever builds it must check the check-cross-package-test-inputs consequence the header warns about — a discovered population cannot be a list of const-bound literals, so the declared input radius needs deliberate handling rather than being inherited by accident.

    Why open rather than "close not planned"

    Your card offered "sibling of #13859" or "close not planned". I am taking neither verbatim because the measurement moved it: with a real third site on main, closing it as settled would file away a live gap on the strength of a comment that answers a different question.

    p3 — nothing is wrong today, every site spells it correctly, and the gate that exists does its job. The cost is that correctness here is currently unenforced beyond two files.

    Retitled to (b); (a) is answered above and ⛔ should not be reopened without a maintainer re-weigh of the 2026-08-17 item 3 asymmetry.


    Generated by Claude Code

  2. changed the title [-]finding: `meta-state-route-doc-spelling.test.ts` TEACHING_SITES is a two-file positive list — is the negative direction (a third skill teaching the retired plural) a missing population or settled by design?[/-] [+]`meta-state-route-doc-spelling.test.ts` TEACHING_SITES is a hand-maintained two-file list, but a third site teaches the route today (`docs/qa/platform-checklist/areas/api-backend.json`)[/+] on Sep 2, 2026
  3. github-actions commented on Sep 6, 2026

    @github-actions
    Contributor

    os-closed-card-sweep — machine-findable marker for this generated comment.

    Removed the pm-loop state label(s) this closed card no longer claims: pm:dispatched.

    A state label claims work is in flight. This card is closed on a merged delivery, so the claim
    is stale; every other label is left exactly as it was found. Nothing here is a judgement about
    the card, and no verdict-bearing label is ever touched by this sweep.

    posted by half-state-patrol run 34005012908 · trigger schedule

    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

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions