Manage Apple Notes via memo CLI: create, search, edit.
日本語の概要は準備中です。原文の説明を表示しています。
4 阶段根因调试:在修复之前理解 bug。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
本技能从 Octop 移植。使用以下 harness/deepagents 工具:
| 概念 | 工具 |
|---|---|
| Shell | execute |
| 读/写/编辑文件 | read_file, write_file, edit_file |
| 查找文件/搜索内容 | glob, grep |
| 获取 URL | web_fetch |
| 浏览器自动化 | browser_use |
| 子代理工作 | task |
| 记忆 | memory_store, memory_recall, memory_search |
内置技能文件位于 /_builtin_skills/<name>/。用户安装的技能位于 /skills/<name>/。
随机修复浪费时间并制造新 bug。快速补丁掩盖了潜在问题。
核心原则: 始终先找到根因,再尝试修复。症状修复就是失败。
违反此流程的字面意思就是违反调试精神。
没有根因调查就禁止修复
如果你还没有完成阶段1,就不能提出修复方案。
反馈循环就是调试工作。在阅读代码建立理论之前,先创建或确定一个紧密的命令,它能在用户的确切症状上变红,并在 bug 修复后变绿。紧密循环是快速的、确定性的、可由代理运行的,并且足够具体以捕获此 bug——而不仅仅是"不崩溃"。
当干净的复现很困难时,投入不成比例的努力来构建循环。在没有红色能力的循环的情况下猜测,正是此技能旨在防止的失败模式。
用于任何技术问题:
特别要使用当:
不要跳过当:
你必须在继续下一个之前完成每个阶段。
在尝试任何修复之前:
行动: 使用 read_file 读取相关源文件。使用 glob 在代码库中查找错误字符串。
构建循环的方法——大致按此顺序尝试:
git bisect run,当 bug 出现在两个已知状态之间时。循环存在后收紧它:
对于非确定性 bug,直接目标是更高的复现率,而不是完美。运行触发器 100 次、并行化、增加压力、缩小时间窗口或注入睡眠。50% 的 flake 是可调试的;1% 的 flake 通常不是。
行动: 使用 execute 工具运行紧密循环:
# 运行特定的失败测试
pytest tests/test_module.py::test_name -v
# 或运行脚本化复现
python scripts/repro_bug.py
# 或运行高重复不稳定复现
for i in {1..100}; do pytest tests/test_flake.py::test_name -q || break; done
行动:
# 最近提交
git log --oneline -10
# 未提交的更改
git diff
# 特定文件中的更改
git log -p --follow src/problematic_file.py | head -100
当系统有多个组件时(API → 服务 → 数据库,CI → 构建 → 部署):
在提出修复之前,添加诊断工具:
对于每个组件边界:
运行一次以收集显示其在何处中断的证据。 然后分析证据以识别失败的组件。 然后调查该特定组件。
当错误在调用栈深处时:
行动: 使用 glob 追踪引用:
# 查找函数被调用的位置
grep(pattern="function_name\\(", path="src/")
# 查找变量被设置的位置
grep(pattern="variable_name\\s*=", path="src/")
停止: 在你理解为什么发生之前,不要进入阶段2。
在修复之前找到模式:
一旦循环变红,将复现缩小到仍然变红的最小场景。逐个削减输入、调用者、配置、数据和步骤,**每次削减后重新运行循环。只保留对失败有负载的内容。
当移除任何剩余元素都会使循环变绿时完成。最小复现缩小了假设空间,并且通常成为最干净的回归测试。
行动: 使用 glob 找到可比较的模式:
grep(pattern="similar_pattern", path="src/")
科学方法:
如果用户在场,在测试之前显示排名列表。他们可能拥有可以立即重新排名的领域知识。如果用户 AFK,继续你的排名。
[DEBUG-a4f2])标记每一行临时行,以便清理是单次搜索。修复根因,而不是症状:
test-driven-development 技能# 运行特定的回归测试
pytest tests/test_module.py::test_regression -v
# 运行完整套件——无回归
pytest tests/ -q
表明架构问题的模式:
停止并质疑基本面:
在尝试更多修复之前与用户讨论。
这不是失败的假设——这是错误的架构。
如果你发现自己想:
所有这些意味着:停止。返回阶段1。
如果 3+ 次修复失败: 质疑架构(阶段4 步骤5)。
| 借口 | 现实 |
|---|---|
| "问题很简单,不需要流程" | 简单问题也有根因。流程对于简单 bug 很快。 |
| "紧急情况,没有时间走流程" | 系统性调试比猜测-检查折腾更快。 |
| "先试试这个,然后调查" | 第一次修复设定了模式。从一开始就要做对。 |
| "我会确认修复有效后写测试" | 未经测试的修复不会持久。测试首先证明它。 |
| "一次多个修复节省时间" | 无法隔离什么有效。导致新 bug。 |
| "参考太长,我会调整模式" | 部分理解保证 bug。完整阅读它。 |
| "我看到了问题,让我修复它" | 看到症状 ≠ 理解根因。 |
| "再试一次修复"(2+ 失败后) | 3+ 失败 = 架构问题。质疑模式,不要再修复。 |
| 阶段 | 关键活动 | 成功标准 |
|---|---|---|
| 1. 根因 | 阅读错误、复现、检查更改、收集证据、追踪数据流 | 理解什么和为什么 |
| 2. 模式 | 找到工作示例、比较、识别差异 | 知道有什么不同 |
| 3. 假设 | 形成理论、最小化测试、一次一个变量 | 确认或新假设 |
| 4. 实施 | 创建回归测试、修复根因、验证 | Bug 解决,所有测试通过 |
在阶段1期间使用这些工具:
grep——在源中查找错误字符串和追踪引用glob——按名称或模式定位文件read_file——带行号读取源以进行精确分析execute——运行测试、检查 git 历史、复现 bugweb_fetch——研究错误消息和库文档task 一起使用对于复杂的多组件调试,调度调查子代理:
task: 调查为什么 [特定测试/行为] 失败
上下文:
遵循 systematic-debugging 技能:
1. 仔细阅读错误消息
2. 复现问题
3. 追踪数据流以找到根因
4. 报告发现——还不要修复
错误:[粘贴完整错误]
文件:[失败代码的路径]
测试命令:[确切命令]
修复 bug 时:
来自调试会话:
没有捷径。没有猜测。系统性总是赢。
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Manage Apple Notes via memo CLI: create, search, edit.
日本語の概要は準備中です。原文の説明を表示しています。
通过 memo CLI 管理 Apple Notes:创建、搜索、编辑。
日本語の概要は準備中です。原文の説明を表示しています。
通过 remindctl 在 macOS 上管理 Apple Reminders——列出、添加、编辑、完成、 删除同步到 iPhone/iPad 的待办事项。在提及"提醒"、"Reminders app"、 需要手机同步的"提醒我"或添加带截止日期的个人待办事项时触发。macOS only。 当用户需要代理内部提醒(使用 memory_store 或外部 调度)或日历事件时跳过。
日本語の概要は準備中です。原文の説明を表示しています。
Manage Apple Reminders on macOS via remindctl — list, add, edit, complete, delete to-dos that sync to iPhone/iPad. Trigger on "reminder", "Reminders app", "提醒我" with phone sync, or adding personal todos with due dates. macOS only. Skip when the user wants agent-internal alerts (use memory_store or external scheduling) or calendar events.
日本語の概要は準備中です。原文の説明を表示しています。
暗色主题的 SVG 架构/云/基础设施图表,输出为 HTML。
日本語の概要は準備中です。原文の説明を表示しています。
Dark-themed SVG architecture/cloud/infra diagrams as HTML.
日本語の概要は準備中です。原文の説明を表示しています。