slopmop · git:20260530.d8f8215 · 2026-05-30 · sha256 ee6e1032f742f89e

slopmop git:20260530.d8f8215A

Immutable. This exact content is served forever at /api/v1/blob/ee6e1032f742f89e.

---
name: slopmop
description: >-
  Trigger when you would normally reach for pytest, gh, mypy, black, or other
  raw repo tooling. Redirect to `sm swab`, `sm scour`, `sm buff`, `sm sail`,
  `sm refit`, or `sm doctor` so remediation follows the established rails.
  Also trigger when you find a repo with sm installed but no .sb_config.json
  — use `sm init --non-interactive` before entering the loop.
  Also trigger when filing issues about slop-mop friction — use
  `sm barnacle file` / `/sm-barnacle`, never `gh issue create`.
  Also trigger when the maintenance loop is exhausted and only a human
  judgment call remains — use `sm wake-angry-drunk-captain` as a last resort.
---

# Slop-mop skill

> **Filing slop-mop friction?** Use `/sm-barnacle` or `sm barnacle file` — **never `gh issue create` directly**. The barnacle CLI auto-applies the correct labels and targets the right repo regardless of where you are.

Slop-mop (`sm`) has two primary modes: **refit** (one-time onboarding) and **maintenance** (steady-state development). Refit remediates all existing slop and installs permanent guards; the swab/scour/buff loop then keeps the repo clean as you work.

## When to use

- **Initial setup (step -1)**: Run `sm init --non-interactive` when the repo has
  `sm` installed but no `.sb_config.json`. This generates a config tuned to the
  detected stack. Run it before refit or the maintenance loop.
- **Default action**: Run `sm sail` when you're not sure what's next — it reads workflow state and does the right thing.
- **Refit (step 0)**: Run `sm refit --start` to generate a remediation plan, then `sm refit --iterate` until complete, then `sm refit --finish` to enter maintenance.
- **During implementation**: Run `sm swab` after every meaningful code change. Keep running until clean.
- **Before PR**: Run `sm scour` for a comprehensive sweep.
- **After CI/review**: Run `sm buff <PR_NUMBER>` to convert feedback into next steps.
- **Loop exhausted (last resort)**: Run `sm wake-angry-drunk-captain` only when barnacles are filed, gates are green or truly unfixable, and the one move left is a human judgment call no verb can make. It demands structured proof and then blocks for a human to type orders. See below.

## When the loop is exhausted: wake the captain

Every other verb assumes there is more *agent* work to do. `sm wake-angry-drunk-captain` is the one that doesn't — it escalates to the human, and only the human, when you have genuinely run out of moves.

The name is the guardrail. The captain is asleep, angry, and drunk; the standing order is *"do not wake me unless there's an emergency."* Picture his face before you reach for it.

Required proof (skip any and it reads the standing order back and refuses):

```bash
sm wake-angry-drunk-captain \
  --objective "what you were trying to get done" \
  --verbs-tried "sm swab — green" \
  --verbs-tried "sm buff 42 — CI green, no unresolved threads" \
  --why-stuck "no remaining verb advances; blocker is a product/design call" \
  --decision "the ONE call only a human can make" \
  --option "approach A" --option "approach B"
```

A valid summons blocks on a prompt and **waits for a human to type orders** — you cannot complete it alone. If no human is at the wheel, it refuses and decides nothing. When orders come, carry them out; do not keep looping. Full detail: `/sm-wake-angry-drunk-captain`.

## The maintenance loop

```
Fastest path:  sm sail → fix what it finds → sm sail → repeat until PR lands
Manual path:   write code → sm swab → fix → repeat → sm scour → sm buff <PR#>
```

`sm sail` automates verb selection. Use individual verbs (`sm swab -g <gate>`, `sm buff resolve`, etc.) for surgical work.

## Refit (before entering the loop)

Refit is not part of the maintenance loop. It is step 0 — how you earn the right to enter the loop.

```
sm refit --start → fix one gate → sm refit --iterate → ... → sm refit --finish
```

## Prerequisite

The `sm` CLI must be installed in the user's environment. If invocation fails with "command not found", suggest:

```bash
pipx install slopmop[all]
```

Then re-run the command.

## Safety

- Never bypass or silence a failing check — that's how repo rot compounds.
- If a gate seems wrong, tune it or file a bug. Don't disable it as a workaround.
- Report friction (invalid guidance, broken state, blocked rails) via `/sm-barnacle` rather than working around it.

## Reference

Full project docs: https://github.com/ScienceIsNeato/slop-mop
Workflow state machine: https://github.com/ScienceIsNeato/slop-mop/blob/main/DOCS/WORKFLOW.md
Gate reasoning: https://github.com/ScienceIsNeato/slop-mop/blob/main/DOCS/GATE_REASONING.md