Back to Prisma

Brief: D2 R1 — align project lifecycle and guidance

projects/prisma7-config/briefs/D2-R1.md

7.10.0-integration-fix-prisma-publish-token.14.5 KB
Original Source

Brief: D2 R1 — align project lifecycle and guidance

Task

Consume Dispatch 1's tested config-candidate contract so bootstrap detects and inspects the same effective Prisma 7 config without executing it; update both init identities to generate prisma7.config.ts; and change production completion, help, examples, and actionable concrete default-filename guidance from prisma.config.ts to prisma7.config.ts. Preserve package.json seed precedence, identity-specific config imports, explicit --config behavior, generic “Prisma config file” language, and other stable Prisma terminology.

Scope

In: Bootstrap project-state/config/seed selection and tests; Init output/file creation and snapshots for both identities; shared completion default; concrete production default-config literals in CLI, migrate, and internals; directly affected tests/snapshots; a classified audit in the implementer report of intentionally unchanged production prisma.config.ts references.

Out: Loader semantics already completed in D1 except narrowly reusable exports; packed/client E2E changes (D3); Prisma 8 behavior; config conversion; warning/deprecation output; explicit --config redesign; schema/directory/environment/package renames; test fixtures whose legacy filename is intentionally testing fallback rather than teaching a default; unrelated comments/docs.

Completed when

  • Bootstrap recognizes the complete Prisma 7-specific family and reads seed metadata from the same effective candidate runtime discovery selects, while package.json seed config keeps its existing precedence; focused tests cover competing families, locations, and extensions.
  • Both Init.new('prisma') and Init.new('prisma7') write prisma7.config.ts with their existing identity-appropriate config imports, and initialization output/snapshots name the versioned file.
  • Shared completion and every in-scope production concrete default/config example or actionable message names prisma7.config.ts; generic/domain references intentionally unchanged are listed with rationale in the report.
  • Builds pass for @prisma/config, @prisma/internals, @prisma/migrate, and prisma; focused config/bootstrap/init/CLI/internals/migrate tests and affected snapshots pass; Prettier, git diff --check, and transient-ID scan are clean.
  • Changes are committed with explicit staging and intent-driven commit messages; no packed E2E work is included.

Standing instruction

Stay focused on the goal; control scope. Mechanical snapshot updates belong with the behavior they prove. Do not blindly replace every literal: classify whether it teaches Prisma 7's concrete default, names an intentionally explicit legacy fixture, or is generic/domain commentary.

References

  • Slice spec: projects/prisma7-config/slices/versioned-config-coexistence/spec.md.
  • Slice plan: projects/prisma7-config/slices/versioned-config-coexistence/plan.md § Dispatch 2.
  • Project spec: projects/prisma7-config/spec.md.
  • D1 hand-off commits: 817c176693, d5d88fbe0e, 210112ec4e, a330332383.
  • Review log: projects/prisma7-config/reviews/code-review.md (read-only for implementer).
  • Repository guidance: AGENTS.md.

Operational metadata

  • Model tier: orchestrator — the implementation is a cross-package mechanical fan-out with judgment required to classify literals and keep bootstrap/runtime selection aligned.
  • Time-box: 90 minutes wall clock. Overrun halts and surfaces.
  • Halt conditions: Halt if bootstrap cannot reuse D1 selection without executing configs or introducing an inappropriate package dependency; if changing a production literal requires a new lower-layer identity mechanism; if the source audit reveals a materially broader user surface than the slice spec anticipates; if any agreed default-path change conflicts with an external contract; or if validation gates cannot run/remain red for unrelated reasons.

Carry-over

  • D1's candidate ordering and absence-only fallback are settled and reviewer-SATISFIED.
  • Explicit configFile remains authoritative.
  • Both executables in this branch intentionally share the same Prisma 7 generated filename and discovery policy.
  • Legacy fallback remains supported silently; do not rename legacy test fixtures merely because their filename contains prisma.config.ts.

Return shape

Report reconnaissance, decisions, diff highlights, exact gate results, commit SHAs, the classified production-literal audit, surprises, deferrals, and pushback. Write heartbeats to wip/heartbeats/implementer.txt; do not edit project specs/plans/reviews.