我给 Claude Code 装了个 skill,让它别再废话,生成的代码干净了一截(附开源仓库)
不知道你有没有被 AI 编程助手那些铺天盖地的“废话”和“过度设计”折磨过?
在用 Cursor 或是 Claude Code 写代码时,经常会遇到这种让人血压飙升的场景:你只是让它写一个极简的异步数据拉取逻辑,结果它不仅帮你写了核心函数,还附赠了二三十行用英文撰写的冗余 Docstring。
甚至,连 x = x + 1 这种大一新生都看得懂的代码,它都非要在旁边补上一行英文注释:# Increment x by 1。
不仅如此,为了显示自己的“专业性”,AI 还特别喜欢给你搞“过度设计”——无端创造出三四个无用的抽象类、加上各种莫名其妙的 logger.info 和毫无意义的泛泛 try-except 包裹。这些啰嗦的代码和注释不仅污染了你干净的 Git Commit,还会因为冗长而稀释模型的注意力,引发莫名其妙的逻辑 Bug。
你不得不一次次手动去删除这些废话,或者在对话框里咬牙切齿地纠正:“把所有多余的英文注释都给我删掉,直接给我最精炼的代码!”然而下一次提问,它又旧病复发。
为什么 AI 编程工具会变成一个无法自拔的“啰嗦鬼”?
1. 为什么 AI 编程助手总是在“画蛇添足”?
要治好 AI 的“啰嗦病”,我们得先知道它是怎么染上的。大语言模型(LLM)的训练语料中包含了大量的教科书代码、开源项目教程和详细的教学博文。在这些语料中,为了教学需要,往往带有极其繁杂的中文或英文解说。

AI 在生成代码时,其概率预测机制会认为“带有丰富注释和接口封装的代码可读性更高”。这就导致它会天然倾向于选择最啰嗦的输出方式。
同时,大语言模型的机制是“逐 Token 生成”。它吐出的废话和重复性注释越多,不仅消耗的时间越长,而且白白浪费了你极其珍贵的上下文 Token 额度。对于每天高频调用的 Claude Code 而言,这烧掉的都是真金白银。
2. 降维打击:让 AI 保持克制的 ship-skill
为了让 AI 彻底闭嘴,只吐出可以直接投入生产环境的高质量、干练代码,我写了一个开源的 AI Agent Skill —— ship-skill。
它本质上是一个针对大语言模型(LLM)的高强度规则约束模版。通过将一系列防御性的“反冗余、反过度注释、反过度设计”的 Prompt 规则注入到 AI Agent 的底层配置中,强行卡死 AI 的发散性注意力。

使用它非常简单,你不需要在每次提问时都去强调不要写注释。只需要在项目根目录下通过一条命令完成安装:
npx skills add EA-Studio-SHARK/ship-skill
安装程序会自动检测你本地正在使用的 AI 编程环境(例如 Cursor 的 .cursorrules 文件或是 Claude Code 的 .claudecode.json 规则链),并将这套极致干净的“开发军规”深度融入进去。
3. 实战对比:装上 ship-skill 前后的代码表现
让我们用同一个接口调用需求,测试一下应用该规则前后的真实代码对比。
改造前:AI 默认产出的“画蛇添足”版
面对一个简单的 Python 异步数据抓取需求,AI 默认会输出下面这样臃肿且带有冗长英文解说的代码:
# ========================================================
# Function: fetch_user_data
# Author: AI Assistant
# Description: Fetches user details asynchronously from API
# ========================================================
async def fetch_user_data(user_id: int) -> dict:
# Log starting of the network request
logger.info(f"Starting data fetch for user {user_id}")
# Constructing the target URL
url = f"https://api.example.com/users/{user_id}"
# Open the async HTTP client session
async with aiohttp.ClientSession() as session:
# Perform HTTP GET request
async with session.get(url) as response:
# Check if status code is OK
if response.status == 200:
# Parse JSON data and return
return await response.json()
改造后:装上 ship-skill 后的极简生产版
在项目规则中融入 ship-skill 约束后,AI 在面对同样的需求时,瞬间收敛了全部多余的废话:
async def fetch_user_data(user_id: int) -> dict:
url = f"https://api.example.com/users/{user_id}"
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
if response.status == 200:
return await response.json()
response.raise_for_status()

对比非常强烈。装上 Skill 后的代码不仅没有行行注释的噪音,还在最底层加入了防御性的 raise_for_status() 异常抛出逻辑。代码量减少了 60% 以上,可维护性极高,且完全不需要你做第二次人工清洗。
4. ship-skill 是如何工作的?
这套 Skill 的核心约束只做三件事:
- 代码即自解释:强制 AI 只有在遇到极其晦涩、包含奇淫巧技的算法时,才在关键行写单行注释;常规的控制流逻辑严禁出现任何解释文字。
- 拒绝脑补与过度设计:严禁 AI 自主创造没有被提需求的抽象类和包装函数,代码结构必须遵循最直接的实现路径。
- 零 Token 浪费:在输出结构上进行指令级优化,让 AI 抛弃所有“Sure, I can help you with that”之类的寒暄前言和总结废话,完成任务后立刻闭嘴。

5. 如何获取和复现?
我已将这个规则库完全开源在 GitHub。如果你每天使用 Cursor 或者是 Claude Code,强烈建议你在你当前维护的项目中试一下。
- 开源仓库地址:EA-Studio-SHARK/ship-skill
- 一键集成命令:
npx skills add EA-Studio-SHARK/ship-skill

除了 ship-skill 之外,为了让 AI 在国内开发场景和日常工作中更听话,我还开源了另外几个中文技术栈专用的 Agent 规则,它们同样支持一键在本地安装:
ai-skills-zh:让 AI 深度理解中国技术开发生态及特有的配置环境。viral-content-skill:用于自动规范 AI 编写高质量中文开发爆文的结构排版。ecom-listing-skill:自动卡死跨境电商文案的输出模版。
你可以根据需要在 GitHub 搜索并关注 EA-Studio-SHARK 组织。
最后想跟大家讨论一个有趣的话题:你平时在使用 AI 编程助手时,哪一种“啰嗦废话”或是过度设计的习惯让你最感到头疼?你是通过什么指令去约束它的?
欢迎在评论区留言讨论。想交流 AI 编程和 Agent 落地经验的同学,也可以私信我或在评论区留言,我会把我们的小群发给你。我们下期再见!