docs: 增加红线清单,并把约束下沉到代码文件

起因:实测发现 Codex 不会主动把 338 行的规则手册当判断依据——
问“能用 PySide6 吗”答“可以评估”,问“加个 emoji 图标”直接给改法,
问“改错别字要建工单吗”结论对但依据是通用常识、不是 §0 的实际条件。
三次都表现为“知道代码事实,但不应用项目规则”。

对策一:红线上收
- 根 AGENTS.md 开头新增 5 条红线(Qt 绑定、下单开关、风控、凭据、
  不可逆阶段),并明确“不要论证其可行性,先停下来问用户”

对策二:把约束放到 agent 必然会打开的文件里
- pdd_ui.py / pdd_ui_event.py / settings_ui.py / settings_ui_event.py
  写入模块 docstring,说明各自职责和最易踩的硬性规则
- 四个文件目前只有 docstring,无实现

同步修正
- ui_event.py 已拆成按页面分的四个文件,更新 client/AGENTS.md
  的代码分层规则和 02 §3.1 的现状差异表

未包含:ui_main.py 和 demo1/auto_v1.py 的同类 docstring,
这两个文件承载尚未提交的代码,留待代码提交时一并处理。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
chengma
2026-08-06 12:01:38 +08:00
co-authored by Claude Opus 5
parent 0b645ee8b3
commit 1f95de373a
7 changed files with 121 additions and 5 deletions
+24 -3
View File
@@ -1,5 +1,26 @@
# 项目协作规则
## 红线
下面五条**任何情况下都不要自行改动,也不要论证它的可行性**。
需要突破其中任何一条时,**停下来问用户**,不要先给方案、不要先评估成本。
1. **Qt 绑定固定 PyQt5。** 不得改用 PyQt6 / PySide2 / PySide6,也不得安装其他绑定对应的 Fluent Widgets 包。
2. **真实下单开关默认关闭。** 不得通过调试参数、默认配置或界面误操作打开;未通过采购安全门禁前一律走演练模式。
3. **不绕过拼多多的验证码、风控和安全机制**,不自动注册登录,不自动付款。
4. **凭据(token、Cookie、密码)不得写入** `data/`、日志、数据库、Gitea 工单和 `docs/task`。
5. **任务一旦进入不可逆阶段**(`task_runs.irreversible_action_at` 有值),**只准核对订单,绝不重新下单**。
改动看起来再合理,只要碰到上面任意一条,先停下来告诉用户。
> **动 `client/` 下任何东西之前,先读 [client/AGENTS.md](client/AGENTS.md)。**
> 那里有技术栈、代码分层、线程、采购安全和界面的硬性规则,本文件不重复。
> **本项目的代码目前全部在 `client/` 下**,所以基本上只要是写代码,就必须先读它。
>
> 第一次接手本项目,还要先看:
> [上手指南](docs/client/00-getting-started.md)(装环境、跑起来)和
> [术语表](docs/client/00-glossary.md)(Outbox、幂等、不可逆阶段等)。
## 需求、缺陷与任务工作流
本流程适用于新需求、缺陷修复、重构以及会改变程序行为的任务。正式工单采用 **史诗级大工单(Epic)→ 最小可行产品工单(MVP)→ 单元任务工单** 三级结构。Gitea 工单是实施期间的事实来源,本地 `docs/task` 是任务完成后的最终归档。
@@ -216,7 +237,7 @@ Gitea 使用约定(**首次使用前需由项目负责人补全**):
## Client 子项目
- 处理 `client/` 下的需求、代码、测试或文档前,必须读取并遵循 `client/AGENTS.md`。
- 从仓库根目录启动 Codex 时也不能跳过该文件。
- Client 的详细需求和技术基线位于 `docs/client/`;按当前任务只读取相关文档。
- 处理 `client/` 下的需求、代码、测试或文档前,必须读取并遵循 [client/AGENTS.md](client/AGENTS.md)。
- 从仓库根目录启动时也不能跳过该文件(本文件开头已重复提醒一次)。
- Client 的详细需求和技术基线位于 [docs/client/](docs/client/);按当前任务只读取相关文档,清单见 [文档索引](docs/README.md)。
- Client 专用技术栈、线程、自动化安全、界面和验证规则不在根文件重复维护。