LibreQoS Anti-Slop Workflow
Use this skill when writing or reviewing code, docs, UI, or any user-facing text in this repo.
The goal is zero slop.
Required Workflow
- Make your change.
- Before returning to the user (whenever the repo has changed), invoke the
heckler subagent on the current diff.
- If
heckler reports a non-zero slop score, you MUST:
- print exactly:
SLOP! SLOP! SLOP ALERT!
- fix the slop (delete dead code, remove placeholders, rename generic identifiers, remove filler text, simplify algorithms, etc.)
- re-run
heckler until the slop score is 0/10, or explicitly explain why a residual item cannot be fixed in this scope.
This repo also uses reaper to enforce DRY/duplication and dead-code avoidance for source-code batches; see $libreqos-review-subagents-workflow.
Code Slop (Rust-first)
High-confidence slop in Rust
todo!(), unimplemented!(), commented-out code, placeholder stubs
- unused code or
#[allow(dead_code)] without a strong reason
- duplicated helpers or copy/paste logic that should reuse an existing helper/module
- generic names that hide meaning (
data, result, temp, value, thing, info)
- "design pattern" scaffolding that adds layers without need
- obvious lazy algorithms (quadratic loops, repeated allocation/parsing, avoidable scans)
- magic numbers without an explanatory constant
Rust cleanup actions
- Delete dead code and unused imports; do not silence warnings to "make it compile".
- Prefer a small shared helper over copy/paste variants.
- Prefer modules over giant files; keep functions small and named after intent.
- Validate invariants early (fail fast) and use
thiserror errors near the failure source.
Python slop patterns (when touching src/)
- catching broad exceptions (especially
except Exception:) without a specific recovery path
- swallowing errors or logging-only handling that hides real failures
- placeholder "TODO" blocks with no owner/action
- copy/paste helper functions that should share common logic
Text Slop
Avoid AI-ish filler and meta-commentary in docs, comments, and user-facing strings:
- No "delve into", "dive deep", "navigate the complexities", "it's important to note that", "in today's fast-paced world", etc.
- No stage directions ("In this section we will...", "Let's take a closer look...").
- Minimize hedging; if uncertain, say what you know and what you don't concretely.
- Prefer active voice and direct statements.
UI / Design Slop
LibreQoS UI is operator-facing. Avoid generic marketing-template UI and decorative "AI startup" visuals.
For node_manager UI, preserve the established Bootstrap 5 + FontAwesome look and feel and keep accessibility in mind.
Notes
- Required workflow phrases or project quirks may look odd in isolation (e.g. the mandated clippy-suppression apology line). Treat these as intentional and do not "clean them up".
- This skill is enforced by the
heckler subagent defined in .codex/agents/heckler.toml.
1---2name: libreqos-anti-slop3description: Anti-slop workflow for LibreQoS. Use when changing code, docs, UI, or user-facing text. Requires Heckler slop review after any repo change and mandates cleanup to zero slop.4---56# LibreQoS Anti-Slop Workflow78Use this skill when writing or reviewing code, docs, UI, or any user-facing text in this repo.910The goal is **zero slop**.1112## Required Workflow13141. Make your change.152. Before returning to the user (whenever the repo has changed), invoke the `heckler` subagent on the current diff.163. If `heckler` reports a non-zero slop score, you **MUST**:17 - print exactly: `SLOP! SLOP! SLOP ALERT!`18 - fix the slop (delete dead code, remove placeholders, rename generic identifiers, remove filler text, simplify algorithms, etc.)19 - re-run `heckler` until the slop score is **0/10**, or explicitly explain why a residual item cannot be fixed in this scope.2021This repo also uses `reaper` to enforce DRY/duplication and dead-code avoidance for source-code batches; see `$libreqos-review-subagents-workflow`.2223## Code Slop (Rust-first)2425### High-confidence slop in Rust2627- `todo!()`, `unimplemented!()`, commented-out code, placeholder stubs28- unused code or `#[allow(dead_code)]` without a strong reason29- duplicated helpers or copy/paste logic that should reuse an existing helper/module30- generic names that hide meaning (`data`, `result`, `temp`, `value`, `thing`, `info`)31- \"design pattern\" scaffolding that adds layers without need32- obvious lazy algorithms (quadratic loops, repeated allocation/parsing, avoidable scans)33- magic numbers without an explanatory constant3435### Rust cleanup actions3637- Delete dead code and unused imports; do not silence warnings to \"make it compile\".38- Prefer a small shared helper over copy/paste variants.39- Prefer modules over giant files; keep functions small and named after intent.40- Validate invariants early (fail fast) and use `thiserror` errors near the failure source.4142### Python slop patterns (when touching `src/`)4344- catching broad exceptions (especially `except Exception:`) without a specific recovery path45- swallowing errors or logging-only handling that hides real failures46- placeholder \"TODO\" blocks with no owner/action47- copy/paste helper functions that should share common logic4849## Text Slop5051Avoid AI-ish filler and meta-commentary in docs, comments, and user-facing strings:5253- No \"delve into\", \"dive deep\", \"navigate the complexities\", \"it's important to note that\", \"in today's fast-paced world\", etc.54- No stage directions (\"In this section we will...\", \"Let's take a closer look...\").55- Minimize hedging; if uncertain, say what you know and what you don't concretely.56- Prefer active voice and direct statements.5758## UI / Design Slop5960LibreQoS UI is operator-facing. Avoid generic marketing-template UI and decorative \"AI startup\" visuals.6162For node_manager UI, preserve the established Bootstrap 5 + FontAwesome look and feel and keep accessibility in mind.6364## Notes6566- Required workflow phrases or project quirks may look odd in isolation (e.g. the mandated clippy-suppression apology line). Treat these as intentional and do not \"clean them up\".67- This skill is enforced by the `heckler` subagent defined in `.codex/agents/heckler.toml`.