plan/spec: the positional gate goes green

Scorecard 204 -> 218 pass, 87 -> 73 fail: the fourteen `arrayFilters` cases
across five files, which is the whole of what the two implementation commits
were expected to move and nothing else. Positional corpus 51/51.

The three divergences measured on the way are written into PLAN §6 rather
than left in commit messages: `$` with two predicates on one array that no
element satisfies together, an array filter with a top-level `$and`/`$or`,
and a literal index into a scalar element -- the last being the one place the
positional walk and the plain indexed path now answer differently, which is
worth a commit of its own and needs its own measurements first.

The design review gets an outcome note, since two of its guesses were wrong
and the corpus is where that was settled.
This commit is contained in:
A.Shakhmatov
2026-08-10 20:40:41 +03:00
parent 200228b0cb
commit 1892cb7969
4 changed files with 56 additions and 37 deletions

View File

@@ -10,6 +10,14 @@ Everything below was measured on 2026-08-10 against mongod 8.3.7 on
`:27099` and this server at `5942f5e` on `:27020`, running the identical
probe against both.
**Outcome.** All of it landed, in the order §6 recommended: the refusal
(`f04e712`), the corpus (`e5a84c0`), then the implementation in two commits.
The corpus is 51/51 and the pinned crud scorecard moved 204 → 218. Two of the
review's own guesses were wrong and the corpus caught both — a reused
identifier is accepted, and `$[]` in first position answers the array-filter
message rather than the `$` one. The divergences that remain are listed in
PLAN §6 under the M3 gate; this document is not the place to track them.
---
## 1. The plan names a feature; the measurement found data loss