Summary
Collapse the CLI scaffold to one canonical family: every framework scaffolds env.ts as the imported env object surface. The #1316 codegen-vs-plugin-env seam dissolves per ADR 0015.
Product call (#1333): Option 3. Schema/define is not a scaffold variant, escape hatch, or soft-deprecated path on v1 — omit it entirely. Teach and scaffold import { env } from "./env" only. Provide a migration path that detects v0 schema/define patterns and rewrites them to the canonical env-object surface when users upgrade.
Scope
Ownership boundary
This issue owns CLI scaffold + migration UX only.
Package API removal of schema/define on v1 is #1461 (separate ready-for-agent chore). Coordinate sequencing so migration UX matches the surface packages actually ship.
Acceptance criteria
Landing
v1 branch only — see ADR 0015 landing strategy (as amended by #1333). Depends on #1328 / #1329. Coordinates with #1289 / #1311 / #1316 / #1320 / #1461. Part of #1105 (ADR: #1326). Unblocked by #1333 Option 3.
Summary
Collapse the CLI scaffold to one canonical family: every framework scaffolds
env.tsas the imported env object surface. The #1316 codegen-vs-plugin-env seam dissolves per ADR 0015.Product call (#1333): Option 3. Schema/define is not a scaffold variant, escape hatch, or soft-deprecated path on v1 — omit it entirely. Teach and scaffold
import { env } from "./env"only. Provide a migration path that detects v0 schema/define patterns and rewrites them to the canonical env-object surface when users upgrade.Scope
env.ts(createEnv) + plugin registration wired for the transform design ((v1) feat(vite-plugin): env-module transform — canonical env object surface #1328 / (v1) feat(bun-plugin): env-module transform — canonical env object surface #1329) — novite-env.d.ts/bun-env.d.tsinjection.planDtsFileSPA path.isCodegenFramework/createCodegenFrameworkStrategyvsplugin-envstrategy split into the single family;clientPrefixfirst-class for all frameworks (ADR 0014 consequence, (v1) Add clientPrefix to all FrameworkStrategy implementations #1320).env.tsshape for all frameworks.import { env } from "./env"/ canonical env-object layout.Ownership boundary
This issue owns CLI scaffold + migration UX only.
Package API removal of schema/define on v1 is #1461 (separate ready-for-agent chore). Coordinate sequencing so migration UX matches the surface packages actually ship.
Acceptance criteria
arkenv initon a Vite or Bun project scaffolds the env-object surface by default and compiles/runs..d.tsscaffold variant exists; absence is intentional (Option 3).Landing
v1 branch only — see ADR 0015 landing strategy (as amended by #1333). Depends on #1328 / #1329. Coordinates with #1289 / #1311 / #1316 / #1320 / #1461. Part of #1105 (ADR: #1326). Unblocked by #1333 Option 3.