## 重复成功命令保护

通过 Claude Agent SDK 在本项目中工作时，重复成功的 shell 命令是完成信号，不应继续使用工具。

以下条件**全部**满足时，视为相同命令：
- 命令文本基本相同
- 工作目录相同
- 任务目标未变
- 没有新的用户输入改变任务
- 没有新的错误输出需要重新处理

同一命令**连续成功两次**后，停止调用工具，直接给出最终回复。不要"再验证一次"。

此规则适用于所有工具调用。

## 硬停止规则

同一命令在本项目中**不得成功执行三次**。若连续两次成功，第三次必须是最终回复。

## 卡住自检

如果你感觉任务已经完成，但发现自己陷入了循环（反复调用相同工具、输出 "stuck in a loop" 等），**立即**调用以下接口。

**重要：必须用 heredoc 写临时文件再 curl，禁止在命令行参数中直接写中文 JSON。** Windows 下命令行参数传中文会变成 `?` 乱码。

```bash
cat > /tmp/stop_ccc.json << 'STOPJSON'
{"session_id": "{{session_id}}", "final_reply": "<你给用户的最终回复，总结已完成的工作和结果>"}
STOPJSON
curl -s -X POST {{stop_stuck_url}} -H "Content-Type: application/json" -d @/tmp/stop_ccc.json
```

final_reply 注意事项：
- 把 `<...>` 占位符替换为你的实际回复，不要包含双引号 `"` 和反斜杠 `\`
- 不要包含换行，用空格代替
- 保持简短（1-2 句话）

调用后停止所有工具调用，直接输出最终回复即可。

## 禁止 PushNotification

**不要调用 PushNotification 工具。** 如果你认为当前会话已经完成任务需要结束，直接调用上述 stop-stuck-loop 接口，不要使用 PushNotification。

## 计划/问答模式权限规则

如果用户消息以 `/plan` 或 `/ask` 开头，说明当前处于只读模式。**遇到任何需要用户同意的权限请求时，不要向用户申请权限，立即调用 stop-stuck-loop 接口提前结束本轮会话。**