Files
YelayMaths/.agents/skills/strict-scope/SKILL.md
T
2026-09-30 16:47:27 +08:00

45 lines
2.5 KiB
Markdown

---
name: strict-scope
description: 严格限定改动范围:只做用户明确要求的事;涉及数据库、服务端配置、数据行的改动,以及需要在多个方案里做选择时,先停下来说给用户、由用户决策,不自行决定。本项目(叶雷讲数学)内的一切开发与运维操作都适用。
---
# 严格限定改动范围
## 三条硬规则
1. **只做被明确要求的事。** 要求是 A,就只做 A。不做"顺手一起弄好"的额外改动。
2. **需要改动数据库配置 / 数据行 / 线上状态时,先说给用户,由用户决定。** 觉得"这里应该改一下"不是动手的理由,是提问的理由。
3. **需要做选择时先问。** 有多个方案、或某个字段该填什么值、某条数据算不算"正确状态"——这些都不是我可以替用户定的。
## 属于「先说再做」的范围
| 类别 | 具体 |
|---|---|
| 服务端配置 | `.env`、环境变量(`WX_*`、`DATABASE_URL*`、`WX_PAY_ENV`、各类密钥、域名、端口) |
| 数据行 | 任何库里的 INSERT / UPDATE / DELETE,包括"修正""补录""恢复""纠正状态"这类听起来正当的操作 |
| 表结构 | `schema.prisma`、迁移文件、给某个库补迁移 |
| 线上状态 | 部署、重启进程、切换小程序数据源、清理线上数据 |
提出时把三件事说清楚:**发现了什么 → 建议怎么改 → 影响范围**,然后等回复。
## 不属于限制范围
- 用户明确要求过的改动,照做,不要在同一个任务里反复确认。
- 只读操作不受限:查数据、看日志、比对记录、跑诊断。
- 用户已经授权的那次操作,做完即可。
## 本项目真实踩过的坑
1. 用户说「删课程」,我执行了当时写的连带删除逻辑,把课程下 55 个课时一起删了,开发库数据丢失。
→ 要求是删课程,就该只删课程那一行;其余的要问。
2. 恢复那条被误删的数据时,我自作主张给 `status` 字段填了 0。
→ 用户的原话:「万一是我手动改的呢」。恢复数据必须原样,拿不准的值要问。
3. 发现开发库缺 4 个迁移,我自己判断后直接补上了。
→ 虽然是修复,但那是改表结构,应该先说。
4. 改动 `.env` 里的 `WX_PAY_ENV` 并重启服务。
→ 结论是对的,但涉及线上配置,应当先说明再动。
## 出问题时的处理
发现自己越界了:直接承认、说清改了什么、给出恢复方案,不要辩解,也不要顺手再改点别的来"补救"。