Skip to content

fix: separate freshness from scoring semantics - #17

Merged
pashawkola33 merged 1 commit into
mainfrom
feat/scoring-semantics-v2
Aug 11, 2026
Merged

pashawkola33 merged 1 commit into
mainfrom
feat/scoring-semantics-v2

Conversation

@pashawkola33

Copy link
Copy Markdown
Owner

What changed

  • Exclude vacancy freshness from the persisted semantic fit score while keeping freshness observable for recency/explanation.
  • Prevent vacancies with zero confirmed Java/backend evidence from reaching the POSSIBLE_MATCH threshold.
  • Introduce semantic ScoreCard equality for preview/rescore planning so freshness-only drift does not create rescore work.
  • Keep persisted rescore state checks strict while allowing recomputed freshness metadata to drift safely between preview and write.
  • Version the rescore plan fingerprint to v2, using exact stored state and semantic computed state.
  • Update affected preview/write fixtures and add scoring/rescore regression contracts.

Why

Formal eligibility and supporting tooling could previously push non-backend roles into POSSIBLE_MATCH even with no Java/backend evidence. Freshness also changed the persisted compatibility score solely as time passed, which made semantic scores and rescore plans time-dependent.

Validation

Focused regression suite passed: 92 tests, 0 failures, 0 errors, 0 skipped.

Also verified:

  • git diff --check clean
  • one commit on top of 7134d763ab79bdb816bfbe7d03c0a5227904e0e7
  • clean worktree before push
  • pushed branch SHA: 705a4470245b1242892bd99a51e2381890b224c3

No production rescore/write or deployment action is part of this PR.

@pashawkola33
pashawkola33 marked this pull request as ready for review August 11, 2026 22:44
@pashawkola33
pashawkola33 merged commit 0104a36 into main Aug 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant