Skip to content

The pre-repo ADR-0081 label survives in 37 more citations across three unrelated claims — same collision #8474 fixed for the active-org stamp only #8531

Description

@qq9340100

Blocked-by: #8474 (its ADR-0093 D9 recording establishes the pattern this work would repeat)

Found while implementing #8474 (PR #8529). #8474's declared surface is the default-active-org session hook only, and re-anchoring a different decision is a different change per claim — so deliberately not fixed there. Filed unassigned and unlabeled; routing and grading are the triage seat's call.

The measurement

ADR-0081 D1 / ADR-0081 D2 are cited 37 times across 22 tracked filesafter PR #8529 lands (history excluded — CHANGELOG.md and .changeset/*.md are left alone by the "keep history as history" rule).

docs/adr/0081-trusted-react-page-tier.md is the trusted kind:'react' page tier, and its Decision section is numbered 1–4 — it has no D-numbered decisions at all. So neither D1 nor D2 names anything in it.

ADR-0093's Relates to line already explains the cause, and it is not a typo:

the default-org bootstrap (`plugin-auth/src/ensure-default-organization.ts`,
referenced in code as "ADR-0081 D1" — that decision record predates this
repo's ADR series)

The label is inherited from a pre-repo decision record whose number now collides with this repo's ADR-0081. #8474 closed one claim's worth; these are the rest.

Three distinct claims, not one sweep

The label was reused for unrelated decisions, so this is not fixable by string replacement. ⛔ Each claim needs its own owning record established first.

Claim B — the ensureDefaultOrganization default-org bootstrap (ADR-0081 D1)

  • packages/plugins/plugin-auth/src/: auth-plugin.ts (x2), auth-plugin.test.ts, ensure-default-organization.ts, ensure-default-organization.test.ts
  • packages/verify/src/harness.ts (x3), harness.org-context.test.ts
  • content/docs/permissions/sharing-rules.mdx:178⚠️customer-facing, the only published-docs site
  • ADR-0093 is the plausible owner again (it already names the helper), but the bootstrap is a write decision, not the D9 read — it likely deserves its own D or its own record.

Claim C — the org CAPABILITY gate, not multi-org (ADR-0081 D1)

Claim D — multi-org operation is a commercial ENTITLEMENT (ADR-0081 D2, 17 sites)

  • packages/plugins/plugin-auth/src/tenancy-service.ts (x2), tenancy-service.test.ts
  • packages/spec/src/security/tenancy-posture.ts, packages/cli/src/commands/serve.ts, packages/plugins/plugin-dev/src/dev-plugin.ts, packages/verify/src/harness.ts (x2)
  • packages/qa/dogfood/test/: enterprise-organizations.ts (x3), rls-multitenant.dogfood.test.ts, authz-conformance.matrix.ts
  • docs/adr/0105-*:334,348⚠️ another governing record, and here the citation is load-bearing: ADR-0105 argues from "ADR-0081 D2's commercial" posture and describes inverting it. ADR-0105 may well be the real owner of this claim already — worth checking before inventing a new anchor.

Why the gate stays green

pnpm check:adr-anchors verifies a cited ADR exists; 0081 does. It cannot check that the record says what the citing file claims. Confirmed green on PR #8529 with all 37 of these still in the tree.

Suggested shape (triage's call)

Per claim, not per string: establish the owning record (ADR-0105 for claim D looks likely to already exist; claims B and C probably need a recording like #8474's ADR-0093 D9), then re-point that claim's sites. Claim D is the largest and the most likely to already have a home, so it may be the cheapest first.

⚠️docs/adr/** is in scope for every claim ⇒ maintainer-merged PR (Prime Directive #14).

Dedup

Searched open issues for ADR-0081, ensureDefaultOrganization, default-org bootstrap, ADR anchor / wrong citation, and by path. Control: the same searches do return #8474, so the query reaches the corpus. Only #8474 hits, and it is scoped to the active-org stamp alone (PR #8529 states the exclusion explicitly). Related but distinct: #8386 and #8285 (same defect family — wrong-but-existing ADR anchors — different documents, both closed).

Refs: #8474 / PR #8529 · #8386, #8285 (related family, not duplicates) · ADR-0081, ADR-0093, ADR-0105


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions