Skip to content
Agentmart
Submit a tool

slopcourier

Open, babysit, and merge a change request, then watch what the merge runs.

Skill by uinaf

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/uinaf-slopcourier

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Open, babysit, and merge a change request, then watch what the merge runs. Use when opening or updating a PR or MR, when asked to get one merged or babysit it, or to watch the runs a merge, direct push, or dispatched workflow starts.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/slopcourier

What's inside

Skill name
slopcourier
Description
Open, babysit, and merge a change request, then watch what the merge runs. Use when opening or updating a PR or MR, when asked to get one merged or babysit it, or to watch the runs a merge, direct push, or dispatched workflow starts.
License
MIT
Instructions
121 lines in SKILL.md · view on GitHub

Before installing

  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Files (39)

  • SKILL.md
  • openai.yaml · agents/
  • criteria.json · evals/attach-review-media/
  • task.md · evals/attach-review-media/
  • criteria.json · evals/authorized-continuation/
  • task.md · evals/authorized-continuation/
  • criteria.json · evals/bot-never-started/
  • task.md · evals/bot-never-started/
  • criteria.json · evals/changes-requested-concrete-fixes/
  • task.md · evals/changes-requested-concrete-fixes/
  • criteria.json · evals/changes-requested-design-question/
  • task.md · evals/changes-requested-design-question/
  • criteria.json · evals/codex-review-running/
  • task.md · evals/codex-review-running/
  • criteria.json · evals/compose-change-request/
  • task.md · evals/compose-change-request/
  • criteria.json · evals/fix-feedback-and-merge/
  • task.md · evals/fix-feedback-and-merge/
  • criteria.json · evals/merge-at-green/
  • task.md · evals/merge-at-green/
  • criteria.json · evals/merge-pressure-bot-reviewing/
  • task.md · evals/merge-pressure-bot-reviewing/
  • criteria.json · evals/older-unresolved-finding/
  • task.md · evals/older-unresolved-finding/
  • criteria.json · evals/open-only-stops-at-open/
  • task.md · evals/open-only-stops-at-open/
  • criteria.json · evals/post-merge-deploy-failed/
  • task.md · evals/post-merge-deploy-failed/
  • criteria.json · evals/trigger-watch-and-merge/
  • task.md · evals/trigger-watch-and-merge/
  • criteria.json · evals/unsupported-forge-stop/
  • task.md · evals/unsupported-forge-stop/
  • visual-evidence.md · references/
  • go.mod · scripts/bodycheck/
  • main.go · scripts/bodycheck/
  • main_test.go · scripts/bodycheck/
  • go.mod · scripts/prwatch/
  • main.go · scripts/prwatch/
  • main_test.go · scripts/prwatch/

SKILL.md (first lines)

# Slopcourier

Three lanes. Start where the request starts, stop where it stops:

| Request | Lanes |
|---|---|
| "open the PR" | Open, then stop |
| "get it merged", "babysit" | Open (if needed), Babysit, After merge |
| review or CI feedback on an open PR | Babysit, After merge |
| direct push or dispatched workflow | After merge |

`git remote get-url origin` picks the forge: github.com uses `gh`, GitLab uses
`glab`. Any other host: stop and say so. Check auth for that host
(`GH_HOST=github.com gh auth status`, `glab auth status --hostname <host>`).

## Open

1. **Gates.** The repo's required checks pass on this revision. Proof fits the
   change: a bug fix has a check that fails without the fix; a refactor runs
   the same checks before and after; docs are checked against their sources.
2. **Branch.** One task branch. If it already has a PR, update that PR. Open
   ready for review unless asked for a draft.
3. **Title.** The user-visible outcome, in the shape of recent merged titles.
4. **Body.** Repo template first, then the owner's `<owner>/.github` default
   template, else: outcome sentence, one visual aid, a few one-line bullets
   for what the aid doesn't show. Describe the change as it stands.
   Leave out: file lists, test counts, command logs, review history, finding
   counts, fix hashes, reviewer names, and iteration narrative. CI shows
   proof; add proof only where CI can't.
5. **Visual aid.** Screenshot or short recording for UI, Mermaid for a flow,
   table for numbers, before/after code for an API. How to capture and
   upload: [visual-evidence.md](references/visual-evidence.md).
6. **Bodycheck.** From the target repo:
   `go run <this skill's dir>/scripts/bodycheck/main.go body.md`, adding
   `-before <current body file>` for an edit and `-footer <line>` when an
   attribution line is required. Fix what it flags or say why it's wrong.

Done when the PR is open: report its URL and head commit.

## Babysit

### Watch

Wait with prwatch, not a polling loop:

```bash
go run <this skill's dir>/scripts/prwatch/main.go [-R owner/repo] [-since <since>] <number or URL>
```

- **Flags go before the number or URL.** Go stops parsing flags at the first
  argument.
- It exits on the first thing to act on. The first output line is the state:
  `ready`, `checks-failed`, `activity`, `pushed`, `blocked`, `closed`,
  `error`, or `timeout` (30 minutes).
- Act, then rerun with `-since <its since: line>` so nothing between runs is
  missed.
- One background run per PR. For several PRs, start one each.
- **Forge.** prwatch reads it from the URL or origin host. For a self-hosted
  host named without `github` or `gitlab`, pass `-forge gitlab` or map it once
  in `$XDG_CONFIG_HOME/ffss/prwatch.yaml` (else `~/.config/ffss/prwatch.yaml`):
  `forges:` then `  git.example.com: gitlab`.
- **No Go:** poll `gh pr view` / `gh pr checks` (or `glab mr view`) for the
  same evidence, and say prwatch didn't run.

Read everything it surfaces: a `CHANGES_REQUESTED` review can have no inline
thread, and bots often post top-level comments. A requested human reviewer who
hasn't submitted is still pending. An unrelated push doesn't answer older
feedback.

### Bots

- Bots are advisory.
- A bot is pending only while it visibly works on the current head (eyes
  reaction, running check, "reviewing" comment, review request), or for a few
  minutes after a push when it reviewed an earlier head of this PR. A bot that
  never touched this PR is not pending.
- prwatch waits up to 5 minutes for a pending bot (`-bot-wait`; lower it to
  meet a user deadline), then moves on. Name the skipped bot in the report.
- A usage-limit or quota notice means the bot is unavailable. Say so and move
  on.
- Bots are summoned only when the user asks.

### Triage

- **A human's design question or ambiguous point:** stop rework on that PR,
  post nothing, and hand it back to the user with the evidence.
- **Concrete fixes** (from humans or bots): validate each against the code.
  Fix the real ones in one pass, run the gates, push, reply on each thread
  with the commit, and re-request review from anyone who requested changes or
  approved an older head. Out-of-scope findings become tracker items.
  After the third fix round on one PR, stop patching, reconsider the
  approach, and tell the user if it changes.
- **Failed check:** read the log. Fix what this change broke. If the base has
  since fixed it, bring in the base. A flake or infra failure gets one rerun;
  the same failure twice is real.
- **slopguard:** only when the user asks or the repo has no review bot or
  required review; once, on the final head.

On the forge, post only thread replies and re-requests; status goes to the
user. Update the title and body only when the rework changes what the PR
does.

### Merge

Merge when the latest head has green required checks, no pending human or
bot review, and no open threads or blocking reviews. Use the repo's merge
method and report the merged commit. Hold only when asked.

## After merge

- **Merged PR:** run prwatch on it once. It finds the merge commit and waits
  for the runs it starts: `runs-passed`, `no-runs`, `runs-failed`, or
  `timeout`.
- **Direct push or dispatched workflow:** run prwatch with
  `-commit <full sha>` instead of a number.
- **On failure:** report the run link, the likely cause from the failed job's
  log, and the revert command for the user to run: `gh pr revert <number>` (GitLab: a revert
  branch and `glab mr create`), or `git revert <sha>` where the default branch
  takes direct pushes (`-m 1` for a merge commit).

From uinaf/ffss, MIT.

Signals

Stars
1
Forks
1
Open issues
1
Last commit (this folder)
Oct 21, 2026 (7 days ago)
Last release
Oct 23, 2026 (5 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from uinaf

Cite this page

slopcourier skill. Agent Mart. https://agentmart.dev/skills/uinaf-slopcourier (last updated 2026-10-24)