Files
jobtrackingapp/docs/redesign/phase-3/PRESERVATION_IMPACT_MATRIX.md
T
2026-09-10 18:15:05 +02:00

19 KiB
Raw Blame History

Preservation impact and traceability

Every row preserves the complete original capability group, not just the shorthand below. Authority: Phase 1 ledger, Phase 2 tests/gaps and traceability contract. All 57 IDs retain meaning. No deprecation is proposed.

Architectural recommendation index

Recommendation Planned change / existing behavior retained Affected groups Phase 4 or later validation
ARC-01 Information architecture Group current capabilities, retain every low-frequency destination All 57 Full destination ledger and role visibility; no removed function
ARC-02 Routes Keep 31 patterns; staged Board alias and precise old section mapping E01–E09, J01–J10, W01–W12, C01–C12, M01–M06, S01–S05, A01–A03 Real App entries/back/refresh/capture/dirty/account switch
ARC-03 Shell Reuse collapse/drawer/commands/private-tree lifetime E07–E09, S02–S04, A01–A03 Focus, current parent, identity disposal, theme/locale
ARC-04 Personal dashboard Preserve current charts/visibility; data-qualified expansion S01, S02, W02–W12, C05 Exact metric denominators/source; owner layout and nonavailable states
ARC-05 Admin dashboard Separate new aggregate view from current admin actions A01–A03, S04 Server authorization/aggregate-only response; no individual drill-down
ARC-06 Jobs Table/Board one view owner; existing filters/statuses/bulk retained J01–J10, W01, S03 Saved views, filtered parity, partial failure, restore, keyboard
ARC-07 Job workspace Consolidate sections without changing artifact/send ownership W01–W12, M01–M05, C05–C12 Native package success, source relationships, dirty/send/history
ARC-08 Career Explicit canonical source and import review C01–C04, C07, C10, C11, E06, E09 Source/override/reset, import accept/discard, owner denial
ARC-09 CV Clean editor/preview and advanced disclosure, full controls retained C05–C12, W05, W07 Pagination/preview focus, history, AI no-write, canonical isolation
ARC-10 Documents Index existing artifacts; no replacement store W05–W08, C05–C12, M04, S05 Owner list/download/attach, current vs frozen, immutable bytes
ARC-11 AI Contextual reviewed suggestions with explicit target W03, W05, W06, W09, W10, C03, C04, C11, S04, E09 Accept/reject, stale/malformed/context switch, source eval
ARC-12 Commands/notices/tasks Retain command, reminder, inbox and provider distinctions E07–E09, J01–J04, J08, W04, W11, W12, M01–M06, S02–S04 No-write command, task vs notice, real send safeguards
ARC-13 Responsive Adapt existing mobile workflows without losing features All 57 Breakpoint dirty/focus preservation; real touch/zoom
ARC-14 Design system Refine MUI tokens/states, keep stack/identity All 57; E08 shared owner Loaded mode/locale/contrast/state fixtures
ARC-15 Components Small extractions with domain state kept intact All 57 Consumer regression; no duplicated network/save owner
ARC-16 Accessibility Structural focus/naming/contrast first All 57 Loaded axe + keyboard + manual assistive technology

Ranges above use existing PRES aliases (e.g. E07 = PRES-E07); they never define new IDs. New capabilities use NEW-01–NEW-16 in Open decisions. Their presence does not count as implemented preservation.

57-group change-impact matrix

“Retained” = yes, required by this plan, not a claim that a migration has executed. Baseline test names below identify representative Phase 2 evidence; the linked Phase 2 row includes exact paths, other tests and known limits. New verification described here is work for the phase touching that surface. Phase 4 only exercises relevant shared foundations; it does not restructure all these workflows.

PRES ID Existing behavior → proposed UX / destination Retained? / impact Representative existing evidence → required migration proof
PRES-E01 Product/Free–Pro/unavailable billing → public /, later brand presentation Yes; public copy later landing-page, planCatalog → EN/NB/mobile/locked availability, no invented purchase flow
PRES-E02 Login/register/remember/reset/verify → same public routes, shared form states Yes; shared field impact login-page, verify-email-page, LocalAuthIdentityTests → loaded errors, token submit, safe redirect/provider config
PRES-E03 Provider login/link/relink → same routes under account entry Yes; no provider redesign microsoft-legacy-relink-page, GoogleTokenValidatorTests, MicrosoftTokenValidatorTests → real sandbox popup/origin/revoke/relink
PRES-E04 2FA/recovery/trusted device → Settings security at existing /profile Yes; nested form preservation two-factor-settings, TwoFactorControllerTests → focus and full recovery/revoke traversal
PRES-E05 Sessions/revoke/logout → Settings security and account menu Yes; high-risk shell lifetime SessionsControllerTests, account-isolation browser → actual session card/revocation + private disposal
PRES-E06 Avatar/name/email/password → /profile under Settings Account Yes; distinct from Career Profile profile-page, AvatarStorageTests → upload/remove/password/email-change and cross-account denial
PRES-E07 Collapse/mobile/active nav/commands → grouped shell, expanded existing palette Yes; first shell migration sidebar-active-nav, quick-command-preservation, browser keyboard → every logical parent, drawer focus, collapse/dirty preferences
PRES-E08 Theme/EN–NB/feedback/error routes → semantic tokens and common states Yes; Phase 4 direct impact theme-state, i18n-provider, confirm/prompt → loaded schemes/locales/reduced motion/error route
PRES-E09 Account-switch/stale read/write/BFCache handling → unchanged boundary for all new surfaces Yes; mandatory regression session-boundary, SessionContextMiddlewareTests, account-isolation → stale command/panel/draft/results cannot cross identity
PRES-J01 NAV discovery/filter/source details → Jobs Discover at /discover Yes; relocate navigation job-discovery, JobDiscoveryControllerTests → loaded search/error/mobile; NAV production availability separate
PRES-J02 Saved search/run/delete/alerts/dismiss → same Discover workspace Yes; no new store job-discovery, SavedJobSearchAlertTests → delete/alert-to-centre/reload and owner isolation
PRES-J03 Manual/URL/paste preview/company/tags/date create → shared Add/import action Yes; reviewed create unchanged quick-capture, JobImportHttpTransportTests → preview no write, duplicate/company/date failure; B01 intact
PRES-J04 Extension/bookmarklet/share + post-create artifacts → same capture contract Yes; route sensitivity captureUrl, quick-command-preservation, extension tests → real capture/review/optional attachment failure and no replay create
PRES-J05 Table/cards/filter/sort/page/columns/saved views → Tracked Table/Board Yes; high-risk view owner daily-control-loop, account-scoped-state, workspace browser → saved-view CRUD, filter parity/back/focus, long NB cards
PRES-J06 Edit/bulk status/delete/trash/restore → same actions and /trash utility Yes; no hard-delete substitution JobApplicationsAuthorizationTests, confirm-flow → native partial bulk failure, restore, selected scope
PRES-J07 Grouped pointer/keyboard board + exact status → /jobs?view=board after parity Yes; delayed alias kanban-grouped-board, pipeline → same filtered IDs, keyboard cancel and unknown custom group
PRES-J08 Company/contact/pipeline/date/related jobs → Jobs Companies, /companies?edit=id Yes; no lost directory companies-relationship, CompanyRelationshipTests → full contact persistence and command entry
PRES-J09 Offer compensation/decision/notes/source links → Jobs Offers at /offers Yes; no calculator rewrite offer-comparison, AnalyticsSalaryTests → many-offer mobile, currency/period and source links
PRES-J10 CSV/JSON export/import/conversion/counts → Settings Data plus Jobs link Yes; formats unchanged CsvExportTests, csv-export/browser → BOM/typed dates/formulas and native import counts, no full-restore claim
PRES-W01 Full workspace/aliases/optional props → new section map + optional read-only host Yes; no active preview assumed application-route-contracts, application-workspace-overlay, actual App browser → every alias, followMode, dirty/back/focus and new host
PRES-W02 Details/progression/next action/dates/contacts/history → header/Overview/Timeline Yes; same records/stages workflow-trust-signals, JobApplicationsAppliedDateHistoryTests → native edit/status/history, null applied date
PRES-W03 Analysis/match/strategy/reviewed status suggestions → Match section Yes; context explained application-intelligence, application-workflow-assist → loaded provider/error/source/freshness and explicit apply
PRES-W04 Checklist CRUD/dismiss/complete/order/next step → Notes & tasks Yes; due date remains new application-checklist, ApplicationChecklistTests → keyboard/mobile persisted actions, manual vs auto
PRES-W05 Select/attach/create/tailor CV → Application → CV Yes; relationship unchanged application-assets, ApplicationAssetsTests → source context, foreign attach denied; native tailoring blocked by P2-D01
PRES-W06 Letter/manual/AI review/history/dirty guard → Application → Letter Yes; independent draft/save application-assets AI reject, ApplicationAssetsTests → whole-browser accept/reject/restore/Cancel/Discard
PRES-W07 Answers/drafts/frozen packages/archived downloads → Application → Submission + Documents history Yes; migration blocked SubmittedApplicationPackageTests; browser expected failure → P2-D01 native capture and post-source-mutation archived bytes required
PRES-W08 Upload/drop/purpose/name/AI use/preview/download/delete → Documents section/index Yes; owner-bound binary attachments, AttachmentConsistencyTests → native rename/drop/download/delete; archived survival after W07 fix
PRES-W09 Manual/AI interview questions/answers/ready/remove → Interview Prep Yes; explicit Add/review interview-prep, InterviewPrepPersistenceTests → mobile keyboard/reload and no invented answer facts
PRES-W10 Debrief/follow-up draft/date/readiness → Interview Debrief Yes; no scheduled meeting inferred interview-prep, JobApplicationsFollowUpDraftTests → persisted debrief and followMode navigation
PRES-W11 Rules/reminders/notifications/ICS/Google/Outlook → Follow-ups + job calendar controls Yes; supported providers retained application-calendar, settings-view, ApplicationCalendarControllerTests → permission/ICS/timezone + provider sandbox; new event scope separate
PRES-W12 Operation pending/progress/fail/retry/cancel and notices → /operations utility + centre Yes; operation identity retained operations-page, OperationsControllerTests → no duplicate starts, result links/cancel/late response
PRES-C01 Full canonical profile and long-tail sections → Career Profile Edit Yes; global scope explained profile-page, CareerProfileControllerTests, account-isolation/browser → same-account save, A/B replay denial, all sections
PRES-C02 Overview/completeness/raw text/avatar/history/restore → Career overview/history Yes; not a new score career-workspace-page, CareerProfileServiceTests → native restore/projection, copy/raw accessibility
PRES-C03 Extract/rebuild/improve/reprocess/diff/low confidence/accept/discard Yes; Import review workspace profile-page, CvProfileDiffServiceTests, CvExtractionCoverageTests → loaded low-confidence/discard/cancel/provider failure; actual extraction corpus
PRES-C04 Sourced evidence CRUD/tags/truthfulness → Career Evidence Yes; no invented skill bank career-evidence, CareerEvidenceControllerTests → edit context/delete/owner isolation and source navigation
PRES-C05 CV library/create/copy/delete/gallery/publish/share/PDF → CVs Yes; same IDs/slugs cv-builder-page, CvBuilderTests/PublicCvControllerTests → template controls, publication lifecycle and owned links
PRES-C06 Studio tabs/live preview/fit/page/save/mobile modes → focused editor/preview Yes; high-risk visual owner cv-builder-deep-link, redesign-preservation browser → loaded preview focus/scroll, modes without remount
PRES-C07 Item/section selection/order/override/custom content → scoped section editor Yes; all controls cv-builder-deep-link, cvBuilder, canonical/sibling browser → reset/inherit/missing-source/reorder/hide
PRES-C08 Template-aware typography/header/skills/layout/photo/icons → Customize + Advanced Yes; no control dropped cv-builder-deep-link, cv-template-thumbnail, CvBuilderTests → supported/unsupported values and preview/PDF equivalence
PRES-C09 A4/Letter/density/margins/dates/language/presentations/columns → Advanced document controls Yes; app density separate cvBuilder, CvBuilderTests, existing multipage PDF browser → real multipage/grid/bubble cases in both document locales
PRES-C10 Undo/redo/save queue/dirty/history/restore → persistent editor state Yes; F01 remains separate cv-builder-deep-link, CvBuilderTests → browser history/undo/reload/failed save; no concurrency overclaim
PRES-C11 Section/document AI translate/improve/spelling/review → shared comparison frame Yes; accept/reject retained ai-section-assistant, cv-builder-deep-link → malformed IDs, changed source, rejected suggestion no mutation
PRES-C12 Private and published PDF/preview/searchable long docs → same export/public path Yes; B03 preserved PublicCvControllerTests, PdfRenderAdmissionTests → private denial, unpublish, all-render paths/busy recovery
PRES-M01 Job manual correspondence/search/delete/paste/import → Timeline Correspondence Yes; log ≠ send end-to-end-trust-loop, CorrespondenceControllerTests → current-job context and manual record mutation
PRES-M02 Gmail search/import/refresh/thread link/unlink/move → job Correspondence/inbox Yes; relationship checks correspondence-gmail-import, EmailOwnershipIntegrationTests → foreign thread/job denial and provider reconnect
PRES-M03 Global inbox/filter/paging/message/attachment info/job links → primary Correspondence Yes; not hidden in Documents correspondence-inbox-page, EmailControllerTests → native paging/detail/empty vs provider failure
PRES-M04 Compose/reply/provider/drafts/review/send/attempt uncertainty → same inbox domain Yes; high-risk send boundary EmailDraftPersistenceTests, EmailSendAttemptStoreTests → draft conflict, explicit send, unknown delivery, no auto-resend
PRES-M05 Review candidates/proposals/link/reject/keep/notes/sync/create → inbox Review Yes; legacy alias retained gmail-review-page, GmailControllerTests → old route/result/link/create confirmation and owner scope
PRES-M06 Google/Graph/IMAP status/connect/disconnect → Settings Connections Yes; login vs mailbox distinction email-provider-connections, provider tests → actual grants/reconnect/disabled capability; no unsupported send
PRES-S01 Counts/activity/funnel/company/tag/stage/salary/next steps → Dashboard + Analytics Yes; precise labels, no fabricated metrics daily-control-loop, StageAnalyticsTests → P3-O01 definitions, period/unknown/sample/error and data table
PRES-S02 Five owner visibility flags/onboarding/dismiss/bell/read/dismiss → layout migration + centre Yes; new layout additive onboarding-checklist, notifications-popover → preference migration/A-B/reset/corrupt storage before Phase 8
PRES-S03 Rules/email/table/theme/language/preferences → Settings sections + context links Yes; scopes retained settings-view, browser responsive save → scenario fields/error retry/resize and separate document density
PRES-S04 AI privacy/usage/limits/Free–Pro/billing status/checkout/portal → Settings AI/plan Yes; server authority ai-usage-card, ProEntitlementAuthorizationTests, BillingControllerTests → honest unavailable/provider/entitlement, no invented trial
PRES-S05 Account export/encrypted backup/lifecycle/delete confirmation → Settings Data/privacy Yes; recent auth retained account-data-export, AccountDeletionTests, BackupControllerTests → safe confirmation/download and restore-readiness gap explicit
PRES-A01 Admin users/create/roles/reset/delete/last-admin protections → Admin Users Yes; aggregate view does not replace tools admin-users-page, UsersControllerTests, nonadmin browser → role revocation/denial/confirmation and no user-data analytics
PRES-A02 Audit list/detail/supported undo/job restore → Admin Audit Yes; exact supported actions admin-audit-page → native undo/restore/owner and confirmation; not generic mutation
PRES-A03 System health/build/database/AI/email/config/test/benchmark/maintenance → Admin System Yes; separate from product counts admin-system-page, MaintenanceJobDispatcherTests → privileged actions retained; secrets not in dashboard

Trace chain and readiness

For every subsequent change record:

PRES-ID + original sub-workflow → ARC/NEW requirement → implementation commit and owner → named executed regression → visual/UX evidence → remaining gaps.

Use a scoped trace sheet linked from Phase 2 traceability; the table above is planning impact only. Example, not completed work:

PRES / requirement Architecture Implementation Regression Visual/UX
PRES-E08 accessible semantic states ARC-14/16; P4-01 Not started Existing theme/feedback tests plus planned loaded contrast/focus fixture Not performed
PRES-J07 unified Board entry ARC-02/06 Not started, Phase 5 Filtered parity, exact status/keyboard cancel and /kanban alias EN/NB, themes, phone/desktop/touch pending
PRES-W07 frozen package ARC-07/10 Blocked by P2-D01 Native capture currently expected failure; post-capture assertions unproven No migration approval

57/57 groups mapped, zero approved removals. This is 100% architecture traceability, not 100% automated workflow coverage or implementation readiness. Phase 2 contains explicit provider, production, accessibility, visual and native SQLite gaps. Preserve them until evidence closes them.