关于 code-communities
code-communities 是用于识别代码库架构集群与模块边界的技能,面向代码分析和架构梳理。它通过图数据执行社区检测,也可在 gauntlet 不可用时依据目录结构和导入关系分析。
主要功能
- 01识别代码社区与模块边界
- 02展示节点数与凝聚度
- 03标示跨社区耦合警告
- 04生成 Mermaid 架构图
- 05提出模块改进建议
适用场景
- 01梳理大型代码库的模块划分
- 02查找模块间高耦合关系
- 03在缺少图数据时估算边界
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill code-communities安装后在 Claude Code 中输入/code-communities确认已加载。
详细介绍
代码社区检测
识别代码库中的架构集群和模块边界。
不适用场景
- 分析单个模块的导入关系(使用
cartograph:dependency-graph) - 绘制已确定的架构(使用
cartograph:architecture-diagram)
前置条件
此技能需要 gauntlet 插件提供图数据。查找方式:
GRAPH_QUERY=$(find ~/.claude/plugins -name "graph_query.py" -path "*/gauntlet/*" 2>/dev/null | head -1)
如果未安装 gauntlet:改为分析目录结构。按目录对文件分组,并使用 导入语句识别模块边界。根据目录级关系生成 Mermaid 图。
如果已安装但没有 graph.db:告知用户运行
/gauntlet-graph build。
步骤
-
运行社区检测(需要 gauntlet):
python3 "$GRAPH_QUERY" --action communities备用方案(无 gauntlet):分析目录结构 和跨目录导入关系:
# Directory-level grouping find . -name "*.py" -not -path "*/node_modules/*" | \ sed 's|/[^/]*$||' | sort | uniq -c | sort -rn # Cross-directory imports (rg preferred, grep fallback) if command -v rg &>/dev/null; then rg "^from |^import " --type py -l . | \ xargs -I{} rg "^from \w+ import|^import \w+" {} --no-filename else grep -rh "^from \|^import " --include="*.py" . fi | sort | uniq -c | sort -rn | head -20按顶级目录分组,并统计跨目录导入次数,以估算耦合程度。
-
显示集群:
Community | Nodes | Cohesion | Description auth | 12 | 0.85 | Authentication module db | 8 | 0.92 | Database access layer api/handlers | 15 | 0.71 | API request handlers utils | 6 | 0.45 | Shared utilities -
显示耦合警告:如果社区之间有
10 条跨边界边,则突出显示:
WARNING: High coupling between 'auth' and 'api/handlers' (23 cross-community edges, severity: high) -
生成 Mermaid 图:
flowchart TB subgraph auth[Auth Module - cohesion 0.85] verify_token check_permissions end subgraph db[DB Layer - cohesion 0.92] execute_query connection_pool end auth -->|"23 edges"| api db -->|"5 edges"| api -
提出改进建议:
- 内聚度低(<0.5):“考虑将此模块拆分为更专注的组件”
- 耦合度高(>20 条边):“考虑引入接口以减少直接依赖”
算法
如果 igraph 可用,则使用 Leiden 算法,并为不同边类型设置特定权重。否则改用 基于文件的分组方式。
| 边类型 | 权重 |
|---|---|
| CALLS | 1.0 |
| INHERITS | 0.8 |
| IMPLEMENTS | 0.7 |
| IMPORTS_FROM | 0.5 |
| TESTED_BY | 0.4 |
| CONTAINS | 0.3 |
完成标准
- 为每个检测到的集群渲染社区表格,列包含 Community、Nodes、Cohesion 和 Description
- 对任何跨越社区的边超过 10 条的社区对显示耦合警告,并标注严重程度
- 生成 Mermaid
flowchart TB,每个社区对应一个subgraph, 并在子图标签中显示内聚度得分 - 为内聚度 < 0.5 或跨社区耦合超过 20 条边的社区提供改进建议
- 如果未安装 gauntlet,则运行目录结构备用方案,并告知用户缺少图数据
评论
支持 Markdown