fix(F18-F19): get evidence onto page one earlier, measured not asserted
F18 - page-one weighting - Across four compiled packages the first employment entry began at 45-55% of page one. A reader reaching the middle of the page had seen a profile and a skills block, and no evidence. - The old skills rule counted `\skillline` MACROS, which does not control density: six categories with long value lists wrap to twelve or more rendered lines. Replaced with a rendered-line budget verified in the compiled PDF, plus the rule that a skills line repeating what three bullets below already prove is spending the first screen to say it twice. - Employer chronology stays reverse-chronological; the ordering freedom is WITHIN a position, where the bullet closest to the target role leads. - New helper `page_metrics.py` measures page-one geometry from the PDF via pdftotext -bbox. F19 - education and phrasing - Degree + focus + institution crammed into one cell with a right-aligned date produced visible word spacing and mid-word breaks in SBB, NVIDIA and Aker BP. Split the entry, as RUAG_AI_Engineer_C5I already did. Template carries the rule. - Grades and thesis stay only where concretely relevant. claims.json grade_output_rule already keeps grades off by default; the M.Eng. thesis earns its place on condition-monitoring or sensor-data roles and otherwise does not. Validated by measurement rather than assertion - page_metrics.py first reproduced the review's own figures (NVIDIA 55.4%, SBB 50.6%, RUAG 50.3%). That is what makes the after-figure meaningful. - The NVIDIA CV was rebuilt FROM A COPY with the guidance applied: experience moved 55.4% -> 44.0% of page one, page-one text lines 47 -> 39, still two pages, zero overfull boxes, validator PASS. - The submitted package itself was not modified. F17 classifies archives as evidence, not as drafts. The percentage is a diagnostic, not a target: no pixel goal and no rule that page two must be filled. All 19 review findings are now complete. 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
eecdbdade6
commit
b8c5141279
4 files changed
+137
-7
No files matched your search
+14
-7
@@ -6,12 +6,15 @@ Do not rewrite submitted application archives or invent missing evidence.
|
||||
|
||||
## Resume point
|
||||
|
||||
F01–F17 complete. **Next: F18** — evidence earlier on page one and a rendered skills budget.
|
||||
F18/F19 change how the CVs look; the user authorised this on 2026-09-11. They need compiling
|
||||
and visual inspection, not blind patching, so budget for a build loop.
|
||||
**All findings F01–F19 are complete.**
|
||||
|
||||
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.
|
||||
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) · plus F17.
|
||||
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.
|
||||
|
||||
## User rulings — 2026-09-11
|
||||
|
||||
@@ -43,8 +46,8 @@ Checkpoints: `afdef7e` (F01+F02) · `fc5f3e4` (F03–F06) · `ce5b7f5` (F07) ·
|
||||
| F15 | DONE | Taleo deadline moved out of `posted` (a closing date was making roles look freshly published); `unit`, `compensation`, `contact` and `date_provenance` carried as fields through to the report and JSON. Named contacts now surface — directly serving the channel rule |
|
||||
| F16 | DONE | Restricted runs write `<date>.only-x.md` and leave the daily report intact; seen-state committed only after the report is on disk, and never by a restricted run; unique temp names for atomic writes |
|
||||
| F17 | DONE | Build sweep 46/48; `package_manifest.py` records per package what a rebuild would really do; 7 unclassified packages registered with a safe default; ` oday` removed from the cover-letter template. Historical packages untouched |
|
||||
| F18 | TODO | Evidence earlier on page one; rendered skills budget |
|
||||
| F19 | TODO | Education layout, phrasing guidance, reproducible word counts |
|
||||
| F18 | DONE | Rendered-line budget replaces the source-macro count; `page_metrics.py` measures page-one geometry. Demonstrated on a rebuilt copy of the NVIDIA CV: experience moved **55.4% → 44.0%**, 47 → 39 page-one lines, still 2 pages, 0 boxes, validator PASS |
|
||||
| F19 | DONE | Education entries split (degree on the entry line, institution below) after the RUAG model; grades/thesis kept only where concretely relevant; template carries the rule as a comment |
|
||||
|
||||
**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**
|
||||
@@ -107,7 +110,11 @@ mid-remediation — it would destroy the ability to attribute a regression to a
|
||||
- F17 classification: 7 packages were unregistered; added to `historical_revalidate`, with a
|
||||
recorded default that anything unlisted is treated that way. Being recent is not being verified —
|
||||
none was re-read for this.
|
||||
- Still not re-run: the visual page sampling (F18).
|
||||
- F18/F19 validated by measurement, not assertion: `page_metrics.py` reproduced the review's own
|
||||
figures (NVIDIA 55.4%, SBB 50.6%, RUAG 50.3%) before any change, which is what makes the
|
||||
after-figure meaningful. The submitted NVIDIA package was NOT modified - the demonstration was
|
||||
built from a copy.
|
||||
- The percentage is a DIAGNOSTIC, not a target. No pixel goal, no forced page-two filling.
|
||||
|
||||
## Completion rules
|
||||
|
||||
|
||||
Reference in new issue
Block a user