Two profile-accuracy rules for the CV guide.
**In-progress qualifications.** A bare year range is not enough: an entry
reading 2025-2026, seen partway through 2026, reads as a finished degree,
because a skimming reader treats a closed range as closed. A profile
statement saying "currently completing" does not fix it - the education
entry is where a reader checks the credential, so it has to stand alone.
Claiming a credential not yet held is discovered at transcript or
reference check rather than at interview, and it costs nothing to
prevent. Adds the LaTeX form and a check that the profile statement,
education entry and any availability note agree on one completion date.
**Tenure against visible output.** A two-year role represented by a
single project reads as low output whether or not that is fair; the
reader cannot know what filled the time, so they guess. Hits career
changers, long-cycle work (industrial, clinical, research) and anyone
kept on a single account. Three honest fixes in preference order -
surface more real work, make the phases within the role explicit, name
what made the cycle long - and an explicit prohibition on the two
dishonest ones: never pad with invented projects, never quietly shorten
employment dates. Both are discoverable and worse than the perception
problem. If the ratio survives the fixes the interview question is
coming, so the answer belongs in interview prep rather than improvised.
framework_version 1.2.0 -> 1.3.0.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Adds a work-authorization eligibility dimension to 04-job-evaluation.md: whether the candidate is legally permitted to hold the role (citizenship/PR/visa requirements) as a hard filter, distinct from permit-timing. Country-agnostic, quotes the requirement source verbatim, treats silence as not-permission, and surfaces to the user rather than silently dropping. framework_version bumped 1.0.0 -> 1.1.0.
By @LeoWinston-9596 (split from #199). Note: the referenced /setup 'second gate' permit-timing collection isn't wired yet - a natural follow-up.
job_scraper/seen_jobs.json (and notion_sync.json / *.md) were ignored by a repo-rooted pattern, but the job-scraper skill resolves job_scraper/ relative to its own directory, so the state file lands at .claude/skills/job-scraper/job_scraper/ and the rule never matched - publishing every scraped posting with fit scores and skip-reasons on a public fork. Switches to **/-prefixed patterns that match at any depth (the rooted location still matches too, so no regression), and adds documents/interview/** (interview prep names employers, quotes submitted material, and lists the candidate's weak points) - it was never ignored though documents/applications/** was. REQUIRED_IGNORE_RULES updated in lockstep so the security guard stays in sync.
By @LeoWinston-9596 (split from #199). Verified: both nested and root seen_jobs.json now ignored, interview records ignored, guard suite green (17 tests incl. #195's negation checks). Rebased cleanly on current master.