mcpField
C
clean-code

clean-code

github.com/davila7开发33.0k1.1k 次安装今天更新
代码仓库

关于 clean-code

面向编码 Agent 的技能,通过简洁代码原则、依赖检查和完成前验证,引导其编写易维护的代码,适用于修改软件项目的任务。

主要功能

  1. 01单一职责与简洁原则
  2. 02命名和函数规范
  3. 03编辑前检查依赖
  4. 04完成前自检与测试
  5. 05按 Agent 分类的验证脚本

适用场景

  1. 01直接实现用户请求的功能
  2. 02修复问题并检查依赖影响
  3. 03完成任务前复核代码改动

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davila7/claude-code-templates --skill clean-code

安装后在 Claude Code 中输入/clean-code确认已加载。

详细介绍

Clean Code - 实用主义 AI 编码规范

关键技能 —— 务必做到简洁、直接、聚焦解决方案。


核心原则

原则规则
SRP单一职责——每个函数/类只做一件事
DRY不要重复自己——提取重复内容并复用
KISS保持简单——采用能解决问题的最简单方案
YAGNI你不会需要它——不要构建用不到的功能
Boy Scout让代码比你接手时更整洁

命名规则

元素约定
变量清楚表达意图:用 userCount,而不是 n
函数动词 + 名词:用 getUserById(),而不是 user()
布尔值采用疑问形式:isActive、hasPermission、canEdit
常量SCREAMING_SNAKE:MAX_RETRY_COUNT

规则: 如果需要注释来解释名称,就重命名它。


函数规则

规则描述
简短最多 20 行,理想情况下为 5–10 行
只做一件事做好一件事
单一层级每个函数只包含一个抽象层级
少参数最多 3 个参数,最好为 0–2 个
无副作用不要意外修改输入

代码结构

模式应用方式
守卫子句对边缘情况提前返回
扁平优于嵌套避免深层嵌套(最多 2 层)
组合将小函数组合在一起
就近放置让相关代码彼此靠近

AI 编码风格

情况行动
用户提出功能需求直接实现
用户报告 Bug修复它,不要解释
需求不明确提问,不要假设

反模式(不要这样做)

❌ 模式✅ 修正方式
每行都写注释删除显而易见的注释
只有一行代码的辅助函数直接内联代码
为 2 个对象创建工厂直接实例化
只有 1 个函数的 utils.ts将代码放到使用它的地方
“首先我们导入……”直接写代码
深层嵌套使用守卫子句
魔法数字使用命名常量
上帝函数按职责拆分

🔴 编辑任何文件之前(先思考!)

更改文件之前,先问自己:

问题原因
哪些文件导入了这个文件?它们可能会出问题
这个文件导入了什么?接口可能发生变化
哪些测试覆盖了这里?测试可能会失败
这是共享组件吗?可能影响多个地方

快速检查:

File to edit: UserService.ts
└── Who imports this? → UserController.ts, AuthController.ts
└── Do they need changes too? → Check function signatures

🔴 规则: 在同一任务中编辑该文件及其所有依赖文件。 🔴 绝不要留下损坏的导入或遗漏的更新。


总结

要做不要做
直接编写代码编写教程
让代码自我说明添加显而易见的注释
立即修复 Bug先解释修复方法
内联小内容创建不必要的文件
清楚地命名事物使用缩写
保持函数简短编写 100 行以上的函数

记住:用户想要的是可运行的代码,而不是编程课程。


🔴 完成前自检(必须执行)

在说“任务完成”之前,先确认:

检查项问题
✅ 目标达成?我是否完全按照用户的要求执行?
✅ 文件已编辑?我是否修改了所有必要的文件?
✅ 代码可用?我是否测试/验证了这项更改?
✅ 没有错误?Lint 和 TypeScript 是否通过?
✅ 没有遗漏?是否遗漏了任何边缘情况?

🔴 规则: 如果任何一项检查未通过,必须先修复再完成。


验证脚本(必须执行)

🔴 关键: 每个 Agent 完成工作后,只运行自己技能对应的脚本。

Agent → 脚本映射
Agent脚本命令
frontend-specialistUX 审计python ~/.claude/skills/frontend-design/scripts/ux_audit.py .
frontend-specialist无障碍检查python ~/.claude/skills/frontend-design/scripts/accessibility_checker.py .
backend-specialistAPI 验证器python ~/.claude/skills/api-patterns/scripts/api_validator.py .
mobile-developer移动端审计python ~/.claude/skills/mobile-design/scripts/mobile_audit.py .
database-architectSchema 校验python ~/.claude/skills/database-design/scripts/schema_validator.py .
security-auditor安全扫描python ~/.claude/skills/vulnerability-scanner/scripts/security_scan.py .
seo-specialistSEO 检查python ~/.claude/skills/seo-fundamentals/scripts/seo_checker.py .
seo-specialistGEO 检查python ~/.claude/skills/geo-fundamentals/scripts/geo_checker.py .
performance-optimizerLighthousepython ~/.claude/skills/performance-profiling/scripts/lighthouse_audit.py <url>
test-engineer测试运行器python ~/.claude/skills/testing-patterns/scripts/test_runner.py .
test-engineerPlaywrightpython ~/.claude/skills/webapp-testing/scripts/playwright_runner.py <url>
Any agentLint 检查python ~/.claude/skills/lint-and-validate/scripts/lint_runner.py .
Any agent类型覆盖率python ~/.claude/skills/lint-and-validate/scripts/type_coverage.py .
Any agenti18n 检查python ~/.claude/skills/i18n-localization/scripts/i18n_checker.py .

❌ 错误: test-engineer 运行 ux_audit.py ✅ 正确: frontend-specialist 运行 ux_audit.py


🔴 脚本输出处理(读取 → 总结 → 询问)

运行校验脚本时,你必须:

  1. 运行脚本 并捕获所有输出
  2. 解析输出 — 识别错误、警告和通过项
  3. 按以下格式向用户总结:
## Script Results: [script_name.py]

### ❌ Errors Found (X items)
- [File:Line] Error description 1
- [File:Line] Error description 2

### ⚠️ Warnings (Y items)
- [File:Line] Warning description

### ✅ Passed (Z items)
- Check 1 passed
- Check 2 passed

**Should I fix the X errors?**
  1. 等待用户确认 后再修复
  2. 修复后 → 重新运行脚本以确认

🔴 违规: 运行脚本却忽略输出 = 任务失败。 🔴 违规: 未经询问就自动修复 = 不允许。 🔴 规则: 始终先读取输出 → 总结 → 询问 → 然后再修复。

评论

支持 Markdown