● butler-obsidian.service - Butler Obsidian Bot
     Loaded: loaded (/etc/systemd/system/butler-obsidian.service; disabled; preset: disabled)
     Active: active (running) since Tue 2026-03-10 12:01:14 CST; 3s ago
   Main PID: 814740 (python)


很好，服务已经成功重启了。现在我们需要验证我们的修改是否解决了问题。让我检查一下当前的状态并进行一些测试。


现在验证我们的修改是否解决了问题：


root      814740  9.8  1.8 1421132 142976 ?      Ssl  12:01   0:01 /root/projects/butler/venv/bin/python scripts/obsidian_bot.py
root      814860 13.1  0.0  10924  6436 ?        Ss   12:01   0:00 /bin/bash -c source /root/.claude/shell-snapshots/snapshot-bash-1773115272950-odtbld.sh && shopt -u extglob 2>/dev/null || true && eval 'ps aux < /dev/null | grep -E python.\*obsidian_bot' && pwd -P >| /tmp/claude-c193-cwd
root      815248  0.0  0.0   7532  2184 ?        S    12:01   0:00 grep --color=auto -E python.*obsidian_bot


服务正常。现在总结我们做的修改：

1. 把 `zhihu_bot_style` 和 `powell_revise_guide` 的读取移到了 `is_new_question` if 块外面，确保它们在 review_prompt 中可用
2. 对于新问题，使用空的历史记录来生成 draft，避免旧对话污染
3. 保持 second-pass review 的触发条件基于 `built_rich_prompt`，而不是 `is_first_turn`


服务已正常运行。

## 主要修复

1. **变量作用域问题**：把 `zhihu_bot_style` 和 `powell_revise_guide` 的读取移到 `is_new_question` if 块外面，确保它们在 second-pass review 中可用

2. **新问题使用空历史**：对于新问题，用空的历史记录生成 draft，避免旧对话污染

3. **触发条件保持**：second-pass review 仍然在 `built_rich_prompt=True` 时触发（只要是新问题或带 `|` 格式的问题都会触发）

现在，只要你用 `|` 格式或者输入以"回答这个问题"开头，就会触发完整的新问题流程，包括：
- 空历史记录生成 draft
- 完整的 second-pass 规则审查

记得先在 Slack 里用 `clear` 清掉旧 context，然后用 `mode zhihu` 切换模式，再试一次新问题生成。