diff --git a/docs/design/90-decisions/ADR-0003-deploy-derives-everything-from-the-root-node.md b/docs/design/90-decisions/ADR-0003-deploy-derives-everything-from-the-root-node.md index dc19fca2..600056da 100644 --- a/docs/design/90-decisions/ADR-0003-deploy-derives-everything-from-the-root-node.md +++ b/docs/design/90-decisions/ADR-0003-deploy-derives-everything-from-the-root-node.md @@ -1,9 +1,5 @@ # ADR-0003: `prisma-compose deploy` derives the application from the root node -## Status - -Accepted - ## Decision The deploy entrypoint is `prisma-compose deploy `, where `entry` is a module diff --git a/docs/design/90-decisions/ADR-0004-paths-resolve-relative-to-the-authoring-file.md b/docs/design/90-decisions/ADR-0004-paths-resolve-relative-to-the-authoring-file.md index 1650cf00..ef40b462 100644 --- a/docs/design/90-decisions/ADR-0004-paths-resolve-relative-to-the-authoring-file.md +++ b/docs/design/90-decisions/ADR-0004-paths-resolve-relative-to-the-authoring-file.md @@ -1,9 +1,5 @@ # ADR-0004: Paths resolve relative to the file that writes them -## Status - -Accepted - ## Decision Every path a build descriptor carries resolves relative to the module that diff --git a/docs/design/90-decisions/ADR-0005-users-build-the-framework-assembles.md b/docs/design/90-decisions/ADR-0005-users-build-the-framework-assembles.md index 82eedaef..c99b5224 100644 --- a/docs/design/90-decisions/ADR-0005-users-build-the-framework-assembles.md +++ b/docs/design/90-decisions/ADR-0005-users-build-the-framework-assembles.md @@ -1,9 +1,5 @@ # ADR-0005: Users build their app; the framework assembles deploy artifacts from built output -## Status - -Accepted - ## Decision The framework never initiates or configures a user's build. The contract is: diff --git a/docs/design/90-decisions/ADR-0006-every-node-is-named.md b/docs/design/90-decisions/ADR-0006-every-node-is-named.md index bc573ffd..e22b6b8e 100644 --- a/docs/design/90-decisions/ADR-0006-every-node-is-named.md +++ b/docs/design/90-decisions/ADR-0006-every-node-is-named.md @@ -1,9 +1,5 @@ # ADR-0006: Every node is named; the root's name names the application -## Status - -Accepted - ## Decision Every node — module, service, or resource — carries an explicit, diff --git a/docs/design/90-decisions/ADR-0007-deploy-drives-alchemy-through-a-generated-stack-file.md b/docs/design/90-decisions/ADR-0007-deploy-drives-alchemy-through-a-generated-stack-file.md index 27a6a6a1..939f3fce 100644 --- a/docs/design/90-decisions/ADR-0007-deploy-drives-alchemy-through-a-generated-stack-file.md +++ b/docs/design/90-decisions/ADR-0007-deploy-drives-alchemy-through-a-generated-stack-file.md @@ -1,9 +1,5 @@ # ADR-0007: Deploy drives Alchemy through a generated stack file -## Status - -Accepted - ## Decision `prisma-compose deploy` materializes its work as a small, human-readable stack diff --git a/docs/design/90-decisions/ADR-0008-wrapper-inlines-everything-except-runtime-builtins.md b/docs/design/90-decisions/ADR-0008-wrapper-inlines-everything-except-runtime-builtins.md index 73aeac75..373d2ee3 100644 --- a/docs/design/90-decisions/ADR-0008-wrapper-inlines-everything-except-runtime-builtins.md +++ b/docs/design/90-decisions/ADR-0008-wrapper-inlines-everything-except-runtime-builtins.md @@ -1,9 +1,5 @@ # ADR-0008: The boot wrapper inlines everything except runtime built-ins -## Status - -Accepted - ## Decision When assembly bundles the service module into the boot wrapper, it inlines diff --git a/docs/design/90-decisions/ADR-0009-deploy-state-is-hosted-in-the-workspace.md b/docs/design/90-decisions/ADR-0009-deploy-state-is-hosted-in-the-workspace.md index e2787563..ffe538cb 100644 --- a/docs/design/90-decisions/ADR-0009-deploy-state-is-hosted-in-the-workspace.md +++ b/docs/design/90-decisions/ADR-0009-deploy-state-is-hosted-in-the-workspace.md @@ -1,9 +1,5 @@ # ADR-0009: Deploy state is hosted in the workspace, not in local files -## Status - -Accepted - ## Decision Deploy state — the provisioning engine's record of what exists in the cloud — diff --git a/docs/design/90-decisions/ADR-0010-deploys-hold-a-session-advisory-lock.md b/docs/design/90-decisions/ADR-0010-deploys-hold-a-session-advisory-lock.md index 780f8491..60685b86 100644 --- a/docs/design/90-decisions/ADR-0010-deploys-hold-a-session-advisory-lock.md +++ b/docs/design/90-decisions/ADR-0010-deploys-hold-a-session-advisory-lock.md @@ -1,9 +1,5 @@ # ADR-0010: Deploys hold a session advisory lock per stack and stage -## Status - -Accepted - ## Decision A deploy acquires a Postgres session advisory lock on the hosted state diff --git a/docs/design/90-decisions/ADR-0011-targets-supply-the-deploy-state-layer.md b/docs/design/90-decisions/ADR-0011-targets-supply-the-deploy-state-layer.md index 3e4979b2..d906056c 100644 --- a/docs/design/90-decisions/ADR-0011-targets-supply-the-deploy-state-layer.md +++ b/docs/design/90-decisions/ADR-0011-targets-supply-the-deploy-state-layer.md @@ -1,9 +1,5 @@ # ADR-0011: Targets supply the deploy state layer -## Status - -Accepted - ## Decision `Target.state` is a required field: every target constructs the Alchemy state diff --git a/docs/design/90-decisions/ADR-0012-the-state-store-speaks-sql-directly.md b/docs/design/90-decisions/ADR-0012-the-state-store-speaks-sql-directly.md index f2c098e0..e5a02476 100644 --- a/docs/design/90-decisions/ADR-0012-the-state-store-speaks-sql-directly.md +++ b/docs/design/90-decisions/ADR-0012-the-state-store-speaks-sql-directly.md @@ -1,9 +1,5 @@ # ADR-0012: The state store speaks SQL directly; Prisma Next adoption is deferred -## Status - -Accepted - ## Decision The hosted state store's data access is hand-written SQL over a plain Postgres diff --git a/docs/design/90-decisions/ADR-0013-resources-are-provisioned-by-modules-deps-are-declarations.md b/docs/design/90-decisions/ADR-0013-resources-are-provisioned-by-modules-deps-are-declarations.md index 4888b1f8..48066ff8 100644 --- a/docs/design/90-decisions/ADR-0013-resources-are-provisioned-by-modules-deps-are-declarations.md +++ b/docs/design/90-decisions/ADR-0013-resources-are-provisioned-by-modules-deps-are-declarations.md @@ -1,9 +1,5 @@ # ADR-0013: Resources are provisioned by modules; dependencies are uniform contract-checked slots -## Status - -Accepted - ## Decision A service declares **dependencies** — one kind of slot, `DependencyEnd`, diff --git a/docs/design/90-decisions/ADR-0014-one-authoring-primitive.md b/docs/design/90-decisions/ADR-0014-one-authoring-primitive.md index b66764c2..1bdf552f 100644 --- a/docs/design/90-decisions/ADR-0014-one-authoring-primitive.md +++ b/docs/design/90-decisions/ADR-0014-one-authoring-primitive.md @@ -1,15 +1,5 @@ # ADR-0014: One authoring primitive — the App is the outermost Module -## Status - -Accepted, and largely superseded on names. This ADR originally chose the framework -name, the package family, and the CLI name; those are superseded by -[ADR-0026](ADR-0026-name-the-framework-prisma-compose.md) (the framework is -**Prisma Compose**, with the packages and CLI renamed to match), and the unit noun by -[ADR-0025](ADR-0025-name-the-unit-of-composition-module.md) (**Module**). What stands -is the **single-primitive model**: one authoring construct, no separate `app()`, and -the App is the outermost Module. - ## Decision There is exactly one authoring primitive, and no separate `app()` construct: **the diff --git a/docs/design/90-decisions/ADR-0015-dependencies-resolve-to-bindings-clients-are-app-side.md b/docs/design/90-decisions/ADR-0015-dependencies-resolve-to-bindings-clients-are-app-side.md index 2543a422..87a24b2c 100644 --- a/docs/design/90-decisions/ADR-0015-dependencies-resolve-to-bindings-clients-are-app-side.md +++ b/docs/design/90-decisions/ADR-0015-dependencies-resolve-to-bindings-clients-are-app-side.md @@ -1,9 +1,5 @@ # ADR-0015: Dependencies resolve to bindings; clients are constructed app-side -## Status - -Accepted - ## Decision `service.load()` returns each dependency's **binding** — the most-derived value diff --git a/docs/design/90-decisions/ADR-0016-a-module-has-the-same-boundary-as-a-service.md b/docs/design/90-decisions/ADR-0016-a-module-has-the-same-boundary-as-a-service.md index 95786380..9fdf6f27 100644 --- a/docs/design/90-decisions/ADR-0016-a-module-has-the-same-boundary-as-a-service.md +++ b/docs/design/90-decisions/ADR-0016-a-module-has-the-same-boundary-as-a-service.md @@ -1,9 +1,5 @@ # ADR-0016: A module has the same boundary as a service -## Status - -Accepted - ## Decision A module declares the same boundary a service does: a `Deps` map of typed diff --git a/docs/design/90-decisions/ADR-0017-control-plane-loads-through-the-app-config.md b/docs/design/90-decisions/ADR-0017-control-plane-loads-through-the-app-config.md index 38406100..d4e7c199 100644 --- a/docs/design/90-decisions/ADR-0017-control-plane-loads-through-the-app-config.md +++ b/docs/design/90-decisions/ADR-0017-control-plane-loads-through-the-app-config.md @@ -1,9 +1,5 @@ # ADR-0017: Control-plane code loads through the app's config file -## Status - -Accepted - ## Decision An application root carries a `prisma-compose.config.ts`. The config statically diff --git a/docs/design/90-decisions/ADR-0018-config-params-carry-a-caller-owned-schema.md b/docs/design/90-decisions/ADR-0018-config-params-carry-a-caller-owned-schema.md index 033f752f..4d3bb78b 100644 --- a/docs/design/90-decisions/ADR-0018-config-params-carry-a-caller-owned-schema.md +++ b/docs/design/90-decisions/ADR-0018-config-params-carry-a-caller-owned-schema.md @@ -1,9 +1,5 @@ # ADR-0018: Config params carry a caller-owned schema, not a framework type enum -## Status - -Proposed - ## Decision A config param declares its type as a **schema the caller supplies** — any diff --git a/docs/design/90-decisions/ADR-0019-the-target-owns-config-serialization.md b/docs/design/90-decisions/ADR-0019-the-target-owns-config-serialization.md index 477c1e4f..6e55045e 100644 --- a/docs/design/90-decisions/ADR-0019-the-target-owns-config-serialization.md +++ b/docs/design/90-decisions/ADR-0019-the-target-owns-config-serialization.md @@ -1,9 +1,5 @@ # ADR-0019: The deploy target owns config serialization -## Status - -Proposed - ## Decision Turning a param's value into stored platform configuration — and back into a diff --git a/docs/design/90-decisions/ADR-0020-scheduled-work-is-a-driver-not-a-resource.md b/docs/design/90-decisions/ADR-0020-scheduled-work-is-a-driver-not-a-resource.md index 217252ce..c8c1d389 100644 --- a/docs/design/90-decisions/ADR-0020-scheduled-work-is-a-driver-not-a-resource.md +++ b/docs/design/90-decisions/ADR-0020-scheduled-work-is-a-driver-not-a-resource.md @@ -1,9 +1,5 @@ # ADR-0020: Scheduled work is a driver, not a resource -## Status - -Accepted - ## Decision Cron is modelled as a **driver**: a scheduler service that *depends on* the diff --git a/docs/design/90-decisions/ADR-0021-params-are-read-through-config-not-load.md b/docs/design/90-decisions/ADR-0021-params-are-read-through-config-not-load.md index 6cf77431..00f988d6 100644 --- a/docs/design/90-decisions/ADR-0021-params-are-read-through-config-not-load.md +++ b/docs/design/90-decisions/ADR-0021-params-are-read-through-config-not-load.md @@ -1,9 +1,5 @@ # ADR-0021: Params are read through config(), separate from load()'s dependencies -## Status - -Proposed - ## Decision A service reads its **dependencies** through `load()` and its **config params** diff --git a/docs/design/90-decisions/ADR-0022-data-deps-carry-a-prisma-next-contract.md b/docs/design/90-decisions/ADR-0022-data-deps-carry-a-prisma-next-contract.md index 4e19fa07..4a12524d 100644 --- a/docs/design/90-decisions/ADR-0022-data-deps-carry-a-prisma-next-contract.md +++ b/docs/design/90-decisions/ADR-0022-data-deps-carry-a-prisma-next-contract.md @@ -1,9 +1,5 @@ # ADR-0022: Data deps carry a Prisma Next contract; deploys migrate to its ref -## Status - -Proposed - ## Decision A second data primitive joins bare `postgres()`: a Prisma Next-typed postgres diff --git a/docs/design/90-decisions/ADR-0023-a-prisma-app-is-one-project-a-stage-is-a-branch.md b/docs/design/90-decisions/ADR-0023-a-prisma-app-is-one-project-a-stage-is-a-branch.md index 76b3e9f4..8180d9f8 100644 --- a/docs/design/90-decisions/ADR-0023-a-prisma-app-is-one-project-a-stage-is-a-branch.md +++ b/docs/design/90-decisions/ADR-0023-a-prisma-app-is-one-project-a-stage-is-a-branch.md @@ -1,9 +1,5 @@ # ADR-0023: A Prisma App is one Project; a Stage is a Branch -## Status - -Accepted - ## Decision A Prisma App lowers to **one Prisma Cloud Project**. The Modules inside the app diff --git a/docs/design/90-decisions/ADR-0024-a-stage-is-a-deploy-time-environment-resolved-to-project-and-branch.md b/docs/design/90-decisions/ADR-0024-a-stage-is-a-deploy-time-environment-resolved-to-project-and-branch.md index 263e27e8..c66f3e07 100644 --- a/docs/design/90-decisions/ADR-0024-a-stage-is-a-deploy-time-environment-resolved-to-project-and-branch.md +++ b/docs/design/90-decisions/ADR-0024-a-stage-is-a-deploy-time-environment-resolved-to-project-and-branch.md @@ -1,9 +1,5 @@ # ADR-0024: A stage is a deploy-time environment; the CLI resolves its Project and Branch before Alchemy -## Status - -Accepted - ## Decision An app is deployed to a named **stage** — an environment. The topology is diff --git a/docs/design/90-decisions/ADR-0025-name-the-unit-of-composition-module.md b/docs/design/90-decisions/ADR-0025-name-the-unit-of-composition-module.md index 090813b5..8ccead1e 100644 --- a/docs/design/90-decisions/ADR-0025-name-the-unit-of-composition-module.md +++ b/docs/design/90-decisions/ADR-0025-name-the-unit-of-composition-module.md @@ -1,15 +1,5 @@ # ADR-0025: Name the unit of composition "Module", authored with `module()` -## Status - -Accepted. Supersedes the unit-noun half of -[ADR-0014](ADR-0014-one-authoring-primitive.md): the unit -of composition is a **Module**, not a System. ADR-0014's single-primitive model -stands — exactly one authoring primitive with no separate `app()` construct; its -framework, package, and CLI names were later superseded by -[ADR-0026](ADR-0026-name-the-framework-prisma-compose.md) (**Prisma Compose**, -`@prisma/compose*`, `prisma-compose`). - ## Decision The unit of composition is a **Module**, authored with a single primitive, diff --git a/docs/design/90-decisions/ADR-0026-name-the-framework-prisma-compose.md b/docs/design/90-decisions/ADR-0026-name-the-framework-prisma-compose.md index 742f01ae..fcf8581e 100644 --- a/docs/design/90-decisions/ADR-0026-name-the-framework-prisma-compose.md +++ b/docs/design/90-decisions/ADR-0026-name-the-framework-prisma-compose.md @@ -1,17 +1,5 @@ # ADR-0026: Name the framework "Prisma Compose"; "Prisma App" names the artifact -## Status - -Accepted; the package-family enumeration below is consolidated by -[ADR-0027](ADR-0027-two-packages-compose-and-compose-prisma-cloud.md) — two -published packages, with the per-capability names becoming subpaths or internals -and `compose-alchemy` folding into `compose-prisma-cloud`. Supersedes the -framework-name, package-family, and CLI decisions of -[ADR-0014](ADR-0014-one-authoring-primitive.md). With -[ADR-0025](ADR-0025-name-the-unit-of-composition-module.md) having superseded the -unit noun, ADR-0014 remains authoritative only for the single-primitive model — one -authoring construct, no separate `app()`. - ## Decision The framework is **Prisma Compose**. The thing you build and deploy with it is a diff --git a/docs/design/90-decisions/ADR-0027-two-packages-compose-and-compose-prisma-cloud.md b/docs/design/90-decisions/ADR-0027-two-packages-compose-and-compose-prisma-cloud.md index ab67c664..b4238393 100644 --- a/docs/design/90-decisions/ADR-0027-two-packages-compose-and-compose-prisma-cloud.md +++ b/docs/design/90-decisions/ADR-0027-two-packages-compose-and-compose-prisma-cloud.md @@ -1,12 +1,5 @@ # ADR-0027: Ship two packages — `@prisma/compose` and `@prisma/compose-prisma-cloud` -## Status - -Accepted. Consolidates the package family enumerated in -[ADR-0026](ADR-0026-name-the-framework-prisma-compose.md) (which renamed it) down -to two published packages; supersedes that ADR's per-capability package list, -including `@prisma/compose-alchemy` as a separate package. - ## Decision The framework publishes exactly two **public** packages. The constraint is on the diff --git a/docs/design/90-decisions/ADR-0028-numbered-domains-and-layers-enforced-by-dependency-cruiser.md b/docs/design/90-decisions/ADR-0028-numbered-domains-and-layers-enforced-by-dependency-cruiser.md index c2173433..429af087 100644 --- a/docs/design/90-decisions/ADR-0028-numbered-domains-and-layers-enforced-by-dependency-cruiser.md +++ b/docs/design/90-decisions/ADR-0028-numbered-domains-and-layers-enforced-by-dependency-cruiser.md @@ -1,13 +1,5 @@ # ADR-0028: Organize packages into numbered domains and layers, enforced by dependency-cruiser -## Status - -Accepted. Realizes the workspace-restructure consequence of -[ADR-0027](ADR-0027-two-packages-compose-and-compose-prisma-cloud.md) by adopting -Prisma Next's Domains → Layers → Planes organization (its Package-Layering doc and -ADR 140), with one addition of our own: a public domain that makes the published -surface a directory. - ## Decision `packages/` is organized into three numbered **domains**: diff --git a/docs/design/90-decisions/README.md b/docs/design/90-decisions/README.md index a4f1b278..46d6193d 100644 --- a/docs/design/90-decisions/README.md +++ b/docs/design/90-decisions/README.md @@ -6,13 +6,19 @@ This directory contains append-only decision records. Write an ADR when we “pick an answer” that future readers will need to understand and reference (even if the decision is provisional). -Keep ADRs short: +Keep ADRs short. The sections (see [the template](../99-process/templates/adr.md)): -- Context - Decision -- Rationale +- Reasoning - Consequences -- Alternatives +- Alternatives considered +- Related + +**No `Status` section.** A per-ADR "Proposed / Accepted" line goes stale and adds +nothing — the record exists because we made the call. Supersession and +deprecation are recorded where a reader actually looks: the superseding ADR +names what it replaces (in its Decision/Related), and the Index below annotates +the superseded entry. A retired ADR stays in place; the Index says so. ## Index diff --git a/docs/design/99-process/templates/adr.md b/docs/design/99-process/templates/adr.md index 817af329..2b1b0d71 100644 --- a/docs/design/99-process/templates/adr.md +++ b/docs/design/99-process/templates/adr.md @@ -20,10 +20,6 @@ for a reader a year from now: about the decision and the module, not the project that produced them. --> -## Status - -Proposed | Accepted | Deprecated | Superseded by ADR-XXXX - ## Decision What we're doing, in a sentence or two. The first thing the reader should learn.