mcpField
L
linguistic-semantic-algorithms

linguistic-semantic-algorithms

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

关于 linguistic-semantic-algorithms

这是一项参考技能,整理了 40 种算法,用于从源代码和提交记录中提取概念、相似性、架构、历史及风险信号。它面向分析陌生代码库、定位缺陷或功能,以及评估重构和维护风险的 Agent。

主要功能

  1. 01将 40 种算法分为八类
  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 linguistic-semantic-algorithms

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

包含的文件

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

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
clone-ast-gumtree.md
clone-minhash-lsh.md
clone-simhash.md
clone-suffix-array-cpd.md
clone-zhang-shasha-ted.md
concept-bounded-context-detection.md
concept-entity-name-resolution.md
concept-identifier-cooccurrence-network.md
concept-lda-topic-modeling.md
concept-noun-phrase-mining.md
concept-tfidf-rare-terms.md
graph-betweenness-bottlenecks.md
graph-feedback-arcs.md
graph-louvain-modules.md
graph-pagerank-core.md
graph-scc-cycle-tangles.md
ling-abbreviation-expansion.md
ling-camel-snake-split.md
ling-porter-stemming.md
ling-pos-tagging-identifiers.md
local-bm25-saturation.md
local-embedding-bug-text.md
local-history-prior-localization.md
local-tfidf-bug-reports.md
mine-bug-fix-density.md
mine-bus-factor.md

详细介绍

pproenca 语言与语义算法最佳实践

为 Agent 提供的 40 种算法参考,在从源代码和提交数据中提取结构、含义、历史或风险信号时可优先考虑。各类别按洞察与投入比排序,即技术揭示非显而易见事实的能力与应用难易程度之比。前两个类别针对最具价值的问题:这段代码中有哪些业务实体?以及这个概念还出现在哪里?——这些问题无法通过 grep 和直觉回答。

何时应用

遇到以下情况时,可优先考虑这些算法:

  • 熟悉不熟悉的代码库:对导入图进行 PageRank,找出核心;对标识符令牌运行 LDA,发现业务主题;挖掘变更耦合,揭示隐藏的架构耦合。
  • 根据描述排查 bug:BM25 + 历史先验 + 嵌入重排序生成的文件候选列表,远胜于 grep。
  • 确定功能范围:通过嵌入相似度查找执行过类似工作的既有 PR;通过 TF-IDF 和名词短语挖掘,将功能词汇与代码库的领域进行映射。
  • 审查重构:AST 级别的 GumTree diff 能揭示文本 diff 隐藏的语义影响;PDG 同构能找出“逻辑相同、代码不同”的对应实现,你也应一并更新。
  • 审计风险:热点(变更频率 × 复杂度)、总线因子、缺陷磁铁密度、死代码候选——这些指标结合起来,能将注意力引向代码库中值得重点关注的部分。
  • 识别领域实体和限界上下文:名词短语挖掘 + TF-IDF 稀有词提取 + Louvain 社区发现 + 按集群词汇计算 Jensen-Shannon 散度。

按优先级划分的规则类别

优先级类别影响前缀回答的问题
1概念与领域提取CRITICALconcept-这段代码中有哪些业务实体?
2语义相似度与功能映射CRITICALsim-这个概念还出现在哪里?
3架构拓扑HIGHgraph-这个代码库的结构是什么样的?
4协同变更与时间挖掘HIGHmine-历史记录揭示了哪些隐藏耦合?
5克隆与重复检测MEDIUM-HIGHclone-哪些内容在重复?
6Bug 与功能定位MEDIUM-HIGHlocal-给定描述,代码在哪里?
7标识符语言学MEDIUMling-如何准备令牌,以便其他算法正常工作?
8复杂度与风险指标MEDIUMrisk-风险集中在哪里?

快速参考

1. 概念与领域提取(CRITICAL)
2. 语义相似度与特性映射(关键)
3. 架构拓扑(高)
4. 协同变更与时间维度挖掘(高)
5. 克隆与重复代码检测(中高)
6. Bug 与特性定位(中高)
7. 标识符语言学(中等)
8. 复杂度与风险指标(中等)

使用方法

选择与用户问题匹配的类别,然后阅读该类别中的一两条具体规则。大多数规则都会引用可组合的配套规则(例如“与 mine-change-coupling 结合使用……”),这些规则可以增强信号;需要更高精度时,请阅读配套规则。

对于不熟悉的代码库,最具投资回报率的入门顺序是:

  1. graph-pagerank-core → 阅读中心性最高的 20 个文件
  2. concept-lda-topic-modeling + concept-tfidf-rare-terms → 识别业务主题
  3. mine-hotspots-churn-complexity → 找出 Bug 集中的位置
  4. mine-change-coupling → 揭示隐藏的架构耦合

对于单个任务的 Bug 修复或功能开发,流程如下:

  1. local-bm25-saturation(广泛筛选候选项)→ local-embedding-bug-text(语义重新排序)→ local-history-prior-localization(提升修复历史相关项的优先级)
  2. 使用 sim-cross-pr-feature-mapping 查找新功能的过往先例
  3. 使用 mine-change-coupling 找出历史上经常共同变更的配套文件

在任何基于词汇的算法运行前,务必依次通过 ling-camel-snake-split → ling-abbreviation-expansion → ling-porter-stemming 对标识符词元进行预处理。跳过此步骤会悄然降低所有后续信号的质量。

跨语言解析。 为简洁起见,大多数规则代码示例使用 Python 内置的 ast 模块。对于真实的跨语言工作(在同一代码库中处理 Go、Rust、Java、TS、C++),请使用 tree-sitter——它为 40 多种语言提供稳健的解析器,并提供统一的 API。此技能中所有基于 AST 的规则(PDG 克隆、GumTree、Zhang-Shasha、词性标注核心词、标识符共现)都可以轻松映射到 tree-sitter AST。

参考文件

文件描述
references/_sections.md类别定义和影响排序
assets/templates/_template.md添加新算法规则的模板
metadata.json版本和参考信息

评论

支持 Markdown