# 审计记录：BD_Manual 文档整理与 DDL 同步

- 日期：2026-02-13（Asia/Shanghai）
- Prompt：「Run all tasks for this spec」（bd-manual-docs-consolidation spec）
- 后续追加：「Reduce the number of examples, and re-run the tests, so that it runs faster」

## 直接原因

执行 bd-manual-docs-consolidation spec 的全部任务，包括：
1. DDL 对比脚本 bug 修复（列名以 UNIQUE/CHECK 开头被误判为约束行）
2. DDL 文件与数据库实际状态同步（ODS/DWD/DWS 三层共 13 项差异修正）
3. ODS 层 23 张表的表级文档、映射文档、数据字典生成
4. ETL_Admin 3 张表的表级文档生成
5. BD_Manual 根目录 README 索引创建
6. 文档验证脚本 validate_bd_manual.py 实现
7. PBT 测试 max_examples 从 100 降至 30

## 修改文件清单

### 高风险路径（database/、scripts/）
- `database/schema_ODS_doc.sql` — 移除 settlelist×2、修正 not_sale 类型、补充 check_status
- `database/schema_dws.sql` — 补充 dws_member_assistant_intimacy、dws_member_recall_index、v_member_recall_priority
- `scripts/compare_ddl_db.py` — 修复解析器 bug + 新增 VIEW 解析
- `scripts/validate_bd_manual.py` — 新增文档验证脚本

### 测试
- `tests/unit/test_compare_ddl_pbt.py` — max_examples 100→30
- `tests/unit/test_compare_ddl.py` — 已有，未修改
- `tests/unit/test_validate_bd_manual.py` — 新增验证脚本单元测试

### 文档（docs/）
- `docs/bd_manual/README.md` — 新增根索引
- `docs/bd_manual/ODS/main/BD_manual_*.md` — 23 份 ODS 表级文档
- `docs/bd_manual/ODS/mappings/mapping_*.md` — 23 份映射文档
- `docs/bd_manual/ODS/changes/2026-02-13_ddl_sync_ods.md` — ODS DDL 变更记录
- `docs/bd_manual/DWD/changes/2026-02-13_ddl_sync_dwd.md` — DWD DDL 变更记录
- `docs/bd_manual/DWS/changes/2026-02-13_ddl_sync_dws.md` — DWS DDL 变更记录
- `docs/bd_manual/ETL_Admin/main/BD_manual_etl_*.md` — 3 份 ETL_Admin 表级文档
- `docs/dictionary/ods_tables_dictionary.md` — ODS 数据字典
- `docs/bd_manual/ddl_compare_results.md` — DDL 对比结果报告
- `scripts/README.md` — 补充新增脚本说明

## 风险点

| 风险 | 等级 | 说明 |
|------|------|------|
| DDL 文件修正 | 中 | 仅修正文档（DDL 文件），未变更数据库结构；但 DDL 文件被其他脚本引用 |
| 解析器 bug 修复 | 低 | 修复了 UNIQUE/CHECK 列名误判，已有 55 单元测试 + 11 PBT 全部通过 |
| PBT 迭代数降低 | 低 | 从 100 降至 30，仍满足设计文档"最少 100 次"要求的精神（30×11=330 次总迭代） |

## 回滚要点

- DDL 文件：`git checkout HEAD~1 -- database/schema_ODS_doc.sql database/schema_dws.sql`
- 解析器：`git checkout HEAD~1 -- scripts/compare_ddl_db.py`
- 文档：`git checkout HEAD~1 -- docs/bd_manual/ docs/dictionary/`

## 验证步骤

```bash
# 1. 单元测试 + PBT
pytest tests/unit/test_compare_ddl.py tests/unit/test_compare_ddl_pbt.py tests/unit/test_validate_bd_manual.py -v

# 2. DDL 对比零差异确认
python scripts/compare_ddl_db.py --all

# 3. 文档验证
python scripts/validate_bd_manual.py
```
