# 项目口味（Project Taste）

> **第三块石碑**：团队偏好陈述，不是 lint 规则。Agent 在模糊空间里向这些偏好靠拢。
> 安装来源：`core/templates/project-taste-template.md` → `.forge/project-taste.md`（`pnpm forge-install`）
>
> 对照 [tencent-harness-mirror-comparison.md](../docs/tencent-harness-mirror-comparison.md) · 硬红线见 `.forge/security-guidance.md`

---

## 如何使用

- **写给 AI 也写给自己** — 把「大家都懂所以不用说」的默契第一次落字
- **偏好，不是法律** — 违反时应引起警觉，但不像 S1 断言那样「必失败」
- **与 Spec 分工** — Spec 写「要什么」；本文件写「像我们团队会怎么做」

---

## 结构偏好（示例，请按项目删改）

- 我们偏好 **简单胜过聪明**；若方案让你睡不着觉，通常不是好方案
- 本模块 **继承不超过两层**；更深则拆模块或组合，不堆子类
- 命名 **语义化**；避免 `handler2`、`util_new`、`commonV3`
- 业务边界处 **宁可重复一次也不要过度复用**（尤其计费、库存）
- 对 **拆得过细的函数** 比对 **略长但连贯的函数** 更反感
- 不相信「以后可能会用到」的扩展点，除非 Spec 明确要求

---

## 代码风格与评审口味

<!-- 把 code-review 里反复出现的「感觉不对」写在这里 -->

- （示例）API 层不直接访问数据库，经 service
- （示例）新依赖须说明用途，默认不引入新框架

---

## 我们刻意不写成规则的事

<!-- 对应「四处不刻」：战略、价值观、肌肉记忆、审美 — 仅作提醒 -->

- 战略与产品方向：见 `Product-Spec.md`，不在此展开
- 某些 **肌肉记忆**（如「大促前冻结发版」）只在此一句带过，不进 CI

---

## 维护说明

- 老工程师的直觉 → 先写一条偏好，再在 CR 里验证是否有效
- 与 `security-guidance.md` 冲突时：**安全红线优先**
- 季度回顾：删掉从未被引用的条目，避免 1:1 地图（博尔赫斯警告）
