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