Files
Neo-ZQYY/docs/audit/changes/2026-03-02__etl-unified-analysis-hook-merge.md
Neo 14a12342b5 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>
2026-04-20 06:35:42 +08:00

79 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 变更审计:合并 ETL Hook 为统一分析入口
- 日期2026-03-02 00:39:12
- Prompt-IDP20260301-235954
- 风险标签dir:etl, root-file
- 审计人Kiro AI
## 变更概述
将两个功能重叠的 Kiro Hook"Data Flow Structure Analysis" 和 "ETL Data Consistency Check")合并为一个统一入口 "ETL Unified Analysis"。新入口支持 `--mode structure|consistency|full`(默认 full同时为一致性检查增加每表数据截止日期展示。
## 变更文件清单
| 文件 | 变更类型 | 说明 |
|------|----------|------|
| `scripts/ops/etl_unified_analysis.py` | 新增 | 统一编排脚本 |
| `scripts/ops/etl_consistency_check.py` | 修改 | 新增截止日期功能 |
| `.kiro/hooks/etl-unified-analysis.kiro.hook` | 新增 | 统一 hook 入口 |
| `.kiro/hooks/dataflow-analyze.kiro.hook` | 修改 | 设置 enabled=false |
| `.kiro/hooks/etl-data-consistency.kiro.hook` | 修改 | 设置 enabled=false |
| `scripts/ops/monitor_etl_run.py` | 修改 | 引用文本更新 |
| `scripts/ops/export_etl_result.py` | 修改 | 引用文本更新 |
## 改动注解
### `scripts/ops/etl_unified_analysis.py`
- 变更类型:新增
- 原始原因:用户发现 "Data Flow Structure Analysis" 和 "ETL Data Consistency Check" 两个 hook 功能重叠,希望合并为一个统一入口,减少操作步骤
- 思路分析:采用编排模式,`etl_unified_analysis.py` 本身不实现分析逻辑,而是通过 `subprocess.run` 依次调用已有的 `analyze_dataflow.py``gen_dataflow_report.py``etl_consistency_check.py`。通过 `--mode` 参数控制执行哪些阶段,`--source` 参数控制数据来源(主动调 API 或读 ETL 落盘 JSON。full 模式下两阶段完成后合并报告输出到 `ETL_REPORT_ROOT`
- 修改结果:用户只需运行一个脚本或触发一个 hook 即可完成全部 ETL 分析。报告路径通过 `_env_paths.get_output_path()` 获取,符合产出物路径规范。支持 `--date-from``--date-to``--limit``--tables` 等参数透传
### `scripts/ops/etl_consistency_check.py`
- 变更类型:修改
- 原始原因:一致性检查报告中缺少每张表的数据截止日期信息,用户无法直观判断数据新鲜度
- 思路分析:新增 `_CUTOFF_DATE_COLUMN` 字典映射每张 ODS 表的时间截止字段(大部分用 `create_time``goods_stock_summary``stock_goods_category_tree``fetched_at`,部分表用 `createtime`)。新增 `get_data_cutoff_date()` 函数查询 `MAX(col)::date::text`。在 `check_api_vs_ods``check_ods_vs_dwd` 的返回结果中增加 `data_cutoff` 字段,报告汇总表增加"数据截止"列
- 修改结果:一致性检查报告的 API↔ODS 和 ODS↔DWD 汇总表中新增"数据截止"列,展示每表数据的最后截止日期。查询失败时静默回退显示"—",不阻断主流程
### `.kiro/hooks/etl-unified-analysis.kiro.hook`
- 变更类型:新增
- 原始原因:为统一编排脚本提供 Kiro hook 触发入口
- 思路分析:`userTriggered` 类型 hookprompt 中描述了默认行为full 模式三阶段)和可选参数。继承原两个 hook 的白名单规则ETL 元数据列、SCD2 管理列、siteProfile 嵌套字段、时间格式等价)
- 修改结果:用户可通过 Kiro 手动触发统一分析,替代原来需要分别触发两个 hook 的操作
### `.kiro/hooks/dataflow-analyze.kiro.hook`
- 变更类型:修改
- 原始原因:功能已合并到统一入口,需禁用避免重复
- 思路分析:仅将 `enabled` 字段从 `true` 改为 `false`,保留完整配置以备回退
- 修改结果hook 不再出现在可触发列表中,但配置文件保留
### `.kiro/hooks/etl-data-consistency.kiro.hook`
- 变更类型:修改
- 原始原因:功能已合并到统一入口,需禁用避免重复
- 思路分析:同上,仅设置 `enabled: false`
- 修改结果hook 不再出现在可触发列表中,但配置文件保留
### `scripts/ops/monitor_etl_run.py`
- 变更类型:修改(简要)
- 报告模板中"下一步"引用文本从 "ETL Data Consistency Check" 更新为 "ETL Unified Analysis统一分析"
### `scripts/ops/export_etl_result.py`
- 变更类型:修改(简要)
- 报告模板中"下一步"引用文本从 "ETL Data Consistency Check" 更新为 "ETL Unified Analysis统一分析"
## 本次对话文件变更
### 新增文件
- `docs/audit/prompt_logs/prompt_log_20260301_235954.md`
### 修改文件
- `NeoZQYY.code-workspace`
- `docs/h5_ui/pages/customer-detail.html`
## 合规检查
- ⚠️ 迁移 SQL
- ⚠️ DDL 基线:不涉及
- ⚠️ OpenAPI spec不涉及本次变更不涉及接口代码
- ⚠️ 文档同步:无缺失项(`compliance.code_without_docs` 为空)