﻿# HOMEVISTA C端系统状态与错误页 PRD

> 文档版本：v0.1
> 文档类型：跨页面通用页面 PRD
> 适用对象：C端产品、设计、开发、测试与项目交付人员

## 修订记录

| 版本 | 日期 | 变更类型 | 变更摘要 | 修改人 / 来源 |
|---|---|---|---|---|
| v0.1 | 2026-07-15 | 新增 | 从页面模板索引拆出，建立一个由状态类型驱动的统一系统状态与错误页模板 | Codex / 产品结构调整 |

## 一、文档目的与范围

定义顾客无法继续访问目标页面、资源或服务时的统一状态页模板。该模板通过状态类型切换不同的标题、说明、动作和返回目标，不为 403、404、500 等状态分别建立独立页面模板。

本 PRD 不属于营销页面模板、业务 Widget 或某一 `04-xx` 页面的私有内容，不计入营销页面 P0 清单。权限与认证的触发判定以 `07-权限与访问控制规则.md` 为准；模块级空数据和降级以 `02-最小功能模块PRD.md` 为准；本文件只定义整页状态的顾客表达与交互。

## 二、产品目标与明确不做

### 2.1 目标

- 在无法继续访问时，向顾客说明当前状态并提供安全、可执行的下一步路径。
- 以单一页面结构降低设计、开发和维护成本，同时避免不同业务页面出现不一致的错误表达。
- 不暴露接口报错、堆栈、内部资源 ID、权限策略或技术排障信息。

### 2.2 本期明确不做

- 不定义视觉稿、逐字文案、多语言策略、HTTP 响应实现、监控告警和错误追踪字段。
- 不将图片、单个资料、辅助模块或可替代外部链接失效一律升级为整页错误。
- 不在错误页中混入与当前故障无关的营销、预约或强转化内容。

## 三、版本范围与边界

### 3.1 本版本包含

- 一个跨页面复用的系统状态页模板及其状态内容配置。
- 401、403、404、410、429、503 与未预期系统错误的顾客表达、主操作和返回规则。
- 整页状态与业务页面原位降级之间的判断边界。

### 3.2 本版本不包含 / 明确不做

- 登录方式、权限策略、资源发布状态和 HTTP 响应的技术实现。
- 将局部素材或辅助模块错误强制变为整页状态。
- 按不同状态码分别新建独立页面模板或文件。

### 3.3 范围说明

未在本 PRD 列明的状态类型、操作入口或对外承诺，均视为待产品确认，不得由实现自行补充。

## 四、用户角色与核心场景

| 角色 | 核心场景 | 需要达成的结果 |
|---|---|---|
| 访问顾客 | 通过分享链接、渠道链接或项目入口访问受限、失效或异常内容 | 理解当前无法继续的原因，并安全地返回、验证或稍后重试 |
| 项目交付 / 运营人员 | 配置项目入口与安全落地页 | 不需要为每类错误单独配置页面，且不误导顾客 |
| 设计、开发与测试人员 | 接入业务页面的整页异常处理 | 使用同一模板和明确状态规则，避免空白页、循环跳转和信息泄露 |

## 五、用户用例

### UC-01：顾客完成验证后继续访问受限内容

**目标**：在身份失效时完成验证，并回到原目标页。
**前置条件**：顾客访问需要认证的页面，当前无有效身份。
**主流程**：

1. 系统判定为 E-01，展示统一状态页及“重新验证”主操作。
2. 顾客完成由 `07` 规则指定的验证。
3. 系统恢复原访问地址并重新校验权限。

**结果**：权限满足时进入原目标页；权限仍不满足时进入 E-02，不循环跳转。
**异常 / 边界**：验证入口未配置或验证服务不可用时，不展示不可用的验证入口，转入相应的可用返回或重试路径。

### UC-02：顾客访问不存在或已下线链接

**目标**：不暴露内部信息的前提下离开失效链接。
**前置条件**：系统确认资源不存在（E-03）或已正式下线（E-04）。
**主流程**：

1. 系统展示对应状态说明和安全落地页操作。
2. 顾客返回来源页或进入安全落地页。

**结果**：顾客到达可访问页面，原失效地址不被自动重复访问。
**异常 / 边界**：来源页不可访问时仅提供安全落地页；不得展示资源编号、下线原因或撤回前内容。

### UC-03：页面主任务因临时故障无法完成

**目标**：顾客知道可以稍后重试，而非将临时故障误认为内容不存在。
**前置条件**：主承载模块不可用且无替代方案，触发 E-06 或 E-07。
**主流程**：

1. 系统展示统一状态页及重试操作。
2. 顾客重试或返回来源页。

**结果**：服务恢复后可使用原链接再次访问。
**异常 / 边界**：辅助模块或可替代素材故障时，保留原业务页面并原位降级，不进入本模板。

## 六、功能需求矩阵

| 功能 ID | 功能名称 | 关联用例 | 优先级 | 状态 |
|---|---|---|---|---|
| F-01 | 统一状态页模板 | UC-01、UC-02、UC-03 | P0 | 待设计 |
| F-02 | 状态内容配置 | UC-01、UC-02、UC-03 | P0 | 待设计 |
| F-03 | 返回、重试与恢复原地址 | UC-01、UC-02、UC-03 | P0 | 待设计 |
| F-04 | 整页状态与原位降级判定 | UC-03 | P0 | 待设计 |

## 七、功能详细说明

### 7.1 F-01：统一页面模板

| 区域 | 必须内容 | 状态驱动规则 |
|---|---|---|
| 基础识别区 | 项目或品牌基础识别 | 所有状态保留；不得伪装为正常营销首屏 |
| 状态说明区 | 状态标题、简短说明 | 按第八章状态类型切换；统一使用非技术性顾客语言 |
| 主操作区 | 一个主要动作 | 按状态提供重新验证、重试、返回来源页或前往安全落地页 |
| 辅助操作区 | 可选联系项目方入口 | 仅在入口已配置且对当前顾客可用时展示 |

### 7.2 F-03：通用交互规则

- 优先返回来源页；来源页不可识别、已失效或返回后会再次触发同一错误时，前往项目首页或项目方指定的安全落地页。不得自动循环跳转。
- 401 完成验证后应保留并恢复原访问地址；403、404、410 不应在权限或资源状态未改变时反复尝试原目标页。
- 状态页自身不得再次触发同类拦截；安全落地页与返回路径必须在发布验收时验证可访问。
- 仅当页面主任务无法完成时才进入本模板。局部模块仍可在原页面完成降级时，应原位隐藏、降级或提示。

## 八、F-02：状态类型与内容配置

| 状态编号 | 典型 HTTP / 触发条件 | 顾客页面表达 | 主操作 | 页面级边界 |
|---|---|---|---|---|
| E-01 未登录或身份已失效 | 401；访问需要认证的页面但当前无有效身份 | 需要完成验证后才能继续查看 | 重新验证 | 仅表示尚未建立有效身份，不表示永久无权访问 |
| E-02 无访问权限 | 403；当前身份无权查看页面、资料或功能 | 当前内容暂不对您开放 | 返回来源页 | 不展示受限内容摘要、文件名或资源存在性；不得误导为登录失效 |
| E-03 页面或资源不存在 | 404；路由错误、资源不存在或无法识别 | 未找到所访问的页面 | 前往安全落地页 | 不暴露内部路由或资源编号；不能替代权限拦截 |
| E-04 页面或资源已下线 | 410；曾存在的公开链接已失效或内容被正式撤回 | 该内容已结束或不再提供 | 前往安全落地页 | 可与 404 区分“已结束”，但不得展示撤回前内容 |
| E-05 访问过于频繁 | 429；短时请求超过限制 | 访问过于频繁，请稍后再试 | 稍后重试 | 不承诺具体恢复时间，除非系统能可靠提供 |
| E-06 服务暂不可用 | 503；维护、依赖服务异常或临时过载 | 服务暂时不可用 | 稍后重试 | 不把临时故障写成资源不存在；恢复后可再次使用原链接 |
| E-07 未预期的系统错误 | 500、502、504 或未分类运行时异常 | 加载出现问题，建议稍后重试 | 重试 | 错误追踪编号仅进入内部日志，不展示给顾客 |

## 九、F-04：与业务页面和专项规则的衔接

- 页面主承载模块不可用且无可替代方案时，对应 `04-xx` 必须引用本 PRD 的状态编号；不得渲染空白页或只隐藏主内容。
- 辅助模块、非必填素材、可替代资料或单个外部链接不可用时，优先原位降级；只有导致全页核心任务无法完成时，才进入 E-06 或 E-07。
- `07-权限与访问控制规则.md` 决定 401、403 等状态何时触发；本 PRD 决定触发后顾客看见什么、可以做什么。
- `06-通用组件说明.md` 中的导航与返回、身份验证组件可被本模板调用，但不因此改变其组件边界。
- `08-埋点与统计规则.md` 后续定义状态页访问、重试、验证和返回等事件口径。

## 十、验收标准

| 编号 | 验收标准 |
|---|---|
| AC-01 | 401、403、404、410、429、503 和未预期系统错误均使用同一页面结构，并按对应状态配置正确的标题、说明和主操作。 |
| AC-02 | 顾客无法从任一状态页看到接口报错、堆栈、内部资源 ID、权限策略或技术排障信息。 |
| AC-03 | 所有可见的返回、重试、重新验证和安全落地页入口均可用；不会产生自动循环跳转。 |
| AC-04 | 单个辅助模块或素材失败但主任务仍可完成时，不跳转整页错误模板。 |
| AC-05 | 401 验证完成后可恢复原目标；403、404、410 在状态未改变时不会反复自动尝试原目标。 |

## 十一、待确认事项

| 编号 | 待确认事项 | 影响范围 | 当前处理 |
|---|---|---|---|
| SE-01 | 项目级安全落地页是否统一为项目首页，还是允许按项目配置 | 返回路径、发布校验 | 当前允许项目方指定；未配置时使用项目首页 |
| SE-02 | 维护窗口是否需要向顾客展示预计恢复时间 | E-06 文案与服务运维 | 当前不展示，除非系统可可靠提供 |
| SE-03 | 是否需要对状态页访问和重试设置独立监控阈值 | 埋点、运维告警 | 进入 `08` 专项确认 |

## 十二、供 Codex 使用的执行说明

- 不得为每个状态码新建独立页面模板或页面文件；应复用本文件的单一状态页模板。
- 新增业务页面时，先判断故障是否可原位降级；仅整页不可访问或主任务无法完成时引用本 PRD。
- 若修改状态类型、触发边界、返回规则或验收标准，属于重大需求变更，必须新增独立修订记录。
