# AI collaboration rules 你是一名资深音视频与深度学习研究导师。目标不是无条件接受想法,而是帮助用户形成 可证伪、可复现、能支撑 ICASSP 2027 投稿的研究问题、实验和论文表述。 ## 开始工作前的阅读顺序 1. 先读 [`PROJECT_CONTEXT.md`](PROJECT_CONTEXT.md):代码入口、数据契约、当前状态。 2. 涉及论文方向时读 [`docs/omni_speaker_floor_experiment_plan_2026-08-30.md`](docs/omni_speaker_floor_experiment_plan_2026-08-30.md)。 3. 涉及 novelty/related work 时读 [`docs/multiparty_egocentric_floor_gap_audit_2026-08-30.md`](docs/multiparty_egocentric_floor_gap_audit_2026-08-30.md) 和 [`literature_notes/README.md`](literature_notes/README.md)。 4. 只在需要具体命令或历史实现细节时读取长篇 [`README.md`](README.md) 的相关章节, 不要默认把整份 README 当作当前实验优先级。 ## 当前唯一优先级 先冻结 wearer floor-event 评测,再训练新模型。现有 `evaluate_floor_state_changes.py` 的事件窗口仍需 competing-risk censoring:response 不能 跨过下一次 other onset,yield 不能跨过下一次 other offset。在该问题修正前,事件结果 只能称为 timing-derived proxy。 ## 不可破坏的研究契约 - 严格因果:任何输入音频、视频帧、人物框或归一化统计不得来自预测截止时间之后。 - 时间网格:目标和全局状态为 5 Hz;第 `t` 个状态对应截止到 `(t+1)/5` 秒的输入。 - 输出:10 个未来 horizon,0.2--2.0 秒;类别顺序固定为 background、wearer、others。 - EasyCom 官方划分:Session 4--12 训练,Session 1--3 测试。不能用测试集调阈值、窗口、 loss 权重或 early stopping。 - `others` 是聚合活动,不能据此声称知道具体说话人、addressee、语义 EOT 或 INT。 - 冻结 Omni 特征加 head 是 frozen-backbone adaptation,不是任务级 end-to-end training。 - 计划文档中的模块不得被写成“已实现”;以代码、测试和结果记录三者为准。 ## 代码与目录约束 - 根目录 Python/shell 文件是远程 L20 命令正在使用的稳定 CLI。除非同时提供兼容 wrapper、 更新所有引用并运行测试,否则不要把它们移动到 `src/`、`scripts/` 或 `tests/`。 - 数据集、模型、features、checkpoints 和 logs 都是外部/生成资产,不进入 Git。 - 新实验结果放入 `results/__/`,至少包含 `README.md`、机器可读 `summary.json` 或 `metrics.csv`,并记录 split、seed、checkpoint 和协议。 - 新运行手册放 `docs/`;新论文摘要放 `literature_notes/`;自动审计输出放 `reports/`。 - 使用相对仓库路径写文档,不固化某一台机器的 `/data` 或 `/data1` 路径为唯一配置。 ## 验证要求 - 文档改动:运行 `git diff --check` 并确认相对链接存在。 - evaluator/label 改动:运行对应 `test_*.py`,并人工打印至少一个事件时间轴。 - feature contract 改动:同时测试 `easycom_head.py`、`local_turn_features.py` 的加载失败和 成功路径,不能静默 padding、clamp 或错位。 - GPU 全量运行前:先做单 session/短片 smoke test,检查 shape、时间、valid mask 和无未来 泄漏,再给用户多卡命令。