# 产品规格覆盖矩阵（历史记录，不能证明迁移等价）

> 本矩阵只证明被列出的新实现契约，不证明与原系统完整功能和视觉等价。`next/`已被用户否决，
> 权威冻结决定见`../../../docs/migration/next失败冻结记录.md`。

> 本文件记录第25节固定案例的当前直接证据。84个案例已由确定性测试或浏览器直接断言证明；`U04`
> 的结构边界已自动验证，但4K信息密度仍需人工视觉验收，因此当前不得表述为“85/85完成”。
> 第26节逐页状态证据见`page-state-matrix.md`，最终完成度见`completion-audit.md`。

本矩阵以《小白复盘完整产品规格说明书》第25节的85个固定案例为唯一编号源。
“自动”表示确定性单元/API测试；“浏览器”表示Playwright交互、响应式断言和阶段截图共同验收。
两者都不是仅检查页面能否打开。

## 账户、权限与隔离

| 编号 | 证据 | 状态 |
|---|---|---|
| A01 | `test_first_account_is_admin_and_second_is_regular_user` | 自动通过 |
| A02 | 同A01及`stage4.spec.js`普通账号流程 | 自动+浏览器通过 |
| A03 | `test_membership_and_admin_are_independent_dimensions` | 自动通过 |
| A04 | 同A03，管理员智能权限与会员标识分别断言 | 自动通过 |
| A05 | `stage4.spec.js`非会员完整锁定结构 | 浏览器通过 |
| A06 | `test_watchlist_repository_isolates_accounts` | 自动通过 |
| A07 | `test_private_review_records_are_strictly_scoped_and_daily_notes_upsert` | 自动通过 |
| A08 | `test_non_admin_cannot_read_or_write_system_credentials` | 自动通过 |
| A09 | `test_csrf_password_change_and_other_session_revocation` | 自动通过 |
| A10 | `stage4.spec.js`账户五项菜单与弹窗 | 浏览器通过 |

## 日期与数据真相

| 编号 | 证据 | 状态 |
|---|---|---|
| D01 | `test_latest_daily_chart_drops_empty_premarket_bar`及交易上下文样本 | 自动通过 |
| D02 | `test_trade_context_keeps_real_snapshot_date` | 自动通过 |
| D03 | iFinD时间戳规范化测试及`stage5.spec.js`摘要时间 | 自动+浏览器通过 |
| D04 | 市场快照最终态测试及`stage5.spec.js` | 自动+浏览器通过 |
| D05 | 请求日、实际日分离的市场上下文测试 | 自动通过 |
| D06 | `test_trade_context_keeps_real_snapshot_date`的沿用快照断言 | 自动通过 |
| D07 | `stage4.spec.js`首次无快照空态 | 浏览器通过 |
| D08 | `stage4.spec.js`后台刷新保持当前工作区 | 浏览器通过 |
| D09 | `stage6.spec.js`默认情绪周期与最新日期 | 浏览器通过 |

## 图表与详情

| 编号 | 证据 | 状态 |
|---|---|---|
| C01 | `test_latest_daily_chart_drops_empty_premarket_bar` | 自动通过 |
| C02 | `stage5.spec.js`历史页面日期与最新悬浮行情分离 | 浏览器通过 |
| C03 | `test_minute_chart_contract_has_real_session_bounds_and_hides_source` | 自动通过 |
| C04 | `MarketChart.vue`实体/影线分段及阶段5截图 | 浏览器通过 |
| C05 | `stage5.spec.js`在夜间图表请求延迟期间直接检查画布、预览和加载面背景 | 浏览器通过 |
| C06 | `test_entity_detail_uses_selected_bar_previous_close_and_complete_stock_sections`及`stage5.spec.js`完整入口 | 自动+浏览器通过 |
| C07 | `stage5.spec.js`非个股详情边界 | 浏览器通过 |
| C08 | 同C06直接断言所选交易日、对应前收、涨跌幅及页面摘要 | 自动+浏览器通过 |

## 情绪与市场页面

| 编号 | 证据 | 状态 |
|---|---|---|
| M01 | `test_sentiment_has_all_weighted_components_and_extreme_risk_cap` | 自动通过 |
| M02 | `test_sentiment_phase_transitions_require_confirmed_recovery_and_fermentation` | 自动通过 |
| M03 | 同M02的连续发酵确认断言 | 自动通过 |
| M04 | `stage6.spec.js`当前阶段警示文本 | 浏览器通过 |
| M05 | `stage6.spec.js`明细范围、整页滚动和末行可达 | 浏览器通过 |
| M06 | `stage6.spec.js`低行数股池固定状态栏 | 浏览器通过 |
| M07 | `stage7.spec.js`天梯展开、收起、滚动与等宽格 | 浏览器通过 |
| M08 | `stage6.spec.js`直接测量7张板高卡、结论顶部/右侧对齐和页面无溢出 | 浏览器通过 |
| M09 | `test_sector_members_are_normalized_and_persistently_cached`及`stage7.spec.js` | 自动+浏览器通过 |

## 竞价、题材、热榜与龙虎榜

| 编号 | 证据 | 状态 |
|---|---|---|
| X01 | `test_auction_lifecycle_uses_live_snapshot_then_archives_925_result` | 自动通过 |
| X02 | `test_observing_without_dynamic_data_never_disguises_previous_archive` | 自动通过 |
| X03 | X01的9:26选定态断言 | 自动通过 |
| X04 | `test_auction_keeps_market_cores_and_isolates_real_limit_price` | 自动通过 |
| X05 | 同X04的新规ST 10%涨跌幅样本 | 自动通过 |
| X06 | 同X04的市场核心超限保留断言 | 自动通过 |
| X07 | 竞价成交额单一聚合结果及`stage8.spec.js`摘要/柱图 | 自动+浏览器通过 |
| X08 | `stage8.spec.js`题材悬浮统一预览与无固定K线模块 | 浏览器通过 |
| X09 | `test_popularity_preserves_single_source_without_false_consensus`及阶段8空态 | 自动+浏览器通过 |
| X10 | `test_dragon_list_distinguishes_missing_and_unclassified_seats` | 自动通过 |
| X11 | `stage8.spec.js`左名录右详情、无弹窗 | 浏览器通过 |

## 智能选股

| 编号 | 证据 | 状态 |
|---|---|---|
| S01 | `test_curated_strategies_run_independently_of_emotion_phase` | 自动通过 |
| S02 | `test_missing_required_factor_and_complete_no_match_are_distinct` | 自动通过 |
| S03 | 同S02的数据不足分支 | 自动通过 |
| S04 | `test_formula_is_deterministic_and_best_value_scores_first`及幂等运行测试 | 自动通过 |
| S05 | 按策略标识持久化运行及`stage9.spec.js`模式切换 | 自动+浏览器通过 |
| S06 | 多策略独立运行Repository测试及策略面板切换 | 自动+浏览器通过 |
| S07 | `stage9.spec.js`三模式独立结果容器 | 浏览器通过 |
| S08 | `stage9.spec.js`未执行/无信号状态 | 浏览器通过 |
| S09 | 自定义公式确定性引擎测试；LLM仅编译受控公式 | 自动通过 |
| S10 | `test_formula_weights_must_total_one_hundred_percent` | 自动通过 |
| S11 | `test_running_a_strategy_never_creates_tracking_rows` | 自动通过 |
| S12 | `stage9.spec.js`手动加入及入选价 | 自动+浏览器通过 |
| S13 | `test_custom_strategies_and_tracks_are_account_isolated` | 自动通过 |
| S14 | `test_tracking_statistics_and_milestone_events_are_persistent_and_idempotent` | 自动通过 |

## 问师、问天与LLM

| 编号 | 证据 | 状态 |
|---|---|---|
| L01 | `test_stream_accumulator_does_not_repeat_final_snapshot` | 自动通过 |
| L02 | `test_main_failure_before_first_delta_falls_back_and_counts_once` | 自动通过 |
| L03 | `test_failure_after_first_delta_keeps_partial_and_never_falls_back` | 自动通过 |
| L04 | `test_context_profiles_are_distinct_and_dragon_data_is_question_driven` | 自动通过 |
| L05 | 阶段10、11、12三个非会员同结构锁定E2E | 浏览器通过 |
| W01 | `stage11.spec.js`观势初始空态 | 浏览器通过 |
| W02 | `test_small_sector_with_five_of_five_quotes_passes_all_gates` | 自动通过 |
| W03 | `test_manual_objective_sector_value_recomputes_without_overwriting_valid_data` | 自动通过 |
| W04 | `test_missing_one_formal_index_fails_closed` | 自动通过 |
| W05 | `test_daily_fortune_is_created_once_even_before_interpretation` | 自动通过 |
| W06 | `heartTiming.test.ts`及`stage11.spec.js` | 自动+浏览器通过 |
| W07 | `test_each_heart_cast_appends_exactly_one_line` | 自动通过 |
| W08 | `test_hexagram_is_deterministic_and_contains_only_six_lines`及阶段11页面断言 | 自动+浏览器通过 |
| W09 | `stage11.spec.js`直接计算提示、历史、静音和重新观心文字对比度均不低于4.5 | 浏览器通过 |

## 复盘、主题与响应式

| 编号 | 证据 | 状态 |
|---|---|---|
| R01 | `stage12.spec.js`交易日志保存、Toast与无异常弹窗 | 浏览器通过 |
| R02 | `test_trade_summary_uses_only_realized_fields_and_keeps_zero_in_denominator` | 自动通过 |
| R03 | `test_private_review_records_are_strictly_scoped_and_daily_notes_upsert` | 自动通过 |
| R04 | `stage12.spec.js`历史展开、收起与滚动 | 浏览器通过 |
| U01 | `stage4.spec.js`直接检查主题切换同步表面及夜间重载首帧；`stage5.spec.js`覆盖图表加载态 | 浏览器通过 |
| U02 | 阶段6的1920×1080整页滚动与明细可达 | 浏览器通过 |
| U03 | 阶段11观气/观心滚动与背景断言 | 浏览器通过 |
| U04 | `stage13.spec.js`自动验证4K最大宽度、字号、Shell和无溢出；信息密度 | 人工待验 |
| U05 | `stage13.spec.js`390×844、五入口、44px触控目标及长页切换滚动复位 | 浏览器通过 |
| U06 | `stage13.spec.js`320px 16工作区、纵向记录/局部横滚 | 浏览器通过 |

## 汇总

- 固定案例：84/85已完成直接验收，`U04`保留最终人工视觉验收。
- 确定性、权限、隔离和失败语义均由自动测试覆盖；视觉案例保留真实浏览器断言和阶段截图。
- Docker镜像构建、NAS容器重启与正式端口切换不属于85个页面案例，但仍是切换前阻断项，见`cutover-checklist.md`。
