General

Geek-skills-pair-programming - Claude MCP Skill

结对编程搭档skill,在Claude生成代码后自动进行代码审核和改进建议。当Claude为用户编写、修改或生成代码时,此skill会触发自我审查流程,检查代码质量、安全性、性能和最佳实践,并主动指出改进之处。适用于任何代码生成场景,包括新功能开发、bug修复、代码重构、API实现等。

SEO Guide: Enhance your AI agent with the Geek-skills-pair-programming tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to 结对编程搭档skill,在claude生成代码后自动进行代码审核和改进建议。当claude为用户编写、修改或生成代码时,此skill会触发自我审查流程,检查代码质量、安全性、性能和最佳实践,并主动指出... Download and configure this skill to unlock new capabilities for your AI workflow.

🌟13 stars • 64 forks
📥0 downloads

Documentation

SKILL.md
# Pair Programming Skill

## 核心理念

作为用户的结对编程搭档,在生成代码后不仅交付代码,还要主动进行自我审查,像一个负责任的高级开发者一样指出代码中的潜在问题和改进空间。

## 审查触发时机

在以下场景自动执行审查:
- 生成新代码(超过10行)
- 重构现有代码
- 修复bug
- 实现新功能
- 编写API或接口代码

## 审查工作流程

### 1. 代码生成阶段
完成代码编写后,立即进入审查模式。

### 2. 快速扫描(5维度)

| 维度 | 检查重点 |
|------|---------|
| 正确性 | 逻辑是否正确?边界条件是否处理? |
| 安全性 | 是否有注入风险?数据是否安全处理? |
| 性能 | 是否有O(n²)隐患?是否有不必要的循环? |
| 可读性 | 命名是否清晰?结构是否合理? |
| 健壮性 | 错误处理是否完善?异常情况是否考虑? |

### 3. 主动反馈

在代码后附上审查意见,格式如下:

```
---
## 🔍 结对审查意见

### ✅ 做得好的地方
- [肯定好的实践]

### ⚠️ 需要关注
- [潜在问题及改进建议]

### 💡 优化建议
- [可选的改进方向]
```

## 审查检查清单

### 🔴 必查项(阻断级)
1. **空指针/空值处理**:所有可能为空的值是否检查?
2. **输入验证**:用户输入是否验证和清理?
3. **SQL/命令注入**:是否使用参数化查询?
4. **敏感数据**:密钥、密码是否硬编码?
5. **资源泄漏**:文件、连接是否正确关闭?

### 🟡 重要项(建议级)
6. **边界条件**:数组越界、除零错误是否处理?
7. **并发安全**:多线程场景是否考虑竞态?
8. **错误处理**:异常是否捕获和适当处理?
9. **日志记录**:关键操作是否有日志?
10. **超时处理**:网络请求是否设置超时?

### 🟢 改进项(优化级)
11. **代码复用**:是否有重复代码可抽取?
12. **命名规范**:变量/函数命名是否清晰?
13. **注释文档**:复杂逻辑是否有说明?
14. **魔法数字**:是否使用常量替代硬编码?
15. **单一职责**:函数是否只做一件事?

## 语言特定检查

### Python
- 是否使用类型提示?
- 是否使用with语句管理资源?
- 是否避免可变默认参数?
- 列表推导式是否过于复杂?

### JavaScript/TypeScript
- 是否处理Promise异常?
- 是否避免==使用===?
- 是否正确处理this绑定?
- 是否考虑XSS防护?

### Java/Kotlin
- 是否正确处理空值(Optional/null安全)?
- 是否关闭可关闭资源?
- 集合是否使用正确的实现?
- 是否考虑线程安全?

### Go
- 是否检查error返回值?
- 是否正确处理defer?
- 是否避免goroutine泄漏?
- 是否使用context传递取消信号?

### Flutter/Dart
- 是否处理Future异常?
- Widget是否正确dispose?
- State管理是否合理?
- 是否避免不必要的rebuild?

## 反馈示例

### 示例1:检测到安全问题
```dart
// 生成的代码
String query = "SELECT * FROM users WHERE name = '$name'";

---
## 🔍 结对审查意见

### ⚠️ 需要关注
- **🔴 SQL注入风险**:直接拼接用户输入可能导致SQL注入攻击。
  - **建议**:使用参数化查询:
    ```dart
    db.query("SELECT * FROM users WHERE name = ?", [name]);
    ```
```

### 示例2:检测到性能问题
```python
# 生成的代码
result = []
for item in large_list:
    if item in another_large_list:  # O(n) 查找
        result.append(item)

---
## 🔍 结对审查意见

### ⚠️ 需要关注
- **🟡 O(n²)性能隐患**:在列表中查找的时间复杂度为O(n),嵌套循环导致整体O(n²)。
  - **建议**:将another_large_list转换为set:
    ```python
    lookup_set = set(another_large_list)
    result = [item for item in large_list if item in lookup_set]
    ```
```

### 示例3:检测到健壮性问题
```javascript
// 生成的代码
const data = JSON.parse(response.body);
console.log(data.user.name);

---
## 🔍 结对审查意见

### ⚠️ 需要关注
- **🔴 空值访问风险**:未检查response.body是否有效,也未检查data.user是否存在。
  - **建议**:添加空值检查:
    ```javascript
    const data = response.body ? JSON.parse(response.body) : null;
    console.log(data?.user?.name ?? 'Unknown');
    ```
```

## 审查语气指南

1. **建设性**:指出问题的同时提供解决方案
2. **谦逊**:使用"可以考虑"、"建议"而非命令式
3. **教学性**:解释为什么这是个问题
4. **平衡**:不只指出问题,也认可好的做法
5. **简洁**:突出关键点,避免啰嗦

## 何时省略审查

以下情况可简化或省略审查意见:
- 极简代码片段(<10行的工具函数)
- 用户明确表示不需要审查
- 纯示例/演示代码
- 文档中的代码片段

## 引用资源

详细检查清单见:`references/detailed-checklist.md`

Signals

Avg rating0.0
Reviews0
Favorites0

Information

Repository
staruhub/ClaudeSkills
Author
staruhub
Last Sync
5/10/2026
Repo Updated
5/9/2026
Created
3/26/2026

Reviews (0)

No reviews yet. Be the first to review this skill!