chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08
这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。
按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。
涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
DDL 基线合并 / Kiro 到 Claude Code 迁移
阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
133
docs/audit/changes/2026-03-24__lookback_days_60_to_90.md
Normal file
133
docs/audit/changes/2026-03-24__lookback_days_60_to_90.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# 变更审计记录:lookback_days 从 60 天扩大到 90 天
|
||||
|
||||
| 字段 | 值 |
|
||||
|------|-----|
|
||||
| 日期 | 2026-03-24 10:28:13 |
|
||||
| Prompt-ID | P20260324-102813 |
|
||||
| Session-ID | 8d0daac8 |
|
||||
| Session 路径 | docs/audit/session_logs/2026-03/24/36_e6cfbf4c_085324 |
|
||||
|
||||
## 操作摘要
|
||||
|
||||
将关系指数(RS/MS/ML)及全局 INDEX 层的 `lookback_days` 默认值从 60 天扩大到 90 天。原因:助教小燕历史服务过的客户中有 3 个(梅、蔡总、罗先生)因超出 60 天回溯窗口不在关系指数表中,扩大到 90 天覆盖更多有效关系对。
|
||||
|
||||
## 变更原因
|
||||
|
||||
调查发现助教小燕历史服务过 6 个客户,但其中 3 个因超出 60 天回溯窗口而不在关系指数表中。扩大到 90 天可覆盖更多有效关系对,减少因窗口过窄导致的客户丢失。
|
||||
|
||||
## 影响范围
|
||||
|
||||
### 数据库(ETL 库 `dws.cfg_index_parameters`)
|
||||
- RS `lookback_days`: 60 → 90
|
||||
- MS `lookback_days`: 60 → 90
|
||||
- ML `lookback_days`: 60 → 90
|
||||
|
||||
### 代码变更
|
||||
| 文件 | 变更内容 |
|
||||
|------|----------|
|
||||
| `apps/etl/connectors/feiqiu/tasks/dws/index/relation_index_task.py` | `DEFAULT_PARAMS_RS/MS/ML["lookback_days"]` 60→90;`.get()` fallback 60→90 |
|
||||
| `apps/etl/connectors/feiqiu/tasks/dws/index/base_index_task.py` | `DEFAULT_LOOKBACK_DAYS` 60→90 |
|
||||
| `apps/etl/connectors/feiqiu/tasks/verification/index_verifier.py` | 默认参数 `lookback_days=60` → 90 |
|
||||
| `apps/etl/connectors/feiqiu/orchestration/flow_runner.py` | verifier fallback 60→90 |
|
||||
| `apps/etl/connectors/feiqiu/config/defaults.py` | `index_lookback_days` 60→90 |
|
||||
| `apps/etl/connectors/feiqiu/.env` | `INDEX_LOOKBACK_DAYS=60` → 90 |
|
||||
| `.env.template` | `INDEX_LOOKBACK_DAYS=60` → 90 |
|
||||
|
||||
### 文档变更
|
||||
| 文件 | 变更内容 |
|
||||
|------|----------|
|
||||
| `apps/etl/connectors/feiqiu/docs/etl_tasks/index_tasks.md` | RS/MS/ML 参数清单 lookback_days 60→90 |
|
||||
| `apps/etl/connectors/feiqiu/docs/business-rules/index_algorithm_cn.md` | 默认天数描述 60→90 |
|
||||
| `docs/architecture/etl-feiqiu-architecture.md` | RS lookback_days 60→90 |
|
||||
|
||||
### 未变更(不在范围内)
|
||||
- WBI/NCI 的 `lookback_days_recency=60`:会员活跃判定窗口(NEW/OLD/STOP 分群),与 RS/MS/ML 的服务回溯窗口是不同概念
|
||||
- `member_index_base.py` 的 `DEFAULT_RECENCY_LOOKBACK_DAYS=60`:同上
|
||||
- DDL 基线 `docs/database/ddl/etl_feiqiu__dws.sql`:种子数据中的旧值保留作为历史记录,实际值由数据库 UPDATE 覆盖
|
||||
- PRD 文档 `关系指数PRD.txt`:原始需求文档,保留历史原貌
|
||||
|
||||
## 本次对话文件变更
|
||||
|
||||
### 新增文件
|
||||
- `docs/audit/prompt_logs/prompt_log_20260324_102813.md`
|
||||
- `docs/audit/session_logs/2026-03/24/36_e6cfbf4c_085324/main_01_8d0daac8.md`
|
||||
|
||||
### 删除文件
|
||||
- `docs/audit/session_logs/2026-03/24/36_e6cfbf4c_085324/main_01_fd2ad307.md`(被 8d0daac8 supersede)
|
||||
|
||||
## 改动注解
|
||||
|
||||
### `apps/etl/connectors/feiqiu/tasks/dws/index/relation_index_task.py`
|
||||
- 变更类型:修改
|
||||
- 原始原因:RS/MS/ML 三个指数的默认回溯窗口 60 天不足以覆盖部分低频但有效的客户关系对
|
||||
- 思路分析:`DEFAULT_PARAMS_RS`/`DEFAULT_PARAMS_MS`/`DEFAULT_PARAMS_ML` 三个字典中的 `lookback_days` 从 60 改为 90;`execute()` 方法中 `.get("lookback_days", ...)` 的 fallback 值同步从 60 改为 90,确保即使配置表未加载也使用新默认值
|
||||
- 修改结果:RS/MS/ML 计算时回溯 90 天的服务记录和充值记录,覆盖更多有效关系对
|
||||
|
||||
### `apps/etl/connectors/feiqiu/tasks/dws/index/base_index_task.py`
|
||||
- 变更类型:修改
|
||||
- 原始原因:基类常量 `DEFAULT_LOOKBACK_DAYS` 作为所有指数任务的全局默认值,需与子类保持一致
|
||||
- 思路分析:单行常量修改 `DEFAULT_LOOKBACK_DAYS = 60` → `90`
|
||||
- 修改结果:所有继承 `BaseIndexTask` 的指数任务默认回溯天数统一为 90
|
||||
|
||||
### `apps/etl/connectors/feiqiu/tasks/verification/index_verifier.py`
|
||||
- 变更类型:修改
|
||||
- 原始原因:校验器的 `lookback_days` 默认值需与计算任务一致,否则校验窗口与计算窗口不匹配
|
||||
- 思路分析:`__init__` 参数 `lookback_days: int = 60` → `90`
|
||||
- 修改结果:INDEX 层覆盖率校验和补齐操作使用 90 天窗口
|
||||
|
||||
### `apps/etl/connectors/feiqiu/orchestration/flow_runner.py`
|
||||
- 变更类型:修改
|
||||
- 原始原因:编排层创建 verifier 时的 fallback 值需同步
|
||||
- 思路分析:`flow_runner.py` 中构造 `IndexVerifier` 时的 fallback `60` → `90`
|
||||
- 修改结果:编排层与校验器默认值一致
|
||||
|
||||
### `apps/etl/connectors/feiqiu/config/defaults.py`
|
||||
- 变更类型:修改
|
||||
- 原始原因:配置默认值字典是所有配置的最终 fallback 层
|
||||
- 思路分析:`DEFAULTS["run"]["index_lookback_days"]` 从 60 改为 90
|
||||
- 修改结果:即使 `.env` 和环境变量均未设置,配置系统也返回 90
|
||||
|
||||
### `apps/etl/connectors/feiqiu/.env`
|
||||
- 变更类型:修改
|
||||
- 原始原因:ETL 模块本地环境变量需同步
|
||||
- 思路分析:`INDEX_LOOKBACK_DAYS=60` → `90`
|
||||
- 修改结果:ETL 模块运行时环境变量为 90
|
||||
|
||||
### `.env.template`
|
||||
- 变更类型:修改
|
||||
- 原始原因:模板文件是新环境部署的参考,需反映当前默认值
|
||||
- 思路分析:`INDEX_LOOKBACK_DAYS=60` → `90`
|
||||
- 修改结果:新部署环境默认使用 90 天窗口
|
||||
|
||||
### `apps/etl/connectors/feiqiu/docs/etl_tasks/index_tasks.md`
|
||||
- 变更类型:修改(文档同步)
|
||||
- 修改结果:RS/MS/ML 参数清单中 lookback_days 描述更新为 90
|
||||
|
||||
### `apps/etl/connectors/feiqiu/docs/business-rules/index_algorithm_cn.md`
|
||||
- 变更类型:修改(文档同步)
|
||||
- 修改结果:算法说明文档中默认天数描述更新为 90
|
||||
|
||||
### `docs/architecture/etl-feiqiu-architecture.md`
|
||||
- 变更类型:修改(文档同步)
|
||||
- 修改结果:架构文档中 RS lookback_days 描述更新为 90
|
||||
|
||||
## 回滚方式
|
||||
|
||||
```sql
|
||||
UPDATE dws.cfg_index_parameters
|
||||
SET param_value = 60
|
||||
WHERE index_type IN ('RS', 'MS', 'ML')
|
||||
AND param_name = 'lookback_days';
|
||||
```
|
||||
|
||||
代码侧将所有 90 改回 60 即可。
|
||||
|
||||
## 验证 SQL
|
||||
|
||||
```sql
|
||||
SELECT index_type, param_name, param_value
|
||||
FROM dws.cfg_index_parameters
|
||||
WHERE param_name = 'lookback_days'
|
||||
AND index_type IN ('RS', 'MS', 'ML');
|
||||
-- 预期:三行均为 90.000000
|
||||
```
|
||||
Reference in New Issue
Block a user