Skip to content

Commit d2c2579

Browse files
committed
docs(adr): ADR-0133 cites the landed ADR-0132 for the D2 reversal
The record that reverses cloud ADR-0081 D2 has landed on `main` as ADR-0132, so this file's account of it is stale: it described that record as an open draft PR, cited it by PR number because an unmerged ADR number was a squat, and still said D2's packaging decision "stays in cloud". - header bullet — D2 is not mirrored because it has been REVERSED; what stays in cloud is the record, not the machinery, which now ships in this repo - "Relationship to the D2 reversal" heading and body — cite ADR-0132 by number and relative link; the PR-number citation the anchors gate used to force is retired, and the in-file link target moves with the heading - division-of-labour table — the D2 row points at ADR-0132 - the note for the hand-merge — folding the two records into one was blocked by ADR-0132 being an unmerged governed PR; that obstacle is gone, and this change still does not take the option, which stays a merge-time call - "What this record does not decide" item 4 — same re-pointing The file wrote its own trigger for this edit, and the condition is now met. Nothing about the reversal is re-derived, restated or evaluated here: ADR-0132 records that it does not touch cloud ADR-0081 D1/D3/D4, which are this file's whole content, so the two remain disjoint. `origin/main` is merged in so the cited record exists in the tree the gates read. Gates: check-adr-anchors exit 0; check-adr-symbol-anchors exit 0, verdict "0 line anchors survive"; check-governed-merges --test exit 3 GOVERNED. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpTx2tbq3pZRYAdoGt6E6Y
1 parent c83097a commit d2c2579

1 file changed

Lines changed: 30 additions & 28 deletions

File tree

docs/adr/0133-org-management-open-basics.md

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
- **Status**: Proposed (2026-09-06) — awaiting the maintainer's hand-merge, which is the acceptance act for a governed surface (Prime Directive #14). ⛔ Nothing in this file is a new decision; see [Provenance](#provenance--read-this-before-citing-this-file).
44
- **Mirrors**: `objectstack-ai/cloud` **ADR-0081** (Status: Accepted, founder-decided in session, 2026-07-09) — **D1, D3 and D4 only**, the half whose mechanism is open code in this repository.
5-
- **Deliberately not mirrored**: cloud ADR-0081 **D2**, its non-goals, and its commercial consequences. Those govern a packaging choice, stay in cloud, and are cited as `cloud ADR-0081` — never restated here. See [Relationship to the D2 reversal](#relationship-to-the-d2-reversal-16215).
5+
- **Deliberately not mirrored**: cloud ADR-0081 **D2**, its non-goals, and its commercial consequences — cited as `cloud ADR-0081`, never restated here. ⚠️ D2 is absent for a stronger reason than the other two: it has been **reversed** by [ADR-0132](./0132-multi-organization-runtime-is-open-core.md), and the multi-organization machinery it packaged now ships in this repository (`packages/plugins/organizations`). What stays in cloud is that *record* — together with the non-goals and the commercial consequences, which the reversal leaves untouched. See [Relationship to the D2 reversal](#relationship-to-the-d2-reversal-adr-0132).
66
- **Cross-checked against** (cite, do not duplicate): [ADR-0093](./0093-tenancy-mode-and-membership-lifecycle.md) (tenancy mode; the membership lifecycle; D9 already anchors the active-organization resolution), [ADR-0105](./0105-group-tenancy-posture-and-first-class-org-scope.md) (group tenancy posture; D12 anchors the multi-org entitlement), [ADR-0131](./0131-total-organization-ownership-no-null-organization-id.md) (total organization ownership; D1/D7/D9)
77
- **Filed by**: [#14508](https://github.com/objectstack-ai/objectstack/issues/14508), a sub-issue of [#14496](https://github.com/objectstack-ai/objectstack/issues/14496) (maintainer ruling 2026-09-02, option 2: mirror the open half, do not move files)
88
- **Consumers**: `@objectstack/platform-objects` (the identity surface and the Setup navigation contributions), `@objectstack/plugin-auth` (better-auth's organization plugin and the default-organization bootstrap), `@objectstack/spec` (the public auth-feature roster), and the objectui console that renders the surface
@@ -55,44 +55,45 @@ than resolved.
5555

5656
---
5757

58-
## Relationship to the D2 reversal (#16215)
58+
## Relationship to the D2 reversal (ADR-0132)
5959

6060
**A separate local record — "The multi-organization runtime is open core" —
61-
reverses cloud ADR-0081 D2.** It is open as a draft PR
62-
([#16215](https://github.com/objectstack-ai/objectstack/pull/16215)) and is not
63-
yet on `main`.
64-
65-
**It is referenced here by PR number and never by its ADR number, and that is
66-
a gate requirement rather than a style choice.** `pnpm check:adr-anchors` fails
67-
any citation of an ADR number that names no record under `docs/adr/`: an
68-
unmerged number is a squat, and every citation of it is retroactively falsified
69-
if the record lands under a different number. A PR reference cannot rot that
70-
way. **When #16215 merges, its number becomes citable and this file should be
71-
updated to use it** — that edit is cheap, mechanical, and owed to whichever of
72-
the two records lands second.
61+
reverses cloud ADR-0081 D2.** It is
62+
[ADR-0132](./0132-multi-organization-runtime-is-open-core.md), and it is **on
63+
`main`** (landed 2026-09-07): a record, not a proposal.
64+
65+
**It is cited here by ADR number and relative link, and nothing about that
66+
reversal is re-derived, restated or evaluated below.** This file previously
67+
cited it by PR number, which was a gate requirement rather than a style choice:
68+
`pnpm check:adr-anchors` fails any citation of an ADR number that names no
69+
record under `docs/adr/`, so while the record was unmerged its number was a
70+
squat and a citation of it would have been retroactively falsified had it landed
71+
under a different number. That constraint is discharged — the number resolves,
72+
so it is the citable form and the PR reference is retired from this file.
7373

7474
The division of labour between the two records is exact and neither restates
7575
the other:
7676

7777
| cloud ADR-0081 | who carries it locally |
7878
|---|---|
7979
| **D1** — the "add a teammate" basics stay open | **this record** |
80-
| **D2** — the multi-organization machinery is enterprise | the record proposed in **#16215**, which reverses it. ⛔ Not re-derived, restated or evaluated here |
80+
| **D2** — the multi-organization machinery is enterprise | **reversed** by [ADR-0132](./0132-multi-organization-runtime-is-open-core.md), which is on `main`. ⛔ Not re-derived, restated or evaluated here |
8181
| **D3** — the in-shell organization surface | **this record** |
8282
| **D4** — org-scoped roster reads | **this record** |
8383
| the non-goals and the commercial consequences | stay in cloud, cited as `cloud ADR-0081` |
8484

85-
⚠️ **A note for the hand-merge, stated rather than decided.** #16215's record
86-
says in its own "What this record does not decide" section that D1/D3/D4 "are
87-
mirrored into this repository by #14508", and asks that writer to cite its
88-
decisions rather than open a *competing* record — which this file does: it
89-
decides nothing that record decides. A later comment on #14508 goes further and
90-
proposes folding D1/D3/D4 into that file instead of writing a second one. That
91-
option was not available to this change: the file does not exist on `main`, so
92-
"extending" it would mean building on an unmerged governed PR and coupling two
93-
hand-merges into one. **If the maintainer prefers one combined record, that is a
94-
merge-time call** — the two files are disjoint, so folding them is a move, not a
95-
rewrite.
85+
⚠️ **A note for the hand-merge, stated rather than decided.** ADR-0132 says in
86+
its own "What this record does not decide" section that D1/D3/D4 "are mirrored
87+
into this repository by #14508", and asks that writer to cite its decisions
88+
rather than open a *competing* record — which this file does: it decides nothing
89+
that record decides. A later comment on #14508 goes further and proposes folding
90+
D1/D3/D4 into that file instead of writing a second one. When this file was
91+
drafted that option was not available: ADR-0132 did not exist on `main`, so
92+
"extending" it would have meant building on an unmerged governed PR and coupling
93+
two hand-merges into one. That obstacle is gone — the record has landed — so the
94+
choice now stands on its merits alone. This change does not take it. **If the
95+
maintainer prefers one combined record, that is still a merge-time call** — the
96+
two files are disjoint, so folding them is a move, not a rewrite.
9697

9798
---
9899

@@ -243,8 +244,9 @@ resolved here.
243244
and D14), not a mirror's to settle.
244245

245246
4. **What an enterprise subscription buys, and where the multi-organization
246-
machinery lives.** Cloud ADR-0081 D2 and the record proposed in #16215,
247-
respectively. ⛔ Not evaluated here.
247+
machinery lives.** Cloud ADR-0081 D2 and
248+
[ADR-0132](./0132-multi-organization-runtime-is-open-core.md), respectively.
249+
⛔ Not evaluated here.
248250

249251
---
250252

0 commit comments

Comments
 (0)