# 审计记录：废弃独立 ODS/DWD 任务代码清理 + 文档同步

- 日期: 2026-02-14 (Asia/Shanghai)
- Prompt: 用户要求"扩大搜索面，对 loaders/, scripts/, tasks/, tests/ 等文件夹进行仔细搜索，一次性的删除掉这些残留，然后对 docs/etl_tasks 下的文档仔细检查，更新或重写，保证符合现实情况"
- 直接原因: 14 个独立 ODS 任务和 3 个独立 DWD 任务写入不存在的 `billiards.*` schema（无 DDL 定义），已被通用 ODS 任务（`billiards_ods.*`）和 `DWD_LOAD_FROM_ODS` 的 TABLE_MAP 完全替代。代码文件已在前一轮删除，但残留了测试工具中的废弃引用、注册表中的重复循环、以及文档中的过时内容。

## 修改文件清单

| 文件 | 变更类型 | 说明 |
|------|----------|------|
| `orchestration/task_registry.py` | 修改 | 删除底部重复的 `ODS_TASK_CLASSES` 注册循环（与顶部重复） |
| `tests/unit/task_test_utils.py` | 修改 | 删除废弃的 14 个 TaskSpec 定义（~370 行）+ 废弃 import；修复 IndentationError 语法错误 |
| `docs/etl_tasks/ods_tasks.md` | 重写 | 删除整个"独立 ODS 任务"章节（14 个任务的详细文档），仅保留"通用 ODS 任务"章节 |
| `docs/etl_tasks/dwd_tasks.md` | 修改 | 删除 TICKET_DWD/PAYMENTS_DWD/MEMBERS_DWD 三个废弃任务章节；概述表从 5 个任务改为 2 个 |
| `docs/etl_tasks/README.md` | 修改 | 删除独立 ODS 任务表格（14 行）；删除 3 个废弃 DWD 任务行；更新文档索引描述；修正命令示例 |
| `.kiro/steering/tech.md` | 修改 | Schema 列表从 `billiards`（不存在）改为 `billiards_ods`；修正 `--pipeline-flow` 为 `--data-source` |

## 风险点

- `orchestration/task_registry.py` 是任务注册的核心入口，删除重复循环后需确认 52 个任务全部正确注册
- `tests/unit/task_test_utils.py` 的 `TASK_SPECS` 现在为空列表，依赖它的参数化测试会 skip（预期行为）
- 文档重写后，所有 `billiards.*` 引用已清除，仅保留 `billiards_ods.*`/`billiards_dwd.*`/`billiards_dws.*`

## 回滚要点

- `orchestration/task_registry.py`：恢复底部的 `for code, task_cls in ODS_TASK_CLASSES.items()` 循环（功能上无影响，只是重复注册）
- `tests/unit/task_test_utils.py`：从 git 恢复废弃 TaskSpec 定义（但会导致 import 错误，因为源文件已删除）
- 文档：从 git 恢复旧版本

## 验证步骤

1. `python -c "from orchestration.task_registry import default_registry; print(len(default_registry.get_all_task_codes()))"` → 应输出 52
2. `python -c "import ast; ast.parse(open('tests/unit/task_test_utils.py','utf-8').read()); print('OK')"` → 应输出 OK
3. `pytest tests/unit -x --ignore=tests/unit/test_dws_tasks.py` → 418 passed, 1 skipped
4. `pytest tests/unit/test_doc_coverage_ods.py tests/unit/test_doc_coverage_dwd.py -v` → 全部 passed
5. 搜索 `billiards\.fact_` 和 `billiards\.dim_` 确认文档中无残留引用

## 无数据库 schema 变更

本次变更仅删除代码和更新文档，不涉及 DDL/migration/表结构变更，无需同步 `docs/bd_manual/`。
