fix: clarify the Bosch 24/7 constraint; tidy build artefacts
BS-1 operating constraint - the F07 open item, resolved by the user The user clarified what the 24/7 constraint actually is: a defect in the software could, worst case, halt production - an outcome that must never occur. That is a FAILURE-CONSEQUENCE constraint, and the submitted NVIDIA cover letter states something different: "a production line that could not be stopped for a deployment" describes a scheduling window. The distinction matters in both directions - the letter is inaccurate, and the truth is the stronger claim. - BS-1 scope now records the real constraint and how to write it. - Both variants of the letter's phrasing are added to BS-1 `forbidden`, so the scanner catches them. Verified: it now flags the submitted letter. - BS-1 evidence filled from a real source (this clarification) rather than left unrecorded, including ownership - integration and operation, not model work. - The submitted letter is NOT rewritten (F17). experience_bosch.md records the resolution and the wording to use instead. Scanner false positive fixed: the employer-date check now runs on CVs only. A cover letter naming an employer in prose is not claiming a date. Cleanup, authorised by the user - 136 LaTeX build artefacts removed (already gitignored, regenerable). - 7 superseded intermediate QA renders removed, 6 of them in NATO_AI_ENGINEER which carried nine PDFs for two documents. - Nothing evidential touched: 36 submitted PDFs, 41 e2e deliverables, 44 sources, 54 session/critique files and 20 JD files are intact. The Kraken PDF was checked before deleting and turned out to be the saved job description, not a render. - output/ 16M -> 13M. 37/37 tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM
This commit is contained in:
1 parent
b8c5141279
commit
f2a1229701
4 files changed
+24
-22
No files matched your search
@@ -285,6 +285,9 @@ def scan_document(path: Path, claims: dict, template: bool = False) -> list[str]
|
||||
# across employers ("Research Software Engineer" contains "Software Engineer") and that
|
||||
# produced a false positive on two real resumes. Employers excluded from documents are
|
||||
# skipped outright - their absence is the point, not a defect.
|
||||
# Employment dates belong on a CV. A cover letter naming an employer in prose is not
|
||||
# claiming a date, so requiring one there is a false positive.
|
||||
is_cv = "resume" in path.name.lower() or "cv" in path.name.lower() or "lebenslauf" in path.name.lower()
|
||||
excluded = {item["term"].lower() for item in claims.get("document_exclusions", [])}
|
||||
schooling_removed = fold(lowered)
|
||||
for school in claims.get("education", []):
|
||||
@@ -292,7 +295,7 @@ def scan_document(path: Path, claims: dict, template: bool = False) -> list[str]
|
||||
institution = fold(school.get(key) or "")
|
||||
if len(institution) > 5:
|
||||
schooling_removed = schooling_removed.replace(institution, " ")
|
||||
for employer in claims.get("employment", []):
|
||||
for employer in (claims.get("employment", []) if is_cv else []):
|
||||
name = (employer.get("employer") or "").lower()
|
||||
if not name or any(term in name for term in excluded):
|
||||
continue
|
||||
|
||||
Reference in new issue
Block a user