---
name: scope_lease
when: '文件写入, 作用域控制, 租约, 并发写入, 文件锁定'
scope:
  - shared
products:
  - '*'
id: ka-pattern-scope_lease
asset_kind: pattern
lifecycle_status: active
authority: supporting
routes:
  - '*'
primary_triggers:
  - 文件写入
  - 作用域控制
  - 租约
  - 并发写入
  - 文件锁定
priority: P2
specificity: 3
version: 1.0.0
last_reviewed: '2026-05-22'
consumes: []
emits: []
secondary_triggers: []
negative_triggers: []
type: pattern
status: active
---

## 决策规则

- 写入文件前必须获取作用域租约（scope lease），同一文件不可被多个任务同时持有
- 租约包含: task_id、allowed_paths、acquired_at、expires_at
- 租约超时后自动失效，其他任务可重新获取
- 任务完成或取消时必须释放租约
- 租约查询 isLocked() 为 advisory check，不阻断流程

## 验收项

- [AC-01] acquire 返回有效租约，release 后 isLocked 返回 false
- [AC-02] 同一文件不可被两个任务同时租约
- [AC-03] 过期租约自动清理
- [AC-04] clear() 清理所有租约

## 何时使用

advisory: 租约是写入前建议检查，不强制阻断

## 是否 hard block

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

## 证据要求

- acquire/release 测试通过
- 过期清理测试通过
-

## 人工确认/降级边界

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