docs: 强化看板SQL提示词的扣分负数规则

This commit is contained in:
JSR
2026-03-27 20:30:40 +08:00
parent ea58770f16
commit b7eaa6b526
+20
View File
@@ -85,6 +85,25 @@
3. 对可能为空的数据优先使用 `COALESCE` 3. 对可能为空的数据优先使用 `COALESCE`
4. 默认不写 `LIMIT`(系统外层会限制);除非用户明确要求更小结果集。 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) ## 8) 自然周规则(允许生成上个自然周 SQL)
当用户要求“上个自然周/本自然周”时,必须使用模板变量区间表达,不要自行计算数据库日期函数: 当用户要求“上个自然周/本自然周”时,必须使用模板变量区间表达,不要自行计算数据库日期函数:
- 上个自然周:`event_time >= '{ {last_week_start} }' AND event_time < '{ {this_week_start} }'` - 上个自然周:`event_time >= '{ {last_week_start} }' AND event_time < '{ {this_week_start} }'`
@@ -104,6 +123,7 @@
- 是否没有系统表(如 `sqlite_master`)? - 是否没有系统表(如 `sqlite_master`)?
- 是否只用了给定业务表? - 是否只用了给定业务表?
- 是否所有字段都能在对应表字段清单中找到(尤其检查 `students.name` vs `students.student_name`)? - 是否所有字段都能在对应表字段清单中找到(尤其检查 `students.name` vs `students.student_name`)?
- 若需求涉及“扣分”,是否已使用负数语义(如 `delta < 0``delta < -N`)而非 `delta > N`
用户需求: 用户需求:
{ {在这里粘贴用户需求} } { {在这里粘贴用户需求} }