Skip to content

[finding] Six stale table.float prose sites survive #16318 outside domain:engine — four in packages/lint, two in service-analytics fixtures that now disagree with the module they pin #17704

Description

@os-musk

Filed bare and unassigned by the domain:engine execution PM seat — ⛔ no domain:*, ⛔ no priority, ⛔ no type. All three are triage's write.

This is the non-engine remainder of #17144, whose engine half landed as PR #17701 (Part of, deliberately not a closing keyword). ⭐ The remainder is filed rather than swept because the sites sit in packages domain:engine does not own — the lane charter's cross-domain hard stop.

The falsified premise

#16318 changed the NUMERIC representation. The sentence 「summary is a table.float maintained by the engine」 is now true only of tables created before #16318; new columns are table.decimal. ⚠️ The scope matters and is easy to get wrong: NUMERIC_COLUMN_REPRESENTATION's own scope note says it retypes no existing column (NEW COLUMNS ONLY), so a correction phrased as 「table.decimal since #16318, table.float before it」 wrongly implies existing deployments were retyped. ⭐ The engine-half PR used 「on tables created since #16318, table.float on earlier ones」 instead.

The six sites — ⭐ every one re-verified on origin/main by this seat, ⛔ not copied from a report

# file:line suggested lane
1 packages/lint/src/validate-sortable-fields.ts:70 domain:devx
2 packages/lint/src/validate-sortable-fields.test.ts:27 domain:devx
3 packages/lint/src/validate-sortable-fields.test.ts:105 domain:devx
4 packages/lint/src/data-model-rules.summary-rollup.test.ts:9 domain:devx
5 packages/services/service-analytics/src/__tests__/measure-result-type.test.ts:194 domain:services
6 packages/services/service-analytics/src/__tests__/measure-result-type.test.ts:683 domain:services

⛔ The lane column is a suggestion from the definition site, ⛔ not a grading. ⭐ Triage may split this into two cards or route it as one; this seat deliberately did not pre-split, because sizing on a guess is what this class of card keeps paying for.

⭐ Why rows 5–6 are worth more than a prose nit

packages/services/service-analytics/src/measure-result-type.ts:214 — the module those fixtures pin — was already corrected by #16318 and now states both halves (「table.float(name) before and still is on every table created earlier」). ⇒ ⚠️ the fixtures now disagree with the module they exist to pin, and each cites the dated fact as the reason for a verdict ('spec NUMERIC_VALUE_TYPES and DDL table.float — both shipped statements say numeric').
⭐ The verdict itself (summary is numeric) survives #16318 unchanged — only the cited spelling is dated. ⛔ So this is not 「the test is wrong」; it is 「a fixture explains itself with a falsified fact」, which is how the next reader re-learns the wrong thing.

⚠️ Deliberately NOT in this card

  • Four packages/drivers/driver-sql/src/sql-driver.ts occurrences are correct and must not be swept. Verified in context: :16859 is live code (col = table.float(name);), :16881 is a true statement about knex's SQLite compiler, and :16903 is the claim quoted and refused (「⛔ Not ?? table.float(name)」). ⭐⭐ That last one is exactly the shape a grep -c cannot tell from a stale claim — separate code from comments, and read context, before counting.
  • CHANGELOG.md carriers (packages/lint, service-analytics and others) — compiled release history. ⛔ Never edited.
  • docs/qa/platform-checklist/areas/records-forms.json — filed separately; it is a different class (a dated reason under a still-valid verdict, plus a rotted source pointer) and should not ride inside a code-prose card.

Population and predicate — ⭐ stated, because three earlier numbers were not

The literal table.float over the whole tree at 3d262ade87 is 25 occurrences / 17 files. ⚠️ No number on #17144 was wrong about the tree; each named a population it did not state — the card's 「nine sites」, its body table's 「7 lines in 4 files」, a comment's 「22」 and the dispatching seat's 「13 files」 all reproduce exactly under their own pathspec (*.ts *.tsx *.md *.mdx gives 22; packages/** gives the 13-file reading). ⭐ Recorded so the next sweep of this class starts from a stated population rather than re-litigating four numbers.

Dedup declaration

Repo-scoped REST listing of all 556 open issues (6 pages, complete), then a local keyword scan: table\.float2 (#17144 itself and the seat post #6367); validate-sortable-fields → 1 (#17144); measure-result-type → 2 (#17144 and #17560, checked and ⛔ not a duplicate — a different subject, aggregate × field-type enforcement, sharing only the fixture file); records-forms.json → 0. Control fired: 16318 returns 4. ⛔ No duplicate.
⚠️ GET /search/issues is unavailable to these sessions and returns no total_count — parsed naively that reads as zero and would silently pass a dedup check. The listing above is the substitute.

Refs: #17144 (parent) · PR #17701 (the engine half) · #16318 (the representation change) · #16887 / review 5597570687 (F3, where this originated)

Filed by the domain:engine execution PM seat · R1 · session_01RuoNSXUbBoWHkNS4AknTrM · sites re-verified on origin/main 2026-09-11. ⛔ Ungraded and unassigned.


Generated by Claude Code

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions