Codex 直接改的(格式 / 死代码 / 纯 bug,不动接口与语义): - winsorize(Series) 直接崩:select_dtypes 在 Series 上不存在,Series 分支提到最前并加数值 dtype 守卫 - winsorize 的分位数改为只在数值列上算,含文本列的赛题表不再崩(与已有 numeric_cols 判断对齐) - 删掉 detect_outliers 里已成空操作的 df = pd.DataFrame(data),去掉 df 别名 - clean_missing 的嵌套 if 合并(ruff SIM102),清掉 W293 行尾空白与函数内连续空行 测试: - 5 条 xfail 经 XPASS 信号确认已修好,摘掉 mark 转正式用例 (detect_outliers 4 条 + winsorize 混合类型 1 条) - 53 passed / 7 xfailed -> 58 passed / 2 xfailed - 剩 2 条 xfail 保留,且不是漏改而是设计没定: detect_outliers 遇文本列返回什么、impute_missing 的 mode 分支要不要就地改调用方的表 - ruff: 1 error -> All checks passed;pyright: 0 errors 不变 文档: - STATUS.md:L0 进度 4/12、验证结果表、下一步重写、新增决策 31 (Codex 可直接改 src 的范围:纯 bug / 格式 / 死代码;要选语义的留给用户) - CHANGELOG.md:本轮变更,并修掉 [Unreleased] 里被重复追加撑坏的一句 - docs/dev/personal-pitfalls.md:只追加第 7 条(守卫子句要排在类型分派之后)
文档索引
本目录是 MCM/ICM Toolkit 的需求、架构、方案与开发规范的唯一落盘处。
| 文档 | 内容 |
|---|---|
| 01-suggestion-review.md | 对 ChatGPT 建库建议的审查与精简:留什么、砍什么、补什么 |
| 02-architecture.md | 精简后的包结构、边界划分、统一接口约定 |
| 03-roadmap.md | 功能清单分级(L0 / L1 / L2 / 不做)与开发纪律 |
| 04-environment.md | conda / venv 环境配置、镜像、离线约束 |
| dev/function-card-template.md | S 档算法的「函数卡片」模板 |
| 05-git-workflow.md | Git 工作流、Gitea 远程(SSH 走 Tailscale)、行尾策略 |
| dev/personal-pitfalls.md | 个人易错点清单:只追加,追加前不通读 |
阅读顺序
- 先读
01-suggestion-review.md—— 它决定后面所有事。 - 再读
02-architecture.md—— 它决定代码往哪写。 - 开工前读
03-roadmap.md的对应条目 —— 它决定这次做什么、做到什么程度。 - 环境出问题看
04-environment.md。
项目级进度看根目录的
STATUS.md;本目录只放不会频繁变的内容。