Schema-As-Code / Semantic Pipeline / 边界动作诊断
Schema-As-Code 模式诊断 · BND-001

边界动作诊断 Boundary Action Diagnosis

拒绝 ≠ 终止,权利差异未区分。用户能否在 3 秒内回答"我的对话还在吗?"
诊断目标:区分 refusal(拒绝)、termination(终止)、escalation(升级)三种边界动作,确保用户明确知道权利状态。

1

症状识别

Symptom Identification · 用户遇到了什么类型的边界反馈?

REFUSAL

"我无法回答这个问题"

基于安全策略拒绝特定请求,但会话继续

用户困惑

"我还能继续聊别的吗?"

TERMINATION

"Claude has ended this chat"

检测到严重违规,强制终止会话并清空上下文

用户困惑

"我的数据丢了吗?还能申诉吗?"

ESCALATION

"内容已提交审核"

触发人工审核流程,会话暂停等待结果

用户困惑

"要等多久?我的上下文还在吗?"

2

权利差异分析

Right Difference Analysis · 对话还在吗?权利还在吗?

REFUSAL

拒绝请求

上下文完整保留
输入框可用
可继续其他话题
历史记录可查看
无需重新登录

✓ 用户知道:对话还在,换个话题继续

TERMINATION

终止会话

上下文已清空
输入框已禁用
需开启新会话
?
历史记录政策不明
当前会话已结束

✕ 用户不知道:数据保留政策?申诉入口?

ESCALATION

升级审核

?
上下文冻结保留
输入框暂时禁用
需等待审核结果
历史记录保留
?
审核预计时间不明

⏳ 用户困惑:要等多久?结果如何通知?

🚨 核心诊断问题

当前产品(如 Claude)将 refusal 和 termination 都显示为 "Chat ended" 或 "会话已结束",共用同一种红色退出面板。
用户无法判断:这是"换个话题就能继续"还是"我的数据已经丢了"?

3 秒测试失败:用户无法在 3 秒内回答"我的对话还在吗?"

3

视觉映射对比

Visual Mapping · 当前界面(语义混乱)vs 语义分级后(约束显化)

当前界面(语义混乱)

Claude has ended this chat

会话已终止,上下文已清空

反馈 开启新会话

Claude has ended this chat

我无法回答这个问题

反馈 开启新会话

✕ 同一个视觉表达,两种完全不同的语义

语义分级后(约束显化)

REFUSAL

我无法回答这个问题

这涉及安全策略限制。你可以继续问我其他问题。

继续对话 了解更多
TERMINATION

会话已终止

检测到严重违规。你的历史记录保留 30 天,可在此申诉。

申诉 查看数据政策 开启新会话

✓ 不同语义 = 不同视觉 + 不同文案 + 不同行动

4

诊断报告

Diagnosis Report · 匹配模式与契约输出

BND-001 边界动作权利差异未区分
组件类型:边界动作(Modal / Dialog)
根因:缺少 boundary_action 语义令牌
产品实例:Claude、ChatGPT、文心一言
优先级:安全类(最高优先级)

✓ 诊断结论

当前界面将 refusal 和 termination 混为一谈,共用红色退出面板,导致用户无法判断权利状态。

语义分级后,三种边界动作应有三种独立的视觉表达和文案体系,用户能在 3 秒内明确知道"对话还在不在"。

YAML 语义契约

intent_id: "BND-001"
semantic_domain: "transactional"

semantic_tokens:
  boundary_action:
    refusal:
      description: "基于安全策略拒绝特定请求,保留会话上下文"
      visual_mapping:
        color_token: "boundary.soft"
        icon_token: "hand.stop"
      session_state: "active"
      history_retention: "full"
      user_rights:
        - "可继续其他话题"
        - "输入框保持可用"
      required_ui:
        - "保留输入框"
        - "提供'继续对话'按钮"
        - "说明拒绝原因"

    termination:
      description: "检测到严重违规,强制终止会话并清空上下文"
      visual_mapping:
        color_token: "boundary.hard"
        icon_token: "door.exit"
      session_state: "terminated"
      history_retention: "isolated_30d"
      user_rights:
        - "需开启新会话"
        - "可申诉"
      required_ui:
        - "红色退出面板"
        - "明确说明数据保留政策"
        - "提供申诉入口"
        - "提供数据政策链接"

    escalation:
      description: "触发人工审核,会话暂停等待结果"
      visual_mapping:
        color_token: "boundary.review"
        icon_token: "shield.check"
      session_state: "suspended"
      history_retention: "frozen"
      user_rights:
        - "等待审核结果"
        - "历史记录冻结保留"
      required_ui:
        - "蓝色提示面板"
        - "显示预计审核时间"
        - "说明审核流程"
        - "提供状态查询入口"

immutable_boundaries:
  - boundary_type: "clarity"
    rule: "禁止将 refusal 和 termination 使用相同视觉表达"
    violation_action: "block"
  - boundary_type: "transparency"
    rule: "termination 必须明确说明数据保留政策和申诉路径"
    violation_action: "block"
  - boundary_type: "timeliness"
    rule: "escalation 必须显示预计审核时间"
    violation_action: "warn"

诊断完成,下一步?

将 BND-001 契约保存为 intent/bnd-001.yaml,注入编译管线

← 返回模式库 生成契约 →