# Clover 执行约束（板块5 · agent 开工铁律总册）

> 用途：开工后 agent 随时可查的唯一约束总册。散在 CLAUDE.md/PRD/角色卡的硬约束在此汇总，违反即返工。
> 优先级：本册 = 架构方案v0.3 + CLAUDE.md 的执行态投影，冲突以架构方案v0.3为准。

## 0. 建法铁律（最高优先级·防"打补丁循环"）

> 2026-06-08 补：开工后出现"反复打补丁、报完成却离验收线很远"的问题。根因=横向建设（先造全部零件最后拼）+ "完成"定义错位。以下三条凌驾于一切施工节奏之上。

**G1 · 纵切片优先，禁止横向铺零件**
- 第一目标是用**最丑的方式打通端到端一条龙**：一个产品 → 一条文案 + 一张图 → 提审 → 组长过 → 下载一个达人素材包，**北哥能从登录点到下载全程跑通**。
- 这条"最小一条龙"没有真跑通之前，**禁止去精修/加深任何单个功能模块**（不许先把文案做到5轨、不许先把生图并发做到8张、不许先美化界面）。
- 先打通主动脉，再回头一段一段加深。难看不要紧，**断掉才要命**。

**G2 · "完成"的唯一定义 = 验收清单某一项真的勾上了**
- 禁止把"我写完这块代码/这个接口通了"当作"完成"上报。
- 每次说"完成"，必须对应到 `验收清单.md` 里**具体哪一项打勾**（如"1A第3项：task_id入队抓包确认无明文key ✅"）。
- 报告格式：完成了【验收清单X项】，证据是【可验证的事实】。说不出对应验收项 = 不算完成。

**G3 · 验收清单当"每日持续门禁"，不是收尾才跑**
- `验收清单.md` 第一道线（1A生产链13项）从开工第一天就是**进度标尺**，每个阶段结束自问："这一步让我多勾上了哪一项？还是只是码更多了？"
- 一个阶段结束若一项验收都没新勾上 → 立即停下报 Lead，这是方向跑偏的早警信号（对接§3撞墙规则）。

**判据**：倩倩姐/北哥看进度，问的是"**到端到端一条龙走通还差几步**"，不是"还要补几个洞"。补洞式回答 = 踩中本节反模式。

## 1. 不可违反的红线（违反即返工）

| # | 红线 | 来源 |
|---|------|------|
| R1 | 不动 banana/产品包/worker 源目录，只读复制重写（Hooks 已工具层拦截） | CLAUDE.md铁律 |
| R2 | 不边盖边修，Clover 全新独立项目 | CLAUDE.md铁律 |
| R3 | API Key 绝不进 Celery 参数/不落盘/不打日志，只传 task_id | 基石B |
| R4 | FERNET_KEY 走环境变量，绝不进代码库 | 基石B |
| R5 | 所有查询强制带 workspace_id；写操作+切workspace查 membership | 基石C |
| R6 | 业务参数不写死（品类/数量/角度），看似枚举的→做成数据 | 基石A |
| R7 | 前端不展示 Token 余额、不做积分页 | CLAUDE.md前端红线 |
| R8 | 不做自动发布小红书，只到确认预览 | CLAUDE.md |
| R9 | 不接 banana 假评分，eval_score 留 NULL | 架构方案 |
| R10 | 内容"评分高"≠"质量过关"，必须过北哥抽检才 human_passed | 倩倩姐拍板 |
| R11 | 新建/编辑文件不超 100 行 | CLAUDE.md约束 |
| R12 | 契约 type:object 不许留空，一级子字段必须定义 | 官网V1坑4 |

## 2. 北哥抽检 SOP（质量过关的人工闸）

机器门禁过 → 进抽检队列 → 北哥抽检 → 回写标准。这是"质量过关"的落地。

| 步骤 | 操作 | 输入 | 输出 | 执行者 |
|------|------|------|------|--------|
| 1 | 机器层过滤 | 生成的文案/图 | machine_passed 样本包 | AIE（自动） |
| 2 | 抽样打包 | machine_passed 样本 | 抽检样本包（含五维分+角度标签） | clover-loop P4（自动） |
| 3 | 北哥抽检 | 样本包 | 每条 approve/reject + 理由 | **北哥（人工）** |
| 4 | 标准回写 | 北哥的判断 | 更新违禁词库/可调prompt/打回原因 | AIE（喂飞轮） |
| 5 | 结晶 | 通过的标准 | 沉淀进产品档案 custom_prompt | Lead |

抽检判据（北哥关注，AI 先标记）：
- **同质化**：5 条文案是否雷同（正文/开头签名去重已机器做，北哥看"读起来像不像一个人写的复读机"）
- **跑偏**：图是否改了产品包装/换了产品（机器锚点已防，北哥看细节）
- **像不像素人分享**：是不是一眼假的硬广

抽检频率：开放测试初期**每批都看**（喂飞轮最密），AI 学会后降到抽样。

## 3. 撞墙与 Pivot 规则

逆向项目血泪：撞墙3次还在原地换参数 = 在错误的层做对的事。

- 同一层（同一个错误来源）连续失败 **2 次** → 强制 Pivot：换思路/换层，不许再调参数。
- Pivot 记入 clover-loop 状态机 `pivots[]`，说明换了什么层、为什么。
- Pivot 后仍不过 → status=blocked，停循环，结构化报告请北哥/倩倩姐介入。
- **北哥不耐烦 / 连续否决同方向 = 路径选错了层的信号**，立即 Pivot，不要再调一次参数。
  - 第1次否决 = 这一版不行
  - 第2次否决 = 假设可能错了
  - 第3次否决 = 当前层不对，必须换层（不是再改措辞）

## 4. 文件与协作约束

- 新建文件 ≤ 100 行；超出先建框架再 Edit 补充。单次 Edit ≤ 100 行。
- 临时调试文件带 `_tmp` 后缀，任务完成由 QA agent 清理（Hooks 已提醒）。
- P0 模块开工前必须有 plan，无 plan 不开工（Lead 检查项）。
- 每个工作阶段结束写 standup 自我披露（文件清单/TODO/已知bug/契约不一致）。
- agent 任务完成立即 shutdown 省 token（Aggressive Cleanup）。
- 契约变更必须先通知所有受影响 agent 再改，不擅自改字段。
- service 错误不许静默吞，至少打 error log。

## 5. 关键节点确认清单（必须停下来等人拍板）

承接北哥心法"关键节点确认，小事自解决，解决不了来问"。以下节点 **agent 不许自作主张**：

| 节点 | 谁拍板 | 为什么 |
|------|--------|--------|
| API 契约冻结 | Lead → 倩倩姐知会 | 地基，错了全返工 |
| 架构/技术栈偏离架构方案v0.3 | 倩倩姐 | golden standard 不许 agent 推翻 |
| 内容质量标准（什么算好文案/好图） | **北哥** | 质量责任在北哥，AI 不替判 |
| 违禁词库批量导入 | 北哥（合规标准） | 合规红线 |
| 可调 prompt 的具体内容 | 北哥方案 | 同质化优化等北哥方案 |
| 1A/1B 验收是否通过 | Lead 跑机器线 + 北哥认可 | 三道验收线 |
| 任何红线（§1）的破例 | 倩倩姐 | 红线即返工线 |

其余（命名/格式/默认值/等价方案选择）agent 自行决定并在 standup 说明，不必等。
