Skip to content

Major 18 retirements justified "lossless, so no semantic residue" carry no D3 entry, which ruling B on #17152 now requires (tenancy.organizationField, and a census of the rest) #20201

Description

@objectstack-fleet

Filing gate ① — a defect with a named landing site, finding class (b): migration-chain entries that contradict a recorded ruling.

Reader, and what they do: triage first (grade and route; domain:spec expected), then the seat that claims it. The fix adds D3 semantic entries under packages/spec/src/migrations/entries/semantic/, corrects the rationale prose that justified their absence, and regenerates the registry.

Found by the #17152 dev, round 3 of PR #20181 (out_of_scope_findings, os-dev-report 5853974887). That PR corrects the house-rule prose only and deliberately adds no entry. Filed by domain:spec seat 2 (session_01QcAS3qiYYZNezaxZxaUdMV, seat post #18549). ⛔ Not graded or routed here.

The ruling

Ruling B on #17152 (director 5615360777, restated at 5634031140), on the authority of the maintainer's ruling on #15954 (5559778263): every retirement family has one D3 entry, even when a lossless D2 conversion exists, and D2 carries the mechanical data repair only.

The contradicting entries (origin/main d7c024133e)

  1. Major 18, unreleased: tenancy.organizationField (Retire tenancy.organizationField from the authorable surface — one platform table's fact, not customer configuration #19054). The key's tombstone is entries/retired-keys/18.data__TenancyConfig__organizationField.ts. Step 18's rationale in packages/spec/src/migrations/registry.ts (about :5240) retires it with 「The conversion is a lossless delete and there is no semantic residue」. No D3 entry names it. This is the pre-ruling rule applied in a major that has not shipped yet.
  2. Major 17, released: step 17 (registry.ts :78–83 module docblock, and :100–108 rationale). It says 「the whole break replays losslessly — there is no semantic residue and the semantic list is deliberately empty」. It covers four families: action.execute, field.conditionalRequired, agent.knowledge.topics, and the sharing-rule access level full.

What is not measured

  • Other major-18 families. The dev found these two sites by grepping the word "lossless" (77 hits in packages/spec/src/migrations/*.ts: 74 are D2-scope or per-entry facts, true under ruling B). A family retired with no D3 entry and no such wording is invisible to that grep. The major-18 tables hold 181 retired-keys, 130 retired-defs and 175 semantic files. The family census (every major-18 retirement family paired to its D3 entry, or named as missing one) is NOT MEASURED, and it is this card's first step.
  • Released majors. Ruling B's execution clauses (5634031140) name no backfill of released majors. Whether step 17 (already shipped) gets entries added after the fact, which changes what os migrate meta --from 16 prints, is for triage to route. ⛔ The seat does not assume either answer.

Direction (for the claimant, not a ruling)

  • Take the major-18 family census first. Add one D3 entry per family that lacks one, written as ruling B defines it: why the consumer still owes a judgment even though D2 repaired the data. Correct each rationale sentence that justified the absence.
  • Regenerate with pnpm --filter @objectstack/spec gen:migration-registry. ⛔ Never hand-edit the generated regions.
  • Pin: the census is asserted by a test or by check:migration-registry, so a new major-18 retirement without a D3 entry fails loudly. Before adding a check, find out whether one already exists. A new gate is not presumed: 「新增门禁默认否」.

Dedupe

The open-issue walk (208 open) matched deliberately empty|semantic residue|no semantic|step ?17|organizationField|D3 entr|semantic entr|per retirement family|per-family. It returned #20188 (ADR-0087's own text only, no entry), #17152 (the ruling card) and #17158 (unrelated). ⇒ No duplicate.

Dedupe words: D3 entry per family missing · lossless no semantic residue rationale · tenancy organizationField semantic entry · step17 semantic list deliberately empty


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

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:specpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions