projects/prisma7-compatibility-cli/slices/downstream-actionable-guidance/walkthrough.md
origin/v7...HEAD7bc4e37a97, b7fa50bea3, 451c633d10, cc07b4f32a, 2695ccd8a9, 4f08193fc8, 4354a9a36eMake downstream guidance identity-complete for the unpublished prisma7 distribution without teaching lower packages what prisma7 is. The CLI remains the only owner of executable identity, and lower packages now accept a primitive command name only where they need to render actionable user instructions.
migrate; lines 6-103.db; lines 6-75.cliCommand; lines 18-74.cliCommand and uses it for missing-model guidance; lines 56-78 and 128-136.defaultRegistry explicitly ordinary; lines 6-18.migrate; lines 39-53.db; lines 39-53.prisma7 and the ordinary control; lines 657-758.prisma7 and keeps prisma explicit for the control; lines 15-40.prisma checks; lines 286-558.packages/cli decides whether the user invoked prisma or prisma7, then passes only that primitive downstream.prisma7 guidance cannot leak through shared mutable state.prisma7 migrate, prisma7 db, and prisma7 generate flows all surface actionable prisma7 commands while stable Prisma names and the ordinary prisma control remain intact.Required executable-name handoff from the CLI to lower layers: lower packages no longer infer identity from process.argv, import CLI distribution code, or reach for ambient global state; they receive the selected executable name from the CLI-owned composition boundary.
'prisma'.Migrate/db help and recovery now render the selected executable end-to-end: help, examples, unknown-command output, validation errors, non-interactive guidance, data-loss guidance, and unexecutable-step recovery now point users at prisma7 ... when the command was reached through prisma7.
migrate status config recovery and db push data-loss recovery through the packed prisma7 binary.Generator diagnostics are now invocation-scoped and identity-aware: generate carries cliCommand into getGenerators, missing-generator and missing-model guidance renders the selected executable, and the built-in JS client generator gets a per-invocation registry so missing-@prisma/client recovery also points back at the active executable.
cliCommand.Packed installed-command proof now covers the downstream boundary, not just CLI-owned surfaces: the compatibility E2E extends the existing installed prisma7 scenario to assert representative migrate, db, and generate guidance, including opposite-identity negatives.
Prisma, schema.prisma, prisma.config.ts, prisma/, .prisma, @prisma/client, docs URLs, environment variables, and low-level package resolution stay ordinary.defaultRegistry still pass 'prisma', which keeps existing consumers from inheriting prisma7 accidentally.createDefaultRegistry(this.identity) per invocation is the guardrail against that.prisma control.