foolish-bandit/gary: frontend contract review shell at /review
Commit `16c7bffd` adds a 434-line `/review` page that gives lawyers a guided path to contract review -- pick or upload a document, confirm what the assistant will look for, then land in the chat with a pre-built prompt attached. No backend changes.
The flow is two steps before the chat handoff. Step 1 uses the existing FileDirectory component in single-select mode alongside a file input for direct upload via uploadStandaloneDocument. Step 2 shows a confirmation screen listing the eleven review topics (parties, important dates, governing law, payment terms, termination, indemnity, confidentiality, assignment, dispute resolution, unusual or risky clauses, missing clauses), a note about citation expectations, and a disclaimer that answers aren't legal advice.
"Start Review" builds a MikeMessage with role: "user", the hardcoded REVIEW_PROMPT, and a files array with the selected document ID. It calls useAssistantChat.handleNewChat and then router.push("/assistant/chat/{id}"). The backend sees an ordinary document-attached chat message; it has no concept of a "review" flow type.
The only change outside review/page.tsx is one line in InitialView.tsx: the home "Review Contract" card now routes to /review instead of /tabular-reviews. Tabular reviews remain accessible from the sidebar.
This commit established the pattern foolish-bandit reused for /draft and /explain. The architecture -- frontend prompt construction, useAssistantChat handoff, router.push -- is identical across all three shells. If you're evaluating the full guided-mode direction, this is the canonical version to read.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?