它的效果如何——工程层面的佐证。

Cosmic Story v2 采用 V 模型方法进行规格设计。每一项需求都有编号,每一项非功能需求都有测量约定,每一个测试目标都有覆盖率阈值。

  • 119 条可追溯需求——V 模型中零缺口。
  • 性能目标:章节生成 30 秒(p95),p99 GET 延迟 500 毫秒,4G 网络下前端 TTI 3 秒。
  • 安全:静态数据采用 AES-256 加密,传输采用 TLS 1.2+,JWT 访问令牌 1 小时 / 刷新令牌 30 天,软删除并在 30 天后对个人身份信息执行硬删除。
  • 无障碍:全局遵循 prefers-reduced-motion;每个可交互元素都带有 VoiceOver 与 TalkBack 标签。

规范的严谨

Cosmic Story v2 附带 V 模型规范——每个层级(系统、架构、模块、单元)都有相应的测试计划,并在每对层级之间设有追溯检查点。

V 模型规范

119 条需求,零缺口。每条需求都向前追溯到测试用例,向后追溯到用户故事。

20 个用户故事

每一个都有明确的验收标准。9 个"必须有"的故事决定发布与否;6 个"应该有"的故事指引迭代;5 个"可以有"的故事属于第 2 阶段。

15 项功能需求

相册上限、章节速率限制、共鸣维度数量、付费墙节奏规则、离线行为——每一项都已编号并经过测试。

12 个非功能性类别

性能、安全、测试、隐私、可用性、无障碍——每一项都附带一份测量契约,说明它是如何验证的。

性能目标

不是承诺——而是书面目标,每项都配有测量方法。

章节生成

95% 的请求在 30 秒或更短时间内完成。依据 BullMQ 任务时长分布进行测量。

API 延迟

在 1,000 名并发用户下,p99 的 GET /people、/journal、/inbox 低于 500 毫秒。通过 k6 负载测试进行测量。

前端 TTI

在模拟 4G 网络下,可交互时间为 3 秒或更短。通过 Lighthouse CI 进行测量。

测试覆盖率目标

由 `pnpm test:cov` 关卡强制执行的语句覆盖率阈值。

后端服务

服务层语句覆盖率目标为 85%;控制器为 80%。通过 Vitest 覆盖率报告验证。

前端 store 与 composable

composable 覆盖率为 85%;Pinia store 为 90%。同一套 Vitest 门槛,同一套报告。

安全态势

实打实的措施,逐项明示。

静态加密

日记与章节正文以 AES-256 加密存储,密钥由平台统一管理。磁盘上不留明文正文。

传输中 TLS 加密

所有 API 流量均经 TLS 1.2 或更新版本传输。HTTP 在边缘节点重定向至 HTTPS。

JWT 有效期

访问令牌在 1 小时后过期;刷新令牌在 30 天后过期。刷新时轮换令牌。

软删除 + 个人身份信息硬删除

先软删除,并设有 30 天的缓冲期,之后才会硬删除个人身份信息。

无障碍基线

这不是愿景,而是在代码评审中强制执行的基线。

prefers-reduced-motion

当在系统层面开启该设置时,所有 GSAP 动画都只保留透明度渐变。没有视差,没有形变,也没有随滚动触发的动效。

VoiceOver + TalkBack 标签

每个可交互元素都有 ARIA 标签。发布前已在 iOS VoiceOver 和 Android TalkBack 上手动验证。

这些是目标值,还是当前实测数据?

是目标值,并附有衡量约定。Cosmic Story v2 正在积极开发中;这里的数字来自决定能否发布的 V 模型 NFR 表。"如何衡量"一栏会准确告诉你哪种工具产生验证信号。

为什么后端覆盖率目标是 85%,而不是 100%?

因为100%的覆盖率只是虚荣指标——超过某个点之后,它只会去测试琐碎的代码,反而消耗了真正应投入到代码评审上的精力。我们用85%的语句覆盖率,再加上对未覆盖部分的人工评审,来平衡机器可验证的严谨与工程判断。

"危机感知豁免"究竟是什么意思——这是一项临床安全方面的承诺吗?

不是。它是一种机制:被危机分类器标记的消息,不受每日免费消息上限的限制。我们不承诺任何临床效果;只是不会在最糟糕的时刻把门锁上。如需真正的危机援助资源,请联系当地的服务机构——Cosmic Story v2 并非治疗类产品。

立即体验 My Zodiac AI

当 Soulwise 掀起它的浪潮之时,我们的旗舰占星应用早已在你手中。

占星内容仅供自我省思与娱乐。此处所述的 Cosmic Story v2 功能仍在开发中,是否上线可能随时变更,恕不另行通知。