test(cv-import): qualify regression and hand off conditional acceptance
This commit is contained in:
@@ -17,6 +17,20 @@ The additive `20261026090000_AddCvImportReviewEvidence` migration adds nullable
|
||||
|
||||
Canonical `StructuredCvProfile` is authoritative: contact (including GitHub and labelled links), summary, jobs, education, certifications, projects, skills, languages, interests, awards, publications, organisations, references and custom sections. Courses and other unsupported typed domains remain custom section items. Existing schema has no separate experience-duration or arbitrary qualification records.
|
||||
|
||||
| Source / canonical mapping | Current deterministic interpretation | Limit |
|
||||
|---|---|---|
|
||||
| `contact.fullName/headline/email/phone/location/website/linkedIn/gitHub/links` | EN/NB labelled contact lines; email regex; Docling title as name; labelled portfolio link | Unlabelled phone/location/title may remain unclassified |
|
||||
| `summary[]` | Recognized summary heading, original text | No generated professional background |
|
||||
| `jobs[].title/company/start/end/isCurrent/bullets` | Explicit pipe-delimited title/employer/date record; following lines as details | Ordinary unlabelled multiline title/employer/date layouts may remain custom source; job location/skills are not inferred |
|
||||
| `education[].qualification/institution/start/end/details` | Explicit delimited qualification/institution/date record | Specialism can remain original detail; no inferred degree level/location |
|
||||
| `certifications[].name/issuer/date` | Delimited source values | PDF table cells can become separate proposed names; review warning is mandatory |
|
||||
| `projects[].name/role/bullets` | Delimited named record / following text | Project dates/location/skills not inferred |
|
||||
| `skills[]`, `languages[].name/level` | Explicit lists and language:level | No skill attribution from unrelated prose; missing level null |
|
||||
| `interests/awards/publications/organisations/references[]` | Explicit recognized section lines | No reclassification of unfamiliar headings based on guesses |
|
||||
| `otherSections[].title/items[]` | Courses, unfamiliar/ambiguous/unclassified source | Review can retain/correct/skip; reclassifying to a missing typed record requires existing Career Profile editing |
|
||||
|
||||
This is a deliberately limited deterministic grammar, not broad qualification of arbitrary conventional CV layouts. The review/schema layer supports all existing canonical fields, but automatic extraction does not populate every possible field. Missing typed records cannot currently be created inside import review. These are explicit PARTIAL mapping/review acceptance items for CV-QA-01, separate from completed transaction and approval safety.
|
||||
|
||||
`CvDocumentInterpreter` interprets structural blocks/headings and labelled fields conservatively. Clear delimited employment/education records retain source date strings and current markers. Unknown employment stays as reviewable source rather than inventing a role or employer. Missing language proficiency remains null. Unclassified source remains visible. The current deterministic grammar is bounded; unconventionally arranged documents may require corrections. Native PDF table structure is explicitly limited.
|
||||
|
||||
`CvDocumentReview.Ground` removes unsupported candidate strings, refuses inferred date precision and attaches source block/page/snippet to significant fields. Fixed heuristic confidence percentages are not used in this path. Current employment is a labelled normalization of a supported source marker. The original extraction is stored on the run; approved/corrected profile metadata and the actual reviewed decisions preserve their origin. No AI-generated facts enter the active deterministic path.
|
||||
@@ -42,7 +56,7 @@ The new hosted retention sweep runs on startup and hourly. New import source fil
|
||||
- `parser-red-01`: three real structural-parser failures before the block interpreter; successor `parser-green-01` passed 46 focused cases.
|
||||
- `retention-green-01`: 50 focused cases PASS. `link-merge-red` reproduced unrelated-link replacement; `review-safe-green-01` passed 51 focused cases after correction.
|
||||
|
||||
Focused runs overlap full regression and each other. They must never be added together. Final source-frozen regression/provider acceptance is still a separate checkpoint.
|
||||
Focused runs overlap full regression and each other. They must never be added together. Final source-bound regression/provider decisions and the fixture-only recovery accounting are recorded in ACCEPTANCE.md.
|
||||
|
||||
## Provider and review addendum
|
||||
|
||||
|
||||
Reference in New Issue
Block a user