mcpField
T
trellis-break-loop

trellis-break-loop

github.com/mindfold-ai开发15.0k128 次安装4 周前更新
代码仓库

关于 trellis-break-loop

面向开发者的调试技能,将已修复的问题转化为根因分析、预防措施和项目指南更新,并用贝叶斯推理评估尚不确定的原因。

主要功能

  1. 01五维度问题分析
  2. 02根因分类
  3. 03规划预防机制
  4. 04贝叶斯假设更新
  5. 05跟进规范与模板更新

适用场景

  1. 01复盘刚修复的问题
  2. 02分析失败的修复尝试
  3. 03查找系统中的关联问题
  4. 04记录预防指南

安装

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

$npx skills add https://github.com/mindfold-ai/trellis --skill trellis-break-loop

安装后在 Claude Code 中输入/trellis-break-loop确认已加载。

详细介绍

打破循环——深度 Bug 分析

调试完成后,使用此方法进行深度分析,打破“修复 Bug → 忘记 → 重复”的循环。


分析框架

从以下 5 个维度分析刚修复的 Bug:

1. 根因类别

此 Bug 属于哪一类?

类别特征示例
A. 缺少规范没有关于如何处理的文档新功能缺少检查清单
B. 跨层契约层与层之间的接口不明确API 返回的格式与预期不同
C. 变更传播失败只修改了一处,遗漏了其他位置修改了函数签名,却遗漏了调用点
D. 测试覆盖缺口单元测试通过,集成测试失败单独运行正常,组合使用时出错
E. 隐式假设代码依赖未记录的假设时间戳单位是秒还是毫秒
2. 修复失败的原因(如适用)

如果你在成功前尝试了多种修复方法,请分析每次失败的原因:

  • 表面修复:修复了症状,而非根因
  • 范围不完整:找到了根因,却未覆盖所有情况
  • 工具局限:grep 未能找到,类型检查不够严格
  • 思维模型:一直在同一层查找,没有考虑跨层问题
3. 预防机制

哪些机制可以防止此问题再次发生?

类型说明示例
文档记录下来,让大家知晓更新思维指南
架构从结构上杜绝错误类型安全包装器
编译时严格类型检查,不留逃逸通道签名变更会导致编译错误
运行时监控、告警、扫描检测孤立实体
测试覆盖E2E 测试、集成测试验证完整流程
代码评审检查清单、PR 模板“是否检查了 X?”
4. 系统性扩展

此 Bug 揭示了哪些更广泛的问题?

  • 类似问题:其他哪些地方可能存在此问题?
  • 设计缺陷:是否存在根本性的架构问题?
  • 流程缺陷:开发流程是否有改进空间?
  • 知识缺口:团队是否缺少某些认知?
5. 知识沉淀

将经验固化到系统中:

  • 更新 .trellis/spec/guides/ 思维指南
  • 更新相关的 .trellis/spec/ 文档
  • 创建问题记录(如适用)
  • 为根因修复创建功能工单
  • 按需更新检查指南

输出格式

请按以下格式输出分析:

## Bug Analysis: [Short Description]

### 1. Root Cause Category
- **Category**: [A/B/C/D/E] - [Category Name]
- **Specific Cause**: [Detailed description]

### 2. Why Fixes Failed (if applicable)
1. [First attempt]: [Why it failed]
2. [Second attempt]: [Why it failed]
...

### 3. Prevention Mechanisms
| Priority | Mechanism | Specific Action | Status |
|----------|-----------|-----------------|--------|
| P0 | ... | ... | TODO/DONE |

### 4. Systematic Expansion
- **Similar Issues**: [List places with similar problems]
- **Design Improvement**: [Architecture-level suggestions]
- **Process Improvement**: [Development process suggestions]

### 5. Knowledge Capture
- [ ] [Documents to update / tickets to create]

核心理念

调试的价值不在于修复 Bug,而在于让这一类 Bug 永远不再发生。

三个层次的洞见:

  1. 战术层面:如何修复这个 Bug
  2. 战略层面:如何预防这一类 Bug
  3. 哲学层面:如何拓展思维模式

花 30 分钟分析,可以节省未来 30 小时的调试时间。

思维框架:贝叶斯推理

当多个根因都合理且证据不完整时,应根据新证据按比例更新判断,而不是固守最初的假设。

步骤 1:设定先验概率

调查之前,说明你的判断及理由:

假设先验概率推理
H1:[原因 A]40%此类问题中最常见的原因
H2:[原因 B]30%结合当前环境来看合理
H3:[其他原因]30%兜底项

先验概率总和必须为 100%。如果无法分配概率,请先进行调查。

步骤 2:观察证据

记录你的发现,并具体说明其可靠性:

  • 你具体观察到了什么?
  • 可靠性如何?(测试输出 > 日志消息 > 用户反馈 > 直觉)
  • 多个假设是否都能解释这些现象?
步骤 3:更新信念

针对每个假设,询问:如果这个假设为真,这些证据出现的可能性有多大?

更新的方向比计算更重要:

  • H1 强烈预测了这些证据 → H1 的概率上升
  • 证据与 H2 相矛盾 → H2 的概率下降
  • 在所有假设下出现的可能性都相同 → 不更新
步骤 4:寻找区分性证据

不要收集更多同类证据。寻找在不同头部假设之间差异显著的证据。

如果 H1 和 H3 难以区分:“如果 H1 为真而 H3 为假,我会看到什么?”然后去查证。

步骤 5:说明置信度
置信度行动
90%+继续修复,并进行监控
70-90%继续处理,并添加回退检查
50-70%提交前验证假设
<50%需要更多证据,不要猜测

证据不完整时,切勿表达非黑即白的确定性。使用“最有可能”“有可能但不太可能”“值得调查”等表述。

常见谬误
谬误示例修正
忽视基础概率“测试失败 → 代码有问题”测试因其他原因失败的频率有多高?
确认偏误“肯定是竞争条件,我来找竞争条件的证据”主动寻找反驳首选假设的证据
锚定效应“上次是缓存问题,这次大概也是缓存问题”根据当前上下文,而不是昨天的 Bug,确定先验概率

分析后:立即采取行动

重要:完成上述分析后,必须立即:

  1. 更新规范/指南 - 不要只列出待办事项,要实际更新相关文件:

    • 如果是跨平台问题 → 更新 cross-platform-thinking-guide.md
    • 如果是跨层问题 → 更新 cross-layer-thinking-guide.md
    • 如果是代码复用问题 → 更新 code-reuse-thinking-guide.md
    • 如果是特定领域问题 → 更新 backend/*.md 或 frontend/*.md
  2. 同步模板 - 更新 .trellis/spec/ 后,同步到 src/templates/markdown/spec/

  3. 提交规范更新 - 这是主要产出,而不只是分析文本

如果分析只留在聊天中,就毫无价值。真正的价值在于更新后的规范。

评论

支持 Markdown