Files
jobtrackingapp/docs/cv-integration-qa/PLAN.md
T

47 lines
7.2 KiB
Markdown

# CV Integration QA Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans. Root owns sequencing, UI, evidence and Git; scoped workers may implement independent backend/parser units. Steps use checkbox syntax.
**Goal:** Repair source-backed missing-record/field mapping and safe structural interpretation, then qualify the complete import/profile/editor/document lifecycle.
**Architecture:** Extend existing review contracts with explicit typed field mappings tied to owned source blocks and deliberate current-record targets. Retain unresolved semantic relationships; never guess unlabeled employer/title roles. Reuse canonical transactions/revisions, queue, MUI and physical renderer.
**Tech Stack:** Existing .NET9/EF/Pomelo, React/MUI/TypeScript, pinned Docling/FastAPI, disposable MariaDB12.2.2, Playwright and unchanged PDF oracles.
**Spec:** Owner CV-QA-01 attached request; ARCHITECTURE_AND_COVERAGE.md records actual entry contracts/gaps.
## Global constraints and approach
Branch `test/cv-integration-acceptance` contains `ef425c2`. No main merge, production/service/schema/cache operations, destructive migration, live CV-model activation, broad AI selection or Phase10 implementation. Use synthetic documents and bounded isolated test resources. Commit/push/verify every validated checkpoint. Preserve old benchmark/acceptance/goldens, all 57 groups and 33 routes.
Approaches considered: positional/lexicon guessing would improve apparent recall while misattributing facts; activating model inference violates the explicit gate. Chosen implementation: deterministic semantics when actually labelled/header-defined; source-preserving abstention and user-controlled mapping when ambiguous. This is an engineering choice under the owner's explicit autonomous instruction, not a new human approval claim.
## Review focus
- A valid job followed by another unlabeled employer/title/date must not absorb the latter as achievements.
- Repeated words in different records must retain the correct source occurrence, not the first global match.
- A missing record/field can be created without accepting any rejected original proposal; mapping-only application is valid.
- Explicit existing-record targets are revision-bound, owner-scoped and cannot silently become another target after 409.
- Retried mappings, rollback/projection failures and competing first/existing writes cannot duplicate or lose canonical data.
## Checkpoint tasks
- [x] **CV-QA-00:** verify ef425c2/remote/ancestry/raw evidence; audit source/authority; fresh actual MariaDB70; field matrix and preservation delta; commit/push/verify.
- [x] **CV-QA-01:** source-backed mapping/new records/current comparisons implemented; focused backend77 and actual MariaDB72 PASS, UI/TypeScript/lint PASS. See CAREER_PROFILE_MAPPING.md; complete integration/recovery qualification remains later checkpoints.
- [x] **CV-QA-02:** red tests in CvMultilineImportTests for labelled multiline records, safe header-defined table order, repeated source occurrences and ambiguous record after resolved record. Update CvDocumentInterpreter to preserve source units and section-local state, attach only clear continuations, retain ambiguity for explicit assignment. Ground respects validated selected source block evidence. Extend a separate frozen synthetic corpus/oracle with both orders/missing dates/headings/overlaps/lists/tables; preserve original corpus/hash. Report parsing versus interpretation versus mapping versus reviewed correctness, denominators/F1/record/provenance/abstention. Real Docling fixtures; commit/push/verify.
- [x] **CV-QA-03:** qualify same/revised/older/overlapping imports and explicit targets, similar-but-distinct employers, partial/conflicting dates, per-field rejection, source/corrections/mobile/keyboard. Extend reviewed HTTP/browser tests; fix bounded defects; commit/push/verify.
- [x] **CV-QA-04:** actual MariaDB multi-record mapping/partial approval/rejected-field readback, replay/stale/concurrent first/existing write, rollback and owner checks. Existing lease/cancel/recovery retained; measure database interruption scope honestly. Commit/push/verify.
- [x] **CV-QA-05:** real Docling new/old-user journeys through authoring, durable readback, variants/customizations/template/order/visibility, new revision, editor, application association and frozen letter/package preservation. Minimal fixes only; commit/push/verify.
- [x] **CV-QA-06:** unchanged Windows/Linux24CV+4letter oracles plus rendered imported content (long work/skills/education/Unicode/templates/boundaries), semantic completeness and original portable fonts. Commit/push/verify.
- [x] **CV-QA-07:** real malformed/bomb/external/size/page/prompt/ownership/retention/cancel/exhaustion tests; latest advisory/disposition evidence and new lock audit kept separate. Bounded concurrent synthetic uploads and observable latency/CPU/memory/temp-disk/failure measurements; no model benchmark. Commit/push/verify.
- [x] **CV-QA-08:** available automated accessibility/keyboard/focus/locale/theme/zoom/reflow/reduced-motion checks and representative visual inspection; genuine human/device checklist remains open if unavailable. Commit/push/verify.
- [x] **CV-QA-09:** fresh full suites/native exits/source/runtime hashes/discovery membership, exact totals without overlap; independent decisions and severity/impact/action/phase10-vs-production scope. Candidate-specific Phase10 inventory and unmet entry criteria; do not start cleanup. Final review, fix bounded findings, commit/push/verify/stop.
Native commands use the repository SDK (`C:/Users/Connor/.dotnet/dotnet.exe`), existing Jest/Playwright runners, `scripts/mariadb-integration.py`, existing isolated sidecar build and Linux PDF helper. Serialize .NET build/browser/provider lanes. Workers write tests before implementation and coordinate RED/GREEN execution through root to avoid apphost locks. Root runs integration and the complete final freeze; a fresh reviewer checks the final implementation.
## Final checkpoint accounting — 27 October 2026
All safe implementation and qualification checkpoints are complete. Checkmarks record bounded work, not unconditional accuracy/human/model/production acceptance. Full evidence reconciliation passes with911 original files unchanged and three separately qualified test/config additions. Current totals: backend1336, frontend995/109, ordinary364, separate configured browser53, real import7, MariaDB80, Python90; original Windows/Linux each24CV+4letters plus9 imported PDFs/18pages. Static source review and independent code review completed; all applicable final automated lanes pass without skipped/retried cases. Earlier RED/harness attempts remain retained.
See ACCEPTANCE.md for independent PASS/PARTIAL/CONDITIONAL/BLOCKED/NOT TESTED decisions and owner actions. Overall model-independent development is CONDITIONAL GO; real CV-model inference stays disabled/BLOCKED, human/device/language/contrast/print acceptance stays open, production and cleanup implementation NO-GO. Candidate-specific Phase10 assessment/planning is conditionally ready, with no verified unused deletion candidate. No Phase10 implementation, main merge or production operation was performed. Unrelated local work remains preserved.