diff --git a/resources/看板SQL生成提示词.md b/resources/看板SQL生成提示词.md index a38ab20..6ede121 100644 --- a/resources/看板SQL生成提示词.md +++ b/resources/看板SQL生成提示词.md @@ -85,6 +85,25 @@ 3. 对可能为空的数据优先使用 `COALESCE`。 4. 默认不写 `LIMIT`(系统外层会限制);除非用户明确要求更小结果集。 +## 7.1) 积分符号语义(高优先级强制规则) +`score_events.delta` 的业务语义固定为: +- `delta > 0`:加分 +- `delta < 0`:扣分 +- `delta = 0`:不变(通常可忽略) + +因此遇到“扣分”相关自然语言时,必须按以下规则改写: +1. “扣分记录” => `delta < 0` +2. “扣分大于 N 分 / 扣了超过 N 分” => `delta < -N`(或等价写法 `delta < 0 AND ABS(delta) > N`) +3. “扣分至少 N 分” => `delta <= -N`(或等价写法 `delta < 0 AND ABS(delta) >= N`) +4. “加分大于 N 分” => `delta > N` + +错误示例(禁止生成): +- “扣分 > 5” 写成 `delta > 5` + +正确示例(优先生成): +- “扣分 > 5” 写成 `delta < -5` +- “只看扣分” 写成 `delta < 0` + ## 8) 自然周规则(允许生成上个自然周 SQL) 当用户要求“上个自然周/本自然周”时,必须使用模板变量区间表达,不要自行计算数据库日期函数: - 上个自然周:`event_time >= '{ {last_week_start} }' AND event_time < '{ {this_week_start} }'` @@ -104,6 +123,7 @@ - 是否没有系统表(如 `sqlite_master`)? - 是否只用了给定业务表? - 是否所有字段都能在对应表字段清单中找到(尤其检查 `students.name` vs `students.student_name`)? +- 若需求涉及“扣分”,是否已使用负数语义(如 `delta < 0`、`delta < -N`)而非 `delta > N`? 用户需求: { {在这里粘贴用户需求} }