mcpField
I
inspect-structure

inspect-structure

github.com/venhdev测试与质量153 次安装1 天前更新
代码仓库

关于 inspect-structure

inspect-structure 是面向开发者的只读代码结构审查技能,用于检查指定范围内的可维护性问题。它覆盖类与方法设计、重复、耦合和资源管理,并输出技术债务报告,不修改文件。

主要功能

  1. 01检查类职责与内聚性
  2. 02识别过长方法和深层嵌套
  3. 03发现跨文件重复逻辑
  4. 04检查耦合与封装问题
  5. 05审查错误处理和资源清理
  6. 06只输出报告,不修改代码

适用场景

  1. 01审查指定模块的结构性技术债务
  2. 02定位重复逻辑与职责过多的类
  3. 03检查资源生命周期和错误处理问题

安装

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

$npx skills add https://github.com/venhdev/skills --skill inspect-structure

安装后在 Claude Code 中输入/inspect-structure确认已加载。

详细介绍

inspect-structure — 代码质量与结构性债务检查器

领域准则

1. 范围与操作边界
  • 结构性债务与语法格式:分析范围严格限定于模块、类和方法层面的结构性、面向对象及认知债务;空白字符、分号和样式细节完全交由原生代码检查工具处理。
  • 架构形式与业务逻辑:仅审查结构内聚性和可维护性;没有权威规范时,绝不评估领域业务规则、定价逻辑或数学公式(将 Bug 隔离工作交由 /diagnose;将规范偏差交由 /assay)。
  • 只读审计与代码修改:仅交付结构化检查报告;禁止修改磁盘上的文件、生成代码差异或应用自动重构(将修复规划交由 /changeset)。
2. 结构检查维度
  1. 类内聚性与 SRP(上帝类)

    • 异味:类聚合了多个不同的领域职责,字段或方法数量臃肿,或方法内聚性低。
    • 改进:拆分为职责单一的服务、值对象或策略委托。
    • 微型代码片段:
      异味:  class OrderManager { calculateTax(); sendEmail(); saveToDb(); renderPdf(); }
      改进: class OrderService delegates to TaxCalculator, OrderMailer, OrderRepository, PdfRenderer.
      
  2. 方法与流程复杂度(长方法/深层嵌套)

    • 异味:方法长度超出可管理范围,控制流嵌套 ≥ 3 层,存在箭头反模式,或认知负荷高。
    • 改进:将条件反转为守卫子句,扁平化嵌套代码块,并拆分为专注于单一任务的辅助子程序。
    • 微型代码片段:
      异味:  void process() { if (a) { while (b) { if (c) { try { ... } } } } }
      改进: 使用守卫子句提前返回;将循环体提取为私有子程序。
      
  3. 系统性重复(宏观与微观 DRY)

    • 异味:复制粘贴的算法例程、多个步骤组成的验证序列,或跨多个类、文件或方法的错误处理流程。
    • 改进:将其集中到共享领域辅助工具、基础抽象或可复用中间件中。
    • 微型代码片段:
      异味:  ServiceA 和 ServiceB 重复实现了相同的 20 行认证标头解析和声明验证。
      改进: 提取为 TokenAuthenticator.validateAndExtractClaims()。
      
  4. 耦合与封装泄漏

    • 异味:方法操作外部类的内部数据(特性嫉妒);类通过 getter 直接暴露可变的内部集合。
    • 改进:遵循“只管吩咐,别问”;通过领域方法封装状态变更;返回不可变快照或防御性副本。
    • 微型代码片段:
      异味:  if (order.getCustomer().getAddress().getCountry().equals("US")) { ... }
      改进: if (order.isDomesticDelivery()) { ... }
      
  5. 多态与策略不足(分散的分支逻辑)

    • 异味:多个类中分散着并行的 switch(type) 或 if (type == A) 分支链,导致散弹式修改。
    • 改进:使用多态、策略模式或专用访问者分派来替代分散的类型条件判断。
    • 微型代码片段:
      异味:  PaymentService、InvoiceService 和 EmailService 都各自维护着并行的 switch (user.getPlanTier())。
      改进: 将特定等级的行为封装在 PlanTier 策略实现中。
      
  6. 健壮性与资源管理规范

    • 异味:通过空 catch 块吞掉错误;流、数据库连接句柄或事件监听器未受管理,缺少清理钩子。
    • 改进:明确处理错误,或附带上下文元数据重新抛出;在确定性释放代码块(defer、finally、using)中封装资源生命周期。
    • 微型代码片段:
      异味:  try { connect(); } catch (Exception e) {}
      改进: try { connect(); } catch (Exception e) { logger.error("DB connection failed", e); throw new ServiceUnavailableException(e); }
      

标准输出约定

# Structural Inspection Dossier: <Target Scope / Module>

## 1. Executive Summary
- **Target Inspected**: `<file_or_directory_path>`
- **Health Rating**: <CLEAN | MODERATE_DEBT | CRITICAL_DEBT>
- **Primary Bottleneck**: <Single-sentence summary of greatest structural risk>

## 2. Technical Debt Catalog

### [<CRITICAL | MAJOR | MINOR>] <Dimension Name>: `<Target Entity / Symbol>`
- **Location**: [<file>#L<N>-L<M>](file:///path/to/file#L<N>-L<M>)
- **Smell**: <Observable anti-pattern description and maintainability impact>
- **Remedy**: <Exact architectural decomposition or extraction path>

*(Repeat for each distinct structural finding; emit 'No structural code smells observed across rubric dimensions' if clean)*
路由
  • 多文件结构重构、上帝类拆分或共享抽象提取 →(通过 /changeset)。
  • 疑似运行时功能错误或测试失败 →(通过 /diagnose)。

执行协议

阶段 1:范围分流与宏观定位
  1. 输入目标路径(file、directory 或 subsystem)。
  2. 使用符号和文件工具识别主要结构锚点(类、模块入口、共享工具)。
阶段 2:自适应规模检查
  1. 评估目标范围的规模:
    • 单轮执行(少于 10 个文件或单个内聚模块):在当前轮次中直接根据评估标准维度审查代码。
    • 子 Agent 分派(多包子系统或大型代码库):启动 2–3 个 research 子 Agent(角色:Structural Inspector (<Slice>))。
  2. 子 Agent 上下文注入约定:
    • 为每个子 Agent 提供目标切片坐标、已发现的结构锚点、领域评估标准维度,以及规范输出约定。
阶段 3:综合与轮次终止关卡(汇总)
  1. 将子 Agent 的发现进行协调与去重,并纳入规范输出约定。
  2. 确定最终健康评级:
    • CLEAN:没有违反评估标准的结构性缺陷。
    • MODERATE_DEBT:存在零星封装泄漏、分散的条件判断或轻微重复。
    • CRITICAL_DEBT:普遍存在上帝类、跨子系统的复制粘贴,或系统性资源泄漏。
  3. 将完整的检查报告输出到对话流中,并立即结束当前轮次。

评论

支持 Markdown