Frontend Remediation Execution Plan
Last updated: 2026-03-06
This plan turns the identified frontend issues into an execution backlog and implementation order.
Delivery Order​
- FE-001 Root Drawer Host Consolidation (P0)
- FE-002 EntityLink Surface Enable Policy (P0)
- FE-003 Drawer Contract Test Pack (P0)
- FE-004 Shared Shell i18n Debt Cleanup (P1)
- FE-005 Inventory Primitive: Bulk Toolbar Standardization (P1)
- FE-006 Inventory Primitive: Freshness and Live Announcements (P1)
- FE-007 Questions Usage Dependency View Upgrade (P1)
- FE-008 StandardHub Contract Hardening (P2)
- FE-009 Mobile Task-Tier Pass for Shell and Inventory (P2)
- FE-010 Release Gate Validation and Evidence (P0/P1 closeout)
Execution Status​
- FE-001: Complete
- FE-002: Complete
- FE-003: Complete
- FE-004: Complete
- FE-005: Complete
- FE-006: Complete
- FE-007: Complete
- FE-008: Complete
- FE-009: Complete
- FE-010: In progress (targeted checks pass; full lint/test currently blocked by pre-existing repo-wide issues)
Backlog Tickets​
FE-001 Root Drawer Host Consolidation (P0)​
- Estimate: 2 days
- Depends on: none
- Scope:
- Move single drawer host/coordinator ownership to the root layout contract.
- Keep one URL/state drawer source of truth for all routes.
- Simplify
AppShellto register drawer config instead of hosting its own coordinator.
- Target files:
frontend/src/routes/+layout.sveltefrontend/src/lib/components/shared/AppShell.sveltefrontend/src/lib/components/shared/patterns/drawer/DrawerCoordinator.svelte
- Done when:
- Back/Forward, ESC, focus restore, and deep-link open/close behavior are consistent across routed pages.
FE-002 EntityLink Surface Enable Policy (P0)​
- Estimate: 1.5 days
- Depends on: FE-001
- Scope:
- Enforce explicit surface-level drawer-peek enablement.
- Keep canonical full-page navigation for non-enabled surfaces.
- Preserve native Cmd/Ctrl-click and open-in-new-tab behavior.
- Target files:
frontend/src/lib/components/shared/entity-link.tsfrontend/src/lib/components/shared/EntityLink.svelte
- Done when:
- Normal click interception only occurs where drawer peek is enabled.
FE-003 Drawer Contract Test Pack (P0)​
- Estimate: 1.5 days
- Depends on: FE-001, FE-002
- Scope:
- Add and update tests for drawer URL contract and interaction semantics.
- Cover deep-link, replace semantics, focus restore, and browser-modifier click behavior.
- Done when:
- Regressions in drawer hydration/open/close behavior are caught by tests.
FE-004 Shared Shell i18n Debt Cleanup (P1)​
- Estimate: 2 days
- Depends on: FE-001
- Scope:
- Remove hardcoded user-facing strings from shared shell primitives.
- Ensure ARIA and helper strings are message-backed.
- Target files:
frontend/src/lib/components/shared/GlobalNav.sveltefrontend/src/lib/components/shared/bits/DialogSheet.sveltefrontend/messages/en.json
- Done when:
- Shared shell copy is fully localizable.
FE-005 Inventory Primitive: Bulk Toolbar Standardization (P1)​
- Estimate: 2 days
- Depends on: FE-002
- Scope:
- Promote preview/apply bulk flow into shared inventory components.
- Remove page-specific duplication for bulk patterns.
- Done when:
- New inventory pages can reuse the same bulk toolbar contract.
FE-006 Inventory Primitive: Freshness and Live Announcements (P1)​
- Estimate: 1.5 days
- Depends on: FE-005
- Scope:
- Add shared freshness model (
updated,stale, manual refresh). - Add shared aria-live announcement channel for key list interactions.
- Add shared freshness model (
- Done when:
- Sort/selection/bulk updates are announced and freshness semantics are consistent.
FE-007 Questions Usage Dependency View Upgrade (P1)​
- Estimate: 2 days
- Depends on: FE-005
- Scope:
- Replace count-only usage signals with dependency-aware context and links.
- Target files:
frontend/src/routes/questions/+page.svelte
- Done when:
- Authors can identify and open impacted dependencies from list/drawer context.
FE-008 StandardHub Contract Hardening (P2)​
- Estimate: 1.5 days
- Depends on: FE-001
- Scope:
- Align
StandardHubto documented shell expectations (banner/tab/activity slots where required).
- Align
- Done when:
- Future hub routes do not reinvent shell interaction patterns.
FE-009 Mobile Task-Tier Pass for Shell and Inventory (P2)​
- Estimate: 2 days
- Depends on: FE-004, FE-006
- Scope:
- Finalize mobile/iPad-safe behavior for nav, drawers, and inventory controls.
- Done when:
- Tier A/B acceptance checks pass without desktop-only dead ends.
FE-010 Release Gate Validation and Evidence (P0/P1 closeout)​
- Estimate: 1 day
- Depends on: FE-003 through FE-009
- Scope:
- Run and record:
npm run lintnpm run checknpm run testnpm run build
- Run and record:
- Done when:
- CI/local gates are green and evidence is linked in PR notes.
Current blockers observed on 2026-03-06:
npm run lintfails with pre-existing repo-wide issues in unrelated files (EntityLink.svelte, drawer primitives, assignments/users/roles routes, andTaxonomyPickerSidebar.svelte).npm run testexecutes vendored SDK dependency tests undersrc/lib/sdk/**/node_modules, which fail due missing optional dependencies (recheck,@web-std/file,@seriousme/openapi-schema-validator).- Targeted checks for the touched surfaces pass (
npm run check, targetedvitestrun,npm run build).
Working Notes​
- Current rollout reality remains explicit:
/questionsis the only production-wired read-only drawer-peek surface. - Other surfaces should remain canonical full-page until they are explicitly wired in this sequence.