Files
claude-resume-kit/FIX_PROGRESS.md
T
dennisthiessenandClaude Opus 5 3519b2ffe7 fix(F08-F10): machine-checkable evidence, honest templates, demoted GPA
F08 - evidence metadata
- Only 1 of 26 claims carried structured source/last_verified/ownership, which
  is why recency and reference checks could not run. Added an evidence_schema
  block and an evidence block on all 26 claims.
- 8 dates were recovered from each claim's OWN recorded text; the other 18 are
  written as the literal "unrecorded". Nothing was inferred. "unrecorded" means
  nobody wrote it down, NOT that the claim is unevidenced - most carry evidence
  in their free-text scope.
- Coverage is reported as an advisory warning, never a gate: failing on it would
  push a future session to invent dates to clear the run.

F09 - templates
- resume_template.tex asserted "12+ years of production software experience".
  It does not hold: canonical employment starts 2014-11 (~11y10m) and the
  VISIBLE chronology starts 2015-05 (~11y4m) because Capgemini is omitted.
  Now "over ten years", with the arithmetic and the no-date-math rule inline.
- cv_template.tex still carries page targets, rendered-line budgets and 2L/3L
  variants the project dropped. Banner-marked as the ACADEMIC legacy path so it
  is not reached for whenever a posting says "CV".

F10 - US GPA
- The modified Bavarian formula converts FOREIGN grades INTO the German system.
  Inverting it to produce a US GPA is not a recognised method, and the TUM
  source calls even its forward calculator orientation only.
- Fields renamed to final_grade_us_4pt_orientation_only with that caveat. The
  German grades remain the canonical facts. If a recipient publishes its own
  conversion, use theirs and record which was used.

Validator PASS (1 advisory), 31/31 tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM
2026-09-11 19:40:52 +02:00

6.9 KiB
Raw Blame History

Review remediation — 2026-09-11

User authorized all recommendations in output/Project_Review_2026-09-11/project_review.tex. Work sequentially; update this file after each verified fix and before stopping. Do not rewrite submitted application archives or invent missing evidence.

Resume point

F01–F10 complete. Next: F11 — dedupe scout results by requisition, not title (job_scout/scout.py, inside _process_company). Read this file and inspect git log/git diff before resuming; do not repeat completed work.

Checkpoints: afdef7e (F01+F02) · fc5f3e4 (F03–F06) · ce5b7f5 (F07) · plus F08–F10.

User rulings — 2026-09-11

  • Aker BP application date: 2026-07-29 (confirmed; the CLAUDE.md cell saying 07-30 was wrong).
  • Aker BP Adjacent-despite-79: user does not remember and considers it immaterial, role closed and rejected — "mach wie du es am saubersten findest". Resolved as: keep the recorded class, record an honest override reason saying the rationale is unrecoverable, and do not reclassify. Silent reclassification was the review's own objection.
  • F18/F19 document layout changes: authorized.

Checklist

Finding Status Scope / verification
F01 DONE Six shared workflows; both agent entrypoints route identically; parity/link regression test
F02 DONE 26 registry records, preserved original tables, common current view, interview events independent of outcome
F03 DONE Quota gone (tracker is uncapped, cohort_tracker.py is a shim); Aker BP date and override recorded; validation enforces unique IDs, ISO dates, score range and gate/class consistency
F04 DONE Three-level rule hierarchy in AGENTS.md + CLAUDE.md; deliverable vs QA separated; resume_reference.md Capgemini contradiction removed
F05 DONE Per-claim forbidden wording enforced, identity/employer/placeholder/exclusion checks, document_exclusions given a canonical home, PASS no longer claims to be a truth certificate
F06 DONE LaTeX comments, markup, accent macros and umlauts normalized; negations respected; German und in the cadence hint; advisory warnings labelled as never a gate
F07 DONE Overstatement narrowed (BS-1, zero-downtime, retrieval, evaluation, PyTorch context); undervaluation fixed (BS-6 reached no bundle at all; Linux/Ansible/Bash missing from taxonomy)
F08 DONE evidence_schema + per-claim evidence block on all 26; 8 dates recovered from existing text, 18 written unrecorded rather than guessed; coverage reported as an advisory hint, never a gate
F09 DONE 12+ years -> over ten years with the reasoning inline; cv_template.tex banner-marked as the academic legacy path
F10 DONE US figures renamed *_orientation_only; the Bavarian formula runs foreign-INTO-German, so inverting it is not a recognised conversion. German grades stay canonical
F11 TODO Dedupe by requisition, not title
F12 TODO Structured country/remote eligibility
F13 TODO Shared decision identity resolver
F14 TODO Search relevance distinct from fit; German terminology
F15 TODO Typed dates and retained contact/compensation metadata
F16 TODO Run-scoped reports, transactional persistence and scan coverage
F17 TODO Reproducible new builds and safe historical archive classification
F18 TODO Evidence earlier on page one; rendered skills budget
F19 TODO Education layout, phrasing guidance, reproducible word counts

Sequencing note: F11–F16 all touch scout.py. Fix behaviours in place and keep each finding's diff separately verifiable. Do not start the ~2400-line file split F16 suggests mid-remediation — it would destroy the ability to attribute a regression to a specific fix.

Verification log

  • Review baseline: 9 existing tests passed; 43/45 LaTeX builds succeeded. See the report for limitations.
  • F01: moved current workflows into resume_builder/reference/workflows/; preserved skill frontmatter and Claude invocation support. python -m unittest discover -s tests -v: 10/10 pass.
  • F01 limitation: external quick_validate.py could not start because PyYAML is absent; repository tests validate frontmatter and both routing links.
  • F02: imported 26 applications from the newer CLAUDE table and seven structured cohort records. Originals preserved in job_scout/state/history/application_status_before_2026-09-11.json.
  • F03: application_tracker.py summary runs uncapped and reports "interview reached: 1" for SBB despite the withdrawal — the F02 separation working. Aker BP written through records.transaction(), so validation and view regeneration ran; --check reports views current.
  • F04: resume_reference.md said "Capgemini/Bundeswehr: include only when directly relevant", contradicting the standing never-include rule. Corrected, and the two rules separated.
  • F05/F06 verification — the counter-proof document is the evidence:
    • All six counter-proofs from the report are now caught (9 errors on one synthetic document).
    • % Never claim Terraform (a comment) and an honest "no Terraform experience" — English and German — correctly produce no finding.
    • All six packages built under current rules scan clean: SBB, NVIDIA, RUAG, Kdo Cy, Citadel, Aker BP — 0 errors each. Four false positives of my own making were found and fixed along the way (title collision across employers, education institution vs employment entry, umlauts, LaTeX accent macros). Each is now a regression test.
    • 13 older packages DO report findings (Apple 9, Microsoft Principal FDE 8, …). These look like genuine historical violations under today's stricter rules — "petabyte scale", "own the AWS data platform", uncontextualised PyTorch/TensorFlow. Not fixed: F17 governs historical archives and they must not be silently rewritten. Feed this list into F17.
    • tests/test_document_scanner.py added: 8 must-fail, 4 must-not-fail, plus a guard that current packages stay clean. Full suite 31/31 pass.
  • F07: raw history preserved; only selection rules and safe wording changed. The NVIDIA/RUAG "line could not be stopped" phrasing is left in the submitted letters and recorded as an OPEN ITEM in experience_bosch.md - plausible, unevidenced, to be confirmed before reuse.
  • F08: unrecorded is deliberately a real value. Failing the build on it would push a future session to invent dates to get a green run.
  • F10: no stale final_grade_us_4pt references remain anywhere in the repo.
  • Not re-run this session: the 45-document LaTeX build sweep and the visual sampling.

Completion rules

DONE requires implementation plus relevant checks. Record partial work and exact next action. Missing factual evidence must remain explicitly unresolved, never silently promoted to verified. Historical packages are preserved; fixes apply to active sources and future generation unless specifically noted.