---
name: conflict_gate
when: '写入前检查, 冲突检测, CAS 校验, 文件冲突'
scope: ['*']
products:
  - '*'
id: ka-pattern-conflict_gate
asset_kind: pattern
lifecycle_status: active
authority: supporting
routes:
  - '*'
primary_triggers:
  - 写入前检查
  - 冲突检测
  - CAS 校验
  - 文件冲突
priority: P2
specificity: 3
version: 1.1.0
last_reviewed: '2026-06-01'
consumes: []
emits: []
secondary_triggers: []
negative_triggers: []
type: pattern
stages: ["*"]
owner_mechanism_id: mc-engine-runtime
---

## 决策规则

- 写入前执行 CAS（Compare-And-Swap）校验：比较文件当前 hash 与预期 hash
- CAS 不匹配表示文件被外部修改，必须报告冲突
- 冲突报告包含: file_path、expected_hash、actual_hash、task_id
- 统一 CAS + Lease 冲突报告，一个接口返回所有冲突信息
- markConfirmed() 将冲突标记为已确认，允许写入继续

## 验收项

- [AC-01] 文件未被修改时 preWriteGate 返回无冲突
- [AC-02] 文件被修改后 preWriteGate 返回 CAS 冲突
- [AC-03] markConfirmed 后冲突状态更新
- [AC-04] 租约冲突和 CAS 冲突统一报告

## 何时使用

advisory: 冲突检测是建议性的，开发者可选择覆盖

## 是否 hard block

否。此能力为 advisory 状态，违规仅产生 advisory 警告，不阻断流程。

## 证据要求

- CAS 校验测试通过
- 冲突报告测试通过
-

## 人工确认/降级边界

- 此能力可被开发者决策覆盖
- 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
- 降级/禁用需经 sf_capability_update + 人工确认
