feat: App2a 区域财务洞察 APP 派生整包上线 #1

Open
root wants to merge 0 commits from dev into master
Owner

概述

将 App2 财务洞察 72 组合(8 时间 × 9 区域)从单百炼 APP 拆分为 2 个 APP

  • app2_finance(全域版 · 不变)承担 area='all' 的 8 组合
  • app2a_finance_area(新建 · 区域派生版)承担 area != 'all' 的 64 组合

区域粒度专注业态定位分析(让利结构 / 业态特征引用 / 助教业态合理性),不再被全店级字段(储值卡 / 现金流 / 按星期)拖累,质量显著提升。

本轮 6 commit(dev 分支最新 6 条)

SHA 范围
cd511d0 feat(etl): DWS 增加 member_order_count 聚合 + 顺手修 pre-existing bug(area 未匹配订单 all 兜底)
76a2363 feat(db): DWS 新列 + app.v_/dws.v_ 双视图重建 + ai_cache CHECK 放开
8638eca feat(backend): 新建 app2a prompt 构建器 + config/schemas/admin_ai/dispatcher 扩展 + 72 循环拆分
66be873 feat(miniprogram): 按 area 切 cache_type + seq 精确匹配 + cache miss 清空 UX 修复
7107884 feat(admin-web): AIPrewarm 分组展示 + 每行触发 + AppType 联合类型
d269ee6 docs(ai): v1.2 system prompt + 多 APP 设计 v2 + 审计 + A/B 脚本

质量验证(Phase E)

  • 后端 7 项单测全通过(config / cache_type / router / prompts / dispatcher / 4 业态 prompt 构建 / 拒绝 area='all')
  • 百炼 A/B 24 次采样(8 业态 × 3 轮):
    • 成功率 100% · 12 条齐整率 100% · H1/H3/H7 硬约束 100%
    • 平均耗时 77.92s · 平均 tokens 11,229
    • 三色灯业态差异化识别准确(ktv 全黄灯为业态正常 · 其他业态多数红灯)
  • 前端 E2E 全通过:playwright admin-web AIPrewarm UI · 微信开发者 MCP vip/mahjong 业态切换实测

审计记录

docs/audit/changes/2026-04-23__app2a_finance_area_integrated.md(13 高风险文件逐项注解 + 回滚策略 + 4 条验证 SQL)

上线 checklist(生产窗口执行)

  1. 执行 2 个生产库 migration:
    • db/etl_feiqiu/migrations/20260423__app2a_add_member_order_count.sql
    • db/zqyy_app/migrations/20260423__ai_cache_allow_app2a.sql
  2. 回填 6 个月 member_order_count(约 30 min):
    uv run python scripts/ops/backfill_finance_area_daily.py --site-id 2790685415443269 --start-date 2025-10-23 --end-date 2026-04-22
  3. 部署后端(热更新)
  4. admin-web 点"触发全量预热"让 dispatcher 拆分逻辑跑完 72 组合(约 1-2 小时)
  5. 小程序验证:切 VIP/麻将房应显示 app2a 12 条洞察 + 正确三色灯

遗留事项(独立 ticket)

  • ETL 一致性:04-21/04-19 反向差 3-4 单(全店 summary 任务过滤规则与区域任务不同),独立于本轮
  • member_order_count 回填完成前首周区域会员占比字段会"样本不足",AI 已按 H2 规则自动降权引用

PR 里不只本轮 6 commit

本 PR 含 12 commit(本轮 6 + 之前会话 6 条历史堆积),base 分支选 master 会把全部 dev 堆积都合过去。Review 时重点看本轮 6 条(cd511d0~d269ee6)。

如需只 merge 本轮,可选 cherry-pick 方式 · 但需要决策是否要先把历史也合入 master。

## 概述 将 App2 财务洞察 72 组合(8 时间 × 9 区域)从单百炼 APP 拆分为 **2 个 APP**: - `app2_finance`(全域版 · 不变)承担 area='all' 的 8 组合 - `app2a_finance_area`(新建 · 区域派生版)承担 area != 'all' 的 64 组合 区域粒度专注业态定位分析(让利结构 / 业态特征引用 / 助教业态合理性),不再被全店级字段(储值卡 / 现金流 / 按星期)拖累,质量显著提升。 ## 本轮 6 commit(dev 分支最新 6 条) | SHA | 范围 | |---|---| | `cd511d0` | feat(etl): DWS 增加 member_order_count 聚合 + **顺手修 pre-existing bug**(area 未匹配订单 all 兜底) | | `76a2363` | feat(db): DWS 新列 + app.v_*/dws.v_* 双视图重建 + ai_cache CHECK 放开 | | `8638eca` | feat(backend): 新建 app2a prompt 构建器 + config/schemas/admin_ai/dispatcher 扩展 + 72 循环拆分 | | `66be873` | feat(miniprogram): 按 area 切 cache_type + seq 精确匹配 + cache miss 清空 UX 修复 | | `7107884` | feat(admin-web): AIPrewarm 分组展示 + 每行触发 + AppType 联合类型 | | `d269ee6` | docs(ai): v1.2 system prompt + 多 APP 设计 v2 + 审计 + A/B 脚本 | ## 质量验证(Phase E) - **后端 7 项单测全通过**(config / cache_type / router / prompts / dispatcher / 4 业态 prompt 构建 / 拒绝 area='all') - **百炼 A/B 24 次采样**(8 业态 × 3 轮): - 成功率 100% · 12 条齐整率 100% · H1/H3/H7 硬约束 100% - 平均耗时 77.92s · 平均 tokens 11,229 - 三色灯业态差异化识别准确(ktv 全黄灯为业态正常 · 其他业态多数红灯) - **前端 E2E 全通过**:playwright admin-web AIPrewarm UI · 微信开发者 MCP vip/mahjong 业态切换实测 ## 审计记录 `docs/audit/changes/2026-04-23__app2a_finance_area_integrated.md`(13 高风险文件逐项注解 + 回滚策略 + 4 条验证 SQL) ## 上线 checklist(生产窗口执行) 1. 执行 2 个生产库 migration: - `db/etl_feiqiu/migrations/20260423__app2a_add_member_order_count.sql` - `db/zqyy_app/migrations/20260423__ai_cache_allow_app2a.sql` 2. 回填 6 个月 `member_order_count`(约 30 min): `uv run python scripts/ops/backfill_finance_area_daily.py --site-id 2790685415443269 --start-date 2025-10-23 --end-date 2026-04-22` 3. 部署后端(热更新) 4. admin-web 点"触发全量预热"让 dispatcher 拆分逻辑跑完 72 组合(约 1-2 小时) 5. 小程序验证:切 VIP/麻将房应显示 app2a 12 条洞察 + 正确三色灯 ## 遗留事项(独立 ticket) - ETL 一致性:04-21/04-19 反向差 3-4 单(全店 summary 任务过滤规则与区域任务不同),独立于本轮 - member_order_count 回填完成前首周区域会员占比字段会"样本不足",AI 已按 H2 规则自动降权引用 ## PR 里不只本轮 6 commit 本 PR 含 **12 commit**(本轮 6 + 之前会话 6 条历史堆积),base 分支选 `master` 会把全部 dev 堆积都合过去。Review 时重点看**本轮 6 条**(cd511d0~d269ee6)。 如需只 merge 本轮,可选 `cherry-pick` 方式 · 但需要决策是否要先把历史也合入 master。
root added 20 commits 2026-04-22 14:08:42 +00:00
- Add CLAUDE.md (root + ETL subdirectory + db subdirectory) consolidating all Kiro steering docs
- Add .mcp.json migrated from .kiro/settings/mcp.json (test DBs enabled, prod disabled)
- Add .claude/commands/ (audit, doc-sync, db-docs) replacing Kiro skills
- Add .claude/hooks/ (session_start, post_edit_audit, stop_audit_check) replacing Kiro hooks
- Add .claude/settings.json registering all hooks
- Add scripts/audit/prescan.py merging Kiro's audit_flagger + compliance_prescan
- Remove .kiro/agents, hooks, scripts, settings, skills, state (migrated or obsolete)
- Update .gitignore for Claude Code

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- .kiro/specs/ → docs/specs/(41 个历史需求 spec 迁移,移除 .config.kiro)
- CLAUDE.md 三层拆分:根文件精简 + apps/backend/CLAUDE.md + .claude/commands/
- 新增 /spec-close、/pre-change 两个工作流命令
- DDL 基线刷新(从测试库重新导出 11 个文件,dws 35→38 表,biz 18→21 表)
- BD_Manual → BD_manual 命名统一(48 个文件)
- 修复 3 处文档与数据库不一致(auth.users.status 默认值、scheduled_tasks 字段、RLS 视图数)
- 新增 BD_manual_public_rbac_tables.md(public schema 8 张 RBAC/工作流表)
- 合并 biz.trigger_jobs 文档(10→12 字段,归档独立文档)
- docs/database/README.md 索引更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
包含多个会话的累积代码变更:
- backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔
- admin-web: ETL 状态页、任务管理、调度配置、登录优化
- miniprogram: 看板页面、聊天集成、UI 组件、导航更新
- etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强
- tenant-admin: 项目初始化
- db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8)
- packages/shared: 枚举和工具函数更新
- tools: 数据库工具、报表生成、健康检查
- docs: PRD/架构/部署/合约文档更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 清理 1155 个已删除的历史文件(废弃 prompt_logs、tmp、旧 ops 脚本)
- export/ 数据文件从 git 移除(已在 .gitignore)
- demo-miniprogram 从 tmp/ 移入 apps/,添加 CLAUDE.md 注解
- DDL 合并:完整 schema 定义填充到 db/*/schemas/(从 docs/database/ddl/ 复制)
- 39 个 v1 迁移脚本归档到 db/_archived/migrations_v1_merged/
- 4 个迁移变更类 BD_Manual 文档归档到 docs/database/_archived/
- .gitignore 补充 .vite/ 和 apps/*.zip
- settings.json 添加 effortLevel 默认配置
- scripts/ops/ 新增运维脚本入库

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
连库验证确认 DDL 文件与���据库现状完全同步,仅更新生成日期戳。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 子系统表新增 apps/demo-miniprogram/(MOCK 小程序标杆校对)
- db/ 描述从 "DDL/迁移/种子" 更新为 "权威DDL/迁移归档/FDW配置"
- db/CLAUDE.md 目录结构对齐实际(schemas/ 为主、migrations 留空、种子已合并)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 审计记录:2026-04-06__v1-cleanup-ddl-consolidation.md
- 刷新审计一览表(125 条记录)
- 修复 repo_root.py:.kiro 已删除后改用 pyproject.toml + CLAUDE.md 检测

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
主线 1: rns1-customer-coach-api + 04-miniapp-core-business 后端实施
  - 新增 GET /xcx/coaches/{id}/banner 轻量接口
  - performance/records 加 coach_id 参数 + view_board_coach 权限分流
  - coach/customer/performance/board/task 服务层重构
  - fdw_queries 结算单粒度聚合 + consumption_summary 视图统一
  - task_generator 回访宽限 72h + UPSERT 替代策略 + Step 5 保底清理
  - recall_detector settle_type=3 双重限制 + 门店级 resolved

主线 2: 小程序权限分流 + 新增 coach-service-records 管理者视角业绩明细页
  - perf-progress 共享模块去重 task-list/coach-detail 动画逻辑
  - isScattered 散客标记端到端
  - foodDetail/phoneFull/creator* 字段透传

主线 3: P19 指数回测框架 Phase 1+2
  - 3 个指数表 stat_date 日快照模式
  - 新增 DWS_INDEX_BACKFILL / DWS_TASK_SIMULATION 工具任务
  - task_engine 升级 HTTP 实时 + 推演回测双模式

主线 4: Core 维度层启用
  - 新增 CORE_DIM_SYNC 任务(DWD → core 4 维度表)
  - 修复 app 视图空查询问题

主线 5: member_project_tag 改为 LAST_30_VISITS 消费次数窗口

主线 6: 2 个迁移 SQL 已执行(stat_date + member_project_tag 新窗口)
  - schema 基线与 DDL 快照同步

主线 7: 开发机路径迁移 C:\NeoZQYY → C:\Project\NeoZQYY(约 95% 改动量)

附带: 新建运维脚本(churned_customer_report / simulate_historical_tasks /
      backfill_index_snapshots)+ tools/task-analysis/ 任务分析工具

合计 157 文件。未包含中间产物(tmp/ .playwright-mcp/ inspect-* excel/sheet 分析 txt)。
审计记录见下一个 commit。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 新增 docs/audit/changes/2026-04-20__historical-batch-pre-audit.md
  157 文件分批盘点审计(7 条主线 + 10 项高/中风险 + 2 份迁移 SQL DDL 清单)
- 补追 docs/audit/changes/2026-04-15__meituan-settle-core-sync.md
  原审计产物因 .gitignore 屏蔽长期未入仓,本次一并追回
- 刷新 docs/audit/audit_dashboard.md(33 条审计记录)
- .gitignore 白名单放行 docs/audit/changes/*.md 与 audit_dashboard.md
  同时屏蔽 changes/changes/ 嵌套误产物目录
- 新增 docs/specs/audit-gap-recovery/tasks.md
  扫描嵌套目录发现 96 份 D 类孤本(从未入过 git history),
  生成独立 PRD 供单开任务清理与补追
- 文档同步(高风险项):
  - apps/backend/docs/API-REFERENCE.md (+69)
  - apps/miniprogram/README.md (+50)
  - apps/etl/connectors/feiqiu/docs/architecture/data_flow.md (+52/-2)
  - apps/etl/connectors/feiqiu/docs/architecture/system_overview.md (+5/-3)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
这些审计记录原本堆积在 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>
按 docs/specs/audit-gap-recovery/tasks.md 阶段 2/4 完成:

阶段 2(B 类内容漂移,1 份)
决策:保留主目录版 2026-04-06__v1-cleanup-ddl-consolidation.md。
两版仅差 1 行路径(第 128 行):
  - 主目录版:cd c:/NeoZQYY && python tools/db/gen_consolidated_ddl.py
  - 嵌套版:   cd c:/Project/NeoZQYY && ...
主目录版是 2026-04-06 审计当天原始写法(与 v1 整理 commit 779b2f6 同期),
忠于历史真相;嵌套版是开发机迁移后批量路径替换过的版本,舍弃。
差异过小,不单独备份。

阶段 4(删除嵌套目录)
- rm -rf docs/audit/changes/changes/(本地删除,目录本就被 .gitignore 屏蔽,
  无 git 历史需清理)
- .gitignore 移除 docs/audit/changes/changes/ 临时屏蔽规则(嵌套目录已不复存在)
- 刷新 docs/audit/audit_dashboard.md,当前 128 条记录
  (主目录 129 份 md 中有 1 份 2026-03-24_fix_cfg_skill_type_missing_records.md
   因单下划线命名异常被 dashboard 脚本忽略,后续可重命名)

验证
- ls docs/audit/changes/*.md | wc -l = 129(原 33 + D 补追 96 = 129 ✓)
- ls docs/audit/changes/changes/ 返回 "No such file"(✓)
- git log --oneline -- "docs/audit/changes/" 有本次补追 + 清理 commit(✓)

audit-gap-recovery PRD 至此全部 4 阶段执行完毕。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-03-24_fix_cfg_skill_type_missing_records.md
  → 2026-03-24__fix_cfg_skill_type_missing_records.md

该文件源自 audit-gap-recovery 阶段 1 补追的 96 份 D 类孤本之一,原命名采用单
下划线分隔日期与 slug,与 gen_audit_dashboard.py 期望的双下划线格式不符而被
脚本忽略。补齐下划线后 dashboard 记录数从 128 升至 129,与主目录 md 文件
数一致。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- .gitignore: 追加 .playwright-mcp/ 与 apps/miniprogram/.font_patch_tmp/ 两条忽略规则
- apps/miniprogram/scripts/: 新建目录, 迁入 TDesign BOM 修复脚本 inspect-wechat-font.ps1 及其检查报告
- 根目录 excel_analysis_report.txt / sheet_structure.txt 归位 tmp/, 修正 root-file 风险标签
- 审计记录 2026-04-20__legacy-untracked-cleanup-review.md, 含实际执行段与回滚路径
- audit_dashboard.md 由 gen_audit_dashboard.py 刷新至 130 条

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1. finance_area_daily.py:
   - _AREA_AGG_FIELDS 增加 member_order_count · _COUNT_FIELDS 常量统一 int 转换
   - extract SQL 增加 sh.member_id 字段
   - transform 按 CLAUDE.md DWS 规范 member_id > 0 判定是否会员订单
   - _build_area_row / _build_sum_row 支持新计数字段

2. pre-existing bug 修复(顺手):
   area_code 为 None(table_id 未映射)的订单之前既不计入具体区域也不计入 all,
   导致全店 order_count/member_order_count > 各区域之和。
   修复:新增 _unknown 桶收纳未匹配订单 · 构建 all 行时追加合入 source_rows。

3. backfill_finance_area_daily.py extract SQL 加 sh.member_id
   支持回填历史 member_order_count 数据。

实测:纯函数单测 + 测试库 ETL 7 天回放 · 04-18/04-20 等日期全店 vs 区域和
从差 1 单修复为 0 差异 · 纯函数新增 2 条未匹配订单用例断言全通过。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1. db/etl_feiqiu/migrations/20260423__app2a_add_member_order_count.sql:
   - dws.dws_finance_area_daily 增加 member_order_count 列 (integer NOT NULL DEFAULT 0)
   - 重建 app.v_dws_finance_area_daily RLS 视图暴露新列
   - 同步重建 dws.v_dws_finance_area_daily(遵守双 schema 规则)
   - 列顺序因 PostgreSQL CREATE OR REPLACE VIEW 限制必须加在末尾

2. db/zqyy_app/migrations/20260423__ai_cache_allow_app2a.sql:
   - biz.ai_cache.chk_ai_cache_type CHECK 约束放开 app2a_finance_area 新值
   - DROP 旧 7 项 CHECK + CREATE 含 8 项的新 CHECK(新增 app2a_finance_area)

3. docs/database/changes/ 两份变更文档:
   - 变更说明 + 兼容性 + 回滚策略 + 3-4 条验证 SQL

测试库已执行 + 验证通过。生产库待上线窗口按 checklist 跑。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1. apps/backend/app/ai/prompts/app2a_finance_area_prompt.py (新建):
   - payload: 业态说明 + 区域占比 + 对比口径 + 核心 KPI + 优惠构成
     + 助教成本 + 区域级单位经济 + 按星期聚合 + 日粒度异常 + 行业基线
   - 5 个区域级辅助函数:_fetch_area_daily_series / _build_area_unit_economics
     / _aggregate_by_weekday_area / _detect_anomaly_days_area / _fetch_area_share
   - AREA_INDUSTRY_TRAITS 字典(7 业态 trait + peer 描述)
   - 复用 app2_finance_prompt 的 _build_coach_kpi / _build_discount_kpi 等公共函数

2. config.py: AIConfig 增加 app_id_2a_finance_area + DASHSCOPE_APP_ID_2A_FINANCE_AREA

3. schemas.py: CacheTypeEnum 增加 APP2A_FINANCE_AREA

4. dispatcher.py:
   - APP2A_AREA_OPTIONS 常量(8 业态 · area != 'all')
   - _handle_dws_completed 72 循环拆分:
     area='all' 走 app2_finance · 其他 8 业态走 app2a_finance_area
   - run_single_app 新增 elif 'app2a_finance_area' 分支(拒绝 area='all')

5. admin_ai.py: _SUPPORTED_APP_TYPES 加 'app2a_finance_area'

6. prompts/__init__.py: 导出 build_app2a_area_prompt

7. .env: 追加 DASHSCOPE_APP_ID_2A_FINANCE_AREA 百炼 APP ID

实测:7 项集成单测全通过(config/cache_type/router/prompts/dispatcher 常量/
4 业态 prompt 构建/拒绝 area=all)· 端到端实调 vip 组合返回 12 条高质量洞察
严格遵守 v1.2 system prompt 全部 7 项硬约束(H1-H7)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
board-finance.ts _loadAIInsights 改造:

1. cache_type 动态切换:
   area='all' → 'app2_finance'
   area != 'all' → 'app2a_finance_area'

2. seq 精确匹配(替代末两条启发式):
   - map 阶段保留 seq 字段 (Number(item.seq) || idx+1)
   - _extractSummary 优先 find(i => i.seq === 11/12)
   - 回退:找不到时用末两条启发式

3. UX bug 修复:
   原代码 cache miss 时静默 return 导致切换区域后 UI 保留上个区域陈旧数据
   修复:进入函数先 setData 清空 aiInsights / aiInsightSummary / aiInsightDetails
   / summaryLightType / summaryLightLabel

实测:微信开发者 MCP E2E 验证:
- 全域面板 12 条 + 🔴 红灯 + seq 1-12 精确
- 切 vip 显示 app2a "客单价异动 321 元 符合 VIP 高客单定位"
- 切 mahjong 显示 app2a "麻将房成交收入 46,339 元 + 🟡 黄灯"
- 业态差异化识别准确

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1. AIPrewarm.tsx:
   - areaToAppType(area) helper · area='all' → app2_finance · 其他 → app2a_finance_area
   - handleRunOne / handleBackfillMissing 按 area 动态选 app_type
   - MissingRowWithGroup 含 __group_header 字段
   - groupedMissing 数据构造(全域 + 区域两组 · 每组前插 header 行)
   - 每列 onCell colSpan 合并单元格实现"全域 / 区域"分组标题行
   - Descriptions 加全域 8/X + 区域 64/X 双段统计

2. api/adminAI.ts:
   - 新增 AppType 联合类型(9 项,含 app2a_finance_area)
   - runApp 签名 appType: AppType(替代原 string)
   - RunAppResponse.app_type 同步为 AppType

3. AIOperations.tsx:
   - runAppType state 类型改为 AppType | undefined
   - import { AppType } type

实测:
- pnpm tsc --noEmit 全项目通过
- playwright E2E 访问 /ai/prewarm 显示 "全域 8/8 · 区域 63/64" 分段统计
  分组标题行正确合并 · 单独生成按钮按 area 路由到正确 app_type

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1. docs/ai/app2a_finance_area_system_prompt_20260422_v1.md (新建 · v1.2 生产版):
   - 基于 app2_finance V5.1 派生
   - 板块 C 改"业态收入结构" · 板块 E 改"业态定位与对比"
   - 新增 H7 硬约束:业态特征引用必须紧跟 payload 真实数据
   - H6 扩展区域级 6 类字段缺失降级(储值卡/分渠道现金流/现金流出/会员占比/按星期/日异常)
   - 经 3 次修正:v1"稀疏" → v1.1 纠正为业务真实 0/非 0 → v1.2 纠正为字段存在/整块缺失
   - 已同步百炼控制台 APP ID 0ae965029bc54706bcff44f511ac716b

2. docs/ai/app2_finance_multi_app_design.md (新建 · v2 定稿):
   - 6 章 + 3 附录 · Q1-Q7 全部决策 · 6 阶段 28 项 checklist
   - 72 组合数据源支持度三档梳理(必须 / 业务级全店 / 字段存在 vs 整块缺失)
   - 2 套 prompt 拼接方案 · 2 个派生百炼 APP 策略

3. docs/audit/changes/2026-04-23__app2a_finance_area_integrated.md (新建):
   - 完整审计记录 · 13 高风险文件逐项注解
   - 数据库变更 + 风险与回滚 + 验证方式 + 合规检查

4. docs/audit/audit_dashboard.md (刷新 · 135 条记录)

5. scripts/ab_test_app2a_area.py (新建):
   - 8 业态 × 3 轮 = 24 次采样评估含金量
   - 自动检测 H1/H2/H3/H7 硬约束通过率 + seq11 三色灯分布

6. scripts/ab_to_cache.py (新建):
   - 复用 A/B 结果直接写 ai_cache · 绕开百炼预算验证 UI 端到端

A/B 实测 24/24 成功 · 12 条齐整率 100% · H1/H3/H7 100% · 达生产级。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
root changed title from WIP: feat: App2a 区域财务洞察 APP 派生整包上线 to feat: App2a 区域财务洞察 APP 派生整包上线 2026-04-22 14:13:58 +00:00
This pull request has changes conflicting with the target branch.
  • .env
  • .kiro/specs/01-miniapp-db-foundation/tasks.md
  • .kiro/specs/02-etl-dws-miniapp-extensions/design.md
  • .kiro/specs/02-etl-dws-miniapp-extensions/tasks.md
  • .kiro/specs/04-miniapp-core-business/design.md
  • .kiro/specs/04-miniapp-core-business/tasks.md
  • .kiro/specs/[ETL]-fullstack-integration/design.md
  • .kiro/specs/[ETL]-fullstack-integration/tasks.md
  • .kiro/specs/assistant-abolish-cleanup/tasks.md
  • .kiro/specs/business-day-cutoff/design.md
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin dev:dev
git checkout dev
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: root/Neo-ZQYY#1