fix: follow-up review corrections, BIS rejection, and a gitignore miss

Second-pass review of this session's work by another agent. It corrected several
real mistakes of mine and finished F06 gaps I had left open. Reviewed, verified
and committed as-is.

THE MISS THAT MATTERS
`job_scout/state/applications.json` — the authoritative application registry
introduced by F02 — was never actually tracked. `job_scout/state/*` in
.gitignore silently excluded it, so my checkpoint commit afdef7e claimed to add
it and did not. Only `application_cohort.json`, the GENERATED projection, was
version-controlled; the source of truth and the migration history backup were
not. .gitignore now carries explicit negations for both.

MY ERRORS, CORRECTED
- "kastellaun" was in CH_LOCATION_KEYWORDS. Kastellaun is in Rhineland-Palatinate.
  I took it from a Bundeswehr reserve listing and filed it under Switzerland -
  precisely the class of bug F12 existed to fix.
- The F12 fix only widened the keyword list; SmartRecruiters still discarded the
  structured country, which was the concrete case the review named
  (city=Baar, country=CH). The adapter now preserves it, and a COUNTRY_NAMES
  mapping gives country precedence over a bare town name.
- F15 was applied to Taleo and Prospective only. Greenhouse still wrote
  `updated_at` into `posted`; it now uses `published_at` and carries provenance.
- My negation guard `\b(no|not|...)\b[^.;]{0,60}$` was too loose - an unrelated
  "not" within 60 characters could mask a real claim. Tightened to require the
  negation to govern the term.
- F18's retirement of the macro-count rule missed "Four to six compact skills
  lines" in the workflow; removed now.

F06 GAPS I LEFT OPEN, NOW CLOSED
Date-format validation on education/employment periods (the 2035-99 case named
in the review), evidence-structure validation, referential integrity on evidence
source files, and the missing-identity KeyError.

F10 TAKEN FURTHER, AND RIGHTLY
I demoted the US-GPA fields to *_orientation_only. They are now removed
entirely, with grade_output_rule saying what to do instead: use the German grade
and scale, and if a recipient requires a US GPA, use THEIR method and record it.
Keeping a number derived by a non-recognised method invites its use.

Also: the Capgemini omit-preference now sits in experience_capgemini.md itself,
alongside the instruction not to fill or explain the intentional gap.

BIS BASEL - REJECTED 2026-09-11
jr100429, applied 2026-07-10, no interview, no reason given. Recorded in the
registry with a dated event and in the decision log; the "prep interview brief
when screening lands" next action is cleared. This also settles the 2026-09-04
observation that the req had vanished from the BIS board - it was a real
rejection, not just a closed posting.

VERIFICATION I RAN MYSELF BEFORE COMMITTING
49/49 tests. Validator PASS with 0 advisory warnings. Package manifest and
registry views current. All 12 F12 location cases still correct, including
Kastellaun now rejecting. The F05 counter-proof still catches all 9 violations.
SBB, NVIDIA, RUAG and Kdo Cy resumes still scan clean. Diffs are net-additive
across every reference file - the deletions are replacements, not losses.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM
This commit is contained in:
dennisthiessenandClaude Opus 5 committed 2026-09-11 23:57:06 +02:00
1 parent 925a2d74a3
commit 34299bce54
25 files changed
+1427 -322

No files matched your search

+21 -5
View File
@@ -6,12 +6,28 @@ Do not rewrite submitted application archives or invent missing evidence.
## Resume point
**All findings F01–F19 are complete.**
**Follow-up review corrections implemented and verified.** The previous DONE labels below
describe the first implementation. This checklist records the subsequent corrections:
Remaining known gaps, none of them a finding: the visual page-by-page sampling was not repeated
(the F18 work measured page-one geometry from the compiled PDF instead), and the 13 older
packages listed below still carry genuine findings under today's rules - deliberately, because
F17 classifies archives as evidence rather than rewriting them.
- [x] Make authoritative application registry and migration history visible to Git.
- [x] Fix scanner context/markup and basic schema validation.
- [x] Fix country precedence, related decisions, new-only state and serialize scout writers.
- [x] Fix chronological application updates.
- [x] Make manifest content-sensitive and independent of absent local PDFs.
- [x] Fix heading measurement and actual education template.
- [x] Add DK/NO guidance; remove residual scope/Capgemini/GPA contradictions.
- [x] Run regression tests, isolated checkout checks and template visual QA.
Verification: 49/49 tests pass both locally and in an isolated copy of all Git-included
working-tree files, with no ignored PDFs or runtime state. Canonical, registry-view and
manifest checks pass. The professional template builds to two pages and was visually checked.
Historical submitted documents were not changed. No new dependencies or framework introduced.
Manifest PDF hashes detect changed files; they intentionally do not claim a verified build association.
The scanner remains a mechanical check; semantic claim review is still required.
Historical first-pass limitation: only geometry was measured then; the corrected template has
now also been visually checked. The older packages listed below still carry historical findings;
they are preserved as submission records, not reused as career-evidence sources.
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) · `3519b2f` (F08–F10) · `afd8174` (F11–F13) · `ce8619b` (F14) · `c7e8d4e` (F15–F16) · `eecdbda` (F17) · plus F18–F19.