# Capability-to-evidence traceability Fresh source baseline: **5032ccb41514807c8ca3008c24ca6326be1170de**. Report IDs below resolve through TEST_EVIDENCE.json to native reports, actual process exits, test identities and source hashes. PASS means the finite automated behavior exercised, not blanket feature, semantic, human or production acceptance. No application source or existing test was changed for this handoff. | Required capability | Current owner / actual tests | Fresh report IDs | Decision and limits | |---|---|---|---| | Completely blank CV, zero unwanted sections | CvBuilderEditor; `e2e/pre-p10-cv-editor.spec.ts`; CvBlankPersistenceTests | ordinary-1/2/3/4, backend, mariadb-provider | Automated PASS; actual blank durable save exercised | | Create from Career Profile, section selection | CvBuilderEditor/CareerProfileMapper; pre-p10 editor and cv-section-scope specs | ordinary shards, backend, frontend | Automated PASS; profile remains canonical; explicit supported selections | | Undo/redo across supported operations | editor history; pre-p10 editor spec and frontend tests | ordinary shards, frontend | Automated PASS for bounded document operations; not undo of every remote side effect | | Save, refresh, lost response and recovery | ApplicationAssetsService/version tokens; provider and RD21 suites | mariadb-provider, mariadb-browser, rd21, rd21-volume | Automated PASS; success requires read-back/durable write | | Multiple-session editing, stale writes | existing revision contract; MariaDB concurrency suites | mariadb-provider, rd21, preferences | Automated PASS for conflicts/no lost update; not simultaneous human usability approval | | Existing CVs, frozen revisions, job variants and submitted packages | ApplicationAssetsService; original renderer; documents-contract/cv-library specs | backend, ordinary shards, original PDF artifacts | Automated finite PASS; no old-data rewrite; preservation overall remains PARTIAL | | Nine-template library and actual previews | CvTemplateGallery/Thumbnail; actual sandboxed HTML samples, explicit Apply | frontend, ordinary shards, windows/linux-browser | Automated PASS; aesthetics PARTIAL | | Existing/new title and section spacing | CvTheme/ThemedCvRenderer design versions | windows/linux-template-oracle, -name-ink | PARTIAL: unchanged S01 failures; never waived by ink diagnostic | | Optional photos, crop and theme persistence | editor/photo/theme owners; revised corpus | frontend, ordinary shards, template measurements | Automated finite PASS with synthetic geometric photo; human photo/layout review open | | Font consistency/weights, margins, headings, bullets/columns/page breaks | licensed bundled fonts/shared physical renderer; original and revised oracles | original PDF artifacts; template-completeness/-name-wrap/-sidebar | Content/bounds PASS; coordinate fidelity FAIL; visual rhythm/whitespace PARTIAL | | Multi-page and long names/skills/education, Norwegian characters | four revised fixture profiles and matching letters | template-completeness; matching-letter proofs | 36 CVs/122 pages and18 letters/38 pages per platform; automated finite PASS, physical printing NOT TESTED | | Real PDF and DOCX conversion | bounded Python Docling; import-tests/cv-import-docling.spec.ts; Python document tests | docling-import, python-docling | Automated PASS for supported text PDF/DOCX fixtures; scanned/OCR/layout breadth not qualified | | Real worker dispatch and progress | existing CV worker/store/AdminProcessing owners | local-worker, docling-import, diagnostics | Actual queued→running/extracting→pending_review plus owner-correlated events PASS; finite timeout/cancel tests separate | | Canonical Career Profile field mapping/new records | import interpreter/mapper/reviewed persistence; import-tests/cv-integration-qa.spec.ts | cv-integration-qa, long-import, mariadb-provider, backend | Automated supported workflow PASS; deterministic recall remains PARTIAL; unknown values must stay unknown | | Review/correction, group/field approval, source evidence | career/CvImportReview/CvImportMappingEditor | cv-integration-qa, docling-import, frontend, backend | Automated PASS; original PDF preview, DOCX source download/text; no claim of inline Word renderer | | Duplicate/conflict resolution, preserve existing values | reviewed apply owner and provider tests | mariadb-provider, cv-integration-qa, backend | Automated PASS for exercised matching/update/skip paths; conservative human decisions retained | | Transactional MariaDB apply, idempotent replay, rollback | CvImportReviewedPersistenceTests/CvImportConnectionLossTests/CvImportLifecycleConcurrencyTests | mariadb-provider | 90 provider cases overall, not90 import-only cases; rollback/concurrency/replay covered | | Revision safety and repeated requests | existing profile/job revisions and RD21 contracts | mariadb-provider, rd21, mariadb-observations | PASS for covered concurrency/recovery. Two observation cases document repeated creation behavior; do not prove creation-intent idempotency | | Failure/retry/cancellation/restart and provenance | CV worker durable states/source ownership and parser tests | backend, python-offline, docling-import, long-import, diagnostics | Automated PASS for finite cases; ownership/tenant/source checks retained; no indefinite success by timers | | Dashboard actual drag/resize | DashboardGrid + LayoutEditor; phase8-dashboard-customisation and dashboard-presentation specs | ordinary shards, frontend, preferences | Automated PASS; keyboard alternatives, collision and persistence covered | | Dashboard show/hide/save/reset, v1 preferences and stale-save conflicts | dashboardLayout/useDashboardLayout | preferences, frontend, ordinary shards | Automated PASS; hidden/future widget data retained | | Dashboard mobile and keyboard use | responsive linear layout/navigation guard | ordinary shards, frontend | Automated viewport/keyboard/axe PASS; physical mobile and AT NOT TESTED | | Admin owner + related job/import attribution | AdminProcessingPage/controller/store | diagnostics, backend, local-worker | Automated PASS for scoped IDs and real events; no cross-user progress/result access accepted | | Admin stage/status/duration/failures and bounded polling | admin-processing.spec.ts and API tests | diagnostics, frontend, backend | Automated PASS; provider_unavailable history retained even when retry succeeds | | Sanitised event logs, redaction, authorisation and tenant isolation | processing diagnostics service + authorisation tests | diagnostics, auth, rate, ingress, backend | Automated PASS for exercised payloads/roles; no claim of exhaustive repository security scan | | Real Docling vs deterministic interpretation | separate converter/grounding/interpreter | python-docling, python-offline, benchmark-new/-original, import journeys | Real conversion PASS; extraction recall PARTIAL; benchmark fixtures are finite synthetic source facts | | Queued AI strategy generation | existing generic operation worker/StrategySnapshotService | local-worker, ai, backend | Real local queue completed and persisted summary; earlier provider failure retained; separately authored ProfileCvText required | | Scheduled job enrichment | current scheduled worker/sidecar | local-worker | Actual scheduler persisted summary+tags at configured cadence; semantic correctness NOT qualified | | Safe structured outputs and model failures | cv_import_ai.py and grounding tests; isolated immutable probe | python-offline, cv-model-probe, model-verification artifacts | Contract tests PASS; all3 real CV probes rejected. CV model compatibility/accuracy BLOCKED; adapter stays disabled/disconnected | | Generic AI from imported structured profile alone | StrategySnapshotService requires legacy ProfileCvText | AI_RESULTS.md, BLOCKERS AI-CONTEXT-01 | NOT QUALIFIED: reviewed import deliberately does not populate legacy raw CV text; no fabricated compatibility claim | | Routes, auth, jobs/applications, CV/letters, settings, administration | existing shared owners; redesign-preservation and route specs | ordinary shards, auth, backend, frontend, preservation-register | 380 ordinary cases with discovery identity; all57 preservation entries/34 routes retained,56 PARTIAL/1 DEFERRED unchanged | | EN/Bokmål, light/dark, responsive/reduced motion | existing translations/themes/a11y specs | ordinary shards, frontend, native PDF measurements | Finite automated PASS; human copy/contrast/AT/device approval NOT TESTED. Other languages not newly qualified | `ordinary-*` denotes four disjoint reports (380 unique executed cases), not an extra suite added to the total. Specialized contracts have53 cases, import journeys8, real-provider browser checks3 and Linux native-browser checks8; these are separate lanes, not all unique product scenarios. Backend1448 and frontend1031 include many of the behaviors above; row counts must never be summed. See [VISUAL_REVIEW.md](VISUAL_REVIEW.md), [AI_RESULTS.md](AI_RESULTS.md), [MANUAL_ACCEPTANCE.md](MANUAL_ACCEPTANCE.md), [AUTHORITY.md](AUTHORITY.md) and [BLOCKERS.json](BLOCKERS.json) for the deliberately unfinished acceptance decisions. No listed PASS supplies protected Phase10 approval.