6.4 KiB
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
- CV-QA-00: verify ef425c2/remote/ancestry/raw evidence; audit source/authority; fresh actual MariaDB70; field matrix and preservation delta; commit/push/verify.
- CV-QA-01: add failing backend/controller/provider tests for explicit source-backed record/field mappings and mapping-only apply. Extend review DTO with owned source blocks, field catalog and current-record target labels. Request mappings have stable client ID, allowlisted category, optional target index, and fields
{name,value,sourceBlockId,corrected}; no caller IDs/metadata/derived dates/arbitrary patches. Apply under existing revision/transaction, stamp actual source identity, include mappings in idempotency/audit; validator/size bounds remain. Root adds accessible EN/NB generic mapping controls and UI tests for rejection, source selection and stale retained drafts. Run focused tests/provider; commit/push/verify. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.