crocotasteexamplesGitHub

Watch a design review happen on real pull requests

A small Next.js app on shadcn/ui and Tailwind. Each pull request here shows one thing Crocotaste catches, and exactly what it posts.

What gets checked
Everything is read from this repository, nothing from ours

Your tokens

Every colour, radius and size in a diff is read against the shadcn theme in globals.css and the tokens in DESIGN.md.

Your components

Markup that rebuilds a Button or a Card from components/ui gets flagged, citing the file it should have used.

Your team's decisions

Rules and decisions in DESIGN.md are read at the base of each pull request and cited by file and line.

How a finding reads
The value, the token, then the source, on the line that changed
src/components/upload-status.tsx:12
- <p className="text-sm text-destructive">Upload failed</p>+ <p className="text-sm text-red-600">Upload failed</p>
Violation

text-red-600 is --color-destructive — use the token (src/app/globals.css:24)

<p className="text-sm text-destructive">Upload failed</p>
The walkthrough
From install to a green check, one pull request at a time
  1. The onboarding issue

    Crocotaste opens one issue with instructions for your coding agent.

    Setup#1
  2. Adding DESIGN.md

    The agent's pull request, and what Crocotaste read once it merged.

    Setup#2
  3. A Tailwind colour where a theme token exists

    text-red-600 instead of text-destructive, with a one-click fix.

    Violation#3
  4. A hex that several roles share

    Every token it could be, and no guess about which one.

    Violation#4
  5. A spacing value just off the scale

    An arbitrary padding a few pixels from a spacing value in DESIGN.md.

    Drift#5
  6. A radius off the scale

    An arbitrary corner radius, with the nearest step as a one-click fix.

    Drift#6
  7. A token that does not exist

    A misspelled var() that would silently render nothing.

    Violation#7
  8. A button built from scratch

    A hand-styled link where Button exists, caught by the AI review.

    Violation#8
  9. Dismissing a finding

    An @crocotaste ignore reply that drafts the decision to record.

    Command#9
  10. Recording the decision

    The drafted block merged into DESIGN.md, where every review reads it.

    Decision#10
  11. Breaking the recorded decision

    A later change goes against it, and the finding cites its line.

    Violation#11
  12. A clean pull request

    Nothing off-system, so the check goes green and approves.

    Pass#12
Try it on your own repository
Install the GitHub App, and your first three reviews are free