Skip to content
Back to skills

Comment Enforcer

ASecurity

Go 代码注释规范检查与修复工具。自动化检查注释格式、术语一致性、包级别注释规范,利用大模型进行语义分析和注释生成,确保项目注释符合专业标准。

  • 666 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 8, 2026
documentationpythongobashgitapidocumentation

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill comment-enforcer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Comment Enforcer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Comment Enforcer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-comment-enforcer/badge)](https://www.skillsdirectory.com/skills/majiayu000-comment-enforcer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: comment-enforcer
description: Go 代码注释规范检查与修复工具。自动化检查注释格式、术语一致性、包级别注释规范,利用大模型进行语义分析和注释生成,确保项目注释符合专业标准。
---

# Go 代码注释规范检查器

## 概述

自动化检查和修复 Go 项目代码注释规范性,基于项目注释规范(.ai/rule.md.bak),结合脚本检查和大模型语义分析,确保注释的专业性、准确性和一致性。

**自动化策略**:60% 大模型(语义分析、注释生成)+ 40% 脚本(格式检查、术语一致性)

## 使用场景

- **新项目规范检查** - 检查新项目注释是否符合规范
- **代码审查辅助** - 快速发现注释问题并提供修复建议
- **批量注释生成** - 为缺失的注释生成符合规范的内容
- **术语一致性检查** - 确保全项目注释术语使用统一
- **代码重构验证** - 重构后验证注释是否需要更新

## 快速开始

### 一键检查(推荐)

```bash
# 1. 格式检查(脚本)
python3 .claude/skills/comment-enforcer/scripts/check_format.py

# 2. 术语一致性检查(脚本)
python3 .claude/skills/comment-enforcer/scripts/check_terminology.py

# 3. 包级别注释检查(脚本)
python3 .claude/skills/comment-enforcer/scripts/check_pkg_doc.py

# 4. 大模型语义分析
python3 .claude/skills/comment-enforcer/scripts/analyze_with_llm.py

# 5. 生成检查报告
python3 .claude/skills/comment-enforcer/scripts/generate_report.py

# 6. 执行修复(用户确认后)
python3 .claude/skills/comment-enforcer/scripts/fix_comment.py report.md
```

### 快速检查模式

```bash
# 只执行脚本检查(快速,无大模型)
python3 .claude/skills/comment-enforcer/scripts/check_format.py
python3 .claude/skills/comment-enforcer/scripts/check_terminology.py
python3 .claude/skills/comment-enforcer/scripts/check_pkg_doc.py
```

## 工作流程

### 阶段 1:脚本检查(40% 自动化)

**目标**:快速发现格式和术语问题

**时间**:1-2 分钟

**检查内容**:
```
开始
  ↓
1. 格式检查 [check_format.py]
   ├─ 注释是否存在
   ├─ 是否以中文标点结束
   ├─ 位置是否正确(在声明上方)
   └─ 统计缺失注释的数量
  ↓
2. 术语一致性检查 [check_terminology.py]
   ├─ 全局搜索 context.Context
   ├─ 全局搜索 *Config
   ├─ 全局搜索 Logger
   └─ 比对注释表述是否一致
  ↓
3. 包级别注释检查 [check_pkg_doc.py]
   ├─ 检查每个包是否有 doc.go
   ├─ 验证 doc.go 格式
   └─ 检查非 doc.go 文件是否包含包注释
  ↓
完成(输出 JSON 结果)
```

---

### 阶段 2:大模型分析(60% 智能化)

**目标**:语义分析和注释生成

**时间**:3-5 分钟(取决于代码量)

**分析内容**:
```
开始
  ↓
1. Interface 一致性检查
   ├─ 读取接口定义
   ├─ 读取实现方法
   ├─ 比对注释是否一致
   └─ 报告不一致的地方
  ↓
2. 语义准确性判断
   ├─ 分析代码逻辑
   ├─ 判断注释是否准确反映功能
   └─ 识别需要改进的注释
  ↓
3. 注释内容生成
   ├─ 识别缺失的注释
   ├─ 分析代码上下文
   └─ 生成符合规范的注释
  ↓
完成(输出 JSON 结果)
```

---

### 阶段 3:报告生成

**目标**:整合所有检查结果,生成可操作的报告

**输出格式**:Markdown 格式,包含:
- 总览统计
- 分类问题列表(格式、术语、语义)
- 每个问题的详细说明和解决方案
- 复选框用于二次确认

---

### 阶段 4:修复执行

**原则**:二次确认机制,不自动修改代码

**流程**:
```
1. 执行检查(脚本 + 大模型)
2. 生成报告
3. 用户审查报告
4. 用户勾选需要修复的问题
5. 执行修复
   ├─ 脚本修复格式问题
   ├─ 大模型生成缺失注释
   └─ 大模型改进不准确的注释
6. 验证修复结果
```

## 脚本说明

### check_format.py - 格式检查器

**功能**:
- 检查注释是否存在
- 检查注释是否以中文标点结束
- 检查注释位置是否正确(在声明上方)
- 统计缺失注释的数量

**用法**:
```bash
# 检查整个项目
python3 .claude/skills/comment-enforcer/scripts/check_format.py

# 检查特定目录
python3 .claude/skills/comment-enforcer/scripts/check_format.py internal/biz

# 检查特定文件
python3 .claude/skills/comment-enforcer/scripts/check_format.py internal/biz/greeter.go
```

**输出示例**:
```json
{
  "total_files": 45,
  "files_with_issues": 12,
  "issues": [
    {
      "file": "internal/server/server.go",
      "line": 45,
      "type": "missing_punctuation",
      "current": "// 这是一个示例函数",
      "suggested": "// 这是一个示例函数。",
      "auto_fixable": true
    },
    {
      "file": "internal/data/greeter.go",
      "line": 89,
      "type": "missing_comment",
      "item": "func Save",
      "auto_fixable": false
    }
  ]
}
```

**自动化程度**:100% 脚本自动化

---

### check_terminology.py - 术语一致性检查器

**功能**:
- 全局搜索特定类型(如 `context.Context`)
- 提取所有相关注释
- 比对注释表述是否一致
- 报告不一致的地方

**用法**:
```bash
# 检查所有标准术语
python3 .claude/skills/comment-enforcer/scripts/check_terminology.py

# 检查特定类型
python3 .claude/skills/comment-enforcer/scripts/check_terminology.py --type context.Context

# 自定义标准表述
python3 .claude/skills/comment-enforcer/scripts/check_terminology.py \
  --type context.Context \
  --standard "请求上下文,用于取消与超时控制。"
```

**输出示例**:
```json
{
  "context.Context": {
    "standard": "请求上下文,用于取消与超时控制。",
    "variations": [
      {
        "text": "上下文对象",
        "count": 3,
        "files": [
          "internal/biz/greeter.go:89",
          "internal/data/data.go:45",
          "internal/service/service.go:123"
        ]
      },
      {
        "text": "请求上下文",
        "count": 1,
        "files": ["internal/server/server.go:67"]
      }
    ],
    "total_inconsistent": 4
  }
}
```

**自动化程度**:100% 脚本自动化

---

### check_pkg_doc.py - 包级别注释检查器

**功能**:
- 检查每个包目录是否存在 `doc.go` 文件
- 验证 `doc.go` 格式是否正确
- 检查是否有非 `doc.go` 文件包含包级别注释

**用法**:
```bash
# 检查所有包
python3 .claude/skills/comment-enforcer/scripts/check_pkg_doc.py

# 检查特定目录
python3 .claude/skills/comment-enforcer/scripts/check_pkg_doc.py internal/
```

**输出示例**:
```json
{
  "total_packages": 15,
  "packages_with_doc": 12,
  "packages_missing_doc": [
    {
      "package": "internal/biz",
      "path": "internal/biz",
      "suggestion": "创建 internal/biz/doc.go"
    }
  ],
  "files_with_pkg_comment": [
    {
      "file": "internal/server/http.go",
      "line": 10,
      "comment": "// Package server 提供 HTTP 服务器实现",
      "suggestion": "移动到 doc.go 文件"
    }
  ]
}
```

**自动化程度**:100% 脚本自动化

---

### analyze_with_llm.py - 大模型语义分析器

**功能**:
- 检查 interface 实现方法的注释是否与接口定义一致
- 判断注释是否准确反映代码功能
- 识别需要改进的注释(过于简略、不准确)
- 为缺失的注释生成符合规范的内容

**用法**:
```bash
# 分析整个项目
python3 .claude/skills/comment-enforcer/scripts/analyze_with_llm.py

# 分析特定文件
python3 .claude/skills/comment-enforcer/scripts/analyze_with_llm.py \
  internal/service/greeter.go

# 只分析 interface 一致性
python3 .claude/skills/comment-enforcer/scripts/analyze_with_llm.py \
  --check-interface-only

# 只生成缺失注释
python3 .claude/skills/comment-enforcer/scripts/analyze_with_llm.py \
  --generate-only
```

**输出示例**:
```json
{
  "analyzed_files": 45,
  "semantic_issues": [
    {
      "file": "internal/data/greeter.go",
      "line": 123,
      "type": "inaccurate_comment",
      "current": "// 保存数据",
      "issue": "过于简略,未说明具体操作和数据类型",
      "suggested": "// Save 保存 Greeter 实体到数据库。",
      "reason": "需要明确操作类型(Save)、对象(Greeter)和目标(数据库)"
    }
  ],
  "interface_mismatches": [
    {
      "file": "internal/service/greeter.go",
      "line": 45,
      "interface_def": "// Create 创建一个新的 Greeter 实体。",
      "implementation": "// CreateGreeter 创建 Greeter。",
      "suggested": "统一为'创建一个新的 Greeter 实体。'"
    }
  ],
  "missing_comments": [
    {
      "file": "internal/domain/greeter.go",
      "line": 12,
      "type": "type_definition",
      "suggested": "// Greeter Greeter 领域模型。"
    }
  ]
}
```

**自动化程度**:
- 代码分析:100% 大模型
- 报告生成:脚本格式化输出

---

### generate_report.py - 报告生成器

**功能**:
- 整合所有检查结果
- 生成结构化的 Markdown 报告
- 提供符合规范的解决方案
- 汇总统计信息

**用法**:
```bash
# 生成完整报告(整合所有检查结果)
python3 .claude/skills/comment-enforcer/scripts/generate_report.py

# 指定输出文件
python3 .claude/skills/comment-enforcer/scripts/generate_report.py \
  --output comment-report.md

# 从已有结果文件生成报告
python3 .claude/skills/comment-enforcer/scripts/generate_report.py \
  --format-results format_results.json \
  --terminology-results terminology_results.json \
  --pkg-results pkg_results.json \
  --llm-results llm_results.json
```

**报告格式**:
```markdown
# 注释规范检查报告

生成时间:2026-01-06 15:30:00
检查范围:internal/, cmd/, pkg/

## 📊 总览
- 检查文件数:45
- 发现问题:12 个
  - 格式问题:5 个
  - 术语一致性问题:3 个
  - 语义问题:4 个

## 1️⃣ 格式问题(脚本检查 - 可自动修复)
### 1.1 注释未以标点结束
- [ ] internal/server/server.go:45
  当前:// 这是一个示例函数
  建议:// 这是一个示例函数。

### 1.2 缺少 doc.go 文件
- [ ] internal/biz/
  建议:创建 internal/biz/doc.go,添加包级别注释
  示例:
  ```go
  // Copyright 2025 fsyyft-go
  //
  // Licensed under the MIT License.
  //
  // Package biz 提供业务逻辑层实现。
  package biz
  ```

## 2️⃣ 术语一致性问题(脚本检查 - 需手动确认)
### 2.1 context.Context 注述不一致
- [ ] internal/biz/greeter.go:89
  当前:ctx 上下文对象
  标准:请求上下文,用于取消与超时控制。
  影响:3 处引用
  建议:批量替换为标准表述

## 3️⃣ 语义问题(大模型分析 - 需专业判断)
### 3.1 注释不够准确
- [ ] internal/data/greeter.go:123
  当前注释:// 保存数据
  问题:过于简略,未说明具体操作和数据类型
  建议:// Save 保存 Greeter 实体到数据库。
  理由:需要明确操作类型(Save)、对象(Greeter)和目标(数据库)

## 4️⃣ 缺失注释(大模型生成 - 需确认)
### 4.1 缺少类型注释
- [ ] internal/domain/greeter.go:12
  当前:无注释
  建议:
  ```go
  // Greeter Greeter 领域模型。
  type Greeter struct {
      // ID 唯一标识符。
      ID int64
      // Hello 问候消息。
      Hello string
  }
  ```

## ✅ 下一步操作

### 自动修复(脚本)
- 格式问题:5 个可自动修复

### 需要确认(列出清单)
- 术语一致性问题:3 个
- 语义问题:4 个
- 缺失注释:生成 4 个

请确认后执行修复操作。
```

**自动化程度**:100% 脚本自动化

---

### fix_comment.py - 修复执行器

**功能**:
- 脚本修复:格式问题(添加标点、调整位置)
- 大模型生成:缺失注释的内容
- 大模型优化:改进不准确的注释
- 创建 doc.go 文件

**用法**:
```bash
# 基本用法(从报告文件读取)
python3 .claude/skills/comment-enforcer/scripts/fix_comment.py report.md

# 预览模式(不实际修改)
python3 .claude/skills/comment-enforcer/scripts/fix_comment.py \
  report.md --dry-run

# 只修复格式问题
python3 .claude/skills/comment-enforcer/scripts/fix_comment.py \
  report.md --format-only

# 只生成缺失注释
python3 .claude/skills/comment-enforcer/scripts/fix_comment.py \
  report.md --generate-only
```

**安全机制**:
- 修复前自动创建 `.backup/comments/` 备份
- 支持预览模式(--dry-run)
- 提供回滚功能

**自动化程度**:
- 格式修复:100% 脚本
- 内容生成/改进:100% 大模型
- 执行协调:脚本

## 核心注释规范

### 1. 包级别注释规范

**强制要求**:
- 每个包必须在独立的 `doc.go` 文件中编写包级别注释
- `doc.go` 仅包含版权声明、包注释和 `package` 声明,不包含代码实现
- 除 `doc.go` 外,所有文件的 `package` 声明前后不得有任何注释

**doc.go 格式**:
```go
// Copyright 2025 fsyyft-go
//
// Licensed under the MIT License. See LICENSE file in the project root for full license information.

// Package server 提供 HTTP 和 gRPC 服务器的实现。
//
// 本包包含服务器的初始化、配置和中间件设置功能,
// 支持基于 Kratos 框架的 Web 服务开发。
package server
```

---

### 2. 类型定义注释规范

**接口定义**:必须有功能说明、方法注释(含参数和返回值)

**结构体定义**:每个字段必须有用途说明

**示例**:
```go
// GreeterUsecase Greeter 用例接口。
type GreeterUsecase interface {
    // CreateGreeter 创建一个新的 Greeter 实体。
    // 参数:
    //   - ctx:请求上下文,用于取消与超时控制。
    //   - g:待创建的 Greeter 实体,Hello 字段不能为空。
    //
    // 返回值:
    //   - *Greeter:创建成功的实体,包含生成的标识。
    //   - error:创建失败时返回错误,成功时返回 nil。
    CreateGreeter(ctx context.Context, g *Greeter) (*Greeter, error)
}

// Greeter Greeter 领域模型。
type Greeter struct {
    // ID 唯一标识符。
    ID int64
    // Hello 问候消息。
    Hello string
}
```

---

### 3. 函数和方法注释规范

**标准格式**:
```go
// CreateGreeter 创建一个新的 Greeter 实体。
// 参数:
//   - ctx:请求上下文,用于取消与超时控制。
//   - g:待创建的 Greeter 实体,Hello 字段不能为空。
//
// 返回值:
//   - *Greeter:创建成功的实体,包含生成的标识。
//   - error:创建失败时返回错误,成功时返回 nil。
func (u *greeterUsecase) CreateGreeter(ctx context.Context, g *Greeter) (*Greeter, error) {
    // ...
}
```

**要求**:
- 第一行:功能概述(必须以中文句号结束)
- 参数部分:列出每个参数及其说明
- 返回值部分:列出每个返回值及其说明
- 如果函数无参数或返回值,省略对应部分

---

### 4. 标准术语表

| 参数类型 | 标准表述 |
|---------|---------|
| `context.Context` | "请求上下文,用于取消与超时控制。" |
| `*Config` | "应用配置信息。" |
| `Logger` | "日志记录器。" |
| `*Data` | "数据仓储接口。" |
| `*Greeter` | "Greeter 实体。" |
| `error` 返回值 | "失败时返回错误,成功时返回 nil。" |

**一致性要求**:
- 所有相同类型必须使用相同的注释表述
- 使用 `check_terminology.py` 全局检查
- 发现不一致时,使用统一的标准表述

---

## 大模型介入点

| 介入点 | 触发条件 | 大模型职责 | 介入程度 |
|-------|---------|-----------|---------|
| interface 一致性检查 | 分析 interface 和实现时 | 比对注释是否一致,识别不一致的地方 | 20% |
| 语义准确性判断 | 分析代码和注释时 | 判断注释是否准确反映代码功能 | 30% |
| 注释内容生成 | 发现缺失注释时 | 生成符合规范的专业中文注释 | 40% |
| 注释改进建议 | 发现不准确注释时 | 提供更专业、更准确的表述 | 40% |
| 专业术语选择 | 编写注释时 | 使用项目约定的标准术语表述 | 10% |

**总体自动化程度**:60% 大模型 + 40% 脚本

---

## 故障排除

### 常见问题

#### 问题 1:Python 环境问题

**症状**:
```
ModuleNotFoundError: No module named 'anthropic'
```

**解决方案**:
1. 检查虚拟环境是否存在
2. 安装依赖:`pip install anthropic`
3. 或使用 python-venv-manager 创建虚拟环境

---

#### 问题 2:大模型 API 调用失败

**症状**:
```
anthropic.APIError: Invalid API key
```

**解决方案**:
1. 检查 `ANTHROPIC_API_KEY` 环境变量
2. 确认 API key 有效
3. 检查网络连接

---

#### 问题 3:报告生成失败

**症状**:
```
KeyError: 'format_results'
```

**解决方案**:
1. 确保已运行所有检查脚本
2. 检查 JSON 文件是否存在
3. 验证 JSON 文件格式是否正确

---

### 回滚操作

**触发条件**:
- 修复后发现新问题
- 不满意修复结果
- 想重新开始

**回滚方法**:
```bash
# 自动回滚(使用备份)
cp -r .backup/comments/* .

# 或使用 Git
git checkout .
```

---

## 最佳实践

### 检查前准备

1. **确保代码可编译**
   - 运行 `go build ./...`
   - 确保无编译错误

2. **创建分支**
   - 在新分支上进行修复
   - 便于回滚和代码审查

3. **备份代码**
   - 虽然脚本会自动备份
   - 但建议额外创建 Git 提交

---

### 检查过程

1. **分步执行**
   - 先运行脚本检查(快速)
   - 再运行大模型分析(耗时)
   - 最后生成报告

2. **审查报告**
   - 仔细阅读每个问题
   - 判断是否需要修复
   - 勾选需要修复的项目

3. **预览修复**
   - 使用 `--dry-run` 预览
   - 检查将要修改的内容
   - 确认后再执行

---

### 修复后处理

1. **验证修复**
   - 运行 `go build ./...`
   - 运行 `go test ./...`
   - 检查修复结果

2. **提交更改**
   - 创建清晰的 commit message
   - 推送到远程仓库

3. **代码审查**
   - 让团队成员审查
   - 确保修复质量

---

## 自动化程度

**总体自动化程度**:60% 大模型 + 40% 脚本

### 脚本负责(40%)

- ✅ 格式检查(标点、位置、存在性)
- ✅ 术语一致性检查
- ✅ 包级别注释检查
- ✅ 报告生成
- ✅ 格式问题修复

### 大模型负责(60%)

- ✅ Interface 一致性检查
- ✅ 语义准确性判断
- ✅ 注释内容生成
- ✅ 注释改进建议
- ✅ 专业性保证

---

## 技术规格

- **Go 版本**:1.16+(Go modules)
- **Python 版本**:3.8+(脚本执行)
- **虚拟环境**:.venv(推荐使用 python-venv-manager)
- **跨平台**:Windows, macOS, Linux
- **备份位置**:`.backup/comments/` 在项目根目录
- **大模型 API**:Anthropic Claude API

---

## 注意事项

1. **专业性要求**
   - 生成的注释必须专业准确
   - 使用标准术语表述
   - 保持语义一致性

2. **安全机制**
   - 修复前自动备份
   - 支持预览模式
   - 提供回滚功能

3. **性能考虑**
   - 大模型分析耗时较长
   - 建议分步执行
   - 可以只运行脚本检查

4. **二次确认**
   - 不自动修改代码
   - 生成报告供用户审查
   - 用户确认后才执行修复

---

## 相关资源

### 规范来源
- `.ai/rule.md.bak` - 项目注释规范原始文档
- `references/comment_standards.md` - 提取的注释规范
- `references/terminology_table.md` - 标准术语映射表

### 示例代码
- `internal/biz/greeter.go` - 业务层示例
- `internal/server/server.go` - 服务器层示例
- `internal/service/greeter.go` - 服务层示例

### 参考文档
- [Effective Go](https://golang.org/doc/effective_go.html#commentary)
- [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)
- [Kratos Framework Documentation](https://go-kratos.dev/)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.