mcpField
C
codebase-comprehension-algorithms

codebase-comprehension-algorithms

github.com/pproenca开发218139 次安装11 周前更新
代码仓库

关于 codebase-comprehension-algorithms

用于选择成熟算法、将代码库映射为业务域和架构结构的参考 Skill。它指导编码 Agent 与工程师处理图构建、聚类、词汇分析和结果验证,并强调以证据检验代码分解。

主要功能

  1. 01九类共 47 条规则
  2. 02图构建与聚类方法
  3. 03面向代码的词汇预处理
  4. 04架构恢复与主题建模方法
  5. 05验证指标与稳定性检查

适用场景

  1. 01梳理陌生代码库中的业务域
  2. 02定位某项功能对应的文件
  3. 03检查重构是否遵循架构边界
  4. 04对照代码核验文档中的架构

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill codebase-comprehension-algorithms

安装后在 Claude Code 中输入/codebase-comprehension-algorithms确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
arch-acdc-subgraph-patterns.md
arch-bunch-with-mq-fitness.md
arch-dsm-partitioning.md
arch-limbo-information-bottleneck.md
arch-reflexion-model.md
clust-hdbscan-density-based.md
clust-infomap-mdl-on-random-walks.md
clust-leiden-not-louvain.md
clust-mcl-markov-clustering.md
clust-spectral-laplacian-fiedler.md
clust-stochastic-block-model.md
clust-walktrap-short-random-walks.md
evol-filter-large-commits.md
evol-logical-coupling-as-architectural-signal.md
evol-mine-cochange-with-lift-and-confidence.md
evol-temporal-decay-on-edge-weights.md
graph-bipartite-file-term-for-joint-structure.md
graph-collapse-sccs-before-clustering.md
graph-combine-signals-in-multilayer-graphs.md
graph-filter-omnipresent-utilities-before-clustering.md
graph-pick-edge-type-by-question-asked.md
graph-weight-edges-by-information-content.md
info-mdl-for-model-selection.md
info-mutual-information-as-coupling.md
info-naturalness-of-code-as-quality-signal.md
info-normalized-compression-distance.md

详细介绍

社区代码库理解与领域映射算法最佳实践

一份面向实践者的参考指南,介绍如何将代码库映射到易于理解的功能/业务领域的有效算法。这些技术大多出自软件架构恢复与软件仓库挖掘领域的文献,日常开发者很少接触,却正是编码 Agent 每天需要完成的任务所适用的工具:“这个代码库做什么,分别在哪里实现?”

这 47 条规则按执行生命周期影响分类:流水线早期的错误决策(例如构建哪种图、保留哪些标识符)会影响所有后续环节。三个 CRITICAL 类别(graph-、clust-、valid-)中的错误无法在后续阶段补救。请先阅读这些内容。

范围:采用经过验证的算法,并提供同行评审文献或权威著作作为依据,包括 Newman 的 Networks、Leskovec-Rajaraman-Ullman 的 Mining of Massive Datasets、Ganter-Wille 的 Formal Concept Analysis,以及 40 多篇 ICSE / FSE / TSE / PNAS / JMLR 论文。不包括教程网站、Stack Overflow 和营销文章。有意留待未来版本介绍:GNN/CodeBERT/code2vec(尚未经过“数十年验证”)以及重构配方相关内容(由 react-refactor 和 typescript-refactor 等相关技能涵盖)。

适用场景

在以下情况下使用这些规则:

  • 帮助 Agent 熟悉陌生代码库:“按领域说明这个代码库的功能”
  • 生成架构图:“主要子系统有哪些?它们如何连接?”
  • 定位功能:“哪些文件实现了支付/身份验证/搜索?”
  • 审查重构:“此更改是否遵循了架构边界?”
  • 检测架构债务:“哪些文件存在意料之外的耦合?”
  • 验证现有分解是否合理:“README 中的架构是否与代码相符?”
  • 为上述任一任务选择算法——用户需要的是经过验证的方案,而不是凭感觉

按优先级排列的规则类别

#类别前缀影响功能
1图构建与边权重graph-CRITICAL构建哪种图;无处不在的过滤器;环处理;多层图
2社区检测与聚类clust-CRITICALLeiden、Infomap、SBM、MCL、Walktrap、谱聚类、HDBSCAN
3验证与质量指标valid-CRITICALMoJoFM、ARI/NMI、分辨率限制、共识、协同变更预测、消融研究
4标识符与词法预处理lex-HIGHSamurai 拆分、缩写扩展、TF-IDF/BM25、词干提取、动宾结构解析
5软件专用架构恢复arch-HIGHBunch + MQ、ACDC、Limbo、Reflexion、DSM
6源代码主题建模topic-HIGHLDA、LSI/SVD、NMF、HDP、基于一致性的 K 值选择
7演化耦合与协同变更挖掘evol-HIGH提升度/置信度/支持度、大型提交过滤、时间衰减、逻辑耦合
8信息论方法info-MEDIUM-HIGH归一化压缩距离、互信息、MDL、代码自然度
9中心性、层次结构与标注rank-MEDIUMPageRank、HITS、介数中心性、TextRank/YAKE 标签

快速参考

1. 图构建与边权重(关键)
2. 社区检测与聚类(关键)
3. 验证与质量指标(关键)
4. 标识符与词法预处理(高)
5. 软件专用架构恢复(高)
6. 源代码主题建模(高)
7. 演化耦合与协同变更挖掘(高)
8. 信息论方法(中高)
9. 中心性、层级与标注(中等)

如何使用

从 Agent 要回答的问题入手:

  • “这个代码库有哪些主要领域?” → graph-(选择一种图)→ clust-(Leiden / Infomap / SBM)→ topic-(为它们添加标签)→ valid-(检查稳定性并进行消融)
  • “哪些文件实现了功能 X?” → 使用 topic-lda-on-source-code 定位主题;将 X 的文件作为种子,使用 rank-pagerank-for-module-importance 进行个性化 PageRank
  • “架构主干在哪里?” → 在依赖图上使用 rank-pagerank-for-module-importance + rank-hits-hubs-and-authorities
  • “README 中描述的架构与代码是否一致?” → arch-reflexion-model 专为此用途打造
  • “这里真正的耦合是什么(超出静态依赖之外)?” → evol-logical-coupling-as-architectural-signal 和 evol-mine-cochange-with-lift-and-confidence
  • “如何在不设计特征的情况下进行聚类?” → info-normalized-compression-distance
  • “聚类规模应该有多大?” → valid-be-aware-of-resolution-limit 和 topic-hdp-for-nonparametric-topic-count
  • “如何判断我的分解是否正确?” → 整个 valid- 类别;必须使用多代理评估

本技能的理念:首先构建正确的图(并过滤无处不在的文件),选择与图和问题相匹配的算法,在词汇信号重要时使用针对代码的预处理流程(Samurai + 停用词 + 词干提取 + TF-IDF),并且始终进行验证——如果有专家提供的真实基准数据,就使用 MoJoFM;如果没有,就使用共识 + 共变更预测 + 消融。

代码示例使用 Python 编写,因为参考实现(networkx、igraph、leidenalg、scikit-learn、gensim、graph-tool、hdbscan)都基于 Python。相关思路也适用于任何语言。

参考文件

文件描述
references/_sections.md类别定义与排序
assets/templates/_template.md新规则模板
metadata.json版本和参考信息
AGENTS.md自动生成的目录导航

相关技能

  • computer-science-algorithms — 算法与数据结构参考(本技能会在 MinHash/LSH、Aho-Corasick 等方面交叉引用它)
  • complexity-optimizer — 对本规则识别出的热点路径进行静态分析
  • design-to-react-algorithms — 用于设计到代码结构恢复的配套技能

评论

支持 Markdown