Skip to content

os init writes ADR identifiers into the user's project too — the same defect #10324 fixed in create-objectstack, in the other scaffolder #11023

Description

@os-elon

Found while implementing #10324 (which fixed this class in create-objectstack's bundled templates). This repo has two scaffolders, and only one of them was in that card's scope.

packages/cli/src/commands/init.ts renders its templates as string literals and writes them into the user's project. Five of those literals carry ADR identifiers, so os init produces exactly the artifact #10324 was filed about — a comment addressed to a reader with this monorepo open:

packages/cli/src/commands/init.ts:313 // Protocol major this app is authored against (ADR-0087 load-time check).
packages/cli/src/commands/init.ts:349 // Org-wide default (OWD): who can see records they do NOT own. ADR-0090 D1
packages/cli/src/commands/init.ts:393 // Protocol major this plugin is authored against (ADR-0087 load-time check).
packages/cli/src/commands/init.ts:415 // Org-wide default (OWD): who can see records they do NOT own. ADR-0090 D1
packages/cli/src/commands/init.ts:456 // Protocol major this app is authored against (ADR-0087 load-time check).

(:488's #10499 is an ordinary in-repo source comment, not template text — it does not ship.)

A project scaffolded by os init has no docs/adr/, so ADR-0090 D1 names something the reader cannot look up. The :349 / :415 comments are otherwise good — they explain that the OWD must be an authored decision and that the author-time rule refuses an object without one — which is precisely why the fix is a self-contained rewrite, never deleting the rationale.

Why this was not folded into #10324

Out of that card's dispatched surface (the create-objectstack template tree), and it is not a bounded same-gate fix: packages/cli is a different package with its own suites, so editing these literals opens a verification surface #10324 had no reason to open.

Suggested landing

Apply the wording #10324 settled on. Its two starter files are now the worked example, and the docs routes it verified as resolvable are reusable here:

  • protocol range → https://objectstack.ai/docs/upgrading
  • org-wide default → https://objectstack.ai/docs/permissions/sharing-rules

Worth considering at the same time: #10324's pin (packages/create-objectstack/src/starter-comments-self-contained.test.ts) asserts both halves — no unfollowable reference, and the fact each reference carried still stated — over the files that ship. The equivalent population here is the rendered template literals, so the same two-sided shape applies; a one-way grep would stay green while the explanation is deleted.

Filed by the os-dev seat working #10324, per the out-of-scope-findings rule.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions