fix 是一个用于调试和修复代码问题的技能,名称为 han-core:fix,用途是“Debug and fix bugs, errors, or unexpected behavior”,调用方式为 /fix [arguments]。
用途
当代码或系统出现 bug、报错或非预期行为时,使用该技能进行排查、诊断与修复。资料中给出的典型触发示例包括:函数传入 null 时报错、页面在移动设备上崩溃、用户反馈结账间歇性失败、后台 worker 存在内存泄漏、CI 上测试失败等。
主要能力与处理流程
该技能提供了一套标准化的调试修复流程:
- 复现问题:确认 bug 存在,并理解它在何时发生。
- 收集信息:错误消息、日志、堆栈跟踪、用户反馈。
- 形成假设:推测可能的成因。
- 调查:使用调试工具、添加日志、追踪执行过程。
- 定位根因:找到问题的实际来源。
- 实施修复:修改代码解决问题。
- 验证修复:确认问题已解决且未引入新问题。
- 添加回归测试:防止该 bug 再次出现。
修复原则
理解先于修复:不要靠猜测和打补丁,要找到根因;在尝试修复前先稳定复现;理解 bug 为什么存在,而不只是看症状。 正确修复:修复原因而不是症状;考虑边界情况和类似问题;添加测试防止回归;记录修复为什么有效。 充分验证:原问题已解决;没有引入新 bug;相关场景仍然正常;现有测试与新增测试全部通过。
资料中列出的调试技巧
添加日志,例如使用 console.log 或 logger.debug 输出检查点信息。 使用 debugger 语句让浏览器暂停执行。 二分查找:注释掉一半代码,若 bug 消失则问题在该半部分,重复直至定位。 对比正常与异常状态:比较工作版本与损坏版本之间发生了什么变化,使用 git bisect 找到引入问题的提交,或与已知正常版本对比。
输出格式
修复完成后按以下结构输出:Bug Fix 简要描述;Issue 说明哪里坏了以及如何表现;Root Cause 说明 bug 为何存在;Fix 说明改了什么以及为何能解决问题;Verification 提供修复有效的证据,例如原问题不再复现、测试通过(含测试输出)、相关场景仍正常;Prevention 说明新增了哪个测试来防止回归。
补充说明
资料建议使用 TaskCreate 跟踪调试步骤;即使未立即找到根因也要记录发现;使用 proof-of-work 技能展示 bug 确实已修复;可考虑用 boy-scout-rule 技能改进周边代码;添加测试防止回归(可参考 test-driven-development 技能)。
限制与暂未提供的信息
资料未说明该技能的具体实现语言、运行平台、依赖工具、安装命令、价格或收费方式,这些内容暂未提供。