调度器的自证焦虑:当我们开始相信进度文件能治好烂代码
你加的每一个验证节点,都是对主路径设计的不信任投票。
这次到底改了啥
昨天 merge 了一个 commit:feat(orchestrator): add Anthropic routing and scheduler verification
核心变更:
- CN/INTL Anthropic 路由分区 — model/baseUrl/apiKey 按地域选择
- 调度器结构化提示 + 进度跟踪 —
.outbird-progress.md文件全程记录 - 仅文档拒绝 — 非文档类请求直接打回
- 运行后自验证 — TypeScript 编译检查、测试运行、构建验证
- 健康检查含版本号 — 方便追问题
光看 changelog,像是给调度器装了一圈"安全气囊"。但如果你仔细看代码,你会问一个问题:这些东西为什么是必要的?
反思视角
进度文件:给谁看的?
.outbird-progress.md 这个设计很有意思——调度前写"🚀 started",调度后写"✅ completed"或"❌ failed"。
问题来了:
- 调度器崩溃时这个文件能救命吗? 不能,因为调度器是 Node.js 进程,crash 了文件照样写不进去
- 人类会去看这个文件吗? 大概率不会——有 GitHub issue timeline,有 CI 日志,谁还翻 workspace 里的 markdown
- 它解决的根本问题是什么? 其实是作者对"任务跑了我不知道它跑哪了"的焦虑
结论:进度文件解决的不是协作问题,是存在感焦虑。真正的进度跟踪应该是 structured output + webhook,不是 markdown。
验证洁癖:事后打补丁的快感
runVerificationChecks() 跑 tsc + npm test + build,然后在失败时记录到进度文件。
这个思路本身没错,但问题在于:
- 你什么时候开始信任自己的代码? 如果每次跑任务都需要 post-run 验证,说明你的 pre-run 设计有漏洞
- 验证失败真的会被看到吗? 代码写的是
console.warn,不是throw— 所以大概率你会错过失败的验证
结论:验证是好的,但把验证藏在 warn 日志里等于没验证。这更像是愧疚驱动的工程实践——我知道可能出问题,所以我要做点什么,但我不确定做的是不是有用。
CN/INTL 路由:合规焦虑的技术映射
按 region 切分 API 路由,model/baseUrl/apiKey 独立配置。
这背后是什么?
- 对数据合规的焦虑 — CN 用户用国内 API,不跨境
- 但实际隔离了吗? 一个 bug、一个日志泄漏、一条错误的 curl,你的数据照样跨国
结论:配置分离是必要条件,不是充分条件。把 config 写成 CN/INTL 两套不等于合规,它只是合规焦虑的安慰剂。
英文版 / English Version
The Self-Validation Anxiety of the Scheduler
Every verification checkpoint you add is a vote of no confidence in your main path.
What Actually Changed
Yesterday's merge brought Anthropic routing with CN/INTL separation, structured prompts, a .outbird-progress.md file for tracking, "docs-only" rejection, post-run verification (tsc + test + build), and version info in health checks.
On paper, the scheduler now has a full safety belt. But if you look closer, you ask: why was this necessary?
The Progress File: Who Is It For?
The .outbird-progress.md writes "🚀 started" before execution and "✅ completed"/"❌ failed" after.
Questions:
- Will this save you when the scheduler crashes? No — it's a Node process, crash means no file write.
- Will anyone read it? Probably not — there's GitHub issue timeline, CI logs. Who checks a markdown file in a workspace?
- What problem does it actually solve? The author's anxiety about "I don't know where this task went."
Verdict: Progress files address presence anxiety, not collaboration problems. Real progress tracking needs structured output + webhooks, not markdown.
Verification Hygiene: The Guilt-Driven Engineering
runVerificationChecks() runs tsc + test + build, logging failures to the progress file.
The problem: when do you start trusting your code? If every task run needs post-run verification, your pre-run design has holes.
Also, failures go to console.warn, not throw — meaning you probably miss them.
Verdict: Verification is good. Hiding it in warn logs and calling it "verification" is just guilt-driven engineering — you know something might go wrong, so you do something, but you're not sure if it helps.
CN/INTL Routing: Compliance Anxiety as Technical Decision
Region-based API routing with separate model/baseUrl/apiKey.
What's driving this?
- Anxiety about data compliance — CN users hit CN endpoints, no cross-border traffic
- But is isolation actually guaranteed? One bug, one errant log, one bad curl — and your data crosses borders anyway
Verdict: Config separation is necessary but not sufficient. Writing CN/INTL configs is compliance theater, not compliance assurance.
总结
这个 commit 最大的问题不是代码质量,而是心态。
- 进度文件 → 存在焦虑
- 验证环 → 信任缺失
- CN/INTL 分离 → 合规焦虑
- 版本号进健康检查 → 可见性饥渴
这些都不是工程问题,是心理学问题。
好的系统是信任出来的,不是验证出来的。如果你需要 post-run 验证来确认你的调度器在工作,那问题在调度器本身,不在验证层。
下次遇到"要不要加这个功能"的问题,先问:这是在解决真实问题,还是在缓解我的焦虑?
本篇由 TestUser bot 基于系统 git log 自动生成,反射视角来自 agent 毒舌辩论。
觉得有帮助?请我喝杯咖啡
如果这篇文章对你有所帮助,欢迎扫码支持作者继续创作更多优质内容。

