Go 包导入规范检查与修复工具。基于 Claude 智能分析的 Go 项目导入规范检查工具,全面扫描和分析项目代码,识别真正的规范问题,提供准确的分析报告和修复建议。
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: go-import-enforcer
description: Go 包导入规范检查与修复工具。基于 Claude 智能分析的 Go 项目导入规范检查工具,全面扫描和分析项目代码,识别真正的规范问题,提供准确的分析报告和修复建议。
---
# Go 包导入规范检查器
## 概述
基于 Claude 智能分析的 Go 项目导入规范检查工具,通过大模型全面扫描和分析项目代码,识别真正的规范问题,提供准确的分析报告和修复建议。
**核心特点**:
- 🤖 **Claude 驱动**:以大模型为主要分析引擎,提供智能、准确的分析
- 🎯 **精准识别**:区分手写代码和生成代码,避免误报
- 📊 **全面分析**:不仅检查格式,还分析循环依赖和架构设计
- 💡 **智能建议**:每个问题都提供具体的修复方案和最佳实践
**工作原理**:
1. **Claude 扫描**:Claude 扫描项目,分析导入规范问题
2. **Claude 分析**:生成详细分析报告
3. **Claude 调整**:自动调整不规范内容
4. **输出结果**:用户获得规范化后的代码和完整分析报告
**核心定位**:100% Claude(智能分析、报告生成、内容调整)
## 使用场景
- **新项目规范检查** - 检查新项目导入是否符合规范
- **代码审查辅助** - 快速发现导入问题并提供修复建议
- **批量导入规范** - 统一项目导入格式和别名使用
- **重构验证** - 重构后验证导入是否需要调整
## 快速开始
### 智能分析(推荐)
```bash
# 直接将整个项目交给 Claude 进行全面分析
# Claude 会自动:
# 1. 扫描所有 Go 文件
# 2. 分析导入规范问题
# 3. 检测循环依赖
# 4. 提供修复建议和最佳实践
# 5. 自动调整不规范内容
```
**重要提示**:本技能完全由 Claude 主导,无需任何脚本辅助。
## 工作流程
### Claude 全面分析(100% 智能化)
**目标**:全面分析项目导入规范情况
**时间**:3-5 分钟(取决于代码量)
**Claude 分析流程**:
```
开始
↓
1. Claude 智能扫描
├─ 扫描所有 Go 文件(手写代码 + 生成代码)
├─ 分析导入格式规范
├─ 验证四段分组规则
├─ 检查别名使用规范
├─ 检测循环依赖
├─ 评估代码质量
├─ 识别误报和实际问题
├─ 提供修复建议和最佳实践
└─ 生成详细分析报告
↓
2. Claude 自动调整
├─ 格式化导入语句
├─ 调整分组和排序
├─ 应用正确别名
└─ 解决循环依赖(如果需要)
↓
完成(输出规范化代码 + 完整报告)
```
**核心能力**:
- ✅ **区分手写代码和生成代码**:自动识别 `*.pb.go`, `wire_gen.go` 等
- ✅ **识别真正的规范问题**:避免误报,提供准确分析
- ✅ **智能分组判断**:理解导入规范的实际要求
- ✅ **循环依赖分析**:构建依赖图,评估影响和修复方案
- ✅ **提供具体修复建议**:每个问题都有针对性的解决方案
- ✅ **自动调整不规范内容**:直接修复发现的规范问题
## 核心导入规范
### 1. 导入格式强制要求
**三项强制规则**:
1. **括号包裹**:所有 `import` 语句必须使用 `()` 包裹
2. **段落分组**:按段落分组,段与段之间使用空行分隔
3. **字母排序**:每个段内的包按字母顺序排序
**错误示例**:
```go
// ❌ 错误:未使用括号包裹
import "context"
import "fmt"
// ❌ 错误:未分段,未排序
import (
"github.com/go-kratos/kratos/v2/errors"
"context"
kitlog "github.com/fsyyft-go/kit/log"
"fmt"
)
// ❌ 错误:fsyyft-go 包未取别名
import (
"github.com/fsyyft-go/kit/log"
)
```
**正确示例**:
```go
// ✅ 正确格式
import (
"context"
"fmt"
"strings"
"time"
"github.com/gin-gonic/gin"
"github.com/go-kratos/kratos/v2/errors"
kratoshttp "github.com/go-kratos/kratos/v2/transport/http"
"github.com/prometheus/client_golang/prometheus/promhttp"
kitlog "github.com/fsyyft-go/kit/log"
kitruntime "github.com/fsyyft-go/kit/runtime"
apphelloworldv1 "github.com/fsyyft-go/kratos-layout/api/helloworld/v1"
appconf "github.com/fsyyft-go/kratos-layout/internal/pkg/conf"
)
```
### 2. 四段分组规则
| 段落 | 内容 | 别名要求 | 示例 |
|------|------|---------|------|
| **第一段** | Go 标准库 | 无需别名 | `context`, `fmt`, `strings`, `time` |
| **第二段** | 第三方包(github.com 等) | 建议取别名 | `kratoshttp "github.com/go-kratos/..."` |
| **第三段** | fsyyft-go 相关包 | **强制**使用 `kit` 前缀别名 | `kitlog "github.com/fsyyft-go/kit/log"` |
| **第四段** | 项目内部包 | **强制**使用 `app` 前缀别名 | `appconf "github.com/.../internal/pkg/conf"` |
### 3. 别名规范表
**fsyyft-go 包别名**:
| 包路径 | 强制别名 |
|-------|---------|
| `github.com/fsyyft-go/kit/log` | `kitlog` |
| `github.com/fsyyft-go/kit/runtime` | `kitruntime` |
| `github.com/fsyyft-go/kit/kratos/middleware/validate` | `kitkratosmiddlewarevalidate` |
**项目内部包别名**:
| 包路径 | 强制别名 |
|-------|---------|
| `github.com/fsyyft-go/kratos-layout/api/helloworld/v1` | `apphelloworldv1` |
| `github.com/fsyyft-go/kratos-layout/internal/pkg/conf` | `appconf` |
| `github.com/fsyyft-go/kratos-layout/internal/pkg/log` | `applog` |
## 故障排除
### 常见问题
#### 问题 1:Claude 分析时间较长
**症状**:
```
Claude 分析需要较长时间
```
**解决方案**:
1. 大型项目分析需要 3-5 分钟,请耐心等待
2. 如果超时,可以分目录分析
3. 确保网络连接稳定
---
#### 问题 2:生成文件被误修改
**症状**:
```
生成文件被意外修改
```
**解决方案**:
1. Claude 会自动识别生成文件(`*.pb.go`, `wire_gen.go`)
2. 生成文件的导入顺序由工具决定,不强制要求调整
3. 如果有问题,可以回滚到修改前
---
### 回滚操作
**触发条件**:
- 修复后发现新问题
- 不满意修复结果
- 想重新开始
**回滚方法**:
```bash
# 使用 Git 回滚
git checkout .
# 或恢复备份
git reset --hard HEAD~
```
---
## 最佳实践
### 检查前准备
1. **确保代码可编译**
- 运行 `go build ./...`
- 确保无编译错误
2. **创建分支**
- 在新分支上进行修复
- 便于回滚和代码审查
3. **提交更改**
- 修复前先提交当前状态
- 便于对比和回滚
---
### 检查过程
1. **Claude 全面分析**
- 直接将项目交给 Claude
- Claude 会自动完成所有工作
- 等待分析完成
2. **审查调整结果**
- 查看 Claude 提供的报告
- 检查自动调整的内容
- 确认是否满意
---
### 修复后处理
1. **验证修复**
- 运行 `go build ./...`
- 运行 `go test ./...`
- 检查修复结果
2. **查看分析报告**
- Claude 会生成完整的 Markdown 报告
- 包含所有发现的问题和解决方案
- 提供最佳实践建议
3. **提交更改**
- 创建清晰的 commit message
- 推送到远程仓库
4. **代码审查**
- 让团队成员审查
- 确保修复质量
---
## 工作原理总结
**第一步:Claude 扫描**
- Claude 扫描项目所有 Go 文件
- 分析导入规范问题
- 识别手写代码和生成代码
**第二步:Claude 分析**
- 验证格式、分组、别名规范
- 检测循环依赖
- 生成详细分析报告
**第三步:Claude 调整**
- 自动调整不规范内容
- 应用正确格式和别名
- 解决发现的问题
**最终结果**
- 规范化后的代码
- 完整的分析报告
- 最佳实践建议
---
## 技术规格
- **Go 版本**:1.16+(Go modules)
- **Python 版本**:无需(完全由 Claude 处理)
- **跨平台**:Windows, macOS, Linux
- **大模型**:Anthropic Claude API
---
## 注意事项
1. **100% Claude 驱动**
- 完全由 Claude 负责所有工作
- 无需脚本辅助
- Claude 能够识别和纠正任何潜在问题
2. **区分代码类型**
- 手写代码:严格按照导入规范检查
- 生成代码:自动识别并特殊处理(如 `*.pb.go`, `wire_gen.go`)
- 生成代码的导入顺序由工具决定,不强制要求调整
3. **Claude 自动调整**
- Claude 会自动调整不规范的内容
- 修复前建议创建 Git 分支
- Claude 会生成完整的分析报告说明所有调整
4. **性能考虑**
- Claude 分析时间:3-5 分钟(取决于代码量)
- 大型项目建议使用 Claude 进行全面分析
- 分析结果更准确、更全面
---
## 相关资源
### 规范来源
- `references/import_standards.md` - 提取的导入规范
- `references/alias_mapping.md` - 标准别名映射表
### 示例代码
- `internal/biz/greeter.go` - 业务层示例
- `internal/service/greeter.go` - 服务层示例
- `cmd/web/main.go` - 应用入口示例
### 参考文档
- [Effective Go](https://golang.org/doc/effective_go.html#imports)
- [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments#imports)
- [Kratos Framework Documentation](https://go-kratos.dev/)
No comments yet. Be the first to comment!