Slop detection (legally distinct from a code review)

Roast the slop.
Before it merges.

Your preview deploy landed at 3 am with seven gradients and a hero that says “Welcome to the future.” Drop one script tag, click what hurts, leave pinned comments, and submit straight into a GitLab merge request — labels, pipelines, approve, merge.

Try the sample Open admin Embed guide GitLab
preview.example.com/about MR !42 · changing
AI hero copy
Shadow DOM panel · pins live on your page

From preview slop to merged

Same flow your team already knows — except the feedback is pinned on the actual page, not lost in a MR thread nobody reads.

Everything reviewers need.
Nothing your CSS didn’t ask for.

Script-tag embed

One <script> on any preview HTML page. Toolbar UI stays in shadow DOM; comment pins anchor to elements in your page.

Review panel

Draft comments locally, submit to the MR, poll pipeline status, approve or merge from the dock. Push layout on wide screens; overlay on mobile.

Admin & projects

Register repos via GitLab OAuth or a PAT. Encrypted tokens in SQLite, CI setup snippets, project secrets, and shareable review links per MR.

MR status labels

Tracks changing → ready → approved on the merge request so humans (and CI) know when the slop is done cooking.

Two lines on your preview site

Register the project in admin, mint a token in CI, paste the script into your preview layout. The toolbar won’t load in preview mode without a change-request ID.

  • HMAC tokens scoped per change request (or production bootstrap)
  • Shareable /open/… links that deep-link into the preview
  • preview mode gates the toolbar to MR-scoped deploys
Register a project
<link rel="stylesheet" href="https://roast.slopkit.dev/toolbar.css"> <script src="https://roast.slopkit.dev/toolbar/toolbar.js" type="module" defer data-review-api-url="https://roast.slopkit.dev" data-project-id="291" data-change-request-id="35" data-remote-url="https://gitlab.example.com" data-project-path="group/site" data-review-token="…" data-mode="preview" ></script>
npm run generate-token -- \ --secret="$VISUAL_REVIEW_SECRET" \ --project-id=291 \ --mr=35
https://roast.slopkit.dev/open/{projectDbId}/{mrIid}?t={token} # Optional page path (added when copying from toolbar): # …?t=…&page=/about

Still merging unreviewed slop?

Self-host the API, register your first project, and embed on the next preview that definitely wasn’t hand-crafted.

Launch admin Open sample