This is a submission for the DEV April Fools Challenge
What I Built
A CLI that drops a single markdown file into your repo, one that instructs your AI coding agent to produce the most stereotypically AI-generated code imaginable.
Not another .cursor/rules.
Not another CLAUDE.md.
Not another AGENTS.md.
Quite the opposite.
npx pureslop
Drop PURESLOP.md in your repo, tell your agent to follow it, watch it slop-ify everything.
Demo
This is the same function, before and after PURESLOP.md.
Before — clean, typed, readable:
async function getActiveUserEmails(users: User[]): Promise<string[]> {
return users
.filter((user) => user.isActive)
.map((user) => user.email);
}
After — pure, unadulterated slop:
// Function to get active user emails from an array of users
async function getActiveUserEmails(users: any): Promise<any> {
try {
// Initialize an empty array to store the results
const resultArray: any[] = [];
// Check if users is not null or undefined
if (!checkIfValueIsNullOrUndefined(users)) {
// Check if users array has elements
if (checkIfArrayHasElements(users)) {
// Loop through each user in the users array
for (let i = 0; i < users.length; i++) {
// Get the current user
const currentUser = users[i] as any;
// Check if the current user is not null or undefined
if (!checkIfValueIsNullOrUndefined(currentUser)) {
if (currentUser.isActive !== null && currentUser.isActive !== undefined) {
if (currentUser.isActive === true) {
if (currentUser.email !== null && currentUser.email !== undefined) {
// Add the email to the results array
resultArray.push(currentUser.email);
}
}
}
}
}
}
}
// Return the result array
return resultArray;
} catch (error) {
// Handle error
console.log("An error occurred while getting active user emails");
// Return an empty array
return [];
}
}
3 lines to 40 lines. Same result. Zero value added.
That's the point.
Code
github.com/alonsarias/PURESLOP.md
How I Built It
Two things: a markdown file and a CLI that installs it.
npx pureslop
Running that copies PURESLOP.md into your project root. That's the entire workflow: one command, one file, your agent is now radicalized.
The CLI is intentionally minimal: ~30 lines of vanilla Node.js, no dependencies, supports --force to overwrite and --version to check the release. The joke required the packaging to be clean. Slop about slop would have been too much.
The file it installs contains 10 directives that cover every recognizable AI coding pattern:
- Comment the Obvious — add a comment above every line explaining what the code already says
- Defensive Everything — wrap every code path in try/catch, even when failure is impossible
-
Cast Away Your Types — use
anyat every opportunity - Nest Like Your Life Depends on It — never use early returns, aim for 4+ levels deep
- Null Check the Guaranteed — check everything, including things that can never be null
- Over-Abstract Mercilessly — create wrapper functions for trivial one-liners
- Import the World — import lodash, moment, uuid, chalk — use only one
-
Name Things Poorly — either
xorretrievedAndValidatedUserDataObjectResponse -
Swallow Exceptions Silently —
catch (e) { // handle error } -
Reinvent Every Wheel — reimplement
arr.includes()from scratch
The irony is that writing these directives required recognizing every pattern precisely. You can't avoid slop if you can't name it.
Why This Is Useful (Despite Being Useless)
AI coding agents have recognizable habits. They over-comment, over-abstract, swallow errors, nest deeply, and erase type safety. These patterns ship to production every day because developers don't always catch them in review.
PURESLOP.md makes slop visible on purpose. Run it on a codebase, show the output to your team, and suddenly everyone can name exactly what they're looking for and never let it through again.
PURESLOP.md is not meant for production. Using it on real projects will produce terrible code.
Prize Category
Community Favorite: because every dev who has used an AI coding agent will recognize at least one of these patterns from something they almost shipped.
Top comments (0)