# asset-readiness-and-fallback-retirement Specification ## Purpose TBD - created by archiving change full-modernization-architecture-blueprint. Update Purpose after archive. ## Requirements ### Requirement: In-scope frontend assets SHALL be release-ready before deployment In-scope routes SHALL rely on build/deploy readiness guarantees instead of runtime fallback behavior as the primary resilience mechanism. #### Scenario: Build-readiness enforcement - **WHEN** release artifacts are prepared for deployment - **THEN** in-scope route assets SHALL be validated for presence and loadability - **THEN** missing required in-scope assets SHALL fail the release gate ### Requirement: Runtime fallback retirement SHALL follow a governed phase policy Runtime fallback behavior for in-scope modernization routes SHALL be retired under explicit governance milestones. #### Scenario: Fallback retirement in phase scope - **WHEN** a route is marked in-scope for fallback retirement - **THEN** runtime fallback behavior for that route SHALL be removed or disabled by policy - **THEN** reliability for that route SHALL be guaranteed by release-time readiness gates ### Requirement: Deferred-route assets SHALL be release-ready before promotion Deferred follow-up routes SHALL adopt release-time asset-readiness checks and SHALL fail promotion when required assets are missing. #### Scenario: Deferred-route readiness validation - **WHEN** release artifacts are prepared for deferred-route promotion - **THEN** required assets for `/tables`, `/excel-query`, `/query-tool`, and `/mid-section-defect` SHALL be validated - **THEN** missing required assets SHALL fail release gating ### Requirement: Deferred-route runtime fallback SHALL be retired by governed policy Deferred follow-up routes SHALL not remain on runtime fallback posture after readiness, parity, and manual acceptance gates pass. #### Scenario: Deferred-route fallback retirement - **WHEN** a deferred route passes readiness, parity, and manual acceptance gates - **THEN** runtime fallback posture for that route SHALL be retired according to milestone policy - **THEN** rollback control SHALL remain available via explicit route-level governance switch ### Requirement: Fallback-retirement failure response SHALL be consistent across route hosts When in-scope runtime fallback retirement is enabled and route assets are unavailable, app-level and blueprint-level route handlers SHALL return a consistent retired-fallback response surface. #### Scenario: App-level in-scope route enters retired fallback state - **WHEN** an in-scope app-level route cannot serve required dist assets and fallback retirement is enabled - **THEN** the route SHALL return the standardized retired-fallback response contract #### Scenario: Blueprint-level in-scope route enters retired fallback state - **WHEN** an in-scope blueprint-level route cannot serve required dist assets and fallback retirement is enabled - **THEN** the route SHALL return the same standardized retired-fallback response contract used by app-level routes