Files
silver_pose/docs/05-coding-rules.md
T

44 lines
2.6 KiB
Markdown
Raw Normal View History

2026-07-20 22:05:55 +08:00
# 编码规则
> 每次动代码前先读完本文件,并以 [需求](02-requirements.md)、[技术栈](03-tech-stack.md) 和 [架构设计](04-architecture.md) 为事实约束。
## 黄金法则
1. 不臆造摄像头、模型、数据集、事件字段或指标;不确定就检查或询问。
2. 一轮只完成一个任务;不顺手提前实现 V2、云端、多摄像头或模型训练。
3. 推理、跟踪、事件判断、UI 和报警副作用必须按架构分离。
4. 每次实现先写失败测试,再做最小实现,再运行通过测试。
5. 完成以真实验证证据为准,并记录到 [../progress.md](../progress.md)。
## 模型与视频规则
- `best.pt` 只代表 Pose 模型;禁止把 Pose 置信度、关键点可见率或单帧规则分数命名为“摔倒概率”。
- 关键点有效性不得使用 `confidence > 0` 作为唯一标准;阈值、可见性要求和退化行为必须由配置与测试覆盖。
- 几何计算保留浮点精度;所有反余弦输入夹紧到 `[-1, 1]`;不因零向量崩溃。
- 事件确认使用单调时间和秒,不能依赖视频固定 FPS。
- 同一 `track_id` 的报警必须幂等;同一事件不得逐帧重复弹窗、播放声音或覆盖截图。
- RTSP 断流、空帧、无人员、低质量姿态是明确状态,绝不当作摔倒。
## 配置与隐私规则
- 配置中所有影响判断的阈值必须真正传入事件逻辑;UI 显示的值必须就是生效值。
- 真实 RTSP URL、用户名、密码、摄像头序列号和客户视频不得入库、不得输出到日志。
- 只提交 `config.example.json`;`config.local.json`、事件截图、ONNX/模型导出物和客户录像须由 `.gitignore` 排除。
- 保存截图前只保留演示所需的时间、ID、状态和画面,不在文件名中写个人身份信息。
## V1 / V2 迁移规则
- V2 开始前,V1 必须有通过的正反例录像回归与现场 RTSP 验收记录。
- Go 不直接加载 `.pt`;导出 ONNX 后必须锁定模型哈希、输入尺寸、预处理、NMS 和关键点格式。
- V2 只有在同一回归录像集上满足约定的事件数量、确认时间和无报警案例后才能标为可演示。
- 不以“Go 更稳定”替代压力、断流和回归证据。
## 完成前检查
- [ ] 任务验收命令通过。
- [ ] 正反例或单元测试覆盖当前改动。
- [ ] 文档、配置和事件字段与代码一致。
- [ ] 没有提交凭证、客户视频、模型大文件或运行工件。
- [ ] `06-tasks.md`、`current-state.md` 和 `progress.md` 已同步。
- [ ] 已过 [clean-state-checklist.md](clean-state-checklist.md)。