kylebrodeur/codebase-analysis
GitHub: kylebrodeur/codebase-analysis
一套面向 AI 编程助手的代码库分析技能集合,帮助开发者自动检测重复代码、死代码和架构违规并指导重构。
Stars: 1 | Forks: 0
# 代码库分析与重构
用于代码库分析的 Claude Code skills 和插件 - 检测重复代码、发现死代码、验证架构并指导重构。
[](https://opensource.org/licenses/MIT)
[](https://claude.ai/code)
[](https://github.com/features/copilot)
[](https://skills.sh)
[](https://github.com/kylebrodeur/codebase-analysis#cli)
[](https://pnpm.io)
[](https://nodejs.org)
## 概述
本仓库包含用于代码库分析和重构的可复用的 **Claude Code skills**、**skills.sh** skills 和 **GitHub Copilot agents**。每个 skill 都有助于识别问题并指导重构过程。
### 包含内容
| Skill | 目的 |
|-------|---------|
| **重复代码检测** | 使用 `jscpd` 查找复制粘贴的代码块 |
| **死代码分析** | 使用 `knip` 查找未使用的 exports、types 和 dependencies |
| **架构验证** | 使用 `dependency-cruiser` 检查导入规则和循环依赖 |
| **分析协调器** | 运行所有工具并综合分析结果以指导重构 |
### 格式支持
本仓库同时支持 **Claude Code skills** 和 **skills.sh** 规范:
| 特性 | Claude Code | skills.sh |
|---------|-------------|-----------|
| 格式 | 带有 YAML frontmatter 的 `SKILL.md` | 带有 YAML frontmatter 的 `SKILL.md` |
| 位置 | `.agent/skills/` | 项目根目录下的 `skills/` |
| 非标准字段 | 支持 (`user-invokable`, `argument-hint`) | 仅标准字段 (`name`, `description`, `compatibility`, `metadata`) |
### 输出示例
**重复代码检测:**
```
Clone found (typescript):
- src/services/itemService.ts [42:1 - 55:3] (13 lines, 98 tokens)
src/services/orderService.ts [71:1 - 84:3]
Found 18 clones.
```
**死代码分析:**
```
Unused exports (3)
processItem function src/services/processor.ts:42:23
CONFIG const src/config/settings.ts:5:14
helperFn function src/utils/helpers.ts:18:17
```
## Claude Code
### 作为 skills (skills.sh) 安装
```
npx skills add kylebrodeur/codebase-analysis
```
### 作为 Claude Code 插件安装
首先添加 marketplace:
```
claude plugin marketplace add kylebrodeur/codebase-analysis
```
然后安装插件:
```
claude plugin install codebase-analysis@codebase-analysis
```
或者手动将 `.agent/` 文件夹复制到 `~/.claude/plugins/` 或您项目的 `.claude/plugins/`。
## GitHub Copilot
### 从预发布版 Copilot CLI 安装
GitHub Copilot 的插件系统处于预发布阶段。使用方法如下:
1. **安装 Copilot CLI 预发布版:**
```
gh extension install github/copilot-cli
```
2. **安装插件:**
```
copilot plugin install kylebrodeur/codebase-analysis
```
### 通过 skills.sh 安装
或者,使用 skills.sh CLI 作为 skill 安装:
```
npx skills add kylebrodeur/codebase-analysis
```
### 手动安装(所有版本)
如果以上选项均不起作用,请手动复制 agent 文件:
1. 将 agent 文件复制到您的项目中:
```
mkdir -p ../your-project/.github/agents
cp packages/analysis-agent/agents/codebase-analysis.md ../your-project/.github/agents/
```
2. 运行设置(自动创建 hooks):
```
cd ../your-project
bash .agent/scripts/setup.sh
pnpm install
```
## 快速开始
### 作为 skills (skills.sh) 安装
```
npx skills add kylebrodeur/codebase-analysis
```
### 作为 Claude Code 插件安装
```
claude plugin install codebase-analysis@codebase-analysis
```
### 作为 GitHub Copilot 插件安装
```
copilot plugin install kylebrodeur/codebase-analysis
```
Copilot 插件可以直接从 GitHub 仓库安装 - 无需 marketplace。
### 手动安装
复制 `.agent/` 文件夹并运行设置:
```
cp -r packages/analysis-agent/.agent ../your-project/
bash ../your-project/.agent/scripts/setup.sh
pnpm install
```
## CLI
提供了一个简单的 CLI 用于执行常见任务:
```
npx codebase-analysis install # Run setup script
npx codebase-analysis check # Check config files
npx codebase-analysis help # Show all commands
```
安装后,使用 pnpm 脚本:
```
pnpm analyze:all # Run all analyses
pnpm analyze:dead # Find dead code
pnpm analyze:dupes # Find duplicate code
pnpm analyze:deps:validate # Check architecture
```
## 重构流程
本插件支持系统化的重构流程:
### 概述
1. **检测重复代码** - 使用 `pnpm analyze:dupes` 和 `pnpm analyze:dead` 查找重复逻辑
2. **提取到共享模块** - 创建 `lib/utils.ts`(客户端)或 `lib/shared.ts`(共享)
3. **更新使用者** - 使用共享模块的导入替换重复代码
4. **验证正确性** - 运行 `pnpm analyze:all` 确认没有回归问题
5. **文档化更改** - 使用架构改进更新 TODO-REVIEW.md
### 流程步骤
| 步骤 | 命令/操作 |
|------|----------------|
| 1. 识别重复代码 | `pnpm analyze:dupes` + `pnpm analyze:dead` |
| 2. 提取工具函数 | 在 `lib/` 目录中创建新模块 |
| 3. 更新使用者 | 使用导入替换内联代码 |
| 4. 验证 | `pnpm analyze:all` + 测试 + 类型检查 |
| 5. 记录文档 | 更新 TODO-REVIEW.md |
### 应避免的反模式
- 创建过多的小模块 - 应将相关功能分组
- 循环依赖 - 确保导入依赖图是无环的
- 混合关注点 - 保持 client/server 代码分离
- 过度设计 - 仅在有 2 个以上使用者时才提取
- 过早抽象 - 等到模式清晰后再进行
### 重构检查清单
合并前,请验证:
- 原始文件中没有残留的重复代码
- 所有导入都使用了共享模块
- 类型检查通过且无错误
- 所有测试通过(80%+ 覆盖率)
- 代码检查通过
- 已更新 TODO-REVIEW.md
## 添加您自己的 Skills
本 monorepo 使用 pnpm workspaces。要添加更多 skills:
1. 在 `packages/` 下创建一个新包
2. 按照现有 skills 的格式创建一个 `SKILL.md` 文件
3. 使用 skill 引用更新包的 `.agentrc.json`
详情请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## skills.sh 插件结构
本仓库遵循 [skills.sh 插件结构](https://skills.sh/anthropics/claude-plugins-official/plugin-structure):
```
codebase-analysis/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── skills/ # Skills directory
│ ├── duplicate-detection/
│ ├── dead-code-analysis/
│ └── analysis-orchestrator/
└── packages/ # pnpm workspaces
```
### plugin.json
`.claude-plugin/plugin.json` 清单定义了您的插件:
```
{
"name": "codebase-analysis",
"version": "1.0.0",
"description": "Codebase analysis and refactoring skills",
"author": "kylebrodeur",
"repository": "https://github.com/kylebrodeur/codebase-analysis",
"skills": {
"duplicate-detection": "./skills/duplicate-detection",
"dead-code-analysis": "./skills/dead-code-analysis",
"analysis-orchestrator": "./skills/analysis-orchestrator"
}
}
```
## 许可证
MIT
标签:AI编程助手, Claude Code, dependency-cruiser, GitHub Copilot, GNU通用公共许可证, jscpd, knip, MITM代理, Node.js, pnpm, React, shadcn/ui, SOC Prime, Syscalls, WebSocket, 代码分析, 代码规范, 依赖分析, 凭证管理, 大语言模型应用, 开发工具, 弱口令爆破, 循环依赖检测, 技能插件, 架构验证, 死代码分析, 重复代码检测, 重构, 错误基检测, 静态代码分析