Map 57 capability groups before restructuring. Add behavioral regression coverage and a standalone TypeScript gate; retain the native SQLite package failure as separate baseline debt.
7.4 KiB
Redesign traceability
Phase 2 starts at 2d0f131. The preservation matrix is the stable baseline: PRES-E01…PRES-A03, in the original ledger's groups (not one contiguous numeric range). Old references such as C07 remain valid aliases. Subdivide a later workflow with a suffix, for example PRES-C07.override-reset; do not reuse an ID or silently change its meaning.
Required chain for each later change
PRES-ID → requirement/source contract → implementation commit + changed owner → regression test + executed result → visual/UX evidence
The requirement for every current PRES-ID is its complete original row in FUNCTIONALITY_INVENTORY.md, including the source contract. A proposed new requirement uses a separate NEW-xxx ID referencing the product brief; it cannot overwrite a PRES requirement. Defects use their original audit IDs or the separate P2-D IDs below, not “preserve the broken behavior.”
For every implementation PR/session, add a row to this file (or link its scoped trace sheet here) with:
| Field | Required evidence |
|---|---|
| PRES-ID / requirement | Original ledger group plus the precise sub-workflow being changed; target-brief requirement if applicable |
| Baseline → destination | Existing route, capture/query/alias/keyboard entry and intended location; preserved/relocated/merged/explicitly deprecated |
| Implementation | Commit SHA, affected components/API owners, reason for the change; “unchanged” is valid but not “done” |
| Automated regression | Named behavioral test, file, command/result and provider/test layer; include negative/dirty/error cases |
| Visual/UX validation | Screenshot/video or review artifact with route, populated/empty/error/locked state, viewport, theme, locale, keyboard/focus result and date |
| Gaps / decision / reviewer | Known baseline defects and intentional missing proof; approval reference only when semantics/deprecation need it |
No screenshot alone proves data preservation. No mocked API test alone proves ownership. No successful localhost run proves F04. A shifted feature remains protected after moving to another page.
Phase 2 changes (test/CI checkpoint only)
All application implementations and routes remain at their Phase 1 behavior. The commit containing this document identifies the Phase 2 implementation of regression protection, not a product migration. Use git log -- docs/redesign/phase-2 to resolve its SHA without a self-referential commit placeholder.
| PRES IDs → existing requirement | Phase 2 change → automated oracle | Visual/UX evidence |
|---|---|---|
| E07, J04 → command job/company/add entry and reviewed capture | quick-command-preservation: three cases; destinations, callback and no-create boundary | No visual redesign. Native browser keyboard search/add evidence below |
| C11 → per-section review never implicitly applies | ai-section-assistant: reject/close, edit then accept, failed suggestion retry | jsdom interaction only; no model or visual certification |
| C07, C11 → whole-document review changes only accepted CV settings | cv-builder-deep-link: apply/reject and invalid/missing/duplicate block responses | jsdom current/proposed comparison; real canonical isolation below |
| W06 → rejected letter does not replace saved content | application-assets: reject clears proposal, original remains, no dirty/save | No provider contacted; real delivery remains outside this workflow |
| S03, W11 → scenario-specific rules and retryable preferences | settings-view: unchanged scenarios in payload; failed notification save retains draft and retries | Responsive browser preference evidence below |
| C01, C06, C07, C10 → canonical/sibling isolation and responsive editor persistence | redesign-preservation browser: mobile override, preview/edit, reload, desktop preview; API compares master and sibling before/after | Current Chromium UI at 390×844 and 1440×900, EN/default theme. Behavioral viewport check, not visual approval |
| W01, W05–W08 → source relationships and frozen submission | Same browser spec: fixture creates actual job/CV/letter/file; captures via legacy CV workspace entry | Expected failure P2-D01: capture fails on SQLite. Later source-mutation/archive checks not reached; do not mark this migration ready |
| E07, J04, W01 → real command launcher and old links | Same browser spec: Ctrl+K job selection, actual App legacy match link, reviewed add leaves job count unchanged | Current desktop route/keyboard behavior only |
| S03, W11 → responsive rules/notification controls | Same browser spec: edit rule mobile→desktop, save, native API check; notification false survives reload; independent direct rule save | 390×844/1440×900 EN/default theme; no screenshot-based redesign |
| A01, S04, E07 → hidden admin navigation is not authorization; Free AI locks | Same browser spec: hidden admin menu, direct users read/create 403; ordinary CV creation succeeds, all three AI actions disabled, API AI 403 | Current non-admin browser + real API. Admin route shell may render, but cannot retrieve privileged data |
| All 57 → reliable test type baseline | package script, CI gate: npm run typecheck before Jest |
Static TypeScript for existing src/app scope; no visual or app change |
Phase 3 handoff and later migration gates
Phase 3 is UX architecture documentation, not a new implementation batch: grouped sidebar/page hierarchy; Jobs table/board view entry; canonical Career Profile versus derived CV/document relationships; full-page versus optional preview; contextual AI review pattern; mobile task flows. Map all 31 existing routes, both aliases, capture/notification/provider entries and all 57 PRES rows to intended destinations.
Keep current MUI/Emotion/React Router/API and ownership contracts while designing. Brand/name/accent and cross-device dashboard customization remain genuine product decisions for the dependent work; do not ask about facts already in the audit.
Before Phase 4/5 code, require an approved route/preservation plan, targeted regression fixtures for that surface's gaps, a shared accessibility/state contract, and coordinated integrity/recovery dependencies. In particular:
- Do not restructure package/tailoring workflows while P2-D01 blocks native success proof.
- Do not conflate B02 identity, stale-CV revision and create-intent idempotency. Those queue items remain distinct; B07 was not started.
- Do not drop mail draft revisions, explicit send/new-attempt controls or owner-bound references.
- Before migrating shared controls, validate EN/NB × light/dark × desktop/mobile, keyboard focus, error/empty/dirty states and representative loaded data. Real screen reader/touch/reflow tests remain manual.
- Do not label a release healthy until the previously failed CI browser runner is diagnosed and the required pipeline passes. F04 requires actual production ingress evidence.
Future trace sheets must link here. There are no Phase 3+ implementation commits or visual sign-offs in this checkpoint.