# 工程约束（NFR）

> **always-current**。每个主题 ④非功能性设计完成、代码验证落地后，由 **coding-closeout** 沉淀**经代码验证**的约束。
> 完整分析过程在 `.xyz-harness/{主题}/non-functional-design.md`。
> 每条约束必须四件套齐全（约束/为什么/验证/例外）；缺"验证" = 空头口号，CW closeout 机器检查报错。

## 安全

### S-1 {约束名}  [from: {topic}]

- **约束**：{可执行的 imperative，如「所有写操作必须幂等」}
- **为什么**：{溯源④ issue#/方案 + 不可逆理由}
- **验证**：{TEST-STRATEGY 基线 ID / grep AC / 测试名}
- **例外**：{无，或明确例外边界}

<!-- S-2, S-3 ... 跨主题累加，coding-closeout 沉淀前 grep 现有 ID 去重 -->

## 业务数据安全

<!-- 前缀 D-*：敏感字段脱敏规则、PII 处理边界、保留周期 -->

## 性能

<!-- 前缀 P-*：SLO、热路径预算、缓存不变式 -->

## 并发控制

<!-- 前缀 C-*：锁粒度、幂等模型、事务边界 -->

## 稳定性·高可用

<!-- 前缀 R-*：降级策略、熔断阈值、重试边界 -->

## 兼容性

<!-- 前缀 V-*：API 版本边界、数据迁移约束、向后兼容承诺 -->

## 可观测性

<!-- 前缀 O-*：必埋点清单、告警阈值、日志结构约定 -->

## 已知残余风险

> 跨主题累积。下次设计会先读这里，避免重复发现已知问题。

| ID | 风险 | 接受理由 | 监控方式 | 溯源 |
|----|------|---------|---------|------|
| RISK-1 | {风险描述} | {为何接受} | {告警/指标} | [from: {topic}] |
