Files
DashBoard/openspec/specs/page-content-modernization-safety/spec.md
egg c38b5f646a feat(modernization): promote deferred routes to in-scope and unify page header styles
Promote /tables, /excel-query, /query-tool, /mid-section-defect from
deferred to full shell-governed in-scope routes with canonical redirects,
content contracts, governance artifacts, and updated CI gates.

Unify all page header gradients to #667eea → #764ba2 and h1 font-size
to 24px for visual consistency across all dashboard pages. Remove
Native Route-View dev annotations from job-query, excel-query, and
query-tool headers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 13:20:06 +08:00

5.4 KiB

page-content-modernization-safety Specification

Purpose

TBD - created by archiving change full-modernization-architecture-blueprint. Update Purpose after archive.

Requirements

Requirement: In-scope page-content modernization SHALL be contract-first

Before chart/filter/page interaction refactors are cut over, each in-scope route SHALL define a contract baseline that captures data and interaction semantics.

Scenario: Route contract baseline defined

  • WHEN an in-scope route is selected for chart/filter modernization
  • THEN the route SHALL define filter input semantics, query payload expectations, and chart data-shape contracts
  • THEN the route SHALL define critical state expectations for loading, empty, error, and success interactions

Scenario: Deferred-route contract baseline defined

  • WHEN /tables, /excel-query, /query-tool, or /mid-section-defect enters modernization
  • THEN a route-level baseline SHALL capture filter input semantics, query payload shape, and critical state expectations

Requirement: Cutover SHALL require parity evidence against baseline behavior

In-scope chart/filter modernization cutover SHALL require parity evidence against baseline fixtures and critical interaction flows.

Scenario: Parity gate before default switch

  • WHEN a route is proposed for defaulting to a modernized chart/filter implementation
  • THEN golden fixture parity checks SHALL pass for defined critical states
  • THEN interaction parity checks SHALL pass for filter apply/reset and chart selection/drill behaviors

Requirement: Route-level content cutover SHALL be reversible

Modernized chart/filter content rollouts SHALL use reversible controls that allow immediate rollback without reverting unrelated shell architecture work.

Scenario: Controlled rollout and rollback

  • WHEN a modernized route is enabled for users
  • THEN the route SHALL be controlled by route-scoped feature flag or equivalent switch
  • THEN rollback procedure SHALL be documented and executable within one release cycle

Requirement: Page-content modernization progression SHALL require manual route acceptance

In-scope chart/filter/page-content migration SHALL progress one route at a time with explicit manual acceptance records.

Scenario: Route-by-route manual acceptance gate

  • WHEN an in-scope route completes modernization implementation and parity checks
  • THEN that route SHALL be manually accepted using a defined checklist covering filter flows, chart interactions, empty/error behavior, and visual correctness
  • THEN the next route SHALL NOT begin cutover until manual acceptance for the current route is signed off

Requirement: Deferred-route implementation SHALL require pre-change confirmation

Each deferred route SHALL complete a route-scoped pre-change confirmation before implementation begins.

Scenario: Route enters implementation queue

  • WHEN a deferred route is selected for modernization implementation
  • THEN a pre-change confirmation record SHALL exist before any route code changes proceed
  • THEN the record SHALL include current route status snapshot, baseline contract references, known-bug baseline reference, and rollback flag plan

Requirement: Deferred-route modernization scope SHALL NOT be limited to already-released routes

Deferred modernization scope SHALL follow the deferred route matrix, even if those routes are currently marked dev.

Scenario: Route status is dev in page registry

  • WHEN /tables, /excel-query, /query-tool, or /mid-section-defect is currently dev
  • THEN the route SHALL remain eligible for modernization in this follow-up change
  • THEN already-released in-scope routes outside deferred scope SHALL not be reopened by this change unless explicitly required for shared governance wiring

Requirement: Known legacy bugs in migrated scope SHALL NOT be carried into modernized routes

Modernized route acceptance SHALL include explicit revalidation of known legacy defects in migrated scope, and reproduced defects SHALL block sign-off.

Scenario: Route-level legacy bug baseline and replay

  • WHEN an in-scope route enters chart/filter/page-content modernization
  • THEN a route-level known-bug baseline (within migrated scope) SHALL be recorded before implementation
  • THEN manual acceptance SHALL replay those known-bug checks on the modernized route

Scenario: Deferred-route bug replay gate

  • WHEN deferred-route manual acceptance executes
  • THEN known-bug replay checks SHALL run
  • THEN reproduced known bugs SHALL fail route sign-off and block legacy retirement

Scenario: Legacy bug carry-over is blocked

  • WHEN manual acceptance finds that a known legacy bug is still reproducible in the modernized route
  • THEN route sign-off SHALL fail
  • THEN route cutover completion and legacy code retirement SHALL be blocked until the bug is fixed

Requirement: Legacy content path retirement SHALL require parity and manual acceptance

Legacy chart/filter implementations SHALL be removed only after parity checks and manual acceptance criteria are satisfied.

Scenario: Legacy removal approval

  • WHEN legacy chart/filter code is planned for removal on an in-scope route
  • THEN the route SHALL provide parity pass evidence and manual acceptance sign-off records
  • THEN unresolved parity failures or manual acceptance defects SHALL block legacy removal