Skip to content

analytics/reports 剩下的 Sales / Revenue / Marketing 三节共 13 个报表名 src/ 里一个都没有,而真实发布的 6 份报表在整页上一次都没出现 #962

Description

@yinlianghui

来源:#936 + #951 + #952 并单实施(PR #954)过程中的卫星命中。#936 正文已明确把「本页其余条目」排除在它的主张之外(「若另有 analytics 文档漂移的单,建议把第 2 / 3 处并进去」),PR #954 因此只收口了 Lead reports 整节(#951)与 Service reports 整表(#936 的 SLA 行 + PM 在 #948 验收时判归的面扩)。本单是剩下的三节。

基线 = PR #954 合并后的 content/docs/analytics/reports*.mdx(行号届时重定位,三语同址)。

事实:13 个名字,0 个存在

src/reports/ 一共发布 10 份 报表(src/reports/index.ts 的 barrel 即全集)。PR #954 之后,页面上 4 份是真的(Lead 1 + Service 3),剩下三节的 13 个名字在 src/ 里 零命中:

节 页面上的名字 grep -rn "<name>" src/
📈 Sales(8) Pipeline by Stage 只命中 src/translations/*.ts —— 它是仪表盘磁贴标题(pipeline_by_stage),不是报表
Stale Opportunities 只命中 src/views/opportunity.view.ts —— 它是列表视图 label(⚠️ Stale Opportunities · Longest in Stage First),不是报表
Forecast vs Actual / Win-Loss Analysis / Sales Cycle Length / Top Performing Reps / Big Deals Won / Discount Approval Activity 全部零命中
💰 Revenue(3) Contracts Expiring / Active Contracts by Product / Renewal Pipeline 全部零命中(合同侧有 Renewal Calendar 等四个视图,没有任何报表)
📣 Marketing(2) Campaign ROI / Campaign Engagement 全部零命中,且根本无法自建:src/datasets/ 九个 dataset 里没有 campaign dataset,营销侧在语义层完全没有落点

反过来:6 份真实报表整页从未出现

PR #954 写进页面的是 lead.report.ts 与 case.report.ts 的四份。剩下 6 份从来没被这一页提过:

src/reports/* label
account.report.ts Accounts by Industry and Type
churn.report.ts Customer Churn Signals(含 At-Risk Accounts / Silent High-Value Accounts / Recently Lost Opportunities 三个块)
opportunity.report.ts Opportunities by Stage / Won Opportunities by Owner / Pipeline Coverage by Forecast × Quarter / Opportunity Funnel by Owner → Stage

其中几处正好是页面想要而没找到的东西:Top Performing Reps 的真身接近 Won Opportunities by Owner(opportunity_metrics 有 owner 维度,与 case_metrics 没有 owner 维不同),Pipeline by Stage 的报表真身是 Opportunities by Stage。

为什么要紧

与 #951 / #948 / #939 同一族伤害:读者按名字去产品里找,一个都搜不到;而真实存在的六份没人告诉他。Marketing 两行更进一步 —— 连自建的路都没有,因为没有 campaign dataset。

修复面(未做)

三语同步,以 src/reports/*.ts 与 src/datasets/*.ts 为唯一事实来源重写这三节,沿 #939 / #951 / PR #954 已落地的口径:列真实发布的那几份并说清各自按什么切;不存在的逐条点名,并区分「不存在但可自建」(维度在语义层里)与「连自建都不可能」(如营销:没有 dataset)。

边界

Refs #936 #951 #948 #939

Activity

  1. added
    documentationImprovements or additions to documentation
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Aug 6, 2026
  2. self-assigned this
    on Aug 6, 2026
  3. yinlianghui commented on Aug 6, 2026

    @yinlianghui
    CollaboratorAuthor

    🔒 认领(/pm-dispatch R32,与 #965 并单,本单为主单)— session session_01VHrPAGEgFDoHjphqYG4BMa,分支 claude/issue-962-965-analytics-truth。

    文件面(×3 语言,PR #954 刚改过两页,fresh main 重定位):analytics/reports 的 Sales(8)/Revenue(3)/Marketing(2) 三节(#962)+ analytics/cubes 整页(#965)。

    裁定:

    1. analytics/reports 剩下的 Sales / Revenue / Marketing 三节共 13 个报表名 src/ 里一个都没有,而真实发布的 6 份报表在整页上一次都没出现 #962:13 个幻影报表名按 src/reports/ 六份真实报表(Accounts by Industry and Type、Customer Churn Signals、opportunity.report.ts 四份)重写;Pipeline by Stage(磁贴标题)/Stale Opportunities(视图 label)两个「真名错位」按 docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 先例点名说清真身;Marketing 两行连自建都不可能(无 campaign dataset)如实写。口径沿 PR docs(analytics,administration): write the first-response claims, the Lead reports section and two behavioural claims to source (#936, #951, #952) #954 刚落地的 Lead/Service 两节——同页四节同措辞结构。
    2. analytics/cubes 整页建立在「四个内置 cube」之上,而 src/datasets/ 是九个 dataset:四个名字一个都不存在,Marketing Cube 连数据源都没有 #965:「四个内置 cube」按 src/datasets/ 九个真实 dataset 重写;Marketing Cube 无数据源、不可达 measure/dimension 逐条处理;平台侧主张(cube UI/刷新模型/Copilot 读 cube/custom cubes)按 dev 立单时的标记不预判为假——本仓证据不足的写成中性表述或明说未实测,沿 docs(administration): write the state-machine status vocabulary and the last two behavioural claims to source (#921, #940) #950 Copilot 节先例。
    3. PR docs(analytics,administration): write the first-response claims, the Lead reports section and two behavioural claims to source (#936, #951, #952) #954/docs(analytics): 两页 zh-Hant 的「轉換率」跟简体侧改写为「轉化率」(#905) #923 落地行零回退(先读 diff);docs(analytics): 两页 zh-Hant 的「轉換率」跟简体侧改写为「轉化率」(#905) #923 守卫(轉化率)与 docs(service): write the index page's dashboards & reports section to source (#948) #955 守卫(service/index)不应触发,单跑确认;「无 owner 维度」表述与 service.dashboard 的 Agent 全局筛选器绑定 owner_id,但 case_metrics 未暴露该维度——筛选器是否静默无效需浏览器实测 #966(globalFilters 观察)的未决实测互不预判——照抄 service/index 的《Standard dashboards & reports》四行全部失实:仪表盘描述里的 top agents / oldest open cases 不存在,三张报表名与 case.report.ts 的 label 都对不上 #948/docs(analytics,administration): write the first-response claims, the Lead reports section and two behavioural claims to source (#936, #951, #952) #954 已立措辞即可。
    4. SLA policy matrix: per-priority × tier clocks, first-response stamping, escalation that reassigns #595 不预判;src/ 零改动;三语同步;zh 内链不带锚。

    Generated by Claude Code

  4. yinlianghui commented on Aug 6, 2026

    @yinlianghui
    CollaboratorAuthor

    ✅ 验收通过(并单 #962+#965)—— PR #975 已转 ready 并挂 auto-merge(CI 8/8 全绿实核)。

    验收要点:

    1. analytics/reports 剩下的 Sales / Revenue / Marketing 三节共 13 个报表名 src/ 里一个都没有,而真实发布的 6 份报表在整页上一次都没出现 #962:13 个幻影名清空,真实 10 份报表各归其位;两处真名错位追到双真身层(Pipeline by Stage 有磁贴+图表标题两个真身);「14 天无活动」的隐藏错误顺带抓出(该筛选属 opportunity_stagnation 流程非视图);「可自建/连自建都不可能」逐条分档,Marketing 给出「记录侧有数、缺的是 dataset」的精确一层——不止纠错,还画出能力边界。
    2. analytics/cubes 整页建立在「四个内置 cube」之上,而 src/datasets/ 是九个 dataset:四个名字一个都不存在,Marketing Cube 连数据源都没有 #965:核心事实比 issue 更强(本仓零 cube 声明,ADR-0021 语义层 = 九 dataset,analytics-integrity 已钉);逐节不可达项给因;issue 的 Win rate 点名错误被纠正(opportunity.dataset.ts:92 确已声明)——对立单证据同样复核;平台侧四类主张沿 docs(administration): write the state-machine status vocabulary and the last two behavioural claims to source (#921, #940) #950 先例写中性,Service 节保留 docs(analytics,administration): write the first-response claims, the Lead reports section and two behavioural claims to source (#936, #951, #952) #954 原文零回退。
    3. 双向反向验证各按预判落地(carrier 红/幻影名盲区绿),「两页在报表名层无守卫」如实报告且不越界补;docs(analytics): 两页 zh-Hant 的「轉換率」跟简体侧改写为「轉化率」(#905) #923/service/index 的《Standard dashboards & reports》四行全部失实:仪表盘描述里的 top agents / oldest open cases 不存在,三张报表名与 case.report.ts 的 label 都对不上 #948 守卫单跑不触;三语行数/标题数自检对齐。

    越界发现处置:


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationpm:dispatchedDispatched to a dev agent by /pm-dispatch

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions