Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计通过

deslop文本去水化

Agent Skill

deslop 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

306

周安装

13

GitHub Stars

2

下载量

107
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:deslop(文本去水化)
来源仓库:https://github.com/bmsuisse/skills
仓库路径:skills/deslop
安装命令:
npx skills add https://github.com/bmsuisse/skills --skill deslop
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/bmsuisse/skills --skill deslop

简介

deslop 清理 AI 生成代码中的冗余与风格不一致问题。

  • 适用于 Codex、Claude、Cursor、Gemini CLI,识别无意义注释与过度防御。
  • 支持主动预防与被动修复两种使用模式。
  • 使用前请熟悉项目中 slop 的具体表现形式。
  • deslop 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Deslop

AI-generated code often *works* but doesn't *belong*. It is technically correct but inconsistent — stuffed with comments nobody would write, defensive checks that don't match the codebase's trust model, abstractions added "just in case", and style that clashes with the surrounding file.

This skill helps you either reactively clean up existing AI-written code, or proactively structure your AI workflow so slop never reaches the PR in the first place.


What AI slop looks like

Before fixing anything, recognise the patterns:

CategoryExamples
Redundant comments# increment counter by 1, // returns the user
Over-defensive codeif value is not None and value!= "" and value!= [] where if value suffices; unnecessary try/except wrapping happy paths
Type escapesSpurious casts, as any, ! non-null assertions added "just to be safe"
Inconsistent styleNaming conventions, import ordering, or patterns that differ from the surrounding file
Premature abstractionHooks, interfaces, base classes, or configuration keys that serve no current requirement
Vibe extrasLogging statements, TODO comments, or fallback branches that weren't asked for

Reactive cleanup — the subtractive review

Use this when you have a diff, file, or snippet to clean up right now.

Ask yourself one question: "Would someone who has been in this codebase for six months write this?"

Checklist

Work through the diff/file systematically:

  • Comments: Remove any comment a competent maintainer wouldn't need. Keep comments that explain *why*, delete ones that restate *what*.
  • Defensive checks: Remove guards that don't match the existing trust model. If the rest of the codebase already validates inputs at the boundary, don't re-validate deep inside a helper.
  • Type escapes: Remove as any, !, unnecessary casts, or # type: ignore unless there is a documented reason. Fix the root cause instead.
  • Naming: Rename anything that clashes with the file's existing conventions (casing, prefixes, abbreviations).
  • Abstractions: Delete layers of indirection that exist "just in case". YAGNI — You Aren't Gonna Need It.
  • Style: Re-align imports, spacing, and formatting to match the surrounding file. Run the project's linter/formatter after changes.
  • Extras: Remove stray print, console.log, TODO comments, and boilerplate the user didn't ask for.

Output format

After cleanup, produce a brief report:

## Deslop report

### Removed
- <what was removed and why, one line each>

### Changed
- <what was adjusted and why, one line each>

### Kept (and why)
- <anything that looked like slop but was intentional, with justification>

If the diff is already clean, say so explicitly — "No slop found."


Proactive loop — Research → Plan → Execute → Review → Revise

Use this when starting a new AI-assisted coding task. The goal is to prevent slop from entering the PR rather than cleaning it up afterwards.

1. Research

Narrow the problem before writing a single line.

  • Which files are relevant? Read them.
  • What patterns already exist in the codebase? (naming, error handling, logging)
  • Where are the trust boundaries? (what is validated, and where)
  • What assumptions does this part of the code make?

Output a short context summary:

  • Relevant files
  • Key constraints and patterns
  • Open questions (and answers)

Use this summary as your prompt context for the next steps.

2. Plan

Turn the research into intent. A good plan stops slop before the model generates it.

  • What must change? What must *not* change?
  • What naming and style conventions apply?
  • What error-handling pattern does the codebase use?
  • Are comments needed? At what level of detail?
  • What abstractions already exist that should be reused?

Review the plan the way you would review an architecture decision — if something feels off here, it is cheap to fix.

3. Execute

Let the AI work, but narrowly. Scope each prompt to the plan. Avoid open-ended "implement this feature" prompts without constraints.

Good execution feels boring. If the output surprises you, something was under-specified in the plan.

4. Review

Apply the reactive checklist above to everything that was generated. Then ask: "Does this feel like it belongs here?"

Also verify:

  • Tests pass
  • Linting is clean
  • Code matches the plan
  • Style matches the file

5. Revise (the step most people skip)

When output doesn't match expectations, identify the root cause:

  • What context was missing?
  • What rule wasn't explicit enough?
  • What assumption did the model make?

Then feed the learning back:

  • Update project rules / .cursor/rules / system prompts
  • Update agent instructions or slash commands
  • Document the pattern so it doesn't recur

This step compounds. Each revision makes the next PR cleaner than the last without any extra effort at generation time.


Quick reference — what not to write

# ❌ Comment restating the code
# Get the user by ID
user = get_user(user_id)

# ✅ No comment needed — the code is self-explanatory
user = get_user(user_id)

# ❌ Over-defensive guard inconsistent with the codebase trust model
def process(value):
    if value is None:
        return None
    if not isinstance(value, str):
        raise TypeError("value must be str")
    if len(value) == 0:
        return ""
    return value.strip()

# ✅ Trust the caller; validate at the boundary, not deep inside
def process(value: str) -> str:
    return value.strip()

# ❌ Premature abstraction
class BaseProcessor(ABC):
    @abstractmethod
    def process(self, value: str) -> str: ...

class StringProcessor(BaseProcessor):
    def process(self, value: str) -> str:
        return value.strip()

# ✅ Just write the function
def process(value: str) -> str:
    return value.strip()
// ❌ Type escape
const result = (someValue as any).property;

// ✅ Fix the type
const result = (someValue as MyType).property;

// ❌ Vibe extra — logging nobody asked for
console.log("Processing user", userId);
const user = await getUser(userId);
console.log("Got user", user);

// ✅ Just the code
const user = await getUser(userId);

Key principle

The goal is not "remove all AI fingerprints". The goal is code that reads as if a thoughtful engineer who knows this codebase wrote it. Sometimes that means keeping a guard or a comment — but only when it genuinely serves the reader.

When in doubt, delete it and see if anything breaks.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.42%
按下载量换算39

Claude

30.55%
按下载量换算33

Cursor

16.48%
按下载量换算18

Gemini CLI

9.39%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills