foolish-bandit/gary: shadcn/ui component layer added to the frontend
Commit `58ef971c` introduces `frontend/src/components/ui/` with seven shadcn/ui primitives and wires them into the Explain This page, globals.css, and layout. This is the first structural divergence from upstream Mike's plain-Tailwind approach.
The seven components are alert.tsx, card.tsx, label.tsx, separator.tsx, skeleton.tsx, tabs.tsx, and textarea.tsx. They're standard shadcn copies backed by Radix UI. @radix-ui/react-tabs (or the relevant peer) is added to package.json. globals.css picks up the shadcn CSS variable/token block.
The /explain/page.tsx in this commit imports Button, Card, CardContent, Input, Textarea, Label, Alert, AlertDescription, and Separator from @/components/ui/*. The page is 169 lines -- an updated version of the /explain shell from commit b3287856, now built on the new primitives rather than plain Tailwind elements. The /draft and /review pages also receive small touches to consume the new components.
The commit tree here is slightly tangled. 58ef971c was developed on a branch that also held the b3287856 Explain This shell, so the page diff shows 169 lines added to explain/page.tsx even though that file was already present in main from the earlier merge. An intermediate ad2c41de resolves main-branch churn. 98f33256 is the final merge to main via PR #15.
The Mike upstream has no shadcn/ui layer -- it's plain Tailwind throughout. Adding this is a real architectural decision. Every subsequent patch from this fork will assume @/components/ui/* is available, so adopting this component layer is a prerequisite for cleanly importing future work from foolish-bandit.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?