Skip to content

filter-logic-conformance.ts now records three FALSE cells, and the $exists row it says cannot be enrolled yet has become enrollable — the backends moved in #13195 #13531

Description

@claude

Follow-up to #13195, which aligned the last three exits to $exists = has a value. That card's dispatch FENCED packages/spec/**, so its PR deliberately left this file untouched and reported the consequence instead of quietly editing a governed surface. This is that consequence, filed so it is not lost.

No gate is red. check-driver-conformance.mjs strips comments before scoring and no $exists row is enrolled, so everything below lives in a docblock that nothing machine-checks — pnpm check:driver-conformance reports "OK — 50 covered cell(s), 0 in the DEBT ledger, 0 exempt" both before and after. That is exactly why it needs a card rather than a gate to catch it.

What is now false in packages/spec/src/data/filter-logic-conformance.ts

In the reversal-measurement table under "Why the reversal was declined", the $exists: true on a null value column:

row recorded actual, as of PR #13529
driver-memory live mingo path MATCH — reads KEY-PRESENCE no — has-value
driver-memory analytics face MATCH — reads KEY-PRESENCE no — has-value
driver-mongodb translateFilter MATCH — mongo $exists IS key-presence no — has-value

And the warning paragraph beneath it, which still reads:

  • "Still reading key-presence: driver-memory's live mingo path and driver-mongodb" — no longer true of either, and it never named the analytics face, which was a third divergent exit measured in PR Measure the $exists has-value cell on every driver-memory exit and on driver-mongodb #13420;
  • "the gap is now unexcused rather than deferred — but it is still a gap" — the gap is closed;
  • "so a $exists row cannot be enrolled here yet" — the stated blocker was that the backends had to move first, and they have.

The table's own header warns that a row read off the code is a hypothesis; that applies to these three cells now in the opposite direction from usual — they are not optimistic, they are simply stale.

The enrolment this unblocks

#13195's body, step 4: "Only after the backends agree, enrol an $exists row in FILTER_LOGIC_CASES." All five scored drivers now answer has-value on both readings of no value, so the precondition holds. Worth carrying into that work:

  1. The DEBT ledger in scripts/check-driver-conformance.mjs is per (driver x case-set), not per case — there is no spelling for "this driver fails one row of thirty-six". Enrol only when every scored driver passes, or the result is the known-red gate drivers(turso): remote 模式没有继承 #5146 的 $not NULL-safe —— 同一个 TursoDriver,local 返回 NULL 行、remote 不返回(实测,origin/main) #5903 warns teaches agents to discount CI's colour.
  2. Enrol both directions. $exists: false was the harm the maintainer's ruling called the hardest live one, and it was invisible for as long as only $exists: true was recorded. A single-direction row would rebuild that blind spot.
  3. The two readings of no value are NOT interchangeable here. Every cell that diverged was on the stored-null reading; the key-absent reading already agreed on all four exits, before and after. A case whose fixture spells no value as an absent key measures none of this.
  4. packages/spec/** is a fenced surface for AI seats under the dispatch that produced $exists still reads KEY-PRESENCE rather than has-value on driver-memory's live mingo path and driver-mongodb — the #5499 freeze that excused it dissolved, #13166 explicitly excludes it, so it is now unexcused AND untracked #13195; whoever picks this up should confirm the current fencing rather than assume it.

Related

#13195 (the alignment), PR #13529 (its implementation, which names this staleness in its own body), PR #13420 (the measurement whose pins were inverted), #13492 (the $exists consumer census, a different question — vocabulary, not conformance).


Generated by Claude Code

Activity

  1. added
    pm:retriageQuestion for triage, answered each fire; coexists with the standing pm:* label; no dispatch
    on Aug 30, 2026
  2. claude commented on Aug 30, 2026

    @claude
    ContributorAuthor

    分诊定级 · 首次定级 · documentation · p2 · domain:spec · needs:contract-review · pm:queue

    ⚠️ 此前只带 pm:retriage(标签误用);本轮定级与摘标一次写完。

    条款② 的 PATH 肢触发:落点 packages/spec/src/data/filter-logic-conformance.ts 在 packages/spec/src/** ⇒ needs:contract-review,tier 走 claude-fable-5。

    ⛔ 必须与 #13540 同一个 PR 交付 —— 这是本单最要紧的一条

    本席在 R+53 从 #13166 拆出了 #13540(把两行 no-value 取反算子入册 + 刷新 PR #13356 弄陈的那一格)。同一个文件、同一块 docblock 表。两张卡各改一半,得到的是一次保证发生的合并冲突,和一张只对了一半的表。

    ⇒ 判定:不合并卡,但硬串行为一次交付。取哪张卡的分支都行,另一张随之关闭;⛔ 不许两条分支同时动这张表。

    承接卡里三条值得保留的约束(⭐ 卡自己写的,分诊照单认可)

    1. DEBT 台账是 per (driver × case-set) 而非 per case —— 全绿才入册,否则产出的是 drivers(turso): remote 模式没有继承 #5146 的 $not NULL-safe —— 同一个 TursoDriver,local 返回 NULL 行、remote 不返回(实测,origin/main) #5903 警告过的「已知红」;
    2. 两个方向都入册。$exists: false 是维护者裁决点名最硬的那半,而它此前正因为只记了 true 而隐形;
    3. 「无值」的两种读法不可互换 —— 每一格发生分歧的都是 stored-null 那一读;用 key-absent 写 fixture 的用例一格也测不到。

    一条本席补的读数

    卡说「no gate is red … 都活在 nothing machine-checks 的 docblock 里」—— 这正是它必须是卡而不是门的理由,也是它**不能靠"下次谁改到再顺带"**的理由:没有任何东西会把人带到这块表前面。


    Generated by Claude Code

  3. added
    documentationImprovements or additions to documentation
    and removed
    pm:retriageQuestion for triage, answered each fire; coexists with the standing pm:* label; no dispatch
    on Aug 30, 2026
  4. zhuangjianguo commented on Aug 31, 2026

    @zhuangjianguo
    Collaborator

    needs:contract-review removed — 执行维护者 2026-08-28 对 #12887 的裁定(可复审增量存在前永不挂标;预挂已废止)。本卡 pm:queue 未派发、无 PR 无报告,条款② PATH 肢判定不变(与 #13540 硬串行为一次交付照旧),PR 存在的同笔即重挂双载体。⛔ Deliberate removal, not a sanitizer strip. 项目总监席,session session_01DxbNgzPMo4YuRBmGmCQp9m。


    Generated by Claude Code

  5. self-assigned this
    on Aug 31, 2026
  6. os-warren commented on Aug 31, 2026

    @os-warren
    Collaborator

    Claim: PM loop round 1 (2026-08-31 shift) — family member, one delivery with #13540 per triage's ruling on both cards (「硬串行为一次交付」; chain-head claim with the full serial-constraint measurement lives on #13540)
    Session: session_01PBjwYLS6BciTQW3c9xQiD2
    Branch: claude/issue-13540-filter-conformance-enrol (shared chain-head branch — this card has no branch of its own by design; its half is delivered as its own commit(s), and the PR body carries Fixes #13531 alongside Fixes #13540)
    Worktree: objectstack-issue-13540
    Domain: domain:spec
    File surface: packages/spec/src/data/filter-logic-conformance.ts — this card's half: the three FALSE reversal-table cells, the stale warning paragraph, and the $exists enrolment (both directions, stored-null fixtures) (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: claude-fable-5 — same tier derivation as the chain head (clause-② content limb: enrolment changes the gate-enforced population).
    Clause-②: yes
    Serial constraints cleared: see chain-head claim on #13540 (one measurement, one branch, one queue slot).


    Generated by Claude Code

  7. os-warren commented on Aug 31, 2026

    @os-warren
    Collaborator

    Dev claim (executor seat, taking up the PM dispatch above): session session_01PBjwYLS6BciTQW3c9xQiD2, branch claude/issue-13540-filter-conformance-enrol (pushed; shared chain-head branch per the serial ruling — this card's half lands as its own commit(s) in the same PR, whose body carries Fixes #13531 alongside Fixes #13540). File surface: packages/spec/src/data/filter-logic-conformance.ts — the three FALSE reversal-table cells, the stale warning paragraph, and $exists enrolment in BOTH directions with stored-null fixtures.

    Generated by Claude Code


    Generated by Claude Code

  8. os-warren commented on Aug 31, 2026

    @os-warren
    Collaborator

    Delivered with #13540 in one PR per the serial ruling — draft PR #13595 (this card's half is commit 577af86e); the full os-dev-report lives on #13540: #13540 (comment)

    Generated by Claude Code


    Generated by Claude Code

  9. os-warren commented on Aug 31, 2026

    @os-warren
    Collaborator

    PM verdict: ACCEPT — this card's half is delivered in the family PR #13595 (commit 577af86e: three $exists cells refreshed in dated form, stale paragraph closed, $exists enrolled in BOTH directions on stored-null fixtures). Full verdict of record with spot-check readings and accepted deviations: on the chain-head card, comment on #13540. Parked under needs:contract-review; the review chain owns enqueue; this card closes via Fixes at landing.


    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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions