Files
novalon-website/PRODUCT.md
T
zhangxiang 4dcc15ebd0 fix(metrics): 数字口径 basis 结构强制,删除详情页虚构佐证
复评 P0 收尾:把「每个数字带口径」从个别页自觉升级为结构性强制。
- metrics-basis.ts:METRIC_BASES / METRIC_BASIS_NOTES + resolveMetricBasis
  (缺失·非法·大小写错一律回落最弱 target)+ weakestBasis(一组数字取最弱者聚合)
  + FORBIDDEN_PROOF_PHRASES;MetricsBasisNote 收 basis prop
- 类型层 Product.metrics / DataProof / ServiceMetric / Solution.outcomes /
  DataMetric / about keyMetrics 全部加 basis?;9 处调用点改为 basis 驱动
- content-types.ts 新增共享 metricBasisField(select)展开进 9 处字段定义;
  trustSignals 有意跳过(已有自己的 source)。seed 显式声明 55 条 target
- 删除字面虚构佐证:详情页「每一项指标都源自真实客户案例」、「经过实战验证」×3、
  「来自真实客户的使用数据」、「经实际场景验证」;给此前完全裸奔的 3 个共享
  数字渲染器(DataProofSection / detail-trust / detail-product-value)补上角注
- metrics-basis.test 3→16 例:basis 解析正控制、weakestBasis 次序、seed 全量
  显式声明 + 覆盖证明(防空跑假绿)+ 禁任何条目自称 verified + 禁词全源码扫描
- 文档同源:DESIGN.md 立 The Declared-Basis Rule;PRODUCT.md 常驻禁令;
  CONTEXT.md 记决策并警示 admin 字段需重跑 seed 才激活

边界:CMS 字段定义存 ContentModel.fields(DB 内 JSON),basis 下拉须重跑 seed
才会出现在 admin 表单;本次 DB 与 seed 数据值零改动,渲染端对缺 basis 兜底 target。

Gates: type-check 0 · jest 1594/132 · contrast 7/7 · headings 10/10
lint 0e/128w(与 stash 基线逐行比对,零新增告警)
2026-09-20 11:50:58 +08:00

38 lines
2.6 KiB
Markdown
Raw 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.
## Design Context
### Users
- 中国企业决策者(CEO/CIO/CTO),寻求数字化转型服务
- 使用场景:评估技术供应商、了解解决方案、发起咨询
- 期望感受:专业可信、决断清晰、技术前沿
### Brand Personality
- 沉稳 · 精致 · 可信赖
- 咨询顾问式的断言表达:答案先行、有立场、有依据
- 不是高高在上的"专家",而是坐下来一起想办法的"同行者"
### Aesthetic Direction
- **风格**: The Crimson Ledger(可审计的宣言)— 大字排印、细线分栏、克制的深红信号,像顶级咨询机构的账本页面
- **参考**: Bain / McKinsey 官网(答案先行的陈述式标题、数据条、结构化留白)
- **核心视觉**: 深红断言 Hero + hairline 账本分栏 + bain-card 细线卡片 + 编号数据条
- **反参考**: 过度装饰、花哨动画、多色渐变、拥挤布局;旧水墨体系(旋转渐变边框、鼠标跟随光晕)已退役
### Design Principles
1. **答案先行** — 标题直接给出结论与价值判断,不做悬案式文案;副标题与数据负责佐证
2. **朱砂信号(Cinnabar Signal** — 品牌红 #C41E3A 是唯一信号色:每页 ≥3 处触达点、面积 ≤10%;用于强调,绝不作装饰主色
3. **账本骨架** — 层次由 hairline 分隔线、对齐网格与字号字重建立,而非颜色多样性或装饰性边框
4. **安静底面** — 背景为白 / mist #F8FAFC 交替分区;深红区块与 ink #0A0E14 深色只留给 CTA 与收束区块
5. **克制动效** — 动效服务于信息传达:180–280ms、`--ease-ink`、hover 轻 lift + shadow,不做循环装饰动画
### 视觉令牌
令牌权威来源为 [DESIGN.md](DESIGN.md)(含机器可读 YAML 令牌层与 `.impeccable/design.json` 侧车)。本文件不再罗列具体令牌值,仅保留产品级永久约束:
- 品牌红 #C41E3A 每页 ≥3 触达点、面积 ≤10%
- 字体全部使用本地文件(Geist woff2 + PingFang 回退),禁止外部字体 CDN
- 动效时长 180280ms`--transition-fast``--transition-normal`),缓动 `cubic-bezier(0.22, 1, 0.36, 1)``--ease-ink`
- 字距下限 -0.04em,不得更紧
- 暗黑模式由 `html[data-theme='dark']` 覆盖 CSS 变量驱动,组件不得写死颜色字面量
- 楷体(`--font-brand`)为遗留例外,仅存量页面保留,新页面禁用
- 大数字必须有口径:指标声明 `basis: target|team-history|verified`,未声明按「目标口径,非既成结果」自动标注;禁止宣称数字源自真实客户案例或实战验证(公司 2026-01 成立、零公开客户案例)