概念

Silex 如何理解你的代码库

本页的每个数字、名称和连线都来自 Silex 对 eShop(微软参考应用,MIT)的一次真实扫描(Silex v0.11.35)。这里没有任何虚构内容。本页同样面向 AI 代理编写(llms.txt)。

435
1,586
关系
69
社区
6
语言
53
排除的 vendor 文件
14%
未知领域
01

扫描——先阅读,再相信

Silex 首先在本地读取你的仓库:解析每个源文件,提取类、方法及其间的关系——调用、继承、跨语言边界的 HTTP 路由、原生 SQL 关联。任何代码都不会离开你的机器。

结果是一张本地图:节点是代码符号,边是源码中发现的关系,每条都可追溯到文件和行号。

classes: 435
relationships: 1,586
communities: 69
languages: csharp javascript typescript json proto markdown
默认排除 53 个 vendor/生成文件
02

社区地图——系统的真实形态

Silex 使用 Leiden 算法将关系图聚类为社区:真正协同工作的类的分组——与目录结构无关。这是系统实际的架构,而不是 src/ 目录树所声称的样子。点击节点查看其真实成员类。

3 4 3 3 2 33Basket 垂直切片 8Basket HTTP 契约 6Basket→Order 交接 34Catalog 垂直切片 48Order 应用层 49Ordering 领域核心 9取消订单切片 idIdentity 接缝 7Saga:库存确认 6Saga:支付步骤 5状态 Webhook
垂直切片 / 核心 saga 步骤 传输契约 接缝 / 出口 边宽 = 跨社区引用数

Ordering 领域核心

49 个类 · 内聚度 0.067

Order 聚合的契约面:仓储、领域事件(cancelled/shipped/paid),以及把订单 saga 粘合起来的集成事件处理器。

成员(真实类名)

描述由 AI 代理阅读该社区真实代码包后撰写——与你将获得的客户端编排流程相同。

最强类间配对
Address ↔ Order4
Basket ↔ CustomerBasketResponse4
Basket ↔ CustomerBasket3
CancelOrder ↔ IIdentity3
Order ↔ OrderItem3
CatalogItem ↔ CatalogMock3
为什么重要

saga 以独立社区的形式出现——图在没有被告知什么是 saga 的情况下发现了编排步骤(库存确认、支付)。目录结构说这是 "Ordering.API";图却说这是"五个独立切片和两条 saga 分支"。

03

证据锚定——无锚点,不成事实

Silex 的每条论断都带有锚点:证明它的文件和行号范围,且引用片段经过与源码核验。无法锚定的论断不会被存为事实——而是被标记为空白。

订单状态流转受守卫保护:Submitted → AwaitingValidation → StockConfirmed → Paid → Shipped

96%verifiedOrder.cs:99-131

SetPaidStatus() 仅从 StockConfirmed 触发——支付绝不会跳过库存检查

94%verifiedOrder.cs:119-128

GetTotal() 忽略折扣字段——重写时的资金风险

88%flagged ⚠OrderItem.cs:48

SetPaymentMethodVerified() 在没有状态守卫时写入买家和支付 id

91%verifiedOrder.cs:93-97
0

个幻觉锚点——在一个真实的 520 类企业项目的 328 次代理提交中。门禁在入口执行:没有来源的代理提交规则会被拒绝。

04

置信度——用数字表达诚实

置信度表达证据对论断的支撑强度——并携带来源:论断来自静态分析、LLM 处理,还是你自己的 AI 代理。数字从不凭空捏造:代理提出的规则显示 n/a,直到人工审核——而不是编造分数。

heuristic确定性——AST、调用图、schema。可信度最高。96%
llm由增强处理推断。始终标注。72%
agent由你的代理提出——待人工审核。n/a
05

未知领域——Silex 无法证明的,它会告诉你

置信度的反面:证据过于单薄的代码区域。Silex 不猜测,而是把它们标出来。对迁移或 AI 辅助的变更而言,知道地图的边界与地图本身同样宝贵。

86% 已用证据映射
14%

eShop 参考扫描:14% 由 gap_analysis 标记为未知领域。

06

状态机——从代码而非文档中恢复

当状态存在于代码中(枚举、状态字段、受守卫的流转)时,Silex 会重建状态机——每次流转都有锚点。从 eShop 恢复的真实订单生命周期(Order.cs:99-131):Submitted → AwaitingValidation → StockConfirmed → Paid → Shipped,其中 Cancelled 可从早期状态到达。

Submitted AwaitingValidation StockConfirmed Paid Shipped Cancelled 仓库确认 支付成功

与第 02 节交叉核对:saga 步骤(库存确认、支付)以社区的形式出现,而它们驱动的状态流转出现在这里——两次独立的重建彼此印证,这正是基于证据的考古应有的样子。

07

Vendor 与生成代码——分类处理,绝不悄悄删除

真实代码库中总有 vendor 包、压缩资源和生成的迁移。Silex 默认将它们分类移出视线——移出地图、代码包和成本估算——但绝不隐瞒这一事实。

有一条规则保护你:你的团队编辑过的(git 历史中有本地提交)疑似 vendor 文件会被视为你的代码,保留在地图上并标注。2014 年 fork 的、内含业务规则的 jQuery?它依然可见。

# 本次扫描的真实统计行
已排除 53 个 vendor/生成文件
(默认移出地图)
→ 通过 .silexignore 重新纳入
08

人工审核——1.5 层

在原始提取与规范领域模型之间是审核层:每个由 LLM 或代理提出的事实都是候选,直到人工确认。你的 AI 代理通过 MCP 工具完成跑腿工作——阅读社区代码包、提出带锚点的规则——而你始终是权威。第 02 节的社区描述正是这样产生的。

第 1 层
原始提取
确定性图——类、关系、社区、状态机。
第 1.5 层
人工审核
代理提出的带锚点规则,在确认前保持候选状态。
第 2 层
规范领域模型
已确认的事实——你的代理和团队共同信任的内容。

由 Silex v0.11.35 对 eShop(MIT)的真实扫描生成。图、表格和状态机都是数据,不是插图。