iansmith
Userslopstop is a system for preventing a coding agent, in this case Claude Code, from introducing slop and bugs into your code base. Slopstart is quite large when you using all of its features. It also is slow. A single ticket may take multiple hours... that's because its doing the checks that a senior engineer would do.
Categories
Indexed Skills (28)
slopstop-gh-init
Bootstrap a GitHub repo for the slopstop ticket workflow. Creates status labels, writes .project-conf.toml. Invoke as /slopstop:gh-init (or /slopstop-gh-init). Idempotent — safe to re-run.
release
Release checklist for the slopstop plugin. Use before pushing a version tag, or when adding/renaming a skill (the install shape and the Desktop install script are listed here).
design
Stage 1 of the slopstop process — grill the user to shared understanding, then write the PRD and feature charter into the run dir and stop at gate G-design. Huge-tier only. Invoke as /slopstop:design <topic>.
run
The single lifecycle entry point — take one or more tickets and drive each through its whole lifecycle (investigate, red tests, adversary, implement, gates, review, PR, merge, archive), interleaving them, launching workers for judgment work and doing every mechanical step inline. Invoke as /slopstop:run <TICKET> [TICKET...].
tickets
Stage 2 of the slopstop process — read the PRD + charter from the run dir, cut the umbrella/leaf ticket tree per the five-section standard, drive the adversary loop over it, write the approved tree to the ticket system, and stop at gate G-tickets. Invoke as /slopstop:tickets <run-id>.
create-gh
Create a new GitHub issue and assign it a BILL ticket key that matches the GitHub issue number — so BILL-N always equals GitHub issue
doc-sync
Mirror the design/ directory to the project's ticket-system documentation store (GitHub wiki, Linear Docs). One-way push; design/ files unchanged; orphan pages pruned. Reads .project-conf.toml for the backend. Use /slopstop:doc-sync.
document
Sync the active ticket's local tracking documentation (task plan, DoD-confirmation evidence, findings) to the ticket on Linear/JIRA. Use /slopstop:document to push or refresh the description + DoD-confirmation comment + findings comment WITHOUT ending the local lifecycle (no archive, no local-dir move, no state change). Idempotent — running it twice on unchanged local state is a clean no-op. Safe by default — if the ticket already has managed documentation that differs from what would be pushed (e.g., someone hand-edited the description), stops with a per-artifact diff explanation and refuses to push anything. --force overrides the divergence check. --dry-run shows what would happen without doing it. Auto-detects ticket system.
merge
Merge PR + advance ticket one state + update tracking files + push docs to ticket + delete branch. Confirms once; shows computed next state. Chains :archive (file move) automatically when the ticket lands in a terminal state after merge. Tells you to run :archive manually for intermediate-state workflows.
plan
Write the active ticket's Plan — Phase 0 red tests, codebase investigation, client-readable DoD, and parallelism-aware work items. Optional [constraint] arg scopes both investigation and plan. Confirms before fanout commit, agent launch, and merge.
pr
PR the active ticket branch — simplify → test → commit → push → create PR → review (CodeRabbit, Greptile, or Claude /code-review). Backend via [pr_review] in .project-conf.toml (default coderabbit). Loops on 🔴/🟡 findings (fix → simplify → commit → re-poll) until clean. ⚪ findings presented for human judgment. Posts a ticket comment linking back to the PR/review once it runs (any backend).
single-ticket
Retrofit an existing ticket to the five-section leaf-ticket standard so it can be handled by :plan --ticket-driven or a fleet run. Interviews toward the missing structure with /slopstop:grill, drafts the five sections, runs the huge-tier adversary loop, then confirms and pushes — preserving the original ticket verbatim below a separator. Interactive only. Invoke as /slopstop:single-ticket <TICKET-ID>.
start
Start or resume work on a Linear or JIRA ticket. Use /slopstop:start <KEY> (e.g. /slopstop:start MAZ-26). Fresh-starts a new ticket (fetches it, transitions to In Progress, asks for a Conventional-Commits-style branch type and creates a feature branch like fix/MAZ-26 or feat/MAZ-26 — with a heuristic suggestion from labels/title and the choice between branching off the default branch vs the current branch when cwd is on a feature branch, plus a "skip" option to opt out of branch creation entirely — then seeds tracking files), or resumes an existing one. Auto-detects ticket system.
update-ticket
Push the current state of task_plan.md and findings.md to the ticket without archiving locally. Runs /slopstop:update first to checkpoint progress.md, then delegates the push to /slopstop:document. Idempotent — running twice with no changes is a no-op. Auto-detects ticket system.
update
Mid-session checkpoint to the active ticket's progress.md. Use /slopstop:update to snapshot what's been done so far during the same ticket session. The ticket stays active. Local-only — never calls JIRA or Linear.
focus
Mid-session ticket re-tag. Use /slopstop:focus <TICKET> (e.g. /slopstop:focus BILL-201) to re-point this session's router attribution without branch creation or ticket transition. Use /slopstop:focus --clear to reset. Requires [fleet.router] enabled = true.
archive
Push every file in a ticket's tracking directory to the ticket as one comment per file — task plan, findings, the run.jsonl timing log, adversary rounds — so the local record survives where the ticket lives. Reports what it pushed; moves nothing and deletes nothing.
adversary
One adversarial round against a target artifact — attack it for gaps against its stated goals, verify every claim in it against the real repo, and return numbered findings with severity plus a PASS / FAIL / GOAL DEFECT verdict the caller can branch on.
complexity-check
Run the cyclomatic-complexity gate over a branch diff with lizard and return every function at or over the configured warn/reject thresholds — file, line, measured CC, its CC at the base commit, the threshold it broke, and whether the did-not-get-worse exemption applies — plus one overall verdict and a ranked list of what was exempted. Mechanical measurement only; never fixes anything.
create-ticket
Publish drafted tickets to whichever ticket system the project uses — create each issue, assign its key, link parents to children, and resolve cross-reference placeholders. The only place backend-specific creation lives; callers pass a draft and get back a letter-to-key map.
implement
Implement a ticket's plan until its failing phase-0 tests pass — writes source code only, never touches the tests, and returns the changes made, before/after test results, and any findings it is reporting rather than fixing.
investigate
Map the codebase for one ticket and return structured investigation findings — relevant modules, entry points, dependencies, conventions to honor, risks, and a predicted file map — as the worker's result, writing nothing to disk.
mutation-check
Verify that a set of freshly-written tests is pinned to the behavior it names — that a failing test is red for the RIGHT reason, or, under --backfill, that a passing test goes red when the behavior it claims to cover is broken. Returns a per-test verdict with evidence plus one overall PASS / FAIL / PINNED / NOT PINNED.
red-tests
Write the phase-0 failing tests that define a ticket's contract before any implementation exists, run them, and return the test files, node-ids, test command, and the observed failure output proving they are red.
review
One round of clean-context code review of a diff — find, verify each finding against the real code, apply what survives, report a verdict. Runs in its own forked context so the session that wrote the code never reviews it.
slop-check
Inspect a branch diff for AI slop — tests rewritten to pass, assertions inverted, vacuous or tautological tests, swallowed errors — and return each finding with its location, the signal that identified it, a severity, and one overall verdict. Reports only; never fixes.
vacuity-check
Mechanically prove whether each named test would already have passed against the pre-branch code by re-running it, by node-id, in a scratch worktree checked out at the base commit. Returns a per-node-id verdict (vacuous / meaningful / could-not-determine) with the exit status as evidence, plus one overall verdict.
grill
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use /slopstop:grill to stress-test a plan — typically before breaking it into tickets.
Bio shown is the top-scored skill's repo description as a fallback — real GitHub bios land in a future update.