新建 sandbox_replay/balance_replay.py 模块,迁移 fdw_queries.get_member_balance, fdw_queries 改 thin wrapper 保持 5 处现有调用(chat/coach/customer x2/task_manager) 透明兼容。 数据源 dim_member_card_account 是 SCD2 维度表(原生支持时光机),sandbox 改造 关键是替换 scd2_is_current=1 过滤为 scd2_start_time + scd2_end_time 时间过滤 (ref_date+1day 边界 = 当天结束时仍 active 的版本,timestamptz 比较稳定)。 双口径 UI 走查 PASS(member=2799207363643141 葛先生,SCD2 历史余额变化样本): - 4a live(today=2026-05-05): 储值余额 ¥6,602 - 4b sandbox=2026-04-20: 储值余额 ¥18,080(差异 1.1w+,时光机效果显著) unit test sprint1+sprint2 累计 24/24 PASS,无回归。 附带本次 sprint 2 触发的架构级登记: - 新建 docs/_overview/architecture-evolution-backlog.md(DWD 孤立 + Core 中间件 + 库重组,长远架构演进 backlog) - F1-6-tasks.md 登记 #3 累计交易笔数推迟 Sprint 3(ETL 配合新增 total_open_table_count,因现有 total_visit_count 实算 COUNT(settle_type IN (1,3)) 含商城订单,不符 Neo "开台次数"业务语义) - sandbox-replay-engine-spec §5.5 thin wrapper 决策原则(已在 #2 commit) 详见 docs/audit/changes/2026-05-06__f1_6_sprint2_member_balance.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
审计目录(docs/audit/)
项目级统一审计落地点。所有模块(ETL、后端、小程序、管理后台等)的审计产物均写入此目录。
子目录与文件
| 目录/文件 | 说明 |
|---|---|
changes/ |
AI 逐次变更审计记录(<YYYY-MM-DD>__<slug>.md) |
prompt_logs/ |
Prompt 日志文件(每次 prompt 生成一个独立文件,按时间戳命名) |
session_logs/ |
全量会话记录(按 YYYY-MM/DD/ 分层),含双索引和 LLM 操作摘要。详见 SESSION-LOG-GUIDE.md |
audit_dashboard.md |
审计一览表(自动生成,勿手动编辑) |
SESSION-LOG-GUIDE.md |
Session 日志使用指南(索引字段、查询方法、典型场景) |
维护约定
prompt_logs/由prompt-audit-logHook 自动管理,请勿手动编辑session_logs/由agentStopHook 自动提取,索引由提取脚本自动更新audit_dashboard.md由/audit流程自动刷新,也可通过python scripts/audit/gen_audit_dashboard.py手动重新生成- 变更审计记录由
/audit流程(audit-writer 子代理)生成,包含session_id字段与 Session 日志双向关联 - 历史记录(迁移前 ETL 子项目的审计)已合并至此目录
审计追溯链
Prompt 日志 ←→ Session 日志 ←→ 变更审计记录
(用户说了什么) (AI 做了什么) (正式变更文档)
通过 Prompt-ID 和 Session-ID 可在三者之间双向追溯。详见 SESSION-LOG-GUIDE.md。