kylebrodeur/codebase-analysis

GitHub: kylebrodeur/codebase-analysis

一套面向 AI 编程助手的代码库分析技能集合,帮助开发者自动检测重复代码、死代码和架构违规并指导重构。

Stars: 1 | Forks: 0

# 代码库分析与重构 用于代码库分析的 Claude Code skills 和插件 - 检测重复代码、发现死代码、验证架构并指导重构。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Claude Code](https://img.shields.io/badge/Claude_Code-Compatible-4183C4)](https://claude.ai/code) [![GitHub Copilot](https://img.shields.io/badge/GitHub_Copilot-Compatible-4183C4)](https://github.com/features/copilot) [![skills.sh](https://img.shields.io/badge/skills.sh-Compatible-4183C4)](https://skills.sh) [![CLI](https://img.shields.io/badge/CLI-Compatible-4183C4)](https://github.com/kylebrodeur/codebase-analysis#cli) [![pnpm](https://img.shields.io/badge/pnpm-10.24.0-FFA500.svg)](https://pnpm.io) [![Node.js](https://img.shields.io/badge/Node.js-20+-478C00.svg)](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, 代码分析, 代码规范, 依赖分析, 凭证管理, 大语言模型应用, 开发工具, 弱口令爆破, 循环依赖检测, 技能插件, 架构验证, 死代码分析, 重复代码检测, 重构, 错误基检测, 静态代码分析