用途:这是一个在调试中等或困难 Bug 时尽早使用的工作流技能,核心是先观测真实运行时路径,而非仅依赖测试循环。适用于 Bug 跨多函数、包、进程或 UI/运行时边界,测试变红但测试可能未还原真实 Bug,Bug 依赖运行时顺序、状态、缓存、流式、并发、持久化、UI 交互或外部服务,或用户表示能手动复现,又或在一次修改后测试通过但不确定真正修复了上报问题等场景。限制:若根因已由堆栈跟踪或覆盖真实运行时路径的确定性失败测试直接证明,则无需使用;不要在未理解运行时行为时仅反复迭代测试。
主要能力与必要用法:先承认当前测试可能未捕捉真实 Bug,确定必须观测的代码路径,然后添加最小但足够的临时无条件日志。日志不得用环境变量、debug 开关或日志级别控制;每个日志点向当前工作目录的 .jsonl 文件追加一行 JSON 对象,记录事件名、时间戳、相关 id、输入形状、状态转换、分支决策、返回值与被捕获错误。可运行复现时自行运行;若依赖用户环境或手动交互,则让用户复现并提供 <cwd>/debug-difficult-bug.jsonl。按时间顺序读取日志,比较预期与实际流程,找出第一个状态或行为分歧点,再实施修复。修复验证后删除全部临时埋点、调试导入、辅助函数与生成的 .jsonl,检查最终 diff 仅含修复与有意保留的测试。
适用场景:TypeScript/Node 等支持向 cwd 写追加 JSONL 的运行环境,可配合 CLI、开发服务器、测试和手动复现。属编程与开发范畴。
限制与注意:日志可能含敏感信息,避免记录 API 密钥、认证头、令牌、Cookie、凭据、完整用户内容或庞大载荷;如需可记录脱敏摘要。多进程工作目录不同时,应记录绝对 process.cwd()、进程角色与 pid,或分别写入 debug-server-flow.jsonl、debug-worker-flow.jsonl、debug-client-flow.jsonl 等文件。官方来源未提供额外收费、平台或版本信息。