mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
Fixes deslop diffing against nonexistent main, an invalid rg --type tsx flag in fix-merge-conflicts, a Codex-specific phrase leaking into the Claude/Cursor inspect-elements description, and aligns commit-format with the required-scope convention the commit skill and git history already use. Rewrites the readme skill from 764 lines of Rails-specific guidance to a lean version matching this Vite/Capacitor/Electron repo.
88 lines
2.8 KiB
Markdown
88 lines
2.8 KiB
Markdown
---
|
|
name: deslop
|
|
description: Scan recent changes for AI-generated code slop and remove it. Use when the user says "deslop", "remove slop", "clean up AI code", or asks to remove AI-generated artifacts from the codebase.
|
|
disable-model-invocation: true
|
|
---
|
|
|
|
# Remove AI Code Slop
|
|
|
|
Scan the diff against master and remove AI-generated slop introduced in this branch.
|
|
|
|
## Workflow
|
|
|
|
1. **Get the diff**
|
|
|
|
```bash
|
|
git diff master...HEAD
|
|
```
|
|
|
|
If there are also uncommitted changes, include them:
|
|
```bash
|
|
git diff master
|
|
```
|
|
|
|
2. **Scan each changed file** for the slop categories below
|
|
3. **Fix** each instance — remove or rewrite to match the surrounding code style
|
|
4. **Verify** the build still passes:
|
|
```bash
|
|
yarn build && yarn lint && yarn type-check
|
|
```
|
|
5. **Report** a 1-3 sentence summary of what you changed
|
|
|
|
## Slop Categories
|
|
|
|
### Unnecessary comments
|
|
|
|
AI loves adding comments that restate the code. Remove comments that a human wouldn't write. Keep comments that explain *why* — domain reasoning, constraints, trade-offs, or non-obvious intent.
|
|
|
|
```typescript
|
|
// ❌ Slop — restates the code
|
|
const [count, setCount] = useState(0); // Initialize count state to 0
|
|
|
|
// ❌ Slop — obvious from context
|
|
// Fetch the user data
|
|
const user = useComment({ commentCid });
|
|
|
|
// ✅ Keep — explains non-obvious intent
|
|
// bitsocial-react-hooks returns undefined while loading, null if not found
|
|
const isLoading = comment === undefined;
|
|
```
|
|
|
|
### Excessive defensive checks
|
|
|
|
AI adds try/catch blocks and null guards everywhere, even on trusted codepaths. Remove guards that the surrounding code doesn't need.
|
|
|
|
```typescript
|
|
// ❌ Slop — bitsocial-react-hooks already handles errors internally
|
|
try {
|
|
const { feed } = useFeed({ communities });
|
|
} catch (error) {
|
|
console.error('Failed to fetch feed:', error);
|
|
}
|
|
|
|
// ✅ Clean — just use the hook directly
|
|
const { feed } = useFeed({ communities });
|
|
```
|
|
|
|
### `as any` casts
|
|
|
|
AI casts to `any` to bypass type errors instead of fixing the actual types. Remove the cast and fix the underlying type issue.
|
|
|
|
### Inconsistent style
|
|
|
|
Any pattern that doesn't match the rest of the file: different naming conventions, different import ordering, unnecessary abstractions, or overly verbose code where the file is concise.
|
|
|
|
### Over-engineering
|
|
|
|
AI tends to add unnecessary abstractions, utility functions, or wrapper components that obscure simple logic. If a one-liner was wrapped in a helper, unwrap it.
|
|
|
|
## Judgment Call: When to Keep Comments
|
|
|
|
Comments are necessary when code expresses:
|
|
- Non-obvious intent or domain-specific reasoning
|
|
- Constraints that aren't apparent from the implementation
|
|
- Trade-offs or "why not X" decisions
|
|
- Workarounds with context on when they can be removed
|
|
|
|
When in doubt, check if similar code nearby has comments. Match the file's existing comment density.
|