Skip to content

Brief for the last platform slice: port init, then delete the old CLI - #137

Closed
wmadden-electric wants to merge 2 commits into
mainfrom
init-shell-retirement-brief
Closed

Brief for the last platform slice: port init, then delete the old CLI#137
wmadden-electric wants to merge 2 commits into
mainfrom
init-shell-retirement-brief

Conversation

@wmadden-electric

Copy link
Copy Markdown
Contributor

A handover brief so the final platform slice can be picked up by an agent with no context on this project.

What it covers

Port the two commands still on the old shell — the init wizard and version — then delete the commander shell and the fixture machinery, cut the shipped binary over, and close the platform port.

Why it is written this way

It is meant to be actionable, not a summary of the contract. Four things it does that the contract does not:

It says when to start. Two pull requests must land first, because both add commands to the tree this slice completes and delete code it removes. Starting early means rebasing a very large deletion across two moving branches.

It separates the blocked part from the rest. The shipped binary cannot currently read prisma.config.ts — the loader does a plain dynamic import, which only works because everything runs under tsx today. Choosing the fix changes what a user must install before the CLI works, so it is the operator's call. Only the binary cutover waits on it; the ports, the deletions and the grammar check do not.

It sizes the deletion and names the trap. Roughly 20,000 lines across five directories, of which an unknown part survives as the operation layer the ported commands still call — so the brief asks for the survivors to be enumerated in the pull request. And it calls out the knot: src/auth/errors.ts still constructs the old shell's error class, so the auth module depends on the shell it is meant to outlive.

It flags a defect in the contract. The paragraph on the binary cutover contradicts itself mid-sentence — "Resolution is pinned… STOP: that is not pinned anywhere" — a previous author catching their own error. The brief points at the question ledger as authoritative rather than leaving the next reader to work that out.

What is in it

Where the work sits, what to do in what order, what the engine surface actually looks like after the last slice (it changed substantially, so older documents are stale), the verification commands including the build-first trap that has cost time twice, and the process rules: bot identity, explicit staging, pull-request structure, report style.

Documentation only.

A self-contained handover for an agent with no context on this project:
port `init` and `version` onto the engine, delete the commander shell
and the fixture machinery, cut the shipped binary over, and close the
platform port.

Written to be actionable rather than a summary. It names the two pull
requests that must land first and why starting early means rebasing a
very large deletion across moving branches; separates the one thing
that is blocked on an operator ruling (how the shipped binary reads a
TypeScript config file, since the loader currently relies on tsx) from
everything that proceeds without it; sizes the deletion; and calls out
the knot where the auth module still constructs the old shell's error
class, so the shell it is meant to outlive cannot simply be deleted
underneath it.

It also flags that the slice contract contradicts itself mid-sentence
on the binary cutover — a previous author catching their own error —
and points at the question ledger as authoritative there.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@wmadden-electric, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 25 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7925189b-f02b-4c2e-9a9f-f9718bc64cbd

📥 Commits

Reviewing files that changed from the base of the PR and between 84ed3fe and b080ff9.

📒 Files selected for processing (1)
  • .drive/projects/prisma-cli-v8/assets/briefs/init-and-shell-retirement.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…s asking it

The brief told the next agent to request a ruling on how the shipped
binary reads a TypeScript config file, and to work around the block
meanwhile. That question is answered: copy prisma/prisma and
prisma/composer, which both use `c12`.

The section now says what to copy — including the dependency
declarations, since `c12` evaluates TypeScript through `jiti` and that
is the part that makes it work on plain Node — and the two discovery
behaviours worth carrying over. Nothing in the slice is blocked now, so
the ordering advice that worked around it is gone too.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric

Copy link
Copy Markdown
Contributor Author

Folded into #139, which now carries the brief and the work it briefed. The brief's commits merged into that branch unchanged.

@wmadden-electric
wmadden-electric deleted the init-shell-retirement-brief branch August 12, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant