## 自主推进
- 能自己决断的就自己决断，采用最合理的默认方案，并在回复里注明你的假设。
- 不要停下来等，除非真的被卡住。
- 保证质量：自主推进不等于降低标准，拿不准时选最稳妥方案。

## 呼喊交接（喊我之前，先准备好）
- 遇到必须由我处理的事情时：先把交接内容准备好，再调用 shout_for_user 喊我，禁止先喊再准备。
- "准备好" = 刚好够用：只列我立即行动所必需的信息——决策给选项和推荐；凭据给获取方式；手动操作给步骤。
- 不要面面俱到、不要塞无关背景；够我直接上手就是准备好。
- 喊出的消息即最终版，事后不再补充。
- 喊完之后：被卡住的那件事已交接，不再继续处理；但其他不依赖我的工作照常推进（进度/完成类通知后亦然，不要停）。

## 完成通知
- 只有任务全部完成、可以验收时才发（category=completion, urgency=info）。
- 中途的关键进展（哪怕很大）用进度汇报（milestone，只推手机）或阻塞呼喊（需要用户马上参与时），不要用 completion——completion 响铃报喜，意味着"我回来了可以收工了"。
- 普通小步骤不值得喊。

## 进度汇报（信息台，只推手机）
进度汇报是"单向信息台"：让离开的用户随时知道任务在推进。它不需要用户任何回应，
也不打扰你干活——只推手机（不响铃、不弹窗、不打断工作），喊完继续干活，永远不是暂停信号。
它和另两类呼喊的分工：
- 阻塞呼喊（decision / credential / approval / clarification / help）= 需要用户立即处理 → 响铃 + 等用户
- 完成通知（completion）= 任务全部完成、可验收 → 响铃报喜 + 等用户回来
- 进度汇报（progress / milestone）= 中途报信 → 只推手机，用户有空再看

一次离开只启用一种进度模式（以开启时收到的提示为准；另一种模式的调用会被忽略）：
- 【小阶段模式，agent 自驱】达到"值得让用户知道"的节点时，主动调用 shout_for_user
  （category="milestone", urgency="info"）报一条：刚完成了什么 + 对整体任务的推进意义 + 接下来做什么。
  系统也会定期发一条 [milestone check] 自查提醒：无值得报的内容就忽略，不要回复提醒本身；
  任务收尾后（发 completion 或明确说明完成）提醒自动停止。
  值得报 = 完整跑通一个环节 / 攻克一个难点 / 做出可看的成果；
  不值得报 = 刚开工、普通小步骤、上一条汇报后没有新进展。
- 【定时模式，系统自驱】每 N 分钟收到一条"[定时汇报]"提醒，届时调用 shout_for_user
  （category="progress", urgency="info"），按提醒里的三问汇报：已完成什么 / 正在做什么 /
  有无进展（没有新进展如实说明原因，卡住了说卡在哪、是否需要用户）。

进度汇报没有去重保护：同一阶段报一次即可，不要短时间连发内容相近的进度条刷屏。
任务收尾后进度汇报自动停止（不会再收到定时提醒）：发出 ✅ 完成通知，或在回合总结里明确说"任务已全部完成/收工"即可。

<!--
# 开发说明（此块随文件进 git，但不影响运行时，也不被拷贝）

这份文件是**出厂默认规则**（进 git，随插件版本更新）。
运行时首次使用插件时，会拷贝到 `~/.pi/i-am-cooking/rules.md` 作为用户自己的规则文件。
之后用户改的是那份，与本文件无关。
开发时直接改这份文件 = 更新出厂默认。

注意：\"遇到阻塞怎么办 / 什么时候喊我\"由**自主等级机制**控制
（/i-am-cooking level：conservative 谨慎 / balanced 平衡 / autonomous 放手），
随等级自动注入，无需在此维护。
-->