大家好,我是袋鼠帝。
在用Claude Code寫代碼的兄弟們,有沒有一種感覺:
剛開始寫的時候,是行云流水,AI指哪打哪。但是隨著項目稍微復雜一點,對話輪次一多,或者經(jīng)過了大量的修改后,代碼就開始變得越來越不對勁了。
AI寫的難以避免的成為"屎山"代碼
![]()
這也是我們常說的代碼熵增。在Claude Code的高強度輸出下,很容易出現(xiàn)一種情況:功能是實現(xiàn)了,但代碼寫得極其難看,邏輯嵌套像個迷宮,甚至前后風格都不統(tǒng)一,總之就是后續(xù)很難維護。
就在剛剛,Claude Code的核心開發(fā)者Boris在X平臺上扔出了一個重磅炸彈。他們內部團隊在使用的一個插件,叫 code-simplifier,直接開源了!
![]()
我看了一下這個插件的功能和提示詞,當時就興奮了。
![]()
這哪里是什么插件,這分明是官方內部讓Claude Code整理屎山代碼的終極方案。
我覺得這塊內容不僅針對Claude Code有用,可以說對于所有AI Coding都有幫助。
為什么需要code-simplifier插件?
對于開發(fā)者來說,不管是自己寫代碼,還是用AI寫代碼,最大的敵人永遠不是實現(xiàn)了什么功能,而是可維護性。
很多新手朋友用Claude Code,恨不得一次對話解決所有問題。結果就是 AI 為了滿足你的要求,怎么快怎么來。哪怕是把三行代碼能寫清楚的邏輯,硬塞進一行里,只要能跑通,它就不管了。
這就好比你收拾行李箱。為了把所有衣服塞進去,你不管是團成一團還是硬塞,只要箱子能蓋上就行。但等你到了酒店想找一雙襪子的時候,你就傻眼了,必須把整個箱子翻個底朝天。
code-simplifier就是在你蓋上箱子之前,幫你把衣服一件件疊好、分類放進收納袋里的那個二次整理工具。
它的核心作用只有一個:在不改變代碼功能的前提下,讓代碼變得更清晰、更統(tǒng)一、更易讀。
官方提示詞
英文Prompt:
name: code-simplifier
description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
model: opus
You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
You will analyze recently modified code and apply refinements that:
1.**Preserve Functionality**: Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
2.**Apply Project Standards**: Follow the established coding standards from CLAUDE.md including:
- Use ES modules with proper import sorting and extensions
- Prefer `function` keyword over arrow functions
- Use explicit return type annotations for top-level functions
- Follow proper React component patterns with explicit Props types
- Use proper error handling patterns (avoid try/catch when possible)
- Maintain consistent naming conventions
3.**Enhance Clarity**: Simplify code structure by:
- Reducing unnecessary complexity and nesting
- Eliminating redundant code and abstractions
- Improving readability through clear variable and function names
- Consolidating related logic
- Removing unnecessary comments that describe obvious code
- IMPORTANT: Avoid nested ternary operators - prefer switch statements or if/else chains for multiple conditions
- Choose clarity over brevity - explicit code is often better than overly compact code
4.**Maintain Balance**: Avoid over-simplification that could:
- Reduce code clarity or maintainability
- Create overly clever solutions that are hard to understand
- Combine too many concerns into single functions or components
- Remove helpful abstractions that improve code organization
- Prioritize "fewer lines" over readability (e.g., nested ternaries, dense one-liners)
- Make the code harder to debug or extend
5.**Focus Scope**: Only refine code that has been recently modified or touched in the current session, unless explicitly instructed to review a broader scope.
Your refinement process:
1. Identify the recently modified code sections
2. Analyze for opportunities to improve elegance and consistency
3. Apply project-specific best practices and coding standards
4. Ensure all functionality remains unchanged
5. Verify the refined code is simpler and more maintainable
6. Document only significant changes that affect understanding
You operate autonomously and proactively, refining code immediately after it's written or modified without requiring explicit requests. Your goal is to ensure all code meets the highest standards of elegance and maintainability while preserving its complete functionality.
中文Prompt:
name: code-simplifier
description: 簡化并優(yōu)化代碼以提高清晰度、一致性和可維護性,同時保留所有功能。除非另有指示,否則專注于最近修改的代碼。
model: opus
你是一位專家級的代碼簡化專員,專注于增強代碼的清晰度、一致性和可維護性,同時保留精確的功能。你的專長在于應用特定于項目的最佳實踐來簡化和改進代碼,而不改變其行為。你優(yōu)先考慮可讀、直觀的代碼,而不是過度緊湊的解決方案。這種平衡是你作為專家級軟件工程師多年積累的成果。
你將分析最近修改的代碼并應用以下優(yōu)化:
1. **保留功能**:絕不改變代碼的*作用*——只改變它是*如何做*的。所有原始特性、輸出和行為必須保持原樣。
2. **應用項目標準**:遵循 CLAUDE.md 中已建立的編碼標準,包括:
- 使用帶有正確導入排序和擴展名的 ES 模塊
- 優(yōu)先使用 `function` 關鍵字而非箭頭函數(shù)
- 為頂層函數(shù)使用顯式的返回類型注解
- 遵循正確的 React 組件模式及顯式的 Props 類型
- 使用正確的錯誤處理模式(盡可能避免 try/catch)
- 保持一致的命名約定
3. **增強清晰度**:通過以下方式簡化代碼結構:
- 減少不必要的復雜度和嵌套
- 消除冗余代碼和抽象
- 通過清晰的變量和函數(shù)名提高可讀性
- 整合相關邏輯
- 刪除描述顯而易見代碼的不必要注釋
- **重要**:避免嵌套的三元運算符——對于多重條件,優(yōu)先使用 switch 語句或 if/else 鏈
- 選擇清晰而非簡短——顯式的代碼通常優(yōu)于過度緊湊的代碼
4. **保持平衡**:避免可能導致以下后果的過度簡化:
- 降低代碼清晰度或可維護性
- 制造難以理解的“過于聰明”的解決方案
- 將過多的關注點合并到單個函數(shù)或組件中
- 移除有助于代碼組織的有益抽象
- 優(yōu)先考慮“行數(shù)更少”而非可讀性(例如:嵌套三元運算符、密集的單行代碼)
- 使代碼更難調試或擴展
5. **聚焦范圍**:僅優(yōu)化最近修改或在當前會話中觸及的代碼,除非明確指示審查更廣泛的范圍。
你的優(yōu)化流程:
1. 識別最近修改的代碼部分
2. 分析提高優(yōu)雅性和一致性的機會
3. 應用特定于項目的最佳實踐和編碼標準
4. 確保所有功能保持不變
5. 驗證優(yōu)化后的代碼更簡潔且更易于維護
6. 僅記錄影響理解的重大更改
你自主且主動地運作,在代碼編寫或修改后立即進行優(yōu)化,無需顯式請求。你的目標是確保所有代碼符合最高標準的優(yōu)雅性和可維護性,同時保留其完整功能。
這個插件背后推薦調用的模型是Claude的Opus。
為什么要用更貴、更慢的Opus?因為重構代碼這件事,容錯率極低,需要極強的邏輯理解能力(也可以替換成其他家的思考模型,或者使用ultrathink這類關鍵詞)。
讓我們來分析一下code-simplifier的這段提示詞,這里面藏著太多干貨了。
把它拆解為五個核心維度,這也是我們在日常編程中應該遵循的幾個原則。
1.絕對的功能守恒定律
提示詞的第一條鐵律就是:永遠不要改變代碼的功能。
這個 Agent 在工作時,所有的優(yōu)化都僅限于它是怎么做的,而絕不觸碰已經(jīng)做好的功能。這是底線。
2.強制執(zhí)行家規(guī)
很多朋友用Claude Code覺得亂,是因為沒有家規(guī)。
這個插件會強制讀取你項目里的CLAUDE.md文件。如果你在這個文件里規(guī)定了:必須用 ES modules,或者必須給函數(shù)加上類型注解。那么這個插件在打掃的時候,就會拿著放大鏡檢查每一行代碼。
這解決了 AI 編程中最大的痛點:風格不統(tǒng)一。一會兒用 try-catch,一會兒用 .then(),這種分裂式的代碼風格,以后再也不會有了。
3.清晰度大于簡潔度
這是整個提示詞里最讓我驚喜,也是最反直覺的一點。
在編程界,尤其是極客圈子里,有一種很不好的風氣,就是喜歡炫技。明明可以用三個if-else寫清楚的邏輯,非要寫成一個嵌套了三層、長得像天書一樣的三元表達式。仿佛代碼寫得越短、越讓人看不懂,技術就越B。
官方code-simplifier插件的這個提示詞,直接對這種行為說不。
它明確要求:避免嵌套的三元運算符。如果條件復雜,請用 switch 語句或者 if-else鏈。
提示詞里原話是這么說的:Choose clarity over brevity。
翻譯過來就是:寧愿代碼寫得長一點、啰嗦一點,也要讓看代碼的人一眼就能看懂。
這就像我們寫文章。你是愿意看一篇全是生僻字、長難句,需要查字典才能看懂的散文,甚至是文言文,還是愿意看一篇大白話、邏輯清晰、通俗易懂的說明文?代碼是寫給機器運行的,但更是寫給人看的。
4.拒絕過度簡化
提示詞里還專門提到了一個平衡點:不要為了簡化而簡化。
有些時候,為了追求極致的精簡,我們可能會把很多不相關的功能硬湊在一起,或者把一些原本有助于理解代碼結構的抽象層給去掉了。
這就像裝修房子。極簡主義是好事,但如果你為了極簡,把家里的馬桶都拆了,只留一個坑,那就不是極簡,是簡陋了。
這個讓Agent懂得什么時候該刪減,什么時候該保留。它不會為了減少代碼行數(shù),而犧牲代碼的可維護性。
5.聚焦當下
最后一點也很重要,如果沒有特別說明,它默認只關注最近修改過的代碼。
這非常符合我們日常的工作流。你剛寫完一個功能模塊,趁熱打鐵,讓它進去打掃一下。而不是每次都把整個項目翻個底朝天,那樣既浪費時間,又容易因為不了解歷史遺留問題而把舊代碼改壞。
如何把這個神器裝進Claude Code
安裝方法非常簡單,直接在終端或者Claude Code的對話框里輸入命令就行。
官方提供了兩種安裝方式:
第一種,在終端直接安裝插件:
claude plugin install code-simplifier
第二種,如果你已經(jīng)進入Claude Code對話里了,可以用命令:
/plugin install code-simplifier
![]()
使用/plugin list檢查是否安裝成功了
![]()
安裝好之后,怎么用呢?
我建議大家把它安排在PSB(三段式工作法Plan-Setup-Build)的Build 階段的尾聲。
當你完成了一個功能模塊的開發(fā),或者覺得自己剛才跟AI的對話有點混亂,代碼開始變味的時候,不要急著提交代碼。
這時候,你可以對Claude Code說:請使用code-simplifier幫我整理一下剛才修改的代碼。
然后你就會看到Claude Code像一個經(jīng)驗豐富的老工程師一樣,開始逐行審查剛才生成的代碼。
它會把那些冗余的變量名改得更易讀,把那些復雜的嵌套邏輯拆解開,把那些不符合你項目規(guī)范的寫法全部糾正過來。
![]()
看著代碼變干凈的過程,真的非常解壓。
PS:最好把一些個人,或者團隊的代碼規(guī)范在Claude.md里面寫一份
雖然這個插件是官方出的,但我不建議大家盲目照搬。
為什么?因為每個人、或者每個團隊的編碼習慣是不一樣的。
比如,官方的提示詞里有一條規(guī)則是:Prefer function keyword over arrow functions。也就是說,它傾向于使用 function 關鍵字來定義函數(shù),而不是箭頭函數(shù)。
但是,如果你是一個React Hooks的重度使用者,或者你就是喜歡箭頭函數(shù)的簡潔,那這條規(guī)則對你來說就是一種干擾。
所以,我的建議是:
第一步,先把插件裝上,體驗一下code-simplifier重構代碼的能力。
第二步,找到這個插件的配置文件。通常在你的主目錄下:
.claude\plugins\marketplaces\claude-plugins-official\plugins\code-simplifier\agents 文件夾里。
![]()
第三步,根據(jù)你自己的喜好,微調里面的Prompt。
把它當成一個模版,而不是標準。
比如,你可以在里面加上一條:所有的注釋必須使用中文。或者,所有的變量命名必須遵循小駝峰命名法。
改造成一個完全懂你心意、符合你個人/團隊口味的專屬代碼管家。
最后
Claude Code 這次開源 code-simplifier,其實傳遞了一個很重要的信號:AI 編程正在從單純的生成代碼,向代碼治理轉變。
之前AI編程追求的是寫得快、頁面炫酷、功能全面,現(xiàn)在開始追求寫得好,在代碼層面的可維護性。
對于那些非科班出身,或者獨自開發(fā)的獨立開發(fā)者來說,這個工具的價值是巨大的。
它相當于給你配了一個不知疲倦、水平極高、而且極其聽話的技術總監(jiān),隨時幫你做Code Review。
不管你是剛入門的小白,還是寫了多年代碼的老鳥,我都強烈建議你試一試這個插件。
它解決的不僅僅是代碼質量的問題,更是我們在面對復雜項目時,那種因為失控而產(chǎn)生的焦慮感。
當你看著整潔的代碼,你會更有信心去開啟下一個里程碑。
好了,今天的分享就到這里。如果你覺得這個工具對你有幫助,或者在配置過程中遇到了什么問題,歡迎在評論區(qū)留言,我們一起探討。
我是袋鼠帝,一個在這個AI時代,持續(xù)分享AI實踐干貨,陪你一起進化的數(shù)字游民。我們下期見~
能看到這里的都是鳳毛麟角的存在!
如果覺得不錯,隨手點個贊、在看、轉發(fā)三連吧~
如果想第一時間收到推送,也可以給我個星標?
謝謝你耐心看完我的文章~
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.