weksbwrx62862/project-analysis-rules
GitHub: weksbwrx62862/project-analysis-rules
一套结合知识图谱的开源项目结构化分析规则体系,提供七大维度检查清单和六阶段流程,让代码评估从主观感觉变为数据驱动。
Stars: 0 | Forks: 0
# Project Analysis Rules
**开源项目分析规则体系** — 让每一次代码阅读都有章可循
## 简介
**Project Analysis Rules** 是一套**稳定、可复用、工程化**的开源项目分析规则体系。它提供:
- **7 大分析维度**的详细检查清单和评分标准
- **6 阶段结构化分析流程**,从视角定位到精华提炼
- **GitNexus 知识图谱**的深度集成,用数据替代感觉
- **4 语言专项指南**(Python / TypeScript / Go / Rust)
- **Agent Skill** 定义,让 AI Agent 自动遵循分析流程
无论你是**技术选型、学习优秀项目、还是代码审查**,这套规则都能帮助你系统化地理解和评估开源代码。
## 功能矩阵
| 能力 | 说明 | 产出 |
|------|------|------|
| **架构分析** | 模块边界、依赖方向、分层检测 | 依赖图 + 关键节点排行 |
| **代码质量** | 函数设计、SOLID、命名、错误处理 | 客观指标 + 具体反模式 |
| **API 设计** | 签名、Builder、版本兼容、配置 | API 质量评分 |
| **数据建模** | Entity/VO 区分、状态机、缓存策略 | 建模建议 |
| **并发分析** | 模型识别、锁评估、背压检测 | 并发质量报告 |
| **可测试性** | DI 程度、金字塔形状、Mock 成本 | 测试改进清单 |
| **演进运维** | 可观测性、版本策略、安全实践 | 运维成熟度评分 |
| **GitNexus 集成** | 图谱查询、反模式自动检测、依赖追踪 | 数据驱动的客观分析 |
## 架构图
┌──────────────────────┐
│ Agent Skill │
│ project-analyzer │
└──────────┬───────────┘
│ 调用
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ rules/ │ │ workflow/ │ │ gitnexus/ │
│ 7 大维度 │ │ 6 阶段流程 │ │ 图谱工具集 │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└────────────────┼─────────────────┘
▼
┌──────────────────┐
│ 分析报告 (模板) │
│ 各维度 1-4 评分 │
└──────────────────┘
## 快速开始
### 前置条件
- 已安装 [GitNexus](https://www.npmjs.com/package/gitnexus)(`npm install -g gitnexus@1.6.4-rc.43`)
- 目标项目已克隆到本地
### 最小示例
# 1. 克隆本规则仓库(仅需一次)
git clone https://github.com/weksbwrx62862/project-analysis-rules.git
cd project-analysis-rules
# 2. 安装 GitNexus(如尚未安装)
npm install -g gitnexus@1.6.4-rc.43
# 3. 索引目标项目
cd /path/to/target-project
gitnexus analyze -f
# 确认输出包含 "Repository indexed successfully"
# 4. 执行快速健康检查(可选,生成概览数据)
bash /path/to/project-analysis-rules/gitnexus/analysis-scripts/quick-health-check.sh
# 5. 按规则逐项分析
# 打开 rules/01-architecture.md ~ 07-evolution-ops.md,逐维度检查
# 或使用 workflow/analysis-checklist.md 作为检查清单
# 6. 生成分析报告
# 按 workflow/report-template.md 模板输出分析报告
# 或运行脚本自动生成数据:
bash /path/to/project-analysis-rules/gitnexus/analysis-scripts/generate-report-data.sh
### 分析模式选择
| 模式 | 适用场景 | 时间预算 | 建议维度 |
|------|----------|----------|----------|
| **快速** | 1k 行以下小库 / 初步筛选 | 15-30 min | 01 架构 + 02 代码质量 |
| **标准** | 1k-50k 行中型项目 | 60-90 min | 01-04 全部核心维度 |
| **深度** | 50k+ 行大型项目 / 技术选型 | 2-4 h | 01-07 全维度 + 语言专项 |
### 对于 AI Agent
将 `skills/project-analyzer.md` 作为 Skill 加载后,只需说:
分析 <项目名> 的架构设计
Agent 将自动按照 6 阶段流程执行,结合 GitNexus 查询,生成标准化报告。
## 核心功能详解
### 7 大分析维度
每个维度都包含:**重点关注点** + **可操作检查清单** + **评分标准(1-4)** + **GitNexus 查询**
| 编号 | 维度 | 文件 | 核心关注 |
|------|------|------|----------|
| 01 | 架构设计 | [rules/01-architecture.md](rules/01-architecture.md) | 分层、依赖方向、扩展点 |
| 02 | 代码质量 | [rules/02-code-quality.md](rules/02-code-quality.md) | 函数设计、SOLID、命名 |
| 03 | API/接口 | [rules/03-api-design.md](rules/03-api-design.md) | 签名设计、错误处理、版本 |
| 04 | 数据建模 | [rules/04-data-modeling.md](rules/04-data-modeling.md) | Entity/VO、状态机、缓存 |
| 05 | 并发异步 | [rules/05-concurrency.md](rules/05-concurrency.md) | 并发模型、锁、背压 |
| 06 | 可测试性 | [rules/06-testability.md](rules/06-testability.md) | DI、金字塔、Mock |
| 07 | 演进运维 | [rules/07-evolution-ops.md](rules/07-evolution-ops.md) | 可观测性、版本、安全 |
### 6 阶段分析流程
阶段1: 视角定位 (5%) — 明确学什么,设定时间预算
阶段2: 结构扫描 (15%) — 心智地图,GitNexus 依赖分析
阶段3: 流程追踪 (25%) — 追踪核心流程,GitNexus 调用链
阶段4: 模式识别 (25%) — 设计模式+反模式,GitNexus 自动检测
阶段5: 质量量化 (15%) — 数据说话,GitNexus 健康度
阶段6: 精华提炼 (15%) — 可落地学习成果,技术债务热点
### GitNexus 集成
分析流程与 GitNexus 知识图谱深度集成:
- **结构扫描**:自动检测循环依赖、上帝模块、死代码
- **流程追踪**:多跳函数调用链追踪、中间件识别
- **模式识别**:自动发现上帝对象(方法>20)、过度抽象(0-1实现)、散弹修改(fan_in>15)
- **质量量化**:图谱健康度指标、测试空白区检测
- **精华提炼**:技术债务热点定位(行数>500 + 高被依赖)
详见 [gitnexus/gitnexus-integration.md](gitnexus/gitnexus-integration.md) 和 [gitnexus/cypher-queries.md](gitnexus/cypher-queries.md)
## 技术栈
| 组件 | 技术 |
|------|------|
| 规则文档 | Markdown |
| 知识图谱 | [GitNexus](https://www.npmjs.com/package/gitnexus) v1.6.4+ |
| Agent Skill | 标准 Skill 格式 |
| 分析脚本 | Bash(quick-health-check, generate-report-data) |
## 项目结构
project-analysis-rules/
├── README.md
├── .gitignore
├── rules/ # 7 大分析维度规则
│ ├── 01-architecture.md
│ ├── 02-code-quality.md
│ ├── 03-api-design.md
│ ├── 04-data-modeling.md
│ ├── 05-concurrency.md
│ ├── 06-testability.md
│ └── 07-evolution-ops.md
├── workflow/ # 分析流程 & 报告
│ ├── analysis-checklist.md
│ ├── report-template.md
│ └── examples/
│ ├── fastapi-analysis.md
│ └── express-analysis.md
├── gitnexus/ # GitNexus 工具集
│ ├── gitnexus-integration.md
│ ├── cypher-queries.md
│ └── analysis-scripts/
│ ├── quick-health-check.sh
│ └── generate-report-data.sh
├── language-guides/ # 语言专项
│ ├── python.md
│ ├── typescript.md
│ ├── go.md
│ └── rust.md
└── skills/ # Agent Skill
└── project-analyzer.md
## 开发指南
### 更新分析规则
1. 编辑 `rules/` 下的对应文件
2. 如果新增检查项,同步更新 `workflow/analysis-checklist.md`
3. 如果新增 Cypher 查询,同步更新 `gitnexus/cypher-queries.md`
### 添加新语言
1. 在 `language-guides/` 下创建新的 `.md` 文件
2. 参考现有语言指南的结构
3. 更新 README 的语言列表
### 代码风格
- Markdown 文件使用中文撰写,技术术语保留英文
- 文件命名:小写 + 连字符(kebab-case),如 `01-architecture.md`
- 规则文件结构统一:**重点关注点** → **检查清单** → **评分标准** → **GitNexus 查询**
### 测试与验证
本仓库为规则文档仓库,无单元测试。验证方式:
1. **规则完整性**:确保每个维度文件包含完整的 4 个章节(重点关注点 / 检查清单 / 评分标准 / GitNexus 查询)
2. **示例验证**:用已有示例项目(FastAPI / Express)重新走一遍分析流程,确认规则可执行
3. **GitNexus 查询验证**:在已索引项目上运行 `gitnexus/analysis-scripts/quick-health-check.sh`,确认脚本无报错
### CI
- 当前未配置 CI 流水线
- 建议后续添加 Markdown lint(如 `markdownlint`)和链接检查(如 `lychee`)
## 路线图
### v1.0 — 基础规则体系 ✅
- [x] 7 大分析维度规则
- [x] 6 阶段分析流程
- [x] GitNexus 深度集成
- [x] 4 语言专项指南(Python / TS / Go / Rust)
- [x] Agent Skill 定义
- [x] 示例分析报告(FastAPI / Express)
### v1.1 — 扩展覆盖(进行中)
- [ ] 更多语言专项(Java / C# / Zig / Elixir)
- [ ] 更多分析示例报告(Django / Next.js / Gin / Actix)
- [ ] 自动化一键分析命令(CLI 工具)
### v1.2 — 可视化与对比
- [ ] 项目横向对比雷达图
- [ ] HTML 可视化分析报告
- [ ] 分析结果导出为 PDF / JSON
### v2.0 — 智能化
- [ ] LLM 辅助自动评分(基于规则 + RAG)
- [ ] 增量分析(仅分析变更部分)
- [ ] 与 CI/CD 集成(PR 自动评审)
## 常见问题
**Q: 这套规则适合分析什么规模的项目?**
A: 任何规模。但时间预算需要调整——1k 行的小库用快速模式(15min),50k+ 行的项目建议深度模式(90min+)。
**Q: GitNexus 是必须的吗?**
A: 不是强依赖,但强烈推荐。不装 GitNexus 则跳过图谱查询步骤,分析质量会下降(变得更依赖主观判断)。
**Q: 评分是绝对的吗?**
A: 不。评分是**相对**的——在同一类项目中比较。一个 1000 行的 CLI 工具不需要 DDD 架构。
**Q: 如何为非 Python/TS/Go/Rust 的项目做分析?**
A: 7 大维度规则是语言无关的,适用于任何语言。语言专项指南仅提供特定语言的常见陷阱和最佳实践。对于 Java、C# 等语言,可暂时跳过语言专项,仅使用通用规则。
**Q: 分析报告可以用于商业项目评估吗?**
A: 可以。本规则体系基于 MIT 许可证发布,分析产出归分析者所有。但请注意,分析他人项目时需遵守目标项目的许可证规定,尤其是涉及源码引用时。
**Q: 如何与团队协作使用这套规则?**
A: 建议做法:1) 团队统一克隆本仓库到共享位置;2) 分析前先对齐评分标准(可在示例报告上校准);3) 每人负责不同维度,最后汇总讨论;4) 将分析报告存入团队知识库。
## License
MIT
## Security
本仓库不包含任何密钥或敏感信息。分析他人项目时,请遵守目标项目的许可证规定。
### 负责任披露
如果你在本规则体系或相关工具中发现安全漏洞:
1. **请勿**在公开 Issue 中报告
2. 通过 GitHub Security Advisories 提交:[报告安全漏洞](https://github.com/weksbwrx62862/project-analysis-rules/security/advisories/new)
3. 我们将在 48 小时内确认收悉,7 个工作日内提供初步评估
4. 修复后将公开致谢(除非你要求匿名)
### 分析伦理
- 分析他人项目时,**不得**利用发现的漏洞进行未授权访问
- 分析报告中引用的源码片段应遵守目标项目的许可证
- 不得将分析工具用于恶意目的(如竞品攻击面探测)
## 致谢
- [GitNexus](https://www.npmjs.com/package/gitnexus) — 让代码图谱分析成为可能
- 所有被分析的开源项目 — 它们是我们学习的源泉
- [shields.io](https://shields.io/) — 提供项目徽章服务
- [Tree-sitter](https://tree-sitter.github.io/) — GitNexus 底层的代码解析引擎
- 社区贡献者 — 每一个 Issue 和 PR 都让规则体系更完善
每一次分析都是一次深度学习
标签:代码审查, 代码质量分析, 多语言支持, 安全测试框架, 应用安全, 架构分析, 防御加固