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

55 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CV workspace
ARC-09; PRES-C05–PRES-C12, PRES-W05, PRES-W07, PRES-E08, PRES-E09. Retain [CvBuilderEditor](../../../job-tracker-ui/src/views/CvBuilderEditor.tsx), [customization](../../../job-tracker-ui/src/components/cv/CvCustomizeTab.tsx), [cvBuilder client](../../../job-tracker-ui/src/cvBuilder.ts) and the shared server preview/PDF renderer.
## Library and editor
The /career/builder library is labelled CVs. Preserve name/create/copy/delete, template gallery with actual rendered thumbnails, publish/unpublish/share and PDF download. A public slug is separate from private numeric identity. Documents links here rather than exposing a second CV editor.
```text
CV name · This CV only · optional linked job Save state · Undo Redo · Export
[Content | Template | Customize | AI tools | History]
[Section navigation + selected editor] [Live paginated preview]
[Page n of m · Fit width]
```
Existing studio capabilities are preserved regardless of tab order. Recommend Content as the primary editing task; template choice stays obvious for creation. A tab-order change is presentation only and requires keyboard/route regression. Reuse current editor state/save owner rather than remounting it on every tab, theme or viewport change.
## Content and scope
Each section: localized title, visibility, position, source/inherited/override marker, edit and contextual AI. Expand one or more sections; users are not forced to close previous work. Retain built-in item visibility/order, custom/preset/free-text sections, stable keys, hide/remove and manual content. Reorder uses existing native drag plus Move up/down controls; mobile and keyboard have equal outcomes.
“Inherited from Career Profile” links to the source. “Customized in this CV” offers comparison/reset. Reset changes only the override; it does not delete the career item. Job-specific variants show the linked job without implying ownership of that job or automatic submission. Restoring source or an old version must never bypass the correct server-owned resource lookup.
## Bounded customization with advanced parity
Default Customize shows template, accent, supported typography, font size, margins and spacing. Advanced disclosure retains every existing setting:
- Template-capability-aware heading/header styles, colors, photo and icons.
- Skills presentation/groups, one/two columns, sidebar and section columns.
- A4/Letter, document density, date format and document language.
- Per-section rows/grid/compact/bubbles and section spacing/order/visibility.
- Unsupported-setting handling and the server's normalization/fallback behavior.
This is intentionally constrained to CV layout, not a word processor. Do not drop current advanced settings because the brief lists fewer. No arbitrary absolute positioning, HTML editor or new font/template engine. UI Comfortable/Compact density is **not** CV document density.
Template switches retain compatible settings and make unsupported options unavailable with explanation. Existing saved template/settings IDs remain renderable. Any destructive reset is explicit; do not silently reset a CV when changing application theme.
## Preview and persistence
Keep debounced server preview, actual page boundaries, automatic fit and shared HTML/PDF engine. Preview is render-only; no implicit AI or profile writes. Maintain latest-result sequencing and dispose old preview/blob work on unmount/account switch.
Desktop split needs independent labelled, keyboard-scrollable panes. Mobile has Edit / Preview, remembers section/scroll, keeps save/export accessible and never compresses both into a phone. Manual zoom (NEW-12) is optional incremental work; Fit width already exists. Browser page zoom/reflow remains accessible even if manual preview zoom is deferred.
Save states: loading, editing/unsaved, saving, saved, failed with retry, reauthentication required. Do not show Saved before acknowledgement. Retain current local save queue and dirty navigation guard; it only serializes one editor and cannot resolve concurrent writers. Undo/redo is editor settings history; persisted version restore creates a new version rather than erasing history. Do not label either as conflict protection.
PDF failures/busy admission use existing B03 contract with understandable retry; never start parallel renders for preview thumbnails or bypass the shared generator. Private export/public published export retain separate authorization/publication checks.
## AI
Per-section improve/translate/custom instruction and whole-document translate/improve/spelling retain source/target language, current/proposed comparison, edit/accept/reject and strict block identity validation. Reject/close/error does not modify settings. Accept targets this variant; if a separate Save follows, say so. Do not place “apply to Career Profile” beside CV Accept.
## Required evidence before migration
Phase 2's mobile headline override and AI tests are a starting point. Add source reset/inherited edit, custom item reorder/hide, history/undo/reload, public unpublish, long searchable multipage PDF and unsupported template settings. Exercise selected-source context and native package relationships after P2-D01 is repaired separately. Loaded preview keyboard scroll after viewport transition is an F14 gate. Do not edit this stateful owner concurrently with stale-revision work; no F01 fix is claimed by this UX plan.