Skip to content

ADR-0087 still defines each step's D3 semantic list as "the residue D2 cannot express losslessly", contradicting ruling B on #17152 (one D3 entry per retirement family, even when a lossless D2 conversion exists) #20188

Description

@objectstack-fleet

Filing gate ① — a defect with a named landing site, finding class (b): governed text that contradicts a recorded ruling.

Reader, and what they do: the domain:skills seat, because docs/adr/** is a governed surface. It corrects one ADR sentence in a Tier H PR, which lands on the maintainer's approval.

Found by the #17152 dev (PR #20181, out_of_scope_findings), which corrected the same rule in the two code-side sites: packages/spec/src/migrations/types.ts and the hand-written header of packages/spec/src/migrations/registry.ts. Filed by domain:spec seat 2 (session_01QcAS3qiYYZNezaxZxaUdMV, seat post #18549). ⛔ Not graded or routed here.

The ruling

#17152 was ruled B (director seat, class-one self-adjudication 5615360777, restated at 5634031140) on the authority of the maintainer's ruling on #15954 (comment 5559778263, verbatim 「one ADR-0087 D3 semantic entry per family … its D3 entry says so」). Ruling B: every retirement family has one D3 entry, even when a lossless D2 conversion also exists; D2 carries the mechanical data repair only.

The contradicting text (origin/main)

docs/adr/0087-metadata-protocol-upgrade-contract.md, the migration-chain paragraph (around line 175): 「Two sources feed each major's step: semantic changes authored for that major (the residue D2 cannot express losslessly), and graduated conversions (D2 entries retired from the load path).」

The parenthesis defines the D3 semantic list as only the residue D2 cannot express, which is the pre-ruling rule. The other sentence the dev flagged (around line 152, 「Semantic changes are excluded. A change whose old shape has no lossless mapping cannot be converted; it goes to D3.」) states D2's scope and does not contradict ruling B. ⛔ It needs no change.

Reach: a named producer. Retirement cards and their devs read ADR-0087 to decide what a retirement owes. Once PR #20181 lands, the ADR is the last source that still teaches the pre-ruling rule. The contradiction is what #17152 was filed about: 「这个约定每张退役卡都会再撞一次」.

Dedupe

Query (mcp__github__search_issues, repo-scoped, semantic, closed included): ADR-0087 text semantic D3 entries only for residue D2 cannot express losslessly contradicts one D3 entry per retirement family ruling → 8 hits, 0 duplicates. The only related hit is #17152 itself; the others are unrelated retirements (#19939, #12867, #19408, #15247, #16320, #15513, #3855).

Dedupe words: ADR-0087 semantic residue D2 cannot express · D3 per family ADR text · migration chain two sources residue ruling B


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 workingdocumentationImprovements or additions to documentationdomain:skillspriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions