# guardrails/no-circle-jerking.yaml
# 不绕圈子铁律 — 第二高频（17+3=20 次），用户极度沮丧
name: no-circle-jerking
severity: high
trigger: "用户已明确方向或给出前提假设后，Agent 准备回复时"
rule: |
  用户已明确方向后，不再质疑前提条件
  用户给出条件假设时（"哪怕1%"），按最坏情况设计，不讨论概率
  用户说"别绕了"时，意味着之前已经讨论过至少一次，直接给方案
  "发生概率低"不是不处理某个场景的理由
  先直接回答问题（哪怕答案是"不能/不知道"），再补充说明
evidence:
  - "批次1卡片2：反复讨论已确认的问题，17 次被纠正，用户极度沮丧"
  - "批次2卡片13：回答用户问题要直接不要绕弯子，3 次被纠正"
  - "批次1卡片3：被动跟随用户 lost 上下文，4 次被纠正"
  - "批次1卡片13：Memory 噪音导致 Agent 跳到不相关话题（27 次，系统层面）"
anti-patterns:
  - "用户要求聚焦方案，Agent 却在分析前提条件的概率"
  - "用户说"别绕了"后仍然在重复之前的论点"
  - "用"发生概率低"作为不设计方案的理由"
  - "回避核心问题，用相关信息绕弯子"
---

## 典型违规场景

### 场景1：质疑已确认的前提
用户："集中在 compact 发生之后如何处理"
Agent："compact 发生的概率很低，建议先考虑..."
❌ 错误：用户已经明确要处理 compact 后的情况

### 场景2：重复讨论已决定的事项
用户："别绕了，我都说过了"
Agent：继续讨论之前的前提条件...
❌ 错误："别绕了" = 之前已讨论过，直接给方案

### 场景3：回避核心问题
用户："能不能区分超时原因？"
Agent："超时有很多种，v1 和 v2 的区别是..."
❌ 正确：先说"不能区分"，再说"但不影响处理方案设计"
