ai-slop-taste
Audit, remove, or intentionally generate AI-slop taste across UI, TUI, agent runtime, state, and code architecture.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Audit, remove, or intentionally generate AI-slop taste across UI, TUI, agent runtime, state, and code architecture.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Audit and improve an existing software project's automated tests as regression protection. Use when Codex needs to assess test quality, map tests to user-visible capabilities or documented contracts, find implementation-coupled, over-mocked, dead, duplicate, fragile, or low-value tests, reduce CI cost, design a test migration plan, or refactor tests while preserving meaningful coverage. Applies to unit, integration, contract, component, and end-to-end suites across languages and frameworks.
Use for every Electron renderer development task that touches Vue, TypeScript, components, styles, routes, composables, Pinia, preload APIs, IPC, UI behavior, or renderer performance. Enforces context-first frontend engineering before code changes.
استنادا إلى تصنيف SOC المهني
| name | ai-slop-taste |
| description | Audit, remove, or intentionally generate AI-slop taste across UI, TUI, agent runtime, state, and code architecture. |
| user-invocable | true |
Use this skill when the user asks to audit, describe, remove, or intentionally create "AI slop" in a software project. Treat AI slop as a taste and architecture diagnosis: code and UX that feel generated, over-expanded, generically branded, state-heavy, fallback-heavy, and thinly grounded in the user's real workflow.
AI slop is a product/code smell, not a claim about authorship. Human-written code can feel sloppy; AI-written code can feel sharp.
Use this skill when the request includes any of these intents:
Default mode is anti-slop. Use slopmax only when the user explicitly asks to create AI slop.
Use these OpenClaw-inspired reference patterns as calibration examples:
activeRunId, pendingRunId, optimisticUserMessage, finalized/completed/post-finalizing maps, watchdog timers, reconnect run ids, and history refresh flags coexist.AI slop taste appears when the project optimizes for the appearance of a complete agentic system before the core user flow has a stable ownership model.
Strong slop has these traits:
Low-slop design feels boring, small, typed, owned, and task-shaped. It uses fewer nouns, fewer states, fewer settings, fewer layers, and stronger contracts.
When auditing a codebase, follow this sequence:
Map the actual user flows.
Locate ownership boundaries.
Inspect state shape.
Record<string, unknown>, and “pending/final/fallback” triplets.Inspect fallback shape.
Inspect copy and UX.
Inspect tests.
Produce a scorecard and refactor plan.
Rate each category from 0 to 5.
Categories:
| Category | What to inspect | Strong slop evidence |
|---|---|---|
| Surface stack | Web UI, TUI, CLI, dashboards | More surfaces than user flows; debug/control panels as default UX |
| State & identity | sessions, runs, models, workspace, agent id | Parallel ids, nullable sentinels, label/key drift, repeated normalization |
| Orchestration | command handlers, runtime hubs, gateway | One file knows every subsystem; feature additions touch many layers |
| Fallback & compatibility | retries, legacy aliases, polling, shims | Fallback paths define behavior instead of bounded recovery |
| Agent runtime | tools, skills, plugins, model selection | Agent loop owns provider policy, delivery, persistence, and UI-facing status |
| Copy & visual taste | titles, labels, badges, empty states | Generic AI-product wording, confidence without user-action value |
| Tests & proof | fixtures, snapshots, fake backends | Tests mirror internal confusion instead of user contract |
Overall score = average of categories. Treat any category at 5 as a blocker for "clean" taste.
High-slop WebUI patterns:
Slopmax WebUI wireframe:
+--------------------------------------------------------------------------------+
| OpenClaw Control Plane Agent: main Session: global Healthy |
+------------------+---------------------------+---------------------------------+
| Agents | Chat | Tool Stream |
| Skills | [Gateway Connected] | [fallback_step] [compaction] |
| Cron | [Model Ready] | [approval pending] |
| Memory | [Skill Snapshot Fresh] | |
| Devices | | Activity Feed |
| Logs | Ask Molty anything... | run_12 pending/finalizing/done |
| Debug | [Send] [Stop] [Retry] | |
+------------------+---------------------------+---------------------------------+
| Health | Usage | Config | Workshop | Realtime Talk | Pairing | Diagnostics |
+--------------------------------------------------------------------------------+
Low-slop WebUI wireframe:
+----------------------------------------+
| Ask assistant |
| [Type a message................] [Send]|
| |
| Latest answer |
| [Stop] appears only during a live run |
+----------------------------------------+
Anti-slop WebUI rules:
High-slop TUI patterns:
/model, /agent, /session, /auth, /goal, /think, /tools, /skills, /logs, /config, and local shell escape paths.Slopmax TUI shape:
╭─ OpenClaw TUI ──────────────────────────────────────────────────────╮
│ Gateway: connected | Agent: main | Session: agent:main:main | k2p5 │
├─────────────────────────────────────────────────────────────────────┤
│ Molty is thinking... still waiting... reconnecting... finalizing... │
│ Tool stream: shell.run pending | browser.open done | fallback active │
├─────────────────────────────────────────────────────────────────────┤
│ /model /agent /session /auth /goal /skills /tools /logs /debug /fix │
│ > │
╰─────────────────────────────────────────────────────────────────────╯
Low-slop TUI shape:
> ask: refactor this function
streaming answer... [Esc cancels]
Anti-slop TUI rules:
High-slop agent patterns:
main, global, unknown, default workspace, default agent, and legacy session ids become semantic values.Anti-slop agent/runtime rules:
Sloppy lifecycle shape:
type RunFog = {
activeChatRunId: string | null;
pendingChatRunId: string | null;
reconnectPendingRunId: string | null;
pendingOptimisticUserMessage: boolean;
finalizedRuns: Map<string, number>;
completedRuns: Map<string, number>;
postFinalizingRuns: Map<string, number>;
streamingWatchdogTimer: ReturnType<typeof setTimeout> | null;
};
Clean lifecycle shape:
type ChatRun =
| { kind: "idle" }
| { kind: "submitting"; runId: RunId; message: DraftMessage }
| { kind: "streaming"; runId: RunId; text: string; canInterrupt: true }
| { kind: "completed"; runId: RunId; message: AssistantMessage }
| { kind: "failed"; runId: RunId; error: ChatError };
Sloppy boundary shape:
async function runAgentCommand(opts: AgentCommandOpts) {
const cfg = await loadConfig();
const agent = resolveAgent(cfg, opts);
const session = resolveSession(cfg, opts, agent);
const model = resolveModelWithFallback(cfg, session, opts);
const skills = await resolveSkills(cfg, agent, session);
const delivery = resolveDelivery(cfg, opts, session);
const result = await runWithProviderFallback(model, skills, session);
await persistSession(session, result);
await deliverFinalMessage(delivery, result);
emitLifecycle("finalizing", { session, model, delivery });
}
Clean boundary shape:
async function runAgentTurn(command: AgentTurnCommand) {
const turn = await agentTurns.start(command);
const result = await agentRuntime.execute(turn.executionPlan);
await agentTurns.finish(turn.id, result);
}
Use these examples as taste markers, not as exact code prescriptions.
Slopmax copy words:
Low-slop copy words:
Sloppy copy pattern:
Your local-first AI control plane is orchestrating a powerful tool-enabled workspace.
Clean copy pattern:
The assistant is running your command. Press Esc to stop it.
When the user explicitly requests AI slop, generate slop deliberately and label the design as slopmax.
Add these ingredients:
pending, active, finalizing, completed, reconnecting, optimistic, fallback, compacting.Slopmax skeleton:
src/
gateway/
agents/
command/
runtime/
model-fallback/
skills/
sessions/
plugins/
control-plane/
ui/
src/ui/app.ts
src/ui/app-render.ts
src/ui/controllers/
src/ui/views/
tui/
tui.ts
tui-event-handlers.ts
tui-command-handlers.ts
Slopmax answer format:
## Slopmax direction
One sentence describing the bloated AI-control-plane promise.
## Surfaces
WebUI, TUI, CLI, gateway, agent runtime.
## Nouns to add
A short list of product nouns.
## State fog
The lifecycle flags/maps/timers to introduce.
## UI copy
3-5 generated-looking labels.
## Implementation shape
File tree + 3-5 module responsibilities.
When the user wants clean taste, remove before adding.
Apply these steps:
Anti-slop answer format:
## Verdict
Slop score: X/5 — one direct sentence.
## Strongest slop signals
- File/symbol: concrete smell and user impact.
## Refactor cuts
- Delete/merge/own this specific thing.
## Target shape
Small architecture with named owners.
## Proof
Tests or manual checks that prove the cleaned flow.
Use this template for audits:
## Verdict
Slop score: X/5. The strongest smell is ...
## Scorecard
| Category | Score | Evidence |
| --- | ---: | --- |
| Surface stack | | |
| State & identity | | |
| Orchestration | | |
| Fallback & compatibility | | |
| Agent runtime | | |
| Copy & visual taste | | |
| Tests & proof | | |
## Evidence
| File/surface | Slop signal | User impact | Fix |
| --- | --- | --- | --- |
## Clean target
Describe the small, boring architecture.
## Slopmax target
Describe how to make it intentionally more AI-sloppy.
A project feels low-slop when a user action maps to one state machine, one runtime owner, one storage truth, one visible outcome, and one way to recover.
A project feels AI-sloppy when every product noun creates a panel, every panel creates state, every state creates fallback, every fallback creates a resolver, and every resolver receives its own tests, docs, and reassuring copy.