You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Decision] Where does a decision that governs OPEN code live? — cloud (private) ADRs are cited from this public repo in 60 files with a qualifier and ~110 more times bare, squatting on unrelated local numbers (0024 · 0071 · 0081); mirror them here, or qualify only #14496
Filed by the director seat (session session_01WXyGTWPbbreqXow7Z2pZCk) on the maintainer's follow-up to the #14361 ruling, verbatim: 「但是同时需要评估,cloud中是有属于开源项目的adr吗?需要迁移吗?」. ADR-registry policy is ADR-class — human floor; this card carries the measurement, the options with their real costs, and one recommendation. #14361 is parked on this card (Blocked-by) so its 30-file re-pointing is not paid twice.
Visibility: objectstack-ai/objectstack is public; objectstack-ai/cloud is private (list_repos). A reader of this repo — a contributor, or an AI agent working from a clone — cannot open any cloud ADR-NNNN it cites.
Registries: objectstack 133 records; cloud 43 records. Numbering is independent, so every number collides.
Positive control: bare ADR-0010 in the same files (sys-account.object.ts:20, sys-api-key.object.ts:39, "§3.7 managed by better-auth; tenants may not edit schema") is the local metadata-protection model — so bare does not always mean cloud, and every citation has to be read, not pattern-replaced. Numbers with hundreds of bare citations (0025 ×197, 0018 ×230, 0012 ×111, 0008 ×175, 0010 ×502) are dominated by their local meaning; only the identity surface was read here.
Cloud ADRs that speak about the open repo / open packages: 22 of 43. By subject they split into (a) boundary / commercial decisions that govern both sides and belong in cloud by nature — 0002 open-core boundary, 0016 authz open/paid boundary, 0025 service-ai to cloud, 0082 ask stays closed, 0020 distribution model, 0022 license model, 0023 pricing, 0005 model tiering, 0006 / 0010 / 0018 multi-tenant & on-prem EE, 0008 cloud-connection boundary, 0013 durable agent turns, 0019 AI build reuses the open validation stack, 0085 brand-split pricing; (b) decisions whose mechanism half is implemented in this repo's open packages — 0024 Identity & Access Architecture (D1 per-env identity, D3 cloud-as-IdP, D4/D5 admin & break-glass, D6/D7 SCIM targets the env — all implemented in open plugin-auth), 0071 Enterprise Identity V1: env-side SCIM via @better-auth/scim (open mechanism, PR feat(plugin-auth): env-side SCIM 2.0 via @better-auth/scim (ADR-0071, OPEN mechanism) #2356), 0081 Organization Management — open basics half; and (c) already mirrored: 0079 record display-name — cloud holds the 2026-06-28 design (41 KB), this repo holds a retroactive reconstruction written 2026-08-08 (19 KB) with a Provenance section. Nine local ADRs already link out to cloud ADR-NNNN (0003 · 0033 · 0038 · 0040 · 0048 · 0063 · 0064 · 0066 · 0105).
Options and their real cost
Qualifier only — every citation that means a cloud record is spelled cloud ADR-NNNN (the gate's structural form); nothing moves. Cost: one mechanical re-pointing pass over the identity surface (~110 sites); the open repo keeps citing decisions its readers cannot open.
Mirror the open half — for the (b) set, write a local ADR that states the decision as it governs this repo's code (the 0079 shape: own number, Provenance section naming the cloud record and date, boundary/commercial content left in cloud), amend the cloud record with a pointer, and re-point this repo's citations to the local number; qualifier spelling remains for the (a) set. Cost: three ADRs to write and human-merge (0024 is large), one re-pointing pass (the same pass as option 1, different target), and a standing rule for the future.
Move files (renumber) — physically migrate cloud records into this registry. Cost: renumbering breaks every existing citation in both repos (cloud cites its own 0024 / 0071 too), 0079 shows the two repos already diverge on one record, and the commercial half would leave the private repo. ⛔ Not recommended by anyone here.
Filed by the director seat (session
session_01WXyGTWPbbreqXow7Z2pZCk) on the maintainer's follow-up to the #14361 ruling, verbatim: 「但是同时需要评估,cloud中是有属于开源项目的adr吗?需要迁移吗?」. ADR-registry policy is ADR-class — human floor; this card carries the measurement, the options with their real costs, and one recommendation. #14361 is parked on this card (Blocked-by) so its 30-file re-pointing is not paid twice.Measured (objectstack
origin/main@00ff228fe, cloudorigin/main@3856fbf)objectstack-ai/objectstackis public;objectstack-ai/cloudis private (list_repos). A reader of this repo — a contributor, or an AI agent working from a clone — cannot open anycloud ADR-NNNNit cites.cloud ADR-NNNN, the structural spellingcheck-adr-anchors.mjsaccepts): 60 files. By number: 0016 ×44 · 0024 ×19 · 0025 ×15 · 0009 ×12 · 0007 ×5 · 0018 / 0012 / 0008 ×4 · 0022 ×2 · 0081 / 0071 / 0010 ×1.mcp-connectorsidentity-and-access-architecturesys-sso-provider.object.ts:34,64,151,187,sys-user.object.ts:327"ADR-0024 D4/D5.2" …)dataset-semantic-layer-depthenterprise-identity-scim-v1trusted-react-page-tierorg-management-open-basics-enterprise-organizationssys-member.object.ts:47,sys-user.object.ts:59"ADR-0081 D1",invite-entry-toolbar.test.ts:4)Positive control: bare
ADR-0010in the same files (sys-account.object.ts:20,sys-api-key.object.ts:39, "§3.7 managed by better-auth; tenants may not edit schema") is the local metadata-protection model — so bare does not always mean cloud, and every citation has to be read, not pattern-replaced. Numbers with hundreds of bare citations (0025 ×197, 0018 ×230, 0012 ×111, 0008 ×175, 0010 ×502) are dominated by their local meaning; only the identity surface was read here.askstays closed, 0020 distribution model, 0022 license model, 0023 pricing, 0005 model tiering, 0006 / 0010 / 0018 multi-tenant & on-prem EE, 0008 cloud-connection boundary, 0013 durable agent turns, 0019 AI build reuses the open validation stack, 0085 brand-split pricing; (b) decisions whose mechanism half is implemented in this repo's open packages — 0024 Identity & Access Architecture (D1 per-env identity, D3 cloud-as-IdP, D4/D5 admin & break-glass, D6/D7 SCIM targets the env — all implemented in openplugin-auth), 0071 Enterprise Identity V1: env-side SCIM via@better-auth/scim(open mechanism, PR feat(plugin-auth): env-side SCIM 2.0 via @better-auth/scim (ADR-0071, OPEN mechanism) #2356), 0081 Organization Management — open basics half; and (c) already mirrored: 0079 record display-name — cloud holds the 2026-06-28 design (41 KB), this repo holds a retroactive reconstruction written 2026-08-08 (19 KB) with a Provenance section. Nine local ADRs already link out tocloud ADR-NNNN(0003 · 0033 · 0038 · 0040 · 0048 · 0063 · 0064 · 0066 · 0105).Options and their real cost
cloud ADR-NNNN(the gate's structural form); nothing moves. Cost: one mechanical re-pointing pass over the identity surface (~110 sites); the open repo keeps citing decisions its readers cannot open.Provenancesection naming the cloud record and date, boundary/commercial content left in cloud), amend the cloud record with a pointer, and re-point this repo's citations to the local number; qualifier spelling remains for the (a) set. Cost: three ADRs to write and human-merge (0024 is large), one re-pointing pass (the same pass as option 1, different target), and a standing rule for the future.四维分析(业务角度)
cloud限定词;凡治理开源代码的机制半边,开源仓自有记录(带 Provenance 指回 cloud)。方案 2 就是这条规矩;方案 1 只修了拼写、没修「读不到」;方案 3 把数字搬家,破坏两仓全部既有引用。ADR-0024与 36 处裸ADR-0071指向无关记录、生成文档把错指针放在应用作者面前、运行期拒绝消息把编号念给运维;还有一个更大的:objectstack 是公开仓,任何外部读者顺着cloud ADR-0024都会撞 404。拉动真实、中等,且随开源用户增长而增长。ADR-0010是本仓记录),⛔ 不能按号批量替换。推荐:方案 2(镜像开源半边)+ 方案 1 的拼写规则作为地板。执行顺序:(i) 先立规矩(本卡裁决即规矩,一句话进 AGENTS.md「ADR 引用」一节由 skills 席落编);(ii) 三份镜像 ADR 各一张卡(0024 身份架构开源半边、0071 env-side SCIM 机制、0081 组织管理开源基础),ADR 类人工合并;(iii) 镜像落地后一次改指 —— 身份面裸引用改指本仓新号,(a) 类保持
cloud ADR-NNNN;#14361 的执行随 (iii) 走,⛔ 不先按cloud ADR-0071改一遍再改第二遍。回退:若不想现在写三份 ADR ⇒ 方案 1 立即执行(#14361 现裁 B 即是),镜像另行排期。置信缺口:只读了身份面;0009(console SDUI-first)、0007(env 内包安装)、0012(runtime feature contract)三份 cloud 记录的机制半边是否也主要落在开源代码,未逐条读;cloud 侧引用自己 0024/0071 的处数未计(方案 3 的代价下限已足够否决它)。